From 89ee28351af41629819b8fbc8abed4b6051277c1 Mon Sep 17 00:00:00 2001 From: Malte Langkabel Date: Sat, 9 May 2020 08:48:05 +0200 Subject: [PATCH] build: Copy Clang compiler headers from Clang build dir in CMake (issue #993) (#1005) --- .gitignore | 1 + CMakeLists.txt | 25 + .../cxx/include/__clang_cuda_builtin_vars.h | 112 - bin/app/data/cxx/include/__clang_cuda_cmath.h | 485 - .../include/__clang_cuda_complex_builtins.h | 189 - .../include/__clang_cuda_device_functions.h | 1793 - .../cxx/include/__clang_cuda_intrinsics.h | 478 - .../include/__clang_cuda_libdevice_declares.h | 462 - .../__clang_cuda_math_forward_declares.h | 308 - .../include/__clang_cuda_runtime_wrapper.h | 426 - .../data/cxx/include/__stddef_max_align_t.h | 27 - bin/app/data/cxx/include/__wmmintrin_aes.h | 140 - bin/app/data/cxx/include/__wmmintrin_pclmul.h | 48 - bin/app/data/cxx/include/adxintrin.h | 72 - bin/app/data/cxx/include/altivec.h | 16739 ---- bin/app/data/cxx/include/ammintrin.h | 179 - bin/app/data/cxx/include/arm64intr.h | 35 - bin/app/data/cxx/include/arm_acle.h | 630 - bin/app/data/cxx/include/arm_fp16.h | 1499 - bin/app/data/cxx/include/arm_neon.h | 73681 ---------------- bin/app/data/cxx/include/armintr.h | 31 - bin/app/data/cxx/include/avx2intrin.h | 1146 - bin/app/data/cxx/include/avx512bf16intrin.h | 279 - bin/app/data/cxx/include/avx512bitalgintrin.h | 83 - bin/app/data/cxx/include/avx512bwintrin.h | 2021 - bin/app/data/cxx/include/avx512cdintrin.h | 123 - bin/app/data/cxx/include/avx512dqintrin.h | 1377 - bin/app/data/cxx/include/avx512erintrin.h | 271 - bin/app/data/cxx/include/avx512fintrin.h | 9666 -- bin/app/data/cxx/include/avx512ifmaintrin.h | 68 - bin/app/data/cxx/include/avx512ifmavlintrin.h | 119 - bin/app/data/cxx/include/avx512pfintrin.h | 97 - bin/app/data/cxx/include/avx512vbmi2intrin.h | 357 - bin/app/data/cxx/include/avx512vbmiintrin.h | 105 - bin/app/data/cxx/include/avx512vbmivlintrin.h | 188 - bin/app/data/cxx/include/avx512vlbf16intrin.h | 474 - .../data/cxx/include/avx512vlbitalgintrin.h | 145 - bin/app/data/cxx/include/avx512vlbwintrin.h | 2807 - bin/app/data/cxx/include/avx512vlcdintrin.h | 225 - bin/app/data/cxx/include/avx512vldqintrin.h | 1167 - bin/app/data/cxx/include/avx512vlintrin.h | 8444 -- .../data/cxx/include/avx512vlvbmi2intrin.h | 689 - bin/app/data/cxx/include/avx512vlvnniintrin.h | 209 - .../cxx/include/avx512vlvp2intersectintrin.h | 121 - bin/app/data/cxx/include/avx512vnniintrin.h | 115 - .../cxx/include/avx512vp2intersectintrin.h | 77 - .../data/cxx/include/avx512vpopcntdqintrin.h | 54 - .../cxx/include/avx512vpopcntdqvlintrin.h | 91 - bin/app/data/cxx/include/avxintrin.h | 5053 -- bin/app/data/cxx/include/bmi2intrin.h | 81 - bin/app/data/cxx/include/bmiintrin.h | 372 - bin/app/data/cxx/include/cetintrin.h | 99 - bin/app/data/cxx/include/cldemoteintrin.h | 28 - bin/app/data/cxx/include/clflushoptintrin.h | 27 - bin/app/data/cxx/include/clwbintrin.h | 38 - bin/app/data/cxx/include/clzerointrin.h | 36 - bin/app/data/cxx/include/cpuid.h | 302 - .../data/cxx/include/cuda_wrappers/algorithm | 116 - .../data/cxx/include/cuda_wrappers/complex | 82 - bin/app/data/cxx/include/cuda_wrappers/new | 98 - bin/app/data/cxx/include/emmintrin.h | 4981 -- bin/app/data/cxx/include/enqcmdintrin.h | 63 - bin/app/data/cxx/include/f16cintrin.h | 162 - bin/app/data/cxx/include/float.h | 152 - bin/app/data/cxx/include/fma4intrin.h | 218 - bin/app/data/cxx/include/fmaintrin.h | 216 - bin/app/data/cxx/include/fxsrintrin.h | 91 - bin/app/data/cxx/include/gfniintrin.h | 194 - bin/app/data/cxx/include/htmintrin.h | 212 - bin/app/data/cxx/include/htmxlintrin.h | 345 - bin/app/data/cxx/include/ia32intrin.h | 364 - bin/app/data/cxx/include/immintrin.h | 522 - bin/app/data/cxx/include/intrin.h | 589 - bin/app/data/cxx/include/inttypes.h | 97 - bin/app/data/cxx/include/invpcidintrin.h | 23 - bin/app/data/cxx/include/iso646.h | 27 - bin/app/data/cxx/include/limits.h | 102 - bin/app/data/cxx/include/lwpintrin.h | 136 - bin/app/data/cxx/include/lzcntintrin.h | 104 - bin/app/data/cxx/include/mm3dnow.h | 157 - bin/app/data/cxx/include/mm_malloc.h | 61 - bin/app/data/cxx/include/mmintrin.h | 1558 - bin/app/data/cxx/include/module.modulemap | 158 - bin/app/data/cxx/include/movdirintrin.h | 49 - bin/app/data/cxx/include/msa.h | 569 - bin/app/data/cxx/include/mwaitxintrin.h | 33 - bin/app/data/cxx/include/nmmintrin.h | 16 - bin/app/data/cxx/include/opencl-c-base.h | 571 - bin/app/data/cxx/include/opencl-c.h | 16502 ---- .../openmp_wrappers/__clang_openmp_math.h | 35 - .../__clang_openmp_math_declares.h | 33 - .../data/cxx/include/openmp_wrappers/cmath | 16 - .../data/cxx/include/openmp_wrappers/math.h | 17 - bin/app/data/cxx/include/pconfigintrin.h | 40 - bin/app/data/cxx/include/pkuintrin.h | 34 - bin/app/data/cxx/include/pmmintrin.h | 290 - bin/app/data/cxx/include/popcntintrin.h | 52 - .../data/cxx/include/ppc_wrappers/emmintrin.h | 2318 - .../data/cxx/include/ppc_wrappers/mm_malloc.h | 44 - .../data/cxx/include/ppc_wrappers/mmintrin.h | 1443 - .../data/cxx/include/ppc_wrappers/xmmintrin.h | 1838 - bin/app/data/cxx/include/prfchwintrin.h | 55 - bin/app/data/cxx/include/ptwriteintrin.h | 37 - bin/app/data/cxx/include/rdseedintrin.h | 42 - bin/app/data/cxx/include/rtmintrin.h | 45 - bin/app/data/cxx/include/s390intrin.h | 25 - bin/app/data/cxx/include/sgxintrin.h | 60 - bin/app/data/cxx/include/shaintrin.h | 61 - bin/app/data/cxx/include/smmintrin.h | 2430 - bin/app/data/cxx/include/stdalign.h | 21 - bin/app/data/cxx/include/stdarg.h | 35 - bin/app/data/cxx/include/stdatomic.h | 176 - bin/app/data/cxx/include/stdbool.h | 31 - bin/app/data/cxx/include/stddef.h | 121 - bin/app/data/cxx/include/stdint.h | 693 - bin/app/data/cxx/include/stdnoreturn.h | 16 - bin/app/data/cxx/include/tbmintrin.h | 140 - bin/app/data/cxx/include/tgmath.h | 1368 - bin/app/data/cxx/include/tmmintrin.h | 771 - bin/app/data/cxx/include/unwind.h | 327 - bin/app/data/cxx/include/vadefs.h | 51 - bin/app/data/cxx/include/vaesintrin.h | 84 - bin/app/data/cxx/include/varargs.h | 12 - bin/app/data/cxx/include/vecintrin.h | 10862 --- bin/app/data/cxx/include/vpclmulqdqintrin.h | 28 - bin/app/data/cxx/include/waitpkgintrin.h | 42 - bin/app/data/cxx/include/wbnoinvdintrin.h | 24 - bin/app/data/cxx/include/wmmintrin.h | 19 - bin/app/data/cxx/include/x86intrin.h | 54 - bin/app/data/cxx/include/xmmintrin.h | 3008 - bin/app/data/cxx/include/xopintrin.h | 770 - bin/app/data/cxx/include/xsavecintrin.h | 34 - bin/app/data/cxx/include/xsaveintrin.h | 63 - bin/app/data/cxx/include/xsaveoptintrin.h | 34 - bin/app/data/cxx/include/xsavesintrin.h | 44 - bin/app/data/cxx/include/xtestintrin.h | 27 - 136 files changed, 26 insertions(+), 190226 deletions(-) delete mode 100644 bin/app/data/cxx/include/__clang_cuda_builtin_vars.h delete mode 100644 bin/app/data/cxx/include/__clang_cuda_cmath.h delete mode 100644 bin/app/data/cxx/include/__clang_cuda_complex_builtins.h delete mode 100644 bin/app/data/cxx/include/__clang_cuda_device_functions.h delete mode 100644 bin/app/data/cxx/include/__clang_cuda_intrinsics.h delete mode 100644 bin/app/data/cxx/include/__clang_cuda_libdevice_declares.h delete mode 100644 bin/app/data/cxx/include/__clang_cuda_math_forward_declares.h delete mode 100644 bin/app/data/cxx/include/__clang_cuda_runtime_wrapper.h delete mode 100644 bin/app/data/cxx/include/__stddef_max_align_t.h delete mode 100644 bin/app/data/cxx/include/__wmmintrin_aes.h delete mode 100644 bin/app/data/cxx/include/__wmmintrin_pclmul.h delete mode 100644 bin/app/data/cxx/include/adxintrin.h delete mode 100644 bin/app/data/cxx/include/altivec.h delete mode 100644 bin/app/data/cxx/include/ammintrin.h delete mode 100644 bin/app/data/cxx/include/arm64intr.h delete mode 100644 bin/app/data/cxx/include/arm_acle.h delete mode 100644 bin/app/data/cxx/include/arm_fp16.h delete mode 100644 bin/app/data/cxx/include/arm_neon.h delete mode 100644 bin/app/data/cxx/include/armintr.h delete mode 100644 bin/app/data/cxx/include/avx2intrin.h delete mode 100644 bin/app/data/cxx/include/avx512bf16intrin.h delete mode 100644 bin/app/data/cxx/include/avx512bitalgintrin.h delete mode 100644 bin/app/data/cxx/include/avx512bwintrin.h delete mode 100644 bin/app/data/cxx/include/avx512cdintrin.h delete mode 100644 bin/app/data/cxx/include/avx512dqintrin.h delete mode 100644 bin/app/data/cxx/include/avx512erintrin.h delete mode 100644 bin/app/data/cxx/include/avx512fintrin.h delete mode 100644 bin/app/data/cxx/include/avx512ifmaintrin.h delete mode 100644 bin/app/data/cxx/include/avx512ifmavlintrin.h delete mode 100644 bin/app/data/cxx/include/avx512pfintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vbmi2intrin.h delete mode 100644 bin/app/data/cxx/include/avx512vbmiintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vbmivlintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vlbf16intrin.h delete mode 100644 bin/app/data/cxx/include/avx512vlbitalgintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vlbwintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vlcdintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vldqintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vlintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vlvbmi2intrin.h delete mode 100644 bin/app/data/cxx/include/avx512vlvnniintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vlvp2intersectintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vnniintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vp2intersectintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vpopcntdqintrin.h delete mode 100644 bin/app/data/cxx/include/avx512vpopcntdqvlintrin.h delete mode 100644 bin/app/data/cxx/include/avxintrin.h delete mode 100644 bin/app/data/cxx/include/bmi2intrin.h delete mode 100644 bin/app/data/cxx/include/bmiintrin.h delete mode 100644 bin/app/data/cxx/include/cetintrin.h delete mode 100644 bin/app/data/cxx/include/cldemoteintrin.h delete mode 100644 bin/app/data/cxx/include/clflushoptintrin.h delete mode 100644 bin/app/data/cxx/include/clwbintrin.h delete mode 100644 bin/app/data/cxx/include/clzerointrin.h delete mode 100644 bin/app/data/cxx/include/cpuid.h delete mode 100644 bin/app/data/cxx/include/cuda_wrappers/algorithm delete mode 100644 bin/app/data/cxx/include/cuda_wrappers/complex delete mode 100644 bin/app/data/cxx/include/cuda_wrappers/new delete mode 100644 bin/app/data/cxx/include/emmintrin.h delete mode 100644 bin/app/data/cxx/include/enqcmdintrin.h delete mode 100644 bin/app/data/cxx/include/f16cintrin.h delete mode 100644 bin/app/data/cxx/include/float.h delete mode 100644 bin/app/data/cxx/include/fma4intrin.h delete mode 100644 bin/app/data/cxx/include/fmaintrin.h delete mode 100644 bin/app/data/cxx/include/fxsrintrin.h delete mode 100644 bin/app/data/cxx/include/gfniintrin.h delete mode 100644 bin/app/data/cxx/include/htmintrin.h delete mode 100644 bin/app/data/cxx/include/htmxlintrin.h delete mode 100644 bin/app/data/cxx/include/ia32intrin.h delete mode 100644 bin/app/data/cxx/include/immintrin.h delete mode 100644 bin/app/data/cxx/include/intrin.h delete mode 100644 bin/app/data/cxx/include/inttypes.h delete mode 100644 bin/app/data/cxx/include/invpcidintrin.h delete mode 100644 bin/app/data/cxx/include/iso646.h delete mode 100644 bin/app/data/cxx/include/limits.h delete mode 100644 bin/app/data/cxx/include/lwpintrin.h delete mode 100644 bin/app/data/cxx/include/lzcntintrin.h delete mode 100644 bin/app/data/cxx/include/mm3dnow.h delete mode 100644 bin/app/data/cxx/include/mm_malloc.h delete mode 100644 bin/app/data/cxx/include/mmintrin.h delete mode 100644 bin/app/data/cxx/include/module.modulemap delete mode 100644 bin/app/data/cxx/include/movdirintrin.h delete mode 100644 bin/app/data/cxx/include/msa.h delete mode 100644 bin/app/data/cxx/include/mwaitxintrin.h delete mode 100644 bin/app/data/cxx/include/nmmintrin.h delete mode 100644 bin/app/data/cxx/include/opencl-c-base.h delete mode 100644 bin/app/data/cxx/include/opencl-c.h delete mode 100644 bin/app/data/cxx/include/openmp_wrappers/__clang_openmp_math.h delete mode 100644 bin/app/data/cxx/include/openmp_wrappers/__clang_openmp_math_declares.h delete mode 100644 bin/app/data/cxx/include/openmp_wrappers/cmath delete mode 100644 bin/app/data/cxx/include/openmp_wrappers/math.h delete mode 100644 bin/app/data/cxx/include/pconfigintrin.h delete mode 100644 bin/app/data/cxx/include/pkuintrin.h delete mode 100644 bin/app/data/cxx/include/pmmintrin.h delete mode 100644 bin/app/data/cxx/include/popcntintrin.h delete mode 100644 bin/app/data/cxx/include/ppc_wrappers/emmintrin.h delete mode 100644 bin/app/data/cxx/include/ppc_wrappers/mm_malloc.h delete mode 100644 bin/app/data/cxx/include/ppc_wrappers/mmintrin.h delete mode 100644 bin/app/data/cxx/include/ppc_wrappers/xmmintrin.h delete mode 100644 bin/app/data/cxx/include/prfchwintrin.h delete mode 100644 bin/app/data/cxx/include/ptwriteintrin.h delete mode 100644 bin/app/data/cxx/include/rdseedintrin.h delete mode 100644 bin/app/data/cxx/include/rtmintrin.h delete mode 100644 bin/app/data/cxx/include/s390intrin.h delete mode 100644 bin/app/data/cxx/include/sgxintrin.h delete mode 100644 bin/app/data/cxx/include/shaintrin.h delete mode 100644 bin/app/data/cxx/include/smmintrin.h delete mode 100644 bin/app/data/cxx/include/stdalign.h delete mode 100644 bin/app/data/cxx/include/stdarg.h delete mode 100644 bin/app/data/cxx/include/stdatomic.h delete mode 100644 bin/app/data/cxx/include/stdbool.h delete mode 100644 bin/app/data/cxx/include/stddef.h delete mode 100644 bin/app/data/cxx/include/stdint.h delete mode 100644 bin/app/data/cxx/include/stdnoreturn.h delete mode 100644 bin/app/data/cxx/include/tbmintrin.h delete mode 100644 bin/app/data/cxx/include/tgmath.h delete mode 100644 bin/app/data/cxx/include/tmmintrin.h delete mode 100644 bin/app/data/cxx/include/unwind.h delete mode 100644 bin/app/data/cxx/include/vadefs.h delete mode 100644 bin/app/data/cxx/include/vaesintrin.h delete mode 100644 bin/app/data/cxx/include/varargs.h delete mode 100644 bin/app/data/cxx/include/vecintrin.h delete mode 100644 bin/app/data/cxx/include/vpclmulqdqintrin.h delete mode 100644 bin/app/data/cxx/include/waitpkgintrin.h delete mode 100644 bin/app/data/cxx/include/wbnoinvdintrin.h delete mode 100644 bin/app/data/cxx/include/wmmintrin.h delete mode 100644 bin/app/data/cxx/include/x86intrin.h delete mode 100644 bin/app/data/cxx/include/xmmintrin.h delete mode 100644 bin/app/data/cxx/include/xopintrin.h delete mode 100644 bin/app/data/cxx/include/xsavecintrin.h delete mode 100644 bin/app/data/cxx/include/xsaveintrin.h delete mode 100644 bin/app/data/cxx/include/xsaveoptintrin.h delete mode 100644 bin/app/data/cxx/include/xsavesintrin.h delete mode 100644 bin/app/data/cxx/include/xtestintrin.h diff --git a/.gitignore b/.gitignore index 36a43144..ab417997 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ build-* /distr/ /deps/ +/bin/app/data/cxx /bin/app/data/java/lib/ /bin/app/data/projects/ignored/ /bin/app/data/python/ diff --git a/CMakeLists.txt b/CMakeLists.txt index ed1c614d..9871073f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,7 +129,32 @@ if (BUILD_CXX_LANGUAGE_PACKAGE) if (LLVM_FOUND) message(STATUS "Found LLVM ${LLVM_VERSION}") endif() + + if (UNIX) + set(LLVM_CONFIGURATION_TYPES ".") + endif() + + set (CLANG_COMPILER_HEADER_SEARCH_PATH "") + foreach(LLVM_CONFIGURATION_TYPE ${LLVM_CONFIGURATION_TYPES}) + if (CLANG_COMPILER_HEADER_SEARCH_PATH STREQUAL "") + set (CLANG_COMPILER_HEADER_SEARCH_PATH "${LLVM_BINARY_DIR}/${LLVM_CONFIGURATION_TYPE}/lib/clang/${LLVM_VERSION}/include") + message (STATUS "Trying to find Clang compiler headers in '${LLVM_CONFIGURATION_TYPE}' build config in directory '${CLANG_COMPILER_HEADER_SEARCH_PATH}'.") + if (EXISTS ${CLANG_COMPILER_HEADER_SEARCH_PATH}) + message (STATUS "Found headers for '${LLVM_CONFIGURATION_TYPE}' build config.") + file(GLOB_RECURSE CLANG_COMPILER_HEADER_PATHS RELATIVE "${CLANG_COMPILER_HEADER_SEARCH_PATH}" "${CLANG_COMPILER_HEADER_SEARCH_PATH}/*") + foreach(CLANG_COMPILER_HEADER_PATH ${CLANG_COMPILER_HEADER_PATHS}) + configure_file("${CLANG_COMPILER_HEADER_SEARCH_PATH}/${CLANG_COMPILER_HEADER_PATH}" "${CMAKE_SOURCE_DIR}/bin/app/data/cxx/include/${CLANG_COMPILER_HEADER_PATH}" COPYONLY) + endforeach() + else () + set (CLANG_COMPILER_HEADER_SEARCH_PATH "") + endif () + endif () + endforeach() + if (CLANG_COMPILER_HEADER_SEARCH_PATH STREQUAL "") + message(FATAL_ERROR "Unable to copy Clang compiler headers from clang build dir.") + endif() + endif() diff --git a/bin/app/data/cxx/include/__clang_cuda_builtin_vars.h b/bin/app/data/cxx/include/__clang_cuda_builtin_vars.h deleted file mode 100644 index 2ba1521f..00000000 --- a/bin/app/data/cxx/include/__clang_cuda_builtin_vars.h +++ /dev/null @@ -1,112 +0,0 @@ -/*===---- cuda_builtin_vars.h - CUDA built-in variables ---------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CUDA_BUILTIN_VARS_H -#define __CUDA_BUILTIN_VARS_H - -// Forward declares from vector_types.h. -struct uint3; -struct dim3; - -// The file implements built-in CUDA variables using __declspec(property). -// https://msdn.microsoft.com/en-us/library/yhfk0thd.aspx -// All read accesses of built-in variable fields get converted into calls to a -// getter function which in turn calls the appropriate builtin to fetch the -// value. -// -// Example: -// int x = threadIdx.x; -// IR output: -// %0 = call i32 @llvm.nvvm.read.ptx.sreg.tid.x() #3 -// PTX output: -// mov.u32 %r2, %tid.x; - -#define __CUDA_DEVICE_BUILTIN(FIELD, INTRINSIC) \ - __declspec(property(get = __fetch_builtin_##FIELD)) unsigned int FIELD; \ - static inline __attribute__((always_inline)) \ - __attribute__((device)) unsigned int __fetch_builtin_##FIELD(void) { \ - return INTRINSIC; \ - } - -#if __cplusplus >= 201103L -#define __DELETE =delete -#else -#define __DELETE -#endif - -// Make sure nobody can create instances of the special variable types. nvcc -// also disallows taking address of special variables, so we disable address-of -// operator as well. -#define __CUDA_DISALLOW_BUILTINVAR_ACCESS(TypeName) \ - __attribute__((device)) TypeName() __DELETE; \ - __attribute__((device)) TypeName(const TypeName &) __DELETE; \ - __attribute__((device)) void operator=(const TypeName &) const __DELETE; \ - __attribute__((device)) TypeName *operator&() const __DELETE - -struct __cuda_builtin_threadIdx_t { - __CUDA_DEVICE_BUILTIN(x,__nvvm_read_ptx_sreg_tid_x()); - __CUDA_DEVICE_BUILTIN(y,__nvvm_read_ptx_sreg_tid_y()); - __CUDA_DEVICE_BUILTIN(z,__nvvm_read_ptx_sreg_tid_z()); - // threadIdx should be convertible to uint3 (in fact in nvcc, it *is* a - // uint3). This function is defined after we pull in vector_types.h. - __attribute__((device)) operator uint3() const; -private: - __CUDA_DISALLOW_BUILTINVAR_ACCESS(__cuda_builtin_threadIdx_t); -}; - -struct __cuda_builtin_blockIdx_t { - __CUDA_DEVICE_BUILTIN(x,__nvvm_read_ptx_sreg_ctaid_x()); - __CUDA_DEVICE_BUILTIN(y,__nvvm_read_ptx_sreg_ctaid_y()); - __CUDA_DEVICE_BUILTIN(z,__nvvm_read_ptx_sreg_ctaid_z()); - // blockIdx should be convertible to uint3 (in fact in nvcc, it *is* a - // uint3). This function is defined after we pull in vector_types.h. - __attribute__((device)) operator uint3() const; -private: - __CUDA_DISALLOW_BUILTINVAR_ACCESS(__cuda_builtin_blockIdx_t); -}; - -struct __cuda_builtin_blockDim_t { - __CUDA_DEVICE_BUILTIN(x,__nvvm_read_ptx_sreg_ntid_x()); - __CUDA_DEVICE_BUILTIN(y,__nvvm_read_ptx_sreg_ntid_y()); - __CUDA_DEVICE_BUILTIN(z,__nvvm_read_ptx_sreg_ntid_z()); - // blockDim should be convertible to dim3 (in fact in nvcc, it *is* a - // dim3). This function is defined after we pull in vector_types.h. - __attribute__((device)) operator dim3() const; -private: - __CUDA_DISALLOW_BUILTINVAR_ACCESS(__cuda_builtin_blockDim_t); -}; - -struct __cuda_builtin_gridDim_t { - __CUDA_DEVICE_BUILTIN(x,__nvvm_read_ptx_sreg_nctaid_x()); - __CUDA_DEVICE_BUILTIN(y,__nvvm_read_ptx_sreg_nctaid_y()); - __CUDA_DEVICE_BUILTIN(z,__nvvm_read_ptx_sreg_nctaid_z()); - // gridDim should be convertible to dim3 (in fact in nvcc, it *is* a - // dim3). This function is defined after we pull in vector_types.h. - __attribute__((device)) operator dim3() const; -private: - __CUDA_DISALLOW_BUILTINVAR_ACCESS(__cuda_builtin_gridDim_t); -}; - -#define __CUDA_BUILTIN_VAR \ - extern const __attribute__((device)) __attribute__((weak)) -__CUDA_BUILTIN_VAR __cuda_builtin_threadIdx_t threadIdx; -__CUDA_BUILTIN_VAR __cuda_builtin_blockIdx_t blockIdx; -__CUDA_BUILTIN_VAR __cuda_builtin_blockDim_t blockDim; -__CUDA_BUILTIN_VAR __cuda_builtin_gridDim_t gridDim; - -// warpSize should translate to read of %WARP_SZ but there's currently no -// builtin to do so. According to PTX v4.2 docs 'to date, all target -// architectures have a WARP_SZ value of 32'. -__attribute__((device)) const int warpSize = 32; - -#undef __CUDA_DEVICE_BUILTIN -#undef __CUDA_BUILTIN_VAR -#undef __CUDA_DISALLOW_BUILTINVAR_ACCESS - -#endif /* __CUDA_BUILTIN_VARS_H */ diff --git a/bin/app/data/cxx/include/__clang_cuda_cmath.h b/bin/app/data/cxx/include/__clang_cuda_cmath.h deleted file mode 100644 index 834a2e3f..00000000 --- a/bin/app/data/cxx/include/__clang_cuda_cmath.h +++ /dev/null @@ -1,485 +0,0 @@ -/*===---- __clang_cuda_cmath.h - Device-side CUDA cmath support ------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __CLANG_CUDA_CMATH_H__ -#define __CLANG_CUDA_CMATH_H__ -#ifndef __CUDA__ -#error "This file is for CUDA compilation only." -#endif - -#include - -// CUDA lets us use various std math functions on the device side. This file -// works in concert with __clang_cuda_math_forward_declares.h to make this work. -// -// Specifically, the forward-declares header declares __device__ overloads for -// these functions in the global namespace, then pulls them into namespace std -// with 'using' statements. Then this file implements those functions, after -// their implementations have been pulled in. -// -// It's important that we declare the functions in the global namespace and pull -// them into namespace std with using statements, as opposed to simply declaring -// these functions in namespace std, because our device functions need to -// overload the standard library functions, which may be declared in the global -// namespace or in std, depending on the degree of conformance of the stdlib -// implementation. Declaring in the global namespace and pulling into namespace -// std covers all of the known knowns. - -#ifdef _OPENMP -#define __DEVICE__ static __attribute__((always_inline)) -#else -#define __DEVICE__ static __device__ __inline__ __attribute__((always_inline)) -#endif - -// For C++ 17 we need to include noexcept attribute to be compatible -// with the header-defined version. This may be removed once -// variant is supported. -#if defined(_OPENMP) && defined(__cplusplus) && __cplusplus >= 201703L -#define __NOEXCEPT noexcept -#else -#define __NOEXCEPT -#endif - -#if !(defined(_OPENMP) && defined(__cplusplus)) -__DEVICE__ long long abs(long long __n) { return ::llabs(__n); } -__DEVICE__ long abs(long __n) { return ::labs(__n); } -__DEVICE__ float abs(float __x) { return ::fabsf(__x); } -__DEVICE__ double abs(double __x) { return ::fabs(__x); } -#endif -// TODO: remove once variat is supported. -#if defined(_OPENMP) && defined(__cplusplus) -__DEVICE__ const float abs(const float __x) { return ::fabsf((float)__x); } -__DEVICE__ const double abs(const double __x) { return ::fabs((double)__x); } -#endif -__DEVICE__ float acos(float __x) { return ::acosf(__x); } -__DEVICE__ float asin(float __x) { return ::asinf(__x); } -__DEVICE__ float atan(float __x) { return ::atanf(__x); } -__DEVICE__ float atan2(float __x, float __y) { return ::atan2f(__x, __y); } -__DEVICE__ float ceil(float __x) { return ::ceilf(__x); } -__DEVICE__ float cos(float __x) { return ::cosf(__x); } -__DEVICE__ float cosh(float __x) { return ::coshf(__x); } -__DEVICE__ float exp(float __x) { return ::expf(__x); } -__DEVICE__ float fabs(float __x) __NOEXCEPT { return ::fabsf(__x); } -__DEVICE__ float floor(float __x) { return ::floorf(__x); } -__DEVICE__ float fmod(float __x, float __y) { return ::fmodf(__x, __y); } -// TODO: remove when variant is supported -#ifndef _OPENMP -__DEVICE__ int fpclassify(float __x) { - return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, - FP_ZERO, __x); -} -__DEVICE__ int fpclassify(double __x) { - return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, - FP_ZERO, __x); -} -#endif -__DEVICE__ float frexp(float __arg, int *__exp) { - return ::frexpf(__arg, __exp); -} - -// For inscrutable reasons, the CUDA headers define these functions for us on -// Windows. -#ifndef _MSC_VER -__DEVICE__ bool isinf(float __x) { return ::__isinff(__x); } -__DEVICE__ bool isinf(double __x) { return ::__isinf(__x); } -__DEVICE__ bool isfinite(float __x) { return ::__finitef(__x); } -// For inscrutable reasons, __finite(), the double-precision version of -// __finitef, does not exist when compiling for MacOS. __isfinited is available -// everywhere and is just as good. -__DEVICE__ bool isfinite(double __x) { return ::__isfinited(__x); } -__DEVICE__ bool isnan(float __x) { return ::__isnanf(__x); } -__DEVICE__ bool isnan(double __x) { return ::__isnan(__x); } -#endif - -__DEVICE__ bool isgreater(float __x, float __y) { - return __builtin_isgreater(__x, __y); -} -__DEVICE__ bool isgreater(double __x, double __y) { - return __builtin_isgreater(__x, __y); -} -__DEVICE__ bool isgreaterequal(float __x, float __y) { - return __builtin_isgreaterequal(__x, __y); -} -__DEVICE__ bool isgreaterequal(double __x, double __y) { - return __builtin_isgreaterequal(__x, __y); -} -__DEVICE__ bool isless(float __x, float __y) { - return __builtin_isless(__x, __y); -} -__DEVICE__ bool isless(double __x, double __y) { - return __builtin_isless(__x, __y); -} -__DEVICE__ bool islessequal(float __x, float __y) { - return __builtin_islessequal(__x, __y); -} -__DEVICE__ bool islessequal(double __x, double __y) { - return __builtin_islessequal(__x, __y); -} -__DEVICE__ bool islessgreater(float __x, float __y) { - return __builtin_islessgreater(__x, __y); -} -__DEVICE__ bool islessgreater(double __x, double __y) { - return __builtin_islessgreater(__x, __y); -} -__DEVICE__ bool isnormal(float __x) { return __builtin_isnormal(__x); } -__DEVICE__ bool isnormal(double __x) { return __builtin_isnormal(__x); } -__DEVICE__ bool isunordered(float __x, float __y) { - return __builtin_isunordered(__x, __y); -} -__DEVICE__ bool isunordered(double __x, double __y) { - return __builtin_isunordered(__x, __y); -} -__DEVICE__ float ldexp(float __arg, int __exp) { - return ::ldexpf(__arg, __exp); -} -__DEVICE__ float log(float __x) { return ::logf(__x); } -__DEVICE__ float log10(float __x) { return ::log10f(__x); } -__DEVICE__ float modf(float __x, float *__iptr) { return ::modff(__x, __iptr); } -__DEVICE__ float pow(float __base, float __exp) { - return ::powf(__base, __exp); -} -__DEVICE__ float pow(float __base, int __iexp) { - return ::powif(__base, __iexp); -} -__DEVICE__ double pow(double __base, int __iexp) { - return ::powi(__base, __iexp); -} -__DEVICE__ bool signbit(float __x) { return ::__signbitf(__x); } -__DEVICE__ bool signbit(double __x) { return ::__signbitd(__x); } -__DEVICE__ float sin(float __x) { return ::sinf(__x); } -__DEVICE__ float sinh(float __x) { return ::sinhf(__x); } -__DEVICE__ float sqrt(float __x) { return ::sqrtf(__x); } -__DEVICE__ float tan(float __x) { return ::tanf(__x); } -__DEVICE__ float tanh(float __x) { return ::tanhf(__x); } - -// Notably missing above is nexttoward. We omit it because -// libdevice doesn't provide an implementation, and we don't want to be in the -// business of implementing tricky libm functions in this header. - -// Now we've defined everything we promised we'd define in -// __clang_cuda_math_forward_declares.h. We need to do two additional things to -// fix up our math functions. -// -// 1) Define __device__ overloads for e.g. sin(int). The CUDA headers define -// only sin(float) and sin(double), which means that e.g. sin(0) is -// ambiguous. -// -// 2) Pull the __device__ overloads of "foobarf" math functions into namespace -// std. These are defined in the CUDA headers in the global namespace, -// independent of everything else we've done here. - -// We can't use std::enable_if, because we want to be pre-C++11 compatible. But -// we go ahead and unconditionally define functions that are only available when -// compiling for C++11 to match the behavior of the CUDA headers. -template -struct __clang_cuda_enable_if {}; - -template struct __clang_cuda_enable_if { - typedef __T type; -}; - -// Defines an overload of __fn that accepts one integral argument, calls -// __fn((double)x), and returns __retty. -#define __CUDA_CLANG_FN_INTEGER_OVERLOAD_1(__retty, __fn) \ - template \ - __DEVICE__ \ - typename __clang_cuda_enable_if::is_integer, \ - __retty>::type \ - __fn(__T __x) { \ - return ::__fn((double)__x); \ - } - -// Defines an overload of __fn that accepts one two arithmetic arguments, calls -// __fn((double)x, (double)y), and returns a double. -// -// Note this is different from OVERLOAD_1, which generates an overload that -// accepts only *integral* arguments. -#define __CUDA_CLANG_FN_INTEGER_OVERLOAD_2(__retty, __fn) \ - template \ - __DEVICE__ typename __clang_cuda_enable_if< \ - std::numeric_limits<__T1>::is_specialized && \ - std::numeric_limits<__T2>::is_specialized, \ - __retty>::type \ - __fn(__T1 __x, __T2 __y) { \ - return __fn((double)__x, (double)__y); \ - } - -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, acos) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, acosh) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, asin) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, asinh) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, atan) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(double, atan2); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, atanh) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, cbrt) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, ceil) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(double, copysign); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, cos) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, cosh) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, erf) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, erfc) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, exp) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, exp2) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, expm1) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, fabs) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(double, fdim); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, floor) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(double, fmax); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(double, fmin); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(double, fmod); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(int, fpclassify) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(double, hypot); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(int, ilogb) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(bool, isfinite) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(bool, isgreater); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(bool, isgreaterequal); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(bool, isinf); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(bool, isless); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(bool, islessequal); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(bool, islessgreater); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(bool, isnan); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(bool, isnormal) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(bool, isunordered); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, lgamma) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, log) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, log10) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, log1p) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, log2) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, logb) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(long long, llrint) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(long long, llround) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(long, lrint) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(long, lround) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, nearbyint); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(double, nextafter); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(double, pow); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_2(double, remainder); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, rint); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, round); -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(bool, signbit) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, sin) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, sinh) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, sqrt) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, tan) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, tanh) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, tgamma) -__CUDA_CLANG_FN_INTEGER_OVERLOAD_1(double, trunc); - -#undef __CUDA_CLANG_FN_INTEGER_OVERLOAD_1 -#undef __CUDA_CLANG_FN_INTEGER_OVERLOAD_2 - -// Overloads for functions that don't match the patterns expected by -// __CUDA_CLANG_FN_INTEGER_OVERLOAD_{1,2}. -template -__DEVICE__ typename __clang_cuda_enable_if< - std::numeric_limits<__T1>::is_specialized && - std::numeric_limits<__T2>::is_specialized && - std::numeric_limits<__T3>::is_specialized, - double>::type -fma(__T1 __x, __T2 __y, __T3 __z) { - return std::fma((double)__x, (double)__y, (double)__z); -} - -template -__DEVICE__ typename __clang_cuda_enable_if::is_integer, - double>::type -frexp(__T __x, int *__exp) { - return std::frexp((double)__x, __exp); -} - -template -__DEVICE__ typename __clang_cuda_enable_if::is_integer, - double>::type -ldexp(__T __x, int __exp) { - return std::ldexp((double)__x, __exp); -} - -template -__DEVICE__ typename __clang_cuda_enable_if< - std::numeric_limits<__T1>::is_specialized && - std::numeric_limits<__T2>::is_specialized, - double>::type -remquo(__T1 __x, __T2 __y, int *__quo) { - return std::remquo((double)__x, (double)__y, __quo); -} - -template -__DEVICE__ typename __clang_cuda_enable_if::is_integer, - double>::type -scalbln(__T __x, long __exp) { - return std::scalbln((double)__x, __exp); -} - -template -__DEVICE__ typename __clang_cuda_enable_if::is_integer, - double>::type -scalbn(__T __x, int __exp) { - return std::scalbn((double)__x, __exp); -} - -// We need to define these overloads in exactly the namespace our standard -// library uses (including the right inline namespace), otherwise they won't be -// picked up by other functions in the standard library (e.g. functions in -// ). Thus the ugliness below. -#ifdef _LIBCPP_BEGIN_NAMESPACE_STD -_LIBCPP_BEGIN_NAMESPACE_STD -#else -namespace std { -#ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION -_GLIBCXX_BEGIN_NAMESPACE_VERSION -#endif -#endif - -// Pull the new overloads we defined above into namespace std. -using ::acos; -using ::acosh; -using ::asin; -using ::asinh; -using ::atan; -using ::atan2; -using ::atanh; -using ::cbrt; -using ::ceil; -using ::copysign; -using ::cos; -using ::cosh; -using ::erf; -using ::erfc; -using ::exp; -using ::exp2; -using ::expm1; -using ::fabs; -using ::fdim; -using ::floor; -using ::fma; -using ::fmax; -using ::fmin; -using ::fmod; -using ::fpclassify; -using ::frexp; -using ::hypot; -using ::ilogb; -using ::isfinite; -using ::isgreater; -using ::isgreaterequal; -using ::isless; -using ::islessequal; -using ::islessgreater; -using ::isnormal; -using ::isunordered; -using ::ldexp; -using ::lgamma; -using ::llrint; -using ::llround; -using ::log; -using ::log10; -using ::log1p; -using ::log2; -using ::logb; -using ::lrint; -using ::lround; -using ::nearbyint; -using ::nextafter; -using ::pow; -using ::remainder; -using ::remquo; -using ::rint; -using ::round; -using ::scalbln; -using ::scalbn; -using ::signbit; -using ::sin; -using ::sinh; -using ::sqrt; -using ::tan; -using ::tanh; -using ::tgamma; -using ::trunc; - -// Well this is fun: We need to pull these symbols in for libc++, but we can't -// pull them in with libstdc++, because its ::isinf and ::isnan are different -// than its std::isinf and std::isnan. -#ifndef __GLIBCXX__ -using ::isinf; -using ::isnan; -#endif - -// Finally, pull the "foobarf" functions that CUDA defines in its headers into -// namespace std. -using ::acosf; -using ::acoshf; -using ::asinf; -using ::asinhf; -using ::atan2f; -using ::atanf; -using ::atanhf; -using ::cbrtf; -using ::ceilf; -using ::copysignf; -using ::cosf; -using ::coshf; -using ::erfcf; -using ::erff; -using ::exp2f; -using ::expf; -using ::expm1f; -using ::fabsf; -using ::fdimf; -using ::floorf; -using ::fmaf; -using ::fmaxf; -using ::fminf; -using ::fmodf; -using ::frexpf; -using ::hypotf; -using ::ilogbf; -using ::ldexpf; -using ::lgammaf; -using ::llrintf; -using ::llroundf; -using ::log10f; -using ::log1pf; -using ::log2f; -using ::logbf; -using ::logf; -using ::lrintf; -using ::lroundf; -using ::modff; -using ::nearbyintf; -using ::nextafterf; -using ::powf; -using ::remainderf; -using ::remquof; -using ::rintf; -using ::roundf; -// TODO: remove once variant is supported -#ifndef _OPENMP -using ::scalblnf; -#endif -using ::scalbnf; -using ::sinf; -using ::sinhf; -using ::sqrtf; -using ::tanf; -using ::tanhf; -using ::tgammaf; -using ::truncf; - -#ifdef _LIBCPP_END_NAMESPACE_STD -_LIBCPP_END_NAMESPACE_STD -#else -#ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION -_GLIBCXX_END_NAMESPACE_VERSION -#endif -} // namespace std -#endif - -#undef __NOEXCEPT -#undef __DEVICE__ - -#endif diff --git a/bin/app/data/cxx/include/__clang_cuda_complex_builtins.h b/bin/app/data/cxx/include/__clang_cuda_complex_builtins.h deleted file mode 100644 index 576a958b..00000000 --- a/bin/app/data/cxx/include/__clang_cuda_complex_builtins.h +++ /dev/null @@ -1,189 +0,0 @@ -/*===-- __clang_cuda_complex_builtins - CUDA impls of runtime complex fns ---=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_CUDA_COMPLEX_BUILTINS -#define __CLANG_CUDA_COMPLEX_BUILTINS - -// This header defines __muldc3, __mulsc3, __divdc3, and __divsc3. These are -// libgcc functions that clang assumes are available when compiling c99 complex -// operations. (These implementations come from libc++, and have been modified -// to work with CUDA.) - -extern "C" inline __device__ double _Complex __muldc3(double __a, double __b, - double __c, double __d) { - double __ac = __a * __c; - double __bd = __b * __d; - double __ad = __a * __d; - double __bc = __b * __c; - double _Complex z; - __real__(z) = __ac - __bd; - __imag__(z) = __ad + __bc; - if (std::isnan(__real__(z)) && std::isnan(__imag__(z))) { - int __recalc = 0; - if (std::isinf(__a) || std::isinf(__b)) { - __a = std::copysign(std::isinf(__a) ? 1 : 0, __a); - __b = std::copysign(std::isinf(__b) ? 1 : 0, __b); - if (std::isnan(__c)) - __c = std::copysign(0, __c); - if (std::isnan(__d)) - __d = std::copysign(0, __d); - __recalc = 1; - } - if (std::isinf(__c) || std::isinf(__d)) { - __c = std::copysign(std::isinf(__c) ? 1 : 0, __c); - __d = std::copysign(std::isinf(__d) ? 1 : 0, __d); - if (std::isnan(__a)) - __a = std::copysign(0, __a); - if (std::isnan(__b)) - __b = std::copysign(0, __b); - __recalc = 1; - } - if (!__recalc && (std::isinf(__ac) || std::isinf(__bd) || - std::isinf(__ad) || std::isinf(__bc))) { - if (std::isnan(__a)) - __a = std::copysign(0, __a); - if (std::isnan(__b)) - __b = std::copysign(0, __b); - if (std::isnan(__c)) - __c = std::copysign(0, __c); - if (std::isnan(__d)) - __d = std::copysign(0, __d); - __recalc = 1; - } - if (__recalc) { - // Can't use std::numeric_limits::infinity() -- that doesn't have - // a device overload (and isn't constexpr before C++11, naturally). - __real__(z) = __builtin_huge_valf() * (__a * __c - __b * __d); - __imag__(z) = __builtin_huge_valf() * (__a * __d + __b * __c); - } - } - return z; -} - -extern "C" inline __device__ float _Complex __mulsc3(float __a, float __b, - float __c, float __d) { - float __ac = __a * __c; - float __bd = __b * __d; - float __ad = __a * __d; - float __bc = __b * __c; - float _Complex z; - __real__(z) = __ac - __bd; - __imag__(z) = __ad + __bc; - if (std::isnan(__real__(z)) && std::isnan(__imag__(z))) { - int __recalc = 0; - if (std::isinf(__a) || std::isinf(__b)) { - __a = std::copysign(std::isinf(__a) ? 1 : 0, __a); - __b = std::copysign(std::isinf(__b) ? 1 : 0, __b); - if (std::isnan(__c)) - __c = std::copysign(0, __c); - if (std::isnan(__d)) - __d = std::copysign(0, __d); - __recalc = 1; - } - if (std::isinf(__c) || std::isinf(__d)) { - __c = std::copysign(std::isinf(__c) ? 1 : 0, __c); - __d = std::copysign(std::isinf(__d) ? 1 : 0, __d); - if (std::isnan(__a)) - __a = std::copysign(0, __a); - if (std::isnan(__b)) - __b = std::copysign(0, __b); - __recalc = 1; - } - if (!__recalc && (std::isinf(__ac) || std::isinf(__bd) || - std::isinf(__ad) || std::isinf(__bc))) { - if (std::isnan(__a)) - __a = std::copysign(0, __a); - if (std::isnan(__b)) - __b = std::copysign(0, __b); - if (std::isnan(__c)) - __c = std::copysign(0, __c); - if (std::isnan(__d)) - __d = std::copysign(0, __d); - __recalc = 1; - } - if (__recalc) { - __real__(z) = __builtin_huge_valf() * (__a * __c - __b * __d); - __imag__(z) = __builtin_huge_valf() * (__a * __d + __b * __c); - } - } - return z; -} - -extern "C" inline __device__ double _Complex __divdc3(double __a, double __b, - double __c, double __d) { - int __ilogbw = 0; - // Can't use std::max, because that's defined in , and we don't - // want to pull that in for every compile. The CUDA headers define - // ::max(float, float) and ::max(double, double), which is sufficient for us. - double __logbw = std::logb(max(std::abs(__c), std::abs(__d))); - if (std::isfinite(__logbw)) { - __ilogbw = (int)__logbw; - __c = std::scalbn(__c, -__ilogbw); - __d = std::scalbn(__d, -__ilogbw); - } - double __denom = __c * __c + __d * __d; - double _Complex z; - __real__(z) = std::scalbn((__a * __c + __b * __d) / __denom, -__ilogbw); - __imag__(z) = std::scalbn((__b * __c - __a * __d) / __denom, -__ilogbw); - if (std::isnan(__real__(z)) && std::isnan(__imag__(z))) { - if ((__denom == 0.0) && (!std::isnan(__a) || !std::isnan(__b))) { - __real__(z) = std::copysign(__builtin_huge_valf(), __c) * __a; - __imag__(z) = std::copysign(__builtin_huge_valf(), __c) * __b; - } else if ((std::isinf(__a) || std::isinf(__b)) && std::isfinite(__c) && - std::isfinite(__d)) { - __a = std::copysign(std::isinf(__a) ? 1.0 : 0.0, __a); - __b = std::copysign(std::isinf(__b) ? 1.0 : 0.0, __b); - __real__(z) = __builtin_huge_valf() * (__a * __c + __b * __d); - __imag__(z) = __builtin_huge_valf() * (__b * __c - __a * __d); - } else if (std::isinf(__logbw) && __logbw > 0.0 && std::isfinite(__a) && - std::isfinite(__b)) { - __c = std::copysign(std::isinf(__c) ? 1.0 : 0.0, __c); - __d = std::copysign(std::isinf(__d) ? 1.0 : 0.0, __d); - __real__(z) = 0.0 * (__a * __c + __b * __d); - __imag__(z) = 0.0 * (__b * __c - __a * __d); - } - } - return z; -} - -extern "C" inline __device__ float _Complex __divsc3(float __a, float __b, - float __c, float __d) { - int __ilogbw = 0; - float __logbw = std::logb(max(std::abs(__c), std::abs(__d))); - if (std::isfinite(__logbw)) { - __ilogbw = (int)__logbw; - __c = std::scalbn(__c, -__ilogbw); - __d = std::scalbn(__d, -__ilogbw); - } - float __denom = __c * __c + __d * __d; - float _Complex z; - __real__(z) = std::scalbn((__a * __c + __b * __d) / __denom, -__ilogbw); - __imag__(z) = std::scalbn((__b * __c - __a * __d) / __denom, -__ilogbw); - if (std::isnan(__real__(z)) && std::isnan(__imag__(z))) { - if ((__denom == 0) && (!std::isnan(__a) || !std::isnan(__b))) { - __real__(z) = std::copysign(__builtin_huge_valf(), __c) * __a; - __imag__(z) = std::copysign(__builtin_huge_valf(), __c) * __b; - } else if ((std::isinf(__a) || std::isinf(__b)) && std::isfinite(__c) && - std::isfinite(__d)) { - __a = std::copysign(std::isinf(__a) ? 1 : 0, __a); - __b = std::copysign(std::isinf(__b) ? 1 : 0, __b); - __real__(z) = __builtin_huge_valf() * (__a * __c + __b * __d); - __imag__(z) = __builtin_huge_valf() * (__b * __c - __a * __d); - } else if (std::isinf(__logbw) && __logbw > 0 && std::isfinite(__a) && - std::isfinite(__b)) { - __c = std::copysign(std::isinf(__c) ? 1 : 0, __c); - __d = std::copysign(std::isinf(__d) ? 1 : 0, __d); - __real__(z) = 0 * (__a * __c + __b * __d); - __imag__(z) = 0 * (__b * __c - __a * __d); - } - } - return z; -} - -#endif // __CLANG_CUDA_COMPLEX_BUILTINS diff --git a/bin/app/data/cxx/include/__clang_cuda_device_functions.h b/bin/app/data/cxx/include/__clang_cuda_device_functions.h deleted file mode 100644 index 50ad674f..00000000 --- a/bin/app/data/cxx/include/__clang_cuda_device_functions.h +++ /dev/null @@ -1,1793 +0,0 @@ -/*===---- __clang_cuda_device_functions.h - CUDA runtime support -----------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_CUDA_DEVICE_FUNCTIONS_H__ -#define __CLANG_CUDA_DEVICE_FUNCTIONS_H__ - -#ifndef _OPENMP -#if CUDA_VERSION < 9000 -#error This file is intended to be used with CUDA-9+ only. -#endif -#endif - -// __DEVICE__ is a helper macro with common set of attributes for the wrappers -// we implement in this file. We need static in order to avoid emitting unused -// functions and __forceinline__ helps inlining these wrappers at -O1. -#pragma push_macro("__DEVICE__") -#ifdef _OPENMP -#define __DEVICE__ static __attribute__((always_inline)) -#else -#define __DEVICE__ static __device__ __forceinline__ -#endif - -// libdevice provides fast low precision and slow full-recision implementations -// for some functions. Which one gets selected depends on -// __CLANG_CUDA_APPROX_TRANSCENDENTALS__ which gets defined by clang if -// -ffast-math or -fcuda-approx-transcendentals are in effect. -#pragma push_macro("__FAST_OR_SLOW") -#if defined(__CLANG_CUDA_APPROX_TRANSCENDENTALS__) -#define __FAST_OR_SLOW(fast, slow) fast -#else -#define __FAST_OR_SLOW(fast, slow) slow -#endif - -// For C++ 17 we need to include noexcept attribute to be compatible -// with the header-defined version. This may be removed once -// variant is supported. -#if defined(_OPENMP) && defined(__cplusplus) && __cplusplus >= 201703L -#define __NOEXCEPT noexcept -#else -#define __NOEXCEPT -#endif - -__DEVICE__ int __all(int __a) { return __nvvm_vote_all(__a); } -__DEVICE__ int __any(int __a) { return __nvvm_vote_any(__a); } -__DEVICE__ unsigned int __ballot(int __a) { return __nvvm_vote_ballot(__a); } -__DEVICE__ unsigned int __brev(unsigned int __a) { return __nv_brev(__a); } -__DEVICE__ unsigned long long __brevll(unsigned long long __a) { - return __nv_brevll(__a); -} -#if defined(__cplusplus) -__DEVICE__ void __brkpt() { asm volatile("brkpt;"); } -__DEVICE__ void __brkpt(int __a) { __brkpt(); } -#else -__DEVICE__ void __attribute__((overloadable)) __brkpt(void) { asm volatile("brkpt;"); } -__DEVICE__ void __attribute__((overloadable)) __brkpt(int __a) { __brkpt(); } -#endif -__DEVICE__ unsigned int __byte_perm(unsigned int __a, unsigned int __b, - unsigned int __c) { - return __nv_byte_perm(__a, __b, __c); -} -__DEVICE__ int __clz(int __a) { return __nv_clz(__a); } -__DEVICE__ int __clzll(long long __a) { return __nv_clzll(__a); } -__DEVICE__ float __cosf(float __a) { return __nv_fast_cosf(__a); } -__DEVICE__ double __dAtomicAdd(double *__p, double __v) { - return __nvvm_atom_add_gen_d(__p, __v); -} -__DEVICE__ double __dAtomicAdd_block(double *__p, double __v) { - return __nvvm_atom_cta_add_gen_d(__p, __v); -} -__DEVICE__ double __dAtomicAdd_system(double *__p, double __v) { - return __nvvm_atom_sys_add_gen_d(__p, __v); -} -__DEVICE__ double __dadd_rd(double __a, double __b) { - return __nv_dadd_rd(__a, __b); -} -__DEVICE__ double __dadd_rn(double __a, double __b) { - return __nv_dadd_rn(__a, __b); -} -__DEVICE__ double __dadd_ru(double __a, double __b) { - return __nv_dadd_ru(__a, __b); -} -__DEVICE__ double __dadd_rz(double __a, double __b) { - return __nv_dadd_rz(__a, __b); -} -__DEVICE__ double __ddiv_rd(double __a, double __b) { - return __nv_ddiv_rd(__a, __b); -} -__DEVICE__ double __ddiv_rn(double __a, double __b) { - return __nv_ddiv_rn(__a, __b); -} -__DEVICE__ double __ddiv_ru(double __a, double __b) { - return __nv_ddiv_ru(__a, __b); -} -__DEVICE__ double __ddiv_rz(double __a, double __b) { - return __nv_ddiv_rz(__a, __b); -} -__DEVICE__ double __dmul_rd(double __a, double __b) { - return __nv_dmul_rd(__a, __b); -} -__DEVICE__ double __dmul_rn(double __a, double __b) { - return __nv_dmul_rn(__a, __b); -} -__DEVICE__ double __dmul_ru(double __a, double __b) { - return __nv_dmul_ru(__a, __b); -} -__DEVICE__ double __dmul_rz(double __a, double __b) { - return __nv_dmul_rz(__a, __b); -} -__DEVICE__ float __double2float_rd(double __a) { - return __nv_double2float_rd(__a); -} -__DEVICE__ float __double2float_rn(double __a) { - return __nv_double2float_rn(__a); -} -__DEVICE__ float __double2float_ru(double __a) { - return __nv_double2float_ru(__a); -} -__DEVICE__ float __double2float_rz(double __a) { - return __nv_double2float_rz(__a); -} -__DEVICE__ int __double2hiint(double __a) { return __nv_double2hiint(__a); } -__DEVICE__ int __double2int_rd(double __a) { return __nv_double2int_rd(__a); } -__DEVICE__ int __double2int_rn(double __a) { return __nv_double2int_rn(__a); } -__DEVICE__ int __double2int_ru(double __a) { return __nv_double2int_ru(__a); } -__DEVICE__ int __double2int_rz(double __a) { return __nv_double2int_rz(__a); } -__DEVICE__ long long __double2ll_rd(double __a) { - return __nv_double2ll_rd(__a); -} -__DEVICE__ long long __double2ll_rn(double __a) { - return __nv_double2ll_rn(__a); -} -__DEVICE__ long long __double2ll_ru(double __a) { - return __nv_double2ll_ru(__a); -} -__DEVICE__ long long __double2ll_rz(double __a) { - return __nv_double2ll_rz(__a); -} -__DEVICE__ int __double2loint(double __a) { return __nv_double2loint(__a); } -__DEVICE__ unsigned int __double2uint_rd(double __a) { - return __nv_double2uint_rd(__a); -} -__DEVICE__ unsigned int __double2uint_rn(double __a) { - return __nv_double2uint_rn(__a); -} -__DEVICE__ unsigned int __double2uint_ru(double __a) { - return __nv_double2uint_ru(__a); -} -__DEVICE__ unsigned int __double2uint_rz(double __a) { - return __nv_double2uint_rz(__a); -} -__DEVICE__ unsigned long long __double2ull_rd(double __a) { - return __nv_double2ull_rd(__a); -} -__DEVICE__ unsigned long long __double2ull_rn(double __a) { - return __nv_double2ull_rn(__a); -} -__DEVICE__ unsigned long long __double2ull_ru(double __a) { - return __nv_double2ull_ru(__a); -} -__DEVICE__ unsigned long long __double2ull_rz(double __a) { - return __nv_double2ull_rz(__a); -} -__DEVICE__ long long __double_as_longlong(double __a) { - return __nv_double_as_longlong(__a); -} -__DEVICE__ double __drcp_rd(double __a) { return __nv_drcp_rd(__a); } -__DEVICE__ double __drcp_rn(double __a) { return __nv_drcp_rn(__a); } -__DEVICE__ double __drcp_ru(double __a) { return __nv_drcp_ru(__a); } -__DEVICE__ double __drcp_rz(double __a) { return __nv_drcp_rz(__a); } -__DEVICE__ double __dsqrt_rd(double __a) { return __nv_dsqrt_rd(__a); } -__DEVICE__ double __dsqrt_rn(double __a) { return __nv_dsqrt_rn(__a); } -__DEVICE__ double __dsqrt_ru(double __a) { return __nv_dsqrt_ru(__a); } -__DEVICE__ double __dsqrt_rz(double __a) { return __nv_dsqrt_rz(__a); } -__DEVICE__ double __dsub_rd(double __a, double __b) { - return __nv_dsub_rd(__a, __b); -} -__DEVICE__ double __dsub_rn(double __a, double __b) { - return __nv_dsub_rn(__a, __b); -} -__DEVICE__ double __dsub_ru(double __a, double __b) { - return __nv_dsub_ru(__a, __b); -} -__DEVICE__ double __dsub_rz(double __a, double __b) { - return __nv_dsub_rz(__a, __b); -} -__DEVICE__ float __exp10f(float __a) { return __nv_fast_exp10f(__a); } -__DEVICE__ float __expf(float __a) { return __nv_fast_expf(__a); } -__DEVICE__ float __fAtomicAdd(float *__p, float __v) { - return __nvvm_atom_add_gen_f(__p, __v); -} -__DEVICE__ float __fAtomicAdd_block(float *__p, float __v) { - return __nvvm_atom_cta_add_gen_f(__p, __v); -} -__DEVICE__ float __fAtomicAdd_system(float *__p, float __v) { - return __nvvm_atom_sys_add_gen_f(__p, __v); -} -__DEVICE__ float __fAtomicExch(float *__p, float __v) { - return __nv_int_as_float( - __nvvm_atom_xchg_gen_i((int *)__p, __nv_float_as_int(__v))); -} -__DEVICE__ float __fAtomicExch_block(float *__p, float __v) { - return __nv_int_as_float( - __nvvm_atom_cta_xchg_gen_i((int *)__p, __nv_float_as_int(__v))); -} -__DEVICE__ float __fAtomicExch_system(float *__p, float __v) { - return __nv_int_as_float( - __nvvm_atom_sys_xchg_gen_i((int *)__p, __nv_float_as_int(__v))); -} -__DEVICE__ float __fadd_rd(float __a, float __b) { - return __nv_fadd_rd(__a, __b); -} -__DEVICE__ float __fadd_rn(float __a, float __b) { - return __nv_fadd_rn(__a, __b); -} -__DEVICE__ float __fadd_ru(float __a, float __b) { - return __nv_fadd_ru(__a, __b); -} -__DEVICE__ float __fadd_rz(float __a, float __b) { - return __nv_fadd_rz(__a, __b); -} -__DEVICE__ float __fdiv_rd(float __a, float __b) { - return __nv_fdiv_rd(__a, __b); -} -__DEVICE__ float __fdiv_rn(float __a, float __b) { - return __nv_fdiv_rn(__a, __b); -} -__DEVICE__ float __fdiv_ru(float __a, float __b) { - return __nv_fdiv_ru(__a, __b); -} -__DEVICE__ float __fdiv_rz(float __a, float __b) { - return __nv_fdiv_rz(__a, __b); -} -__DEVICE__ float __fdividef(float __a, float __b) { - return __nv_fast_fdividef(__a, __b); -} -__DEVICE__ int __ffs(int __a) { return __nv_ffs(__a); } -__DEVICE__ int __ffsll(long long __a) { return __nv_ffsll(__a); } -__DEVICE__ int __finite(double __a) { return __nv_isfinited(__a); } -__DEVICE__ int __finitef(float __a) { return __nv_finitef(__a); } -#ifdef _MSC_VER -__DEVICE__ int __finitel(long double __a); -#endif -__DEVICE__ int __float2int_rd(float __a) { return __nv_float2int_rd(__a); } -__DEVICE__ int __float2int_rn(float __a) { return __nv_float2int_rn(__a); } -__DEVICE__ int __float2int_ru(float __a) { return __nv_float2int_ru(__a); } -__DEVICE__ int __float2int_rz(float __a) { return __nv_float2int_rz(__a); } -__DEVICE__ long long __float2ll_rd(float __a) { return __nv_float2ll_rd(__a); } -__DEVICE__ long long __float2ll_rn(float __a) { return __nv_float2ll_rn(__a); } -__DEVICE__ long long __float2ll_ru(float __a) { return __nv_float2ll_ru(__a); } -__DEVICE__ long long __float2ll_rz(float __a) { return __nv_float2ll_rz(__a); } -__DEVICE__ unsigned int __float2uint_rd(float __a) { - return __nv_float2uint_rd(__a); -} -__DEVICE__ unsigned int __float2uint_rn(float __a) { - return __nv_float2uint_rn(__a); -} -__DEVICE__ unsigned int __float2uint_ru(float __a) { - return __nv_float2uint_ru(__a); -} -__DEVICE__ unsigned int __float2uint_rz(float __a) { - return __nv_float2uint_rz(__a); -} -__DEVICE__ unsigned long long __float2ull_rd(float __a) { - return __nv_float2ull_rd(__a); -} -__DEVICE__ unsigned long long __float2ull_rn(float __a) { - return __nv_float2ull_rn(__a); -} -__DEVICE__ unsigned long long __float2ull_ru(float __a) { - return __nv_float2ull_ru(__a); -} -__DEVICE__ unsigned long long __float2ull_rz(float __a) { - return __nv_float2ull_rz(__a); -} -__DEVICE__ int __float_as_int(float __a) { return __nv_float_as_int(__a); } -__DEVICE__ unsigned int __float_as_uint(float __a) { - return __nv_float_as_uint(__a); -} -__DEVICE__ double __fma_rd(double __a, double __b, double __c) { - return __nv_fma_rd(__a, __b, __c); -} -__DEVICE__ double __fma_rn(double __a, double __b, double __c) { - return __nv_fma_rn(__a, __b, __c); -} -__DEVICE__ double __fma_ru(double __a, double __b, double __c) { - return __nv_fma_ru(__a, __b, __c); -} -__DEVICE__ double __fma_rz(double __a, double __b, double __c) { - return __nv_fma_rz(__a, __b, __c); -} -__DEVICE__ float __fmaf_ieee_rd(float __a, float __b, float __c) { - return __nv_fmaf_ieee_rd(__a, __b, __c); -} -__DEVICE__ float __fmaf_ieee_rn(float __a, float __b, float __c) { - return __nv_fmaf_ieee_rn(__a, __b, __c); -} -__DEVICE__ float __fmaf_ieee_ru(float __a, float __b, float __c) { - return __nv_fmaf_ieee_ru(__a, __b, __c); -} -__DEVICE__ float __fmaf_ieee_rz(float __a, float __b, float __c) { - return __nv_fmaf_ieee_rz(__a, __b, __c); -} -__DEVICE__ float __fmaf_rd(float __a, float __b, float __c) { - return __nv_fmaf_rd(__a, __b, __c); -} -__DEVICE__ float __fmaf_rn(float __a, float __b, float __c) { - return __nv_fmaf_rn(__a, __b, __c); -} -__DEVICE__ float __fmaf_ru(float __a, float __b, float __c) { - return __nv_fmaf_ru(__a, __b, __c); -} -__DEVICE__ float __fmaf_rz(float __a, float __b, float __c) { - return __nv_fmaf_rz(__a, __b, __c); -} -__DEVICE__ float __fmul_rd(float __a, float __b) { - return __nv_fmul_rd(__a, __b); -} -__DEVICE__ float __fmul_rn(float __a, float __b) { - return __nv_fmul_rn(__a, __b); -} -__DEVICE__ float __fmul_ru(float __a, float __b) { - return __nv_fmul_ru(__a, __b); -} -__DEVICE__ float __fmul_rz(float __a, float __b) { - return __nv_fmul_rz(__a, __b); -} -__DEVICE__ float __frcp_rd(float __a) { return __nv_frcp_rd(__a); } -__DEVICE__ float __frcp_rn(float __a) { return __nv_frcp_rn(__a); } -__DEVICE__ float __frcp_ru(float __a) { return __nv_frcp_ru(__a); } -__DEVICE__ float __frcp_rz(float __a) { return __nv_frcp_rz(__a); } -__DEVICE__ float __frsqrt_rn(float __a) { return __nv_frsqrt_rn(__a); } -__DEVICE__ float __fsqrt_rd(float __a) { return __nv_fsqrt_rd(__a); } -__DEVICE__ float __fsqrt_rn(float __a) { return __nv_fsqrt_rn(__a); } -__DEVICE__ float __fsqrt_ru(float __a) { return __nv_fsqrt_ru(__a); } -__DEVICE__ float __fsqrt_rz(float __a) { return __nv_fsqrt_rz(__a); } -__DEVICE__ float __fsub_rd(float __a, float __b) { - return __nv_fsub_rd(__a, __b); -} -__DEVICE__ float __fsub_rn(float __a, float __b) { - return __nv_fsub_rn(__a, __b); -} -__DEVICE__ float __fsub_ru(float __a, float __b) { - return __nv_fsub_ru(__a, __b); -} -__DEVICE__ float __fsub_rz(float __a, float __b) { - return __nv_fsub_rz(__a, __b); -} -__DEVICE__ int __hadd(int __a, int __b) { return __nv_hadd(__a, __b); } -__DEVICE__ double __hiloint2double(int __a, int __b) { - return __nv_hiloint2double(__a, __b); -} -__DEVICE__ int __iAtomicAdd(int *__p, int __v) { - return __nvvm_atom_add_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicAdd_block(int *__p, int __v) { - __nvvm_atom_cta_add_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicAdd_system(int *__p, int __v) { - __nvvm_atom_sys_add_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicAnd(int *__p, int __v) { - return __nvvm_atom_and_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicAnd_block(int *__p, int __v) { - return __nvvm_atom_cta_and_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicAnd_system(int *__p, int __v) { - return __nvvm_atom_sys_and_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicCAS(int *__p, int __cmp, int __v) { - return __nvvm_atom_cas_gen_i(__p, __cmp, __v); -} -__DEVICE__ int __iAtomicCAS_block(int *__p, int __cmp, int __v) { - return __nvvm_atom_cta_cas_gen_i(__p, __cmp, __v); -} -__DEVICE__ int __iAtomicCAS_system(int *__p, int __cmp, int __v) { - return __nvvm_atom_sys_cas_gen_i(__p, __cmp, __v); -} -__DEVICE__ int __iAtomicExch(int *__p, int __v) { - return __nvvm_atom_xchg_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicExch_block(int *__p, int __v) { - return __nvvm_atom_cta_xchg_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicExch_system(int *__p, int __v) { - return __nvvm_atom_sys_xchg_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicMax(int *__p, int __v) { - return __nvvm_atom_max_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicMax_block(int *__p, int __v) { - return __nvvm_atom_cta_max_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicMax_system(int *__p, int __v) { - return __nvvm_atom_sys_max_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicMin(int *__p, int __v) { - return __nvvm_atom_min_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicMin_block(int *__p, int __v) { - return __nvvm_atom_cta_min_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicMin_system(int *__p, int __v) { - return __nvvm_atom_sys_min_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicOr(int *__p, int __v) { - return __nvvm_atom_or_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicOr_block(int *__p, int __v) { - return __nvvm_atom_cta_or_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicOr_system(int *__p, int __v) { - return __nvvm_atom_sys_or_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicXor(int *__p, int __v) { - return __nvvm_atom_xor_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicXor_block(int *__p, int __v) { - return __nvvm_atom_cta_xor_gen_i(__p, __v); -} -__DEVICE__ int __iAtomicXor_system(int *__p, int __v) { - return __nvvm_atom_sys_xor_gen_i(__p, __v); -} -__DEVICE__ long long __illAtomicMax(long long *__p, long long __v) { - return __nvvm_atom_max_gen_ll(__p, __v); -} -__DEVICE__ long long __illAtomicMax_block(long long *__p, long long __v) { - return __nvvm_atom_cta_max_gen_ll(__p, __v); -} -__DEVICE__ long long __illAtomicMax_system(long long *__p, long long __v) { - return __nvvm_atom_sys_max_gen_ll(__p, __v); -} -__DEVICE__ long long __illAtomicMin(long long *__p, long long __v) { - return __nvvm_atom_min_gen_ll(__p, __v); -} -__DEVICE__ long long __illAtomicMin_block(long long *__p, long long __v) { - return __nvvm_atom_cta_min_gen_ll(__p, __v); -} -__DEVICE__ long long __illAtomicMin_system(long long *__p, long long __v) { - return __nvvm_atom_sys_min_gen_ll(__p, __v); -} -__DEVICE__ double __int2double_rn(int __a) { return __nv_int2double_rn(__a); } -__DEVICE__ float __int2float_rd(int __a) { return __nv_int2float_rd(__a); } -__DEVICE__ float __int2float_rn(int __a) { return __nv_int2float_rn(__a); } -__DEVICE__ float __int2float_ru(int __a) { return __nv_int2float_ru(__a); } -__DEVICE__ float __int2float_rz(int __a) { return __nv_int2float_rz(__a); } -__DEVICE__ float __int_as_float(int __a) { return __nv_int_as_float(__a); } -__DEVICE__ int __isfinited(double __a) { return __nv_isfinited(__a); } -__DEVICE__ int __isinf(double __a) { return __nv_isinfd(__a); } -__DEVICE__ int __isinff(float __a) { return __nv_isinff(__a); } -#ifdef _MSC_VER -__DEVICE__ int __isinfl(long double __a); -#endif -__DEVICE__ int __isnan(double __a) { return __nv_isnand(__a); } -__DEVICE__ int __isnanf(float __a) { return __nv_isnanf(__a); } -#ifdef _MSC_VER -__DEVICE__ int __isnanl(long double __a); -#endif -__DEVICE__ double __ll2double_rd(long long __a) { - return __nv_ll2double_rd(__a); -} -__DEVICE__ double __ll2double_rn(long long __a) { - return __nv_ll2double_rn(__a); -} -__DEVICE__ double __ll2double_ru(long long __a) { - return __nv_ll2double_ru(__a); -} -__DEVICE__ double __ll2double_rz(long long __a) { - return __nv_ll2double_rz(__a); -} -__DEVICE__ float __ll2float_rd(long long __a) { return __nv_ll2float_rd(__a); } -__DEVICE__ float __ll2float_rn(long long __a) { return __nv_ll2float_rn(__a); } -__DEVICE__ float __ll2float_ru(long long __a) { return __nv_ll2float_ru(__a); } -__DEVICE__ float __ll2float_rz(long long __a) { return __nv_ll2float_rz(__a); } -__DEVICE__ long long __llAtomicAnd(long long *__p, long long __v) { - return __nvvm_atom_and_gen_ll(__p, __v); -} -__DEVICE__ long long __llAtomicAnd_block(long long *__p, long long __v) { - return __nvvm_atom_cta_and_gen_ll(__p, __v); -} -__DEVICE__ long long __llAtomicAnd_system(long long *__p, long long __v) { - return __nvvm_atom_sys_and_gen_ll(__p, __v); -} -__DEVICE__ long long __llAtomicOr(long long *__p, long long __v) { - return __nvvm_atom_or_gen_ll(__p, __v); -} -__DEVICE__ long long __llAtomicOr_block(long long *__p, long long __v) { - return __nvvm_atom_cta_or_gen_ll(__p, __v); -} -__DEVICE__ long long __llAtomicOr_system(long long *__p, long long __v) { - return __nvvm_atom_sys_or_gen_ll(__p, __v); -} -__DEVICE__ long long __llAtomicXor(long long *__p, long long __v) { - return __nvvm_atom_xor_gen_ll(__p, __v); -} -__DEVICE__ long long __llAtomicXor_block(long long *__p, long long __v) { - return __nvvm_atom_cta_xor_gen_ll(__p, __v); -} -__DEVICE__ long long __llAtomicXor_system(long long *__p, long long __v) { - return __nvvm_atom_sys_xor_gen_ll(__p, __v); -} -__DEVICE__ float __log10f(float __a) { return __nv_fast_log10f(__a); } -__DEVICE__ float __log2f(float __a) { return __nv_fast_log2f(__a); } -__DEVICE__ float __logf(float __a) { return __nv_fast_logf(__a); } -__DEVICE__ double __longlong_as_double(long long __a) { - return __nv_longlong_as_double(__a); -} -__DEVICE__ int __mul24(int __a, int __b) { return __nv_mul24(__a, __b); } -__DEVICE__ long long __mul64hi(long long __a, long long __b) { - return __nv_mul64hi(__a, __b); -} -__DEVICE__ int __mulhi(int __a, int __b) { return __nv_mulhi(__a, __b); } -__DEVICE__ unsigned int __pm0(void) { return __nvvm_read_ptx_sreg_pm0(); } -__DEVICE__ unsigned int __pm1(void) { return __nvvm_read_ptx_sreg_pm1(); } -__DEVICE__ unsigned int __pm2(void) { return __nvvm_read_ptx_sreg_pm2(); } -__DEVICE__ unsigned int __pm3(void) { return __nvvm_read_ptx_sreg_pm3(); } -__DEVICE__ int __popc(int __a) { return __nv_popc(__a); } -__DEVICE__ int __popcll(long long __a) { return __nv_popcll(__a); } -__DEVICE__ float __powf(float __a, float __b) { - return __nv_fast_powf(__a, __b); -} - -// Parameter must have a known integer value. -#define __prof_trigger(__a) asm __volatile__("pmevent \t%0;" ::"i"(__a)) -__DEVICE__ int __rhadd(int __a, int __b) { return __nv_rhadd(__a, __b); } -__DEVICE__ unsigned int __sad(int __a, int __b, unsigned int __c) { - return __nv_sad(__a, __b, __c); -} -__DEVICE__ float __saturatef(float __a) { return __nv_saturatef(__a); } -__DEVICE__ int __signbitd(double __a) { return __nv_signbitd(__a); } -__DEVICE__ int __signbitf(float __a) { return __nv_signbitf(__a); } -__DEVICE__ void __sincosf(float __a, float *__s, float *__c) { - return __nv_fast_sincosf(__a, __s, __c); -} -__DEVICE__ float __sinf(float __a) { return __nv_fast_sinf(__a); } -__DEVICE__ int __syncthreads_and(int __a) { return __nvvm_bar0_and(__a); } -__DEVICE__ int __syncthreads_count(int __a) { return __nvvm_bar0_popc(__a); } -__DEVICE__ int __syncthreads_or(int __a) { return __nvvm_bar0_or(__a); } -__DEVICE__ float __tanf(float __a) { return __nv_fast_tanf(__a); } -__DEVICE__ void __threadfence(void) { __nvvm_membar_gl(); } -__DEVICE__ void __threadfence_block(void) { __nvvm_membar_cta(); }; -__DEVICE__ void __threadfence_system(void) { __nvvm_membar_sys(); }; -__DEVICE__ void __trap(void) { asm volatile("trap;"); } -__DEVICE__ unsigned int __uAtomicAdd(unsigned int *__p, unsigned int __v) { - return __nvvm_atom_add_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicAdd_block(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_cta_add_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicAdd_system(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_sys_add_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicAnd(unsigned int *__p, unsigned int __v) { - return __nvvm_atom_and_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicAnd_block(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_cta_and_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicAnd_system(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_sys_and_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicCAS(unsigned int *__p, unsigned int __cmp, - unsigned int __v) { - return __nvvm_atom_cas_gen_i((int *)__p, __cmp, __v); -} -__DEVICE__ unsigned int -__uAtomicCAS_block(unsigned int *__p, unsigned int __cmp, unsigned int __v) { - return __nvvm_atom_cta_cas_gen_i((int *)__p, __cmp, __v); -} -__DEVICE__ unsigned int -__uAtomicCAS_system(unsigned int *__p, unsigned int __cmp, unsigned int __v) { - return __nvvm_atom_sys_cas_gen_i((int *)__p, __cmp, __v); -} -__DEVICE__ unsigned int __uAtomicDec(unsigned int *__p, unsigned int __v) { - return __nvvm_atom_dec_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicDec_block(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_cta_dec_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicDec_system(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_sys_dec_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicExch(unsigned int *__p, unsigned int __v) { - return __nvvm_atom_xchg_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicExch_block(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_cta_xchg_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicExch_system(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_sys_xchg_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicInc(unsigned int *__p, unsigned int __v) { - return __nvvm_atom_inc_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicInc_block(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_cta_inc_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicInc_system(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_sys_inc_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicMax(unsigned int *__p, unsigned int __v) { - return __nvvm_atom_max_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicMax_block(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_cta_max_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicMax_system(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_sys_max_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicMin(unsigned int *__p, unsigned int __v) { - return __nvvm_atom_min_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicMin_block(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_cta_min_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicMin_system(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_sys_min_gen_ui(__p, __v); -} -__DEVICE__ unsigned int __uAtomicOr(unsigned int *__p, unsigned int __v) { - return __nvvm_atom_or_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicOr_block(unsigned int *__p, unsigned int __v) { - return __nvvm_atom_cta_or_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicOr_system(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_sys_or_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicXor(unsigned int *__p, unsigned int __v) { - return __nvvm_atom_xor_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicXor_block(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_cta_xor_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uAtomicXor_system(unsigned int *__p, - unsigned int __v) { - return __nvvm_atom_sys_xor_gen_i((int *)__p, __v); -} -__DEVICE__ unsigned int __uhadd(unsigned int __a, unsigned int __b) { - return __nv_uhadd(__a, __b); -} -__DEVICE__ double __uint2double_rn(unsigned int __a) { - return __nv_uint2double_rn(__a); -} -__DEVICE__ float __uint2float_rd(unsigned int __a) { - return __nv_uint2float_rd(__a); -} -__DEVICE__ float __uint2float_rn(unsigned int __a) { - return __nv_uint2float_rn(__a); -} -__DEVICE__ float __uint2float_ru(unsigned int __a) { - return __nv_uint2float_ru(__a); -} -__DEVICE__ float __uint2float_rz(unsigned int __a) { - return __nv_uint2float_rz(__a); -} -__DEVICE__ float __uint_as_float(unsigned int __a) { - return __nv_uint_as_float(__a); -} // -__DEVICE__ double __ull2double_rd(unsigned long long __a) { - return __nv_ull2double_rd(__a); -} -__DEVICE__ double __ull2double_rn(unsigned long long __a) { - return __nv_ull2double_rn(__a); -} -__DEVICE__ double __ull2double_ru(unsigned long long __a) { - return __nv_ull2double_ru(__a); -} -__DEVICE__ double __ull2double_rz(unsigned long long __a) { - return __nv_ull2double_rz(__a); -} -__DEVICE__ float __ull2float_rd(unsigned long long __a) { - return __nv_ull2float_rd(__a); -} -__DEVICE__ float __ull2float_rn(unsigned long long __a) { - return __nv_ull2float_rn(__a); -} -__DEVICE__ float __ull2float_ru(unsigned long long __a) { - return __nv_ull2float_ru(__a); -} -__DEVICE__ float __ull2float_rz(unsigned long long __a) { - return __nv_ull2float_rz(__a); -} -__DEVICE__ unsigned long long __ullAtomicAdd(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_add_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicAdd_block(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_cta_add_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicAdd_system(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_sys_add_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicAnd(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_and_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicAnd_block(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_cta_and_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicAnd_system(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_sys_and_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicCAS(unsigned long long *__p, - unsigned long long __cmp, - unsigned long long __v) { - return __nvvm_atom_cas_gen_ll((long long *)__p, __cmp, __v); -} -__DEVICE__ unsigned long long __ullAtomicCAS_block(unsigned long long *__p, - unsigned long long __cmp, - unsigned long long __v) { - return __nvvm_atom_cta_cas_gen_ll((long long *)__p, __cmp, __v); -} -__DEVICE__ unsigned long long __ullAtomicCAS_system(unsigned long long *__p, - unsigned long long __cmp, - unsigned long long __v) { - return __nvvm_atom_sys_cas_gen_ll((long long *)__p, __cmp, __v); -} -__DEVICE__ unsigned long long __ullAtomicExch(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_xchg_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicExch_block(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_cta_xchg_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicExch_system(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_sys_xchg_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicMax(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_max_gen_ull(__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicMax_block(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_cta_max_gen_ull(__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicMax_system(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_sys_max_gen_ull(__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicMin(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_min_gen_ull(__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicMin_block(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_cta_min_gen_ull(__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicMin_system(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_sys_min_gen_ull(__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicOr(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_or_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicOr_block(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_cta_or_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicOr_system(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_sys_or_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicXor(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_xor_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicXor_block(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_cta_xor_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned long long __ullAtomicXor_system(unsigned long long *__p, - unsigned long long __v) { - return __nvvm_atom_sys_xor_gen_ll((long long *)__p, __v); -} -__DEVICE__ unsigned int __umul24(unsigned int __a, unsigned int __b) { - return __nv_umul24(__a, __b); -} -__DEVICE__ unsigned long long __umul64hi(unsigned long long __a, - unsigned long long __b) { - return __nv_umul64hi(__a, __b); -} -__DEVICE__ unsigned int __umulhi(unsigned int __a, unsigned int __b) { - return __nv_umulhi(__a, __b); -} -__DEVICE__ unsigned int __urhadd(unsigned int __a, unsigned int __b) { - return __nv_urhadd(__a, __b); -} -__DEVICE__ unsigned int __usad(unsigned int __a, unsigned int __b, - unsigned int __c) { - return __nv_usad(__a, __b, __c); -} - -#if CUDA_VERSION >= 9000 && CUDA_VERSION < 9020 -__DEVICE__ unsigned int __vabs2(unsigned int __a) { return __nv_vabs2(__a); } -__DEVICE__ unsigned int __vabs4(unsigned int __a) { return __nv_vabs4(__a); } -__DEVICE__ unsigned int __vabsdiffs2(unsigned int __a, unsigned int __b) { - return __nv_vabsdiffs2(__a, __b); -} -__DEVICE__ unsigned int __vabsdiffs4(unsigned int __a, unsigned int __b) { - return __nv_vabsdiffs4(__a, __b); -} -__DEVICE__ unsigned int __vabsdiffu2(unsigned int __a, unsigned int __b) { - return __nv_vabsdiffu2(__a, __b); -} -__DEVICE__ unsigned int __vabsdiffu4(unsigned int __a, unsigned int __b) { - return __nv_vabsdiffu4(__a, __b); -} -__DEVICE__ unsigned int __vabsss2(unsigned int __a) { - return __nv_vabsss2(__a); -} -__DEVICE__ unsigned int __vabsss4(unsigned int __a) { - return __nv_vabsss4(__a); -} -__DEVICE__ unsigned int __vadd2(unsigned int __a, unsigned int __b) { - return __nv_vadd2(__a, __b); -} -__DEVICE__ unsigned int __vadd4(unsigned int __a, unsigned int __b) { - return __nv_vadd4(__a, __b); -} -__DEVICE__ unsigned int __vaddss2(unsigned int __a, unsigned int __b) { - return __nv_vaddss2(__a, __b); -} -__DEVICE__ unsigned int __vaddss4(unsigned int __a, unsigned int __b) { - return __nv_vaddss4(__a, __b); -} -__DEVICE__ unsigned int __vaddus2(unsigned int __a, unsigned int __b) { - return __nv_vaddus2(__a, __b); -} -__DEVICE__ unsigned int __vaddus4(unsigned int __a, unsigned int __b) { - return __nv_vaddus4(__a, __b); -} -__DEVICE__ unsigned int __vavgs2(unsigned int __a, unsigned int __b) { - return __nv_vavgs2(__a, __b); -} -__DEVICE__ unsigned int __vavgs4(unsigned int __a, unsigned int __b) { - return __nv_vavgs4(__a, __b); -} -__DEVICE__ unsigned int __vavgu2(unsigned int __a, unsigned int __b) { - return __nv_vavgu2(__a, __b); -} -__DEVICE__ unsigned int __vavgu4(unsigned int __a, unsigned int __b) { - return __nv_vavgu4(__a, __b); -} -__DEVICE__ unsigned int __vcmpeq2(unsigned int __a, unsigned int __b) { - return __nv_vcmpeq2(__a, __b); -} -__DEVICE__ unsigned int __vcmpeq4(unsigned int __a, unsigned int __b) { - return __nv_vcmpeq4(__a, __b); -} -__DEVICE__ unsigned int __vcmpges2(unsigned int __a, unsigned int __b) { - return __nv_vcmpges2(__a, __b); -} -__DEVICE__ unsigned int __vcmpges4(unsigned int __a, unsigned int __b) { - return __nv_vcmpges4(__a, __b); -} -__DEVICE__ unsigned int __vcmpgeu2(unsigned int __a, unsigned int __b) { - return __nv_vcmpgeu2(__a, __b); -} -__DEVICE__ unsigned int __vcmpgeu4(unsigned int __a, unsigned int __b) { - return __nv_vcmpgeu4(__a, __b); -} -__DEVICE__ unsigned int __vcmpgts2(unsigned int __a, unsigned int __b) { - return __nv_vcmpgts2(__a, __b); -} -__DEVICE__ unsigned int __vcmpgts4(unsigned int __a, unsigned int __b) { - return __nv_vcmpgts4(__a, __b); -} -__DEVICE__ unsigned int __vcmpgtu2(unsigned int __a, unsigned int __b) { - return __nv_vcmpgtu2(__a, __b); -} -__DEVICE__ unsigned int __vcmpgtu4(unsigned int __a, unsigned int __b) { - return __nv_vcmpgtu4(__a, __b); -} -__DEVICE__ unsigned int __vcmples2(unsigned int __a, unsigned int __b) { - return __nv_vcmples2(__a, __b); -} -__DEVICE__ unsigned int __vcmples4(unsigned int __a, unsigned int __b) { - return __nv_vcmples4(__a, __b); -} -__DEVICE__ unsigned int __vcmpleu2(unsigned int __a, unsigned int __b) { - return __nv_vcmpleu2(__a, __b); -} -__DEVICE__ unsigned int __vcmpleu4(unsigned int __a, unsigned int __b) { - return __nv_vcmpleu4(__a, __b); -} -__DEVICE__ unsigned int __vcmplts2(unsigned int __a, unsigned int __b) { - return __nv_vcmplts2(__a, __b); -} -__DEVICE__ unsigned int __vcmplts4(unsigned int __a, unsigned int __b) { - return __nv_vcmplts4(__a, __b); -} -__DEVICE__ unsigned int __vcmpltu2(unsigned int __a, unsigned int __b) { - return __nv_vcmpltu2(__a, __b); -} -__DEVICE__ unsigned int __vcmpltu4(unsigned int __a, unsigned int __b) { - return __nv_vcmpltu4(__a, __b); -} -__DEVICE__ unsigned int __vcmpne2(unsigned int __a, unsigned int __b) { - return __nv_vcmpne2(__a, __b); -} -__DEVICE__ unsigned int __vcmpne4(unsigned int __a, unsigned int __b) { - return __nv_vcmpne4(__a, __b); -} -__DEVICE__ unsigned int __vhaddu2(unsigned int __a, unsigned int __b) { - return __nv_vhaddu2(__a, __b); -} -__DEVICE__ unsigned int __vhaddu4(unsigned int __a, unsigned int __b) { - return __nv_vhaddu4(__a, __b); -} -__DEVICE__ unsigned int __vmaxs2(unsigned int __a, unsigned int __b) { - return __nv_vmaxs2(__a, __b); -} -__DEVICE__ unsigned int __vmaxs4(unsigned int __a, unsigned int __b) { - return __nv_vmaxs4(__a, __b); -} -__DEVICE__ unsigned int __vmaxu2(unsigned int __a, unsigned int __b) { - return __nv_vmaxu2(__a, __b); -} -__DEVICE__ unsigned int __vmaxu4(unsigned int __a, unsigned int __b) { - return __nv_vmaxu4(__a, __b); -} -__DEVICE__ unsigned int __vmins2(unsigned int __a, unsigned int __b) { - return __nv_vmins2(__a, __b); -} -__DEVICE__ unsigned int __vmins4(unsigned int __a, unsigned int __b) { - return __nv_vmins4(__a, __b); -} -__DEVICE__ unsigned int __vminu2(unsigned int __a, unsigned int __b) { - return __nv_vminu2(__a, __b); -} -__DEVICE__ unsigned int __vminu4(unsigned int __a, unsigned int __b) { - return __nv_vminu4(__a, __b); -} -__DEVICE__ unsigned int __vneg2(unsigned int __a) { return __nv_vneg2(__a); } -__DEVICE__ unsigned int __vneg4(unsigned int __a) { return __nv_vneg4(__a); } -__DEVICE__ unsigned int __vnegss2(unsigned int __a) { - return __nv_vnegss2(__a); -} -__DEVICE__ unsigned int __vnegss4(unsigned int __a) { - return __nv_vnegss4(__a); -} -__DEVICE__ unsigned int __vsads2(unsigned int __a, unsigned int __b) { - return __nv_vsads2(__a, __b); -} -__DEVICE__ unsigned int __vsads4(unsigned int __a, unsigned int __b) { - return __nv_vsads4(__a, __b); -} -__DEVICE__ unsigned int __vsadu2(unsigned int __a, unsigned int __b) { - return __nv_vsadu2(__a, __b); -} -__DEVICE__ unsigned int __vsadu4(unsigned int __a, unsigned int __b) { - return __nv_vsadu4(__a, __b); -} -__DEVICE__ unsigned int __vseteq2(unsigned int __a, unsigned int __b) { - return __nv_vseteq2(__a, __b); -} -__DEVICE__ unsigned int __vseteq4(unsigned int __a, unsigned int __b) { - return __nv_vseteq4(__a, __b); -} -__DEVICE__ unsigned int __vsetges2(unsigned int __a, unsigned int __b) { - return __nv_vsetges2(__a, __b); -} -__DEVICE__ unsigned int __vsetges4(unsigned int __a, unsigned int __b) { - return __nv_vsetges4(__a, __b); -} -__DEVICE__ unsigned int __vsetgeu2(unsigned int __a, unsigned int __b) { - return __nv_vsetgeu2(__a, __b); -} -__DEVICE__ unsigned int __vsetgeu4(unsigned int __a, unsigned int __b) { - return __nv_vsetgeu4(__a, __b); -} -__DEVICE__ unsigned int __vsetgts2(unsigned int __a, unsigned int __b) { - return __nv_vsetgts2(__a, __b); -} -__DEVICE__ unsigned int __vsetgts4(unsigned int __a, unsigned int __b) { - return __nv_vsetgts4(__a, __b); -} -__DEVICE__ unsigned int __vsetgtu2(unsigned int __a, unsigned int __b) { - return __nv_vsetgtu2(__a, __b); -} -__DEVICE__ unsigned int __vsetgtu4(unsigned int __a, unsigned int __b) { - return __nv_vsetgtu4(__a, __b); -} -__DEVICE__ unsigned int __vsetles2(unsigned int __a, unsigned int __b) { - return __nv_vsetles2(__a, __b); -} -__DEVICE__ unsigned int __vsetles4(unsigned int __a, unsigned int __b) { - return __nv_vsetles4(__a, __b); -} -__DEVICE__ unsigned int __vsetleu2(unsigned int __a, unsigned int __b) { - return __nv_vsetleu2(__a, __b); -} -__DEVICE__ unsigned int __vsetleu4(unsigned int __a, unsigned int __b) { - return __nv_vsetleu4(__a, __b); -} -__DEVICE__ unsigned int __vsetlts2(unsigned int __a, unsigned int __b) { - return __nv_vsetlts2(__a, __b); -} -__DEVICE__ unsigned int __vsetlts4(unsigned int __a, unsigned int __b) { - return __nv_vsetlts4(__a, __b); -} -__DEVICE__ unsigned int __vsetltu2(unsigned int __a, unsigned int __b) { - return __nv_vsetltu2(__a, __b); -} -__DEVICE__ unsigned int __vsetltu4(unsigned int __a, unsigned int __b) { - return __nv_vsetltu4(__a, __b); -} -__DEVICE__ unsigned int __vsetne2(unsigned int __a, unsigned int __b) { - return __nv_vsetne2(__a, __b); -} -__DEVICE__ unsigned int __vsetne4(unsigned int __a, unsigned int __b) { - return __nv_vsetne4(__a, __b); -} -__DEVICE__ unsigned int __vsub2(unsigned int __a, unsigned int __b) { - return __nv_vsub2(__a, __b); -} -__DEVICE__ unsigned int __vsub4(unsigned int __a, unsigned int __b) { - return __nv_vsub4(__a, __b); -} -__DEVICE__ unsigned int __vsubss2(unsigned int __a, unsigned int __b) { - return __nv_vsubss2(__a, __b); -} -__DEVICE__ unsigned int __vsubss4(unsigned int __a, unsigned int __b) { - return __nv_vsubss4(__a, __b); -} -__DEVICE__ unsigned int __vsubus2(unsigned int __a, unsigned int __b) { - return __nv_vsubus2(__a, __b); -} -__DEVICE__ unsigned int __vsubus4(unsigned int __a, unsigned int __b) { - return __nv_vsubus4(__a, __b); -} -#else // CUDA_VERSION >= 9020 -// CUDA no longer provides inline assembly (or bitcode) implementation of these -// functions, so we have to reimplment them. The implementation is naive and is -// not optimized for performance. - -// Helper function to convert N-bit boolean subfields into all-0 or all-1. -// E.g. __bool2mask(0x01000100,8) -> 0xff00ff00 -// __bool2mask(0x00010000,16) -> 0xffff0000 -__DEVICE__ unsigned int __bool2mask(unsigned int __a, int shift) { - return (__a << shift) - __a; -} -__DEVICE__ unsigned int __vabs2(unsigned int __a) { - unsigned int r; - asm("vabsdiff2.s32.s32.s32 %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(0), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vabs4(unsigned int __a) { - unsigned int r; - asm("vabsdiff4.s32.s32.s32 %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(0), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vabsdiffs2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vabsdiff2.s32.s32.s32 %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} - -__DEVICE__ unsigned int __vabsdiffs4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vabsdiff4.s32.s32.s32 %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vabsdiffu2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vabsdiff2.u32.u32.u32 %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vabsdiffu4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vabsdiff4.u32.u32.u32 %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vabsss2(unsigned int __a) { - unsigned int r; - asm("vabsdiff2.s32.s32.s32.sat %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(0), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vabsss4(unsigned int __a) { - unsigned int r; - asm("vabsdiff4.s32.s32.s32.sat %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(0), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vadd2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vadd2.u32.u32.u32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vadd4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vadd4.u32.u32.u32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vaddss2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vadd2.s32.s32.s32.sat %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vaddss4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vadd4.s32.s32.s32.sat %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vaddus2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vadd2.u32.u32.u32.sat %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vaddus4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vadd4.u32.u32.u32.sat %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vavgs2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vavrg2.s32.s32.s32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vavgs4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vavrg4.s32.s32.s32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vavgu2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vavrg2.u32.u32.u32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vavgu4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vavrg4.u32.u32.u32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vseteq2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset2.u32.u32.eq %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpeq2(unsigned int __a, unsigned int __b) { - return __bool2mask(__vseteq2(__a, __b), 16); -} -__DEVICE__ unsigned int __vseteq4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset4.u32.u32.eq %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpeq4(unsigned int __a, unsigned int __b) { - return __bool2mask(__vseteq4(__a, __b), 8); -} -__DEVICE__ unsigned int __vsetges2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset2.s32.s32.ge %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpges2(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetges2(__a, __b), 16); -} -__DEVICE__ unsigned int __vsetges4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset4.s32.s32.ge %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpges4(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetges4(__a, __b), 8); -} -__DEVICE__ unsigned int __vsetgeu2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset2.u32.u32.ge %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpgeu2(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetgeu2(__a, __b), 16); -} -__DEVICE__ unsigned int __vsetgeu4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset4.u32.u32.ge %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpgeu4(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetgeu4(__a, __b), 8); -} -__DEVICE__ unsigned int __vsetgts2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset2.s32.s32.gt %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpgts2(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetgts2(__a, __b), 16); -} -__DEVICE__ unsigned int __vsetgts4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset4.s32.s32.gt %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpgts4(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetgts4(__a, __b), 8); -} -__DEVICE__ unsigned int __vsetgtu2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset2.u32.u32.gt %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpgtu2(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetgtu2(__a, __b), 16); -} -__DEVICE__ unsigned int __vsetgtu4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset4.u32.u32.gt %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpgtu4(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetgtu4(__a, __b), 8); -} -__DEVICE__ unsigned int __vsetles2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset2.s32.s32.le %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmples2(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetles2(__a, __b), 16); -} -__DEVICE__ unsigned int __vsetles4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset4.s32.s32.le %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmples4(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetles4(__a, __b), 8); -} -__DEVICE__ unsigned int __vsetleu2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset2.u32.u32.le %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpleu2(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetleu2(__a, __b), 16); -} -__DEVICE__ unsigned int __vsetleu4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset4.u32.u32.le %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpleu4(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetleu4(__a, __b), 8); -} -__DEVICE__ unsigned int __vsetlts2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset2.s32.s32.lt %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmplts2(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetlts2(__a, __b), 16); -} -__DEVICE__ unsigned int __vsetlts4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset4.s32.s32.lt %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmplts4(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetlts4(__a, __b), 8); -} -__DEVICE__ unsigned int __vsetltu2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset2.u32.u32.lt %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpltu2(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetltu2(__a, __b), 16); -} -__DEVICE__ unsigned int __vsetltu4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset4.u32.u32.lt %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpltu4(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetltu4(__a, __b), 8); -} -__DEVICE__ unsigned int __vsetne2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset2.u32.u32.ne %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpne2(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetne2(__a, __b), 16); -} -__DEVICE__ unsigned int __vsetne4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vset4.u32.u32.ne %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vcmpne4(unsigned int __a, unsigned int __b) { - return __bool2mask(__vsetne4(__a, __b), 8); -} - -// Based on ITEM 23 in AIM-239: http://dspace.mit.edu/handle/1721.1/6086 -// (a & b) + (a | b) = a + b = (a ^ b) + 2 * (a & b) => -// (a + b) / 2 = ((a ^ b) >> 1) + (a & b) -// To operate on multiple sub-elements we need to make sure to mask out bits -// that crossed over into adjacent elements during the shift. -__DEVICE__ unsigned int __vhaddu2(unsigned int __a, unsigned int __b) { - return (((__a ^ __b) >> 1) & ~0x80008000u) + (__a & __b); -} -__DEVICE__ unsigned int __vhaddu4(unsigned int __a, unsigned int __b) { - return (((__a ^ __b) >> 1) & ~0x80808080u) + (__a & __b); -} - -__DEVICE__ unsigned int __vmaxs2(unsigned int __a, unsigned int __b) { - unsigned int r; - if ((__a & 0x8000) && (__b & 0x8000)) { - // Work around a bug in ptxas which produces invalid result if low element - // is negative. - unsigned mask = __vcmpgts2(__a, __b); - r = (__a & mask) | (__b & ~mask); - } else { - asm("vmax2.s32.s32.s32 %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - } - return r; -} -__DEVICE__ unsigned int __vmaxs4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vmax4.s32.s32.s32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vmaxu2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vmax2.u32.u32.u32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vmaxu4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vmax4.u32.u32.u32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vmins2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vmin2.s32.s32.s32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vmins4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vmin4.s32.s32.s32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vminu2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vmin2.u32.u32.u32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vminu4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vmin4.u32.u32.u32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vsads2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vabsdiff2.s32.s32.s32.add %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vsads4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vabsdiff4.s32.s32.s32.add %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vsadu2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vabsdiff2.u32.u32.u32.add %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vsadu4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vabsdiff4.u32.u32.u32.add %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} - -__DEVICE__ unsigned int __vsub2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vsub2.u32.u32.u32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vneg2(unsigned int __a) { return __vsub2(0, __a); } - -__DEVICE__ unsigned int __vsub4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vsub4.u32.u32.u32 %0,%1,%2,%3;" : "=r"(r) : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vneg4(unsigned int __a) { return __vsub4(0, __a); } -__DEVICE__ unsigned int __vsubss2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vsub2.s32.s32.s32.sat %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vnegss2(unsigned int __a) { - return __vsubss2(0, __a); -} -__DEVICE__ unsigned int __vsubss4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vsub4.s32.s32.s32.sat %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vnegss4(unsigned int __a) { - return __vsubss4(0, __a); -} -__DEVICE__ unsigned int __vsubus2(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vsub2.u32.u32.u32.sat %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -__DEVICE__ unsigned int __vsubus4(unsigned int __a, unsigned int __b) { - unsigned int r; - asm("vsub4.u32.u32.u32.sat %0,%1,%2,%3;" - : "=r"(r) - : "r"(__a), "r"(__b), "r"(0)); - return r; -} -#endif // CUDA_VERSION >= 9020 -__DEVICE__ int abs(int __a) __NOEXCEPT { return __nv_abs(__a); } -__DEVICE__ double fabs(double __a) __NOEXCEPT { return __nv_fabs(__a); } -__DEVICE__ double acos(double __a) { return __nv_acos(__a); } -__DEVICE__ float acosf(float __a) { return __nv_acosf(__a); } -__DEVICE__ double acosh(double __a) { return __nv_acosh(__a); } -__DEVICE__ float acoshf(float __a) { return __nv_acoshf(__a); } -__DEVICE__ double asin(double __a) { return __nv_asin(__a); } -__DEVICE__ float asinf(float __a) { return __nv_asinf(__a); } -__DEVICE__ double asinh(double __a) { return __nv_asinh(__a); } -__DEVICE__ float asinhf(float __a) { return __nv_asinhf(__a); } -__DEVICE__ double atan(double __a) { return __nv_atan(__a); } -__DEVICE__ double atan2(double __a, double __b) { return __nv_atan2(__a, __b); } -__DEVICE__ float atan2f(float __a, float __b) { return __nv_atan2f(__a, __b); } -__DEVICE__ float atanf(float __a) { return __nv_atanf(__a); } -__DEVICE__ double atanh(double __a) { return __nv_atanh(__a); } -__DEVICE__ float atanhf(float __a) { return __nv_atanhf(__a); } -__DEVICE__ double cbrt(double __a) { return __nv_cbrt(__a); } -__DEVICE__ float cbrtf(float __a) { return __nv_cbrtf(__a); } -__DEVICE__ double ceil(double __a) { return __nv_ceil(__a); } -__DEVICE__ float ceilf(float __a) { return __nv_ceilf(__a); } -#ifndef _OPENMP -__DEVICE__ int clock() { return __nvvm_read_ptx_sreg_clock(); } -__DEVICE__ long long clock64() { return __nvvm_read_ptx_sreg_clock64(); } -#endif -__DEVICE__ double copysign(double __a, double __b) { - return __nv_copysign(__a, __b); -} -__DEVICE__ float copysignf(float __a, float __b) { - return __nv_copysignf(__a, __b); -} -__DEVICE__ double cos(double __a) { return __nv_cos(__a); } -__DEVICE__ float cosf(float __a) { - return __FAST_OR_SLOW(__nv_fast_cosf, __nv_cosf)(__a); -} -__DEVICE__ double cosh(double __a) { return __nv_cosh(__a); } -__DEVICE__ float coshf(float __a) { return __nv_coshf(__a); } -__DEVICE__ double cospi(double __a) { return __nv_cospi(__a); } -__DEVICE__ float cospif(float __a) { return __nv_cospif(__a); } -__DEVICE__ double cyl_bessel_i0(double __a) { return __nv_cyl_bessel_i0(__a); } -__DEVICE__ float cyl_bessel_i0f(float __a) { return __nv_cyl_bessel_i0f(__a); } -__DEVICE__ double cyl_bessel_i1(double __a) { return __nv_cyl_bessel_i1(__a); } -__DEVICE__ float cyl_bessel_i1f(float __a) { return __nv_cyl_bessel_i1f(__a); } -__DEVICE__ double erf(double __a) { return __nv_erf(__a); } -__DEVICE__ double erfc(double __a) { return __nv_erfc(__a); } -__DEVICE__ float erfcf(float __a) { return __nv_erfcf(__a); } -__DEVICE__ double erfcinv(double __a) { return __nv_erfcinv(__a); } -__DEVICE__ float erfcinvf(float __a) { return __nv_erfcinvf(__a); } -__DEVICE__ double erfcx(double __a) { return __nv_erfcx(__a); } -__DEVICE__ float erfcxf(float __a) { return __nv_erfcxf(__a); } -__DEVICE__ float erff(float __a) { return __nv_erff(__a); } -__DEVICE__ double erfinv(double __a) { return __nv_erfinv(__a); } -__DEVICE__ float erfinvf(float __a) { return __nv_erfinvf(__a); } -__DEVICE__ double exp(double __a) { return __nv_exp(__a); } -__DEVICE__ double exp10(double __a) { return __nv_exp10(__a); } -__DEVICE__ float exp10f(float __a) { return __nv_exp10f(__a); } -__DEVICE__ double exp2(double __a) { return __nv_exp2(__a); } -__DEVICE__ float exp2f(float __a) { return __nv_exp2f(__a); } -__DEVICE__ float expf(float __a) { return __nv_expf(__a); } -__DEVICE__ double expm1(double __a) { return __nv_expm1(__a); } -__DEVICE__ float expm1f(float __a) { return __nv_expm1f(__a); } -__DEVICE__ float fabsf(float __a) { return __nv_fabsf(__a); } -__DEVICE__ double fdim(double __a, double __b) { return __nv_fdim(__a, __b); } -__DEVICE__ float fdimf(float __a, float __b) { return __nv_fdimf(__a, __b); } -__DEVICE__ double fdivide(double __a, double __b) { return __a / __b; } -__DEVICE__ float fdividef(float __a, float __b) { -#if __FAST_MATH__ && !__CUDA_PREC_DIV - return __nv_fast_fdividef(__a, __b); -#else - return __a / __b; -#endif -} -__DEVICE__ double floor(double __f) { return __nv_floor(__f); } -__DEVICE__ float floorf(float __f) { return __nv_floorf(__f); } -__DEVICE__ double fma(double __a, double __b, double __c) { - return __nv_fma(__a, __b, __c); -} -__DEVICE__ float fmaf(float __a, float __b, float __c) { - return __nv_fmaf(__a, __b, __c); -} -__DEVICE__ double fmax(double __a, double __b) { return __nv_fmax(__a, __b); } -__DEVICE__ float fmaxf(float __a, float __b) { return __nv_fmaxf(__a, __b); } -__DEVICE__ double fmin(double __a, double __b) { return __nv_fmin(__a, __b); } -__DEVICE__ float fminf(float __a, float __b) { return __nv_fminf(__a, __b); } -__DEVICE__ double fmod(double __a, double __b) { return __nv_fmod(__a, __b); } -__DEVICE__ float fmodf(float __a, float __b) { return __nv_fmodf(__a, __b); } -__DEVICE__ double frexp(double __a, int *__b) { return __nv_frexp(__a, __b); } -__DEVICE__ float frexpf(float __a, int *__b) { return __nv_frexpf(__a, __b); } -__DEVICE__ double hypot(double __a, double __b) { return __nv_hypot(__a, __b); } -__DEVICE__ float hypotf(float __a, float __b) { return __nv_hypotf(__a, __b); } -__DEVICE__ int ilogb(double __a) { return __nv_ilogb(__a); } -__DEVICE__ int ilogbf(float __a) { return __nv_ilogbf(__a); } -__DEVICE__ double j0(double __a) { return __nv_j0(__a); } -__DEVICE__ float j0f(float __a) { return __nv_j0f(__a); } -__DEVICE__ double j1(double __a) { return __nv_j1(__a); } -__DEVICE__ float j1f(float __a) { return __nv_j1f(__a); } -__DEVICE__ double jn(int __n, double __a) { return __nv_jn(__n, __a); } -__DEVICE__ float jnf(int __n, float __a) { return __nv_jnf(__n, __a); } -#if defined(__LP64__) || defined(_WIN64) -__DEVICE__ long labs(long __a) __NOEXCEPT { return __nv_llabs(__a); }; -#else -__DEVICE__ long labs(long __a) __NOEXCEPT { return __nv_abs(__a); }; -#endif -__DEVICE__ double ldexp(double __a, int __b) { return __nv_ldexp(__a, __b); } -__DEVICE__ float ldexpf(float __a, int __b) { return __nv_ldexpf(__a, __b); } -__DEVICE__ double lgamma(double __a) { return __nv_lgamma(__a); } -__DEVICE__ float lgammaf(float __a) { return __nv_lgammaf(__a); } -__DEVICE__ long long llabs(long long __a) __NOEXCEPT { return __nv_llabs(__a); } -__DEVICE__ long long llmax(long long __a, long long __b) { - return __nv_llmax(__a, __b); -} -__DEVICE__ long long llmin(long long __a, long long __b) { - return __nv_llmin(__a, __b); -} -__DEVICE__ long long llrint(double __a) { return __nv_llrint(__a); } -__DEVICE__ long long llrintf(float __a) { return __nv_llrintf(__a); } -__DEVICE__ long long llround(double __a) { return __nv_llround(__a); } -__DEVICE__ long long llroundf(float __a) { return __nv_llroundf(__a); } -__DEVICE__ double log(double __a) { return __nv_log(__a); } -__DEVICE__ double log10(double __a) { return __nv_log10(__a); } -__DEVICE__ float log10f(float __a) { return __nv_log10f(__a); } -__DEVICE__ double log1p(double __a) { return __nv_log1p(__a); } -__DEVICE__ float log1pf(float __a) { return __nv_log1pf(__a); } -__DEVICE__ double log2(double __a) { return __nv_log2(__a); } -__DEVICE__ float log2f(float __a) { - return __FAST_OR_SLOW(__nv_fast_log2f, __nv_log2f)(__a); -} -__DEVICE__ double logb(double __a) { return __nv_logb(__a); } -__DEVICE__ float logbf(float __a) { return __nv_logbf(__a); } -__DEVICE__ float logf(float __a) { - return __FAST_OR_SLOW(__nv_fast_logf, __nv_logf)(__a); -} -#if defined(__LP64__) || defined(_WIN64) -__DEVICE__ long lrint(double __a) { return llrint(__a); } -__DEVICE__ long lrintf(float __a) { return __float2ll_rn(__a); } -__DEVICE__ long lround(double __a) { return llround(__a); } -__DEVICE__ long lroundf(float __a) { return llroundf(__a); } -#else -__DEVICE__ long lrint(double __a) { return (long)rint(__a); } -__DEVICE__ long lrintf(float __a) { return __float2int_rn(__a); } -__DEVICE__ long lround(double __a) { return round(__a); } -__DEVICE__ long lroundf(float __a) { return roundf(__a); } -#endif -__DEVICE__ int max(int __a, int __b) { return __nv_max(__a, __b); } -// These functions shouldn't be declared when including this header -// for math function resolution purposes. -#ifndef _OPENMP -__DEVICE__ void *memcpy(void *__a, const void *__b, size_t __c) { - return __builtin_memcpy(__a, __b, __c); -} -__DEVICE__ void *memset(void *__a, int __b, size_t __c) { - return __builtin_memset(__a, __b, __c); -} -#endif -__DEVICE__ int min(int __a, int __b) { return __nv_min(__a, __b); } -__DEVICE__ double modf(double __a, double *__b) { return __nv_modf(__a, __b); } -__DEVICE__ float modff(float __a, float *__b) { return __nv_modff(__a, __b); } -__DEVICE__ double nearbyint(double __a) { return __nv_nearbyint(__a); } -__DEVICE__ float nearbyintf(float __a) { return __nv_nearbyintf(__a); } -__DEVICE__ double nextafter(double __a, double __b) { - return __nv_nextafter(__a, __b); -} -__DEVICE__ float nextafterf(float __a, float __b) { - return __nv_nextafterf(__a, __b); -} -__DEVICE__ double norm(int __dim, const double *__t) { - return __nv_norm(__dim, __t); -} -__DEVICE__ double norm3d(double __a, double __b, double __c) { - return __nv_norm3d(__a, __b, __c); -} -__DEVICE__ float norm3df(float __a, float __b, float __c) { - return __nv_norm3df(__a, __b, __c); -} -__DEVICE__ double norm4d(double __a, double __b, double __c, double __d) { - return __nv_norm4d(__a, __b, __c, __d); -} -__DEVICE__ float norm4df(float __a, float __b, float __c, float __d) { - return __nv_norm4df(__a, __b, __c, __d); -} -__DEVICE__ double normcdf(double __a) { return __nv_normcdf(__a); } -__DEVICE__ float normcdff(float __a) { return __nv_normcdff(__a); } -__DEVICE__ double normcdfinv(double __a) { return __nv_normcdfinv(__a); } -__DEVICE__ float normcdfinvf(float __a) { return __nv_normcdfinvf(__a); } -__DEVICE__ float normf(int __dim, const float *__t) { - return __nv_normf(__dim, __t); -} -__DEVICE__ double pow(double __a, double __b) { return __nv_pow(__a, __b); } -__DEVICE__ float powf(float __a, float __b) { return __nv_powf(__a, __b); } -__DEVICE__ double powi(double __a, int __b) { return __nv_powi(__a, __b); } -__DEVICE__ float powif(float __a, int __b) { return __nv_powif(__a, __b); } -__DEVICE__ double rcbrt(double __a) { return __nv_rcbrt(__a); } -__DEVICE__ float rcbrtf(float __a) { return __nv_rcbrtf(__a); } -__DEVICE__ double remainder(double __a, double __b) { - return __nv_remainder(__a, __b); -} -__DEVICE__ float remainderf(float __a, float __b) { - return __nv_remainderf(__a, __b); -} -__DEVICE__ double remquo(double __a, double __b, int *__c) { - return __nv_remquo(__a, __b, __c); -} -__DEVICE__ float remquof(float __a, float __b, int *__c) { - return __nv_remquof(__a, __b, __c); -} -__DEVICE__ double rhypot(double __a, double __b) { - return __nv_rhypot(__a, __b); -} -__DEVICE__ float rhypotf(float __a, float __b) { - return __nv_rhypotf(__a, __b); -} -__DEVICE__ double rint(double __a) { return __nv_rint(__a); } -__DEVICE__ float rintf(float __a) { return __nv_rintf(__a); } -__DEVICE__ double rnorm(int __a, const double *__b) { - return __nv_rnorm(__a, __b); -} -__DEVICE__ double rnorm3d(double __a, double __b, double __c) { - return __nv_rnorm3d(__a, __b, __c); -} -__DEVICE__ float rnorm3df(float __a, float __b, float __c) { - return __nv_rnorm3df(__a, __b, __c); -} -__DEVICE__ double rnorm4d(double __a, double __b, double __c, double __d) { - return __nv_rnorm4d(__a, __b, __c, __d); -} -__DEVICE__ float rnorm4df(float __a, float __b, float __c, float __d) { - return __nv_rnorm4df(__a, __b, __c, __d); -} -__DEVICE__ float rnormf(int __dim, const float *__t) { - return __nv_rnormf(__dim, __t); -} -__DEVICE__ double round(double __a) { return __nv_round(__a); } -__DEVICE__ float roundf(float __a) { return __nv_roundf(__a); } -__DEVICE__ double rsqrt(double __a) { return __nv_rsqrt(__a); } -__DEVICE__ float rsqrtf(float __a) { return __nv_rsqrtf(__a); } -__DEVICE__ double scalbn(double __a, int __b) { return __nv_scalbn(__a, __b); } -__DEVICE__ float scalbnf(float __a, int __b) { return __nv_scalbnf(__a, __b); } -// TODO: remove once variant is supported -#ifndef _OPENMP -__DEVICE__ double scalbln(double __a, long __b) { - if (__b > INT_MAX) - return __a > 0 ? HUGE_VAL : -HUGE_VAL; - if (__b < INT_MIN) - return __a > 0 ? 0.0 : -0.0; - return scalbn(__a, (int)__b); -} -__DEVICE__ float scalblnf(float __a, long __b) { - if (__b > INT_MAX) - return __a > 0 ? HUGE_VALF : -HUGE_VALF; - if (__b < INT_MIN) - return __a > 0 ? 0.f : -0.f; - return scalbnf(__a, (int)__b); -} -#endif -__DEVICE__ double sin(double __a) { return __nv_sin(__a); } -__DEVICE__ void sincos(double __a, double *__s, double *__c) { - return __nv_sincos(__a, __s, __c); -} -__DEVICE__ void sincosf(float __a, float *__s, float *__c) { - return __FAST_OR_SLOW(__nv_fast_sincosf, __nv_sincosf)(__a, __s, __c); -} -__DEVICE__ void sincospi(double __a, double *__s, double *__c) { - return __nv_sincospi(__a, __s, __c); -} -__DEVICE__ void sincospif(float __a, float *__s, float *__c) { - return __nv_sincospif(__a, __s, __c); -} -__DEVICE__ float sinf(float __a) { - return __FAST_OR_SLOW(__nv_fast_sinf, __nv_sinf)(__a); -} -__DEVICE__ double sinh(double __a) { return __nv_sinh(__a); } -__DEVICE__ float sinhf(float __a) { return __nv_sinhf(__a); } -__DEVICE__ double sinpi(double __a) { return __nv_sinpi(__a); } -__DEVICE__ float sinpif(float __a) { return __nv_sinpif(__a); } -__DEVICE__ double sqrt(double __a) { return __nv_sqrt(__a); } -__DEVICE__ float sqrtf(float __a) { return __nv_sqrtf(__a); } -__DEVICE__ double tan(double __a) { return __nv_tan(__a); } -__DEVICE__ float tanf(float __a) { return __nv_tanf(__a); } -__DEVICE__ double tanh(double __a) { return __nv_tanh(__a); } -__DEVICE__ float tanhf(float __a) { return __nv_tanhf(__a); } -__DEVICE__ double tgamma(double __a) { return __nv_tgamma(__a); } -__DEVICE__ float tgammaf(float __a) { return __nv_tgammaf(__a); } -__DEVICE__ double trunc(double __a) { return __nv_trunc(__a); } -__DEVICE__ float truncf(float __a) { return __nv_truncf(__a); } -__DEVICE__ unsigned long long ullmax(unsigned long long __a, - unsigned long long __b) { - return __nv_ullmax(__a, __b); -} -__DEVICE__ unsigned long long ullmin(unsigned long long __a, - unsigned long long __b) { - return __nv_ullmin(__a, __b); -} -__DEVICE__ unsigned int umax(unsigned int __a, unsigned int __b) { - return __nv_umax(__a, __b); -} -__DEVICE__ unsigned int umin(unsigned int __a, unsigned int __b) { - return __nv_umin(__a, __b); -} -__DEVICE__ double y0(double __a) { return __nv_y0(__a); } -__DEVICE__ float y0f(float __a) { return __nv_y0f(__a); } -__DEVICE__ double y1(double __a) { return __nv_y1(__a); } -__DEVICE__ float y1f(float __a) { return __nv_y1f(__a); } -__DEVICE__ double yn(int __a, double __b) { return __nv_yn(__a, __b); } -__DEVICE__ float ynf(int __a, float __b) { return __nv_ynf(__a, __b); } - -#undef __NOEXCEPT -#pragma pop_macro("__DEVICE__") -#pragma pop_macro("__FAST_OR_SLOW") -#endif // __CLANG_CUDA_DEVICE_FUNCTIONS_H__ diff --git a/bin/app/data/cxx/include/__clang_cuda_intrinsics.h b/bin/app/data/cxx/include/__clang_cuda_intrinsics.h deleted file mode 100644 index 2970d17f..00000000 --- a/bin/app/data/cxx/include/__clang_cuda_intrinsics.h +++ /dev/null @@ -1,478 +0,0 @@ -/*===--- __clang_cuda_intrinsics.h - Device-side CUDA intrinsic wrappers ---=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __CLANG_CUDA_INTRINSICS_H__ -#define __CLANG_CUDA_INTRINSICS_H__ -#ifndef __CUDA__ -#error "This file is for CUDA compilation only." -#endif - -// sm_30 intrinsics: __shfl_{up,down,xor}. - -#define __SM_30_INTRINSICS_H__ -#define __SM_30_INTRINSICS_HPP__ - -#if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300 - -#pragma push_macro("__MAKE_SHUFFLES") -#define __MAKE_SHUFFLES(__FnName, __IntIntrinsic, __FloatIntrinsic, __Mask, \ - __Type) \ - inline __device__ int __FnName(int __val, __Type __offset, \ - int __width = warpSize) { \ - return __IntIntrinsic(__val, __offset, \ - ((warpSize - __width) << 8) | (__Mask)); \ - } \ - inline __device__ float __FnName(float __val, __Type __offset, \ - int __width = warpSize) { \ - return __FloatIntrinsic(__val, __offset, \ - ((warpSize - __width) << 8) | (__Mask)); \ - } \ - inline __device__ unsigned int __FnName(unsigned int __val, __Type __offset, \ - int __width = warpSize) { \ - return static_cast( \ - ::__FnName(static_cast(__val), __offset, __width)); \ - } \ - inline __device__ long long __FnName(long long __val, __Type __offset, \ - int __width = warpSize) { \ - struct __Bits { \ - int __a, __b; \ - }; \ - _Static_assert(sizeof(__val) == sizeof(__Bits)); \ - _Static_assert(sizeof(__Bits) == 2 * sizeof(int)); \ - __Bits __tmp; \ - memcpy(&__val, &__tmp, sizeof(__val)); \ - __tmp.__a = ::__FnName(__tmp.__a, __offset, __width); \ - __tmp.__b = ::__FnName(__tmp.__b, __offset, __width); \ - long long __ret; \ - memcpy(&__ret, &__tmp, sizeof(__tmp)); \ - return __ret; \ - } \ - inline __device__ long __FnName(long __val, __Type __offset, \ - int __width = warpSize) { \ - _Static_assert(sizeof(long) == sizeof(long long) || \ - sizeof(long) == sizeof(int)); \ - if (sizeof(long) == sizeof(long long)) { \ - return static_cast( \ - ::__FnName(static_cast(__val), __offset, __width)); \ - } else if (sizeof(long) == sizeof(int)) { \ - return static_cast( \ - ::__FnName(static_cast(__val), __offset, __width)); \ - } \ - } \ - inline __device__ unsigned long __FnName( \ - unsigned long __val, __Type __offset, int __width = warpSize) { \ - return static_cast( \ - ::__FnName(static_cast(__val), __offset, __width)); \ - } \ - inline __device__ unsigned long long __FnName( \ - unsigned long long __val, __Type __offset, int __width = warpSize) { \ - return static_cast(::__FnName( \ - static_cast(__val), __offset, __width)); \ - } \ - inline __device__ double __FnName(double __val, __Type __offset, \ - int __width = warpSize) { \ - long long __tmp; \ - _Static_assert(sizeof(__tmp) == sizeof(__val)); \ - memcpy(&__tmp, &__val, sizeof(__val)); \ - __tmp = ::__FnName(__tmp, __offset, __width); \ - double __ret; \ - memcpy(&__ret, &__tmp, sizeof(__ret)); \ - return __ret; \ - } - -__MAKE_SHUFFLES(__shfl, __nvvm_shfl_idx_i32, __nvvm_shfl_idx_f32, 0x1f, int); -// We use 0 rather than 31 as our mask, because shfl.up applies to lanes >= -// maxLane. -__MAKE_SHUFFLES(__shfl_up, __nvvm_shfl_up_i32, __nvvm_shfl_up_f32, 0, - unsigned int); -__MAKE_SHUFFLES(__shfl_down, __nvvm_shfl_down_i32, __nvvm_shfl_down_f32, 0x1f, - unsigned int); -__MAKE_SHUFFLES(__shfl_xor, __nvvm_shfl_bfly_i32, __nvvm_shfl_bfly_f32, 0x1f, - int); -#pragma pop_macro("__MAKE_SHUFFLES") - -#endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300 - -#if CUDA_VERSION >= 9000 -#if (!defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300) -// __shfl_sync_* variants available in CUDA-9 -#pragma push_macro("__MAKE_SYNC_SHUFFLES") -#define __MAKE_SYNC_SHUFFLES(__FnName, __IntIntrinsic, __FloatIntrinsic, \ - __Mask, __Type) \ - inline __device__ int __FnName(unsigned int __mask, int __val, \ - __Type __offset, int __width = warpSize) { \ - return __IntIntrinsic(__mask, __val, __offset, \ - ((warpSize - __width) << 8) | (__Mask)); \ - } \ - inline __device__ float __FnName(unsigned int __mask, float __val, \ - __Type __offset, int __width = warpSize) { \ - return __FloatIntrinsic(__mask, __val, __offset, \ - ((warpSize - __width) << 8) | (__Mask)); \ - } \ - inline __device__ unsigned int __FnName(unsigned int __mask, \ - unsigned int __val, __Type __offset, \ - int __width = warpSize) { \ - return static_cast( \ - ::__FnName(__mask, static_cast(__val), __offset, __width)); \ - } \ - inline __device__ long long __FnName(unsigned int __mask, long long __val, \ - __Type __offset, \ - int __width = warpSize) { \ - struct __Bits { \ - int __a, __b; \ - }; \ - _Static_assert(sizeof(__val) == sizeof(__Bits)); \ - _Static_assert(sizeof(__Bits) == 2 * sizeof(int)); \ - __Bits __tmp; \ - memcpy(&__val, &__tmp, sizeof(__val)); \ - __tmp.__a = ::__FnName(__mask, __tmp.__a, __offset, __width); \ - __tmp.__b = ::__FnName(__mask, __tmp.__b, __offset, __width); \ - long long __ret; \ - memcpy(&__ret, &__tmp, sizeof(__tmp)); \ - return __ret; \ - } \ - inline __device__ unsigned long long __FnName( \ - unsigned int __mask, unsigned long long __val, __Type __offset, \ - int __width = warpSize) { \ - return static_cast(::__FnName( \ - __mask, static_cast(__val), __offset, __width)); \ - } \ - inline __device__ long __FnName(unsigned int __mask, long __val, \ - __Type __offset, int __width = warpSize) { \ - _Static_assert(sizeof(long) == sizeof(long long) || \ - sizeof(long) == sizeof(int)); \ - if (sizeof(long) == sizeof(long long)) { \ - return static_cast(::__FnName( \ - __mask, static_cast(__val), __offset, __width)); \ - } else if (sizeof(long) == sizeof(int)) { \ - return static_cast( \ - ::__FnName(__mask, static_cast(__val), __offset, __width)); \ - } \ - } \ - inline __device__ unsigned long __FnName( \ - unsigned int __mask, unsigned long __val, __Type __offset, \ - int __width = warpSize) { \ - return static_cast( \ - ::__FnName(__mask, static_cast(__val), __offset, __width)); \ - } \ - inline __device__ double __FnName(unsigned int __mask, double __val, \ - __Type __offset, int __width = warpSize) { \ - long long __tmp; \ - _Static_assert(sizeof(__tmp) == sizeof(__val)); \ - memcpy(&__tmp, &__val, sizeof(__val)); \ - __tmp = ::__FnName(__mask, __tmp, __offset, __width); \ - double __ret; \ - memcpy(&__ret, &__tmp, sizeof(__ret)); \ - return __ret; \ - } -__MAKE_SYNC_SHUFFLES(__shfl_sync, __nvvm_shfl_sync_idx_i32, - __nvvm_shfl_sync_idx_f32, 0x1f, int); -// We use 0 rather than 31 as our mask, because shfl.up applies to lanes >= -// maxLane. -__MAKE_SYNC_SHUFFLES(__shfl_up_sync, __nvvm_shfl_sync_up_i32, - __nvvm_shfl_sync_up_f32, 0, unsigned int); -__MAKE_SYNC_SHUFFLES(__shfl_down_sync, __nvvm_shfl_sync_down_i32, - __nvvm_shfl_sync_down_f32, 0x1f, unsigned int); -__MAKE_SYNC_SHUFFLES(__shfl_xor_sync, __nvvm_shfl_sync_bfly_i32, - __nvvm_shfl_sync_bfly_f32, 0x1f, int); -#pragma pop_macro("__MAKE_SYNC_SHUFFLES") - -inline __device__ void __syncwarp(unsigned int mask = 0xffffffff) { - return __nvvm_bar_warp_sync(mask); -} - -inline __device__ void __barrier_sync(unsigned int id) { - __nvvm_barrier_sync(id); -} - -inline __device__ void __barrier_sync_count(unsigned int id, - unsigned int count) { - __nvvm_barrier_sync_cnt(id, count); -} - -inline __device__ int __all_sync(unsigned int mask, int pred) { - return __nvvm_vote_all_sync(mask, pred); -} - -inline __device__ int __any_sync(unsigned int mask, int pred) { - return __nvvm_vote_any_sync(mask, pred); -} - -inline __device__ int __uni_sync(unsigned int mask, int pred) { - return __nvvm_vote_uni_sync(mask, pred); -} - -inline __device__ unsigned int __ballot_sync(unsigned int mask, int pred) { - return __nvvm_vote_ballot_sync(mask, pred); -} - -inline __device__ unsigned int __activemask() { return __nvvm_vote_ballot(1); } - -inline __device__ unsigned int __fns(unsigned mask, unsigned base, int offset) { - return __nvvm_fns(mask, base, offset); -} - -#endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300 - -// Define __match* builtins CUDA-9 headers expect to see. -#if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 700 -inline __device__ unsigned int __match32_any_sync(unsigned int mask, - unsigned int value) { - return __nvvm_match_any_sync_i32(mask, value); -} - -inline __device__ unsigned long long -__match64_any_sync(unsigned int mask, unsigned long long value) { - return __nvvm_match_any_sync_i64(mask, value); -} - -inline __device__ unsigned int -__match32_all_sync(unsigned int mask, unsigned int value, int *pred) { - return __nvvm_match_all_sync_i32p(mask, value, pred); -} - -inline __device__ unsigned long long -__match64_all_sync(unsigned int mask, unsigned long long value, int *pred) { - return __nvvm_match_all_sync_i64p(mask, value, pred); -} -#include "crt/sm_70_rt.hpp" - -#endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 700 -#endif // __CUDA_VERSION >= 9000 - -// sm_32 intrinsics: __ldg and __funnelshift_{l,lc,r,rc}. - -// Prevent the vanilla sm_32 intrinsics header from being included. -#define __SM_32_INTRINSICS_H__ -#define __SM_32_INTRINSICS_HPP__ - -#if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 320 - -inline __device__ char __ldg(const char *ptr) { return __nvvm_ldg_c(ptr); } -inline __device__ short __ldg(const short *ptr) { return __nvvm_ldg_s(ptr); } -inline __device__ int __ldg(const int *ptr) { return __nvvm_ldg_i(ptr); } -inline __device__ long __ldg(const long *ptr) { return __nvvm_ldg_l(ptr); } -inline __device__ long long __ldg(const long long *ptr) { - return __nvvm_ldg_ll(ptr); -} -inline __device__ unsigned char __ldg(const unsigned char *ptr) { - return __nvvm_ldg_uc(ptr); -} -inline __device__ signed char __ldg(const signed char *ptr) { - return __nvvm_ldg_uc((const unsigned char *)ptr); -} -inline __device__ unsigned short __ldg(const unsigned short *ptr) { - return __nvvm_ldg_us(ptr); -} -inline __device__ unsigned int __ldg(const unsigned int *ptr) { - return __nvvm_ldg_ui(ptr); -} -inline __device__ unsigned long __ldg(const unsigned long *ptr) { - return __nvvm_ldg_ul(ptr); -} -inline __device__ unsigned long long __ldg(const unsigned long long *ptr) { - return __nvvm_ldg_ull(ptr); -} -inline __device__ float __ldg(const float *ptr) { return __nvvm_ldg_f(ptr); } -inline __device__ double __ldg(const double *ptr) { return __nvvm_ldg_d(ptr); } - -inline __device__ char2 __ldg(const char2 *ptr) { - typedef char c2 __attribute__((ext_vector_type(2))); - // We can assume that ptr is aligned at least to char2's alignment, but the - // load will assume that ptr is aligned to char2's alignment. This is only - // safe if alignof(c2) <= alignof(char2). - c2 rv = __nvvm_ldg_c2(reinterpret_cast(ptr)); - char2 ret; - ret.x = rv[0]; - ret.y = rv[1]; - return ret; -} -inline __device__ char4 __ldg(const char4 *ptr) { - typedef char c4 __attribute__((ext_vector_type(4))); - c4 rv = __nvvm_ldg_c4(reinterpret_cast(ptr)); - char4 ret; - ret.x = rv[0]; - ret.y = rv[1]; - ret.z = rv[2]; - ret.w = rv[3]; - return ret; -} -inline __device__ short2 __ldg(const short2 *ptr) { - typedef short s2 __attribute__((ext_vector_type(2))); - s2 rv = __nvvm_ldg_s2(reinterpret_cast(ptr)); - short2 ret; - ret.x = rv[0]; - ret.y = rv[1]; - return ret; -} -inline __device__ short4 __ldg(const short4 *ptr) { - typedef short s4 __attribute__((ext_vector_type(4))); - s4 rv = __nvvm_ldg_s4(reinterpret_cast(ptr)); - short4 ret; - ret.x = rv[0]; - ret.y = rv[1]; - ret.z = rv[2]; - ret.w = rv[3]; - return ret; -} -inline __device__ int2 __ldg(const int2 *ptr) { - typedef int i2 __attribute__((ext_vector_type(2))); - i2 rv = __nvvm_ldg_i2(reinterpret_cast(ptr)); - int2 ret; - ret.x = rv[0]; - ret.y = rv[1]; - return ret; -} -inline __device__ int4 __ldg(const int4 *ptr) { - typedef int i4 __attribute__((ext_vector_type(4))); - i4 rv = __nvvm_ldg_i4(reinterpret_cast(ptr)); - int4 ret; - ret.x = rv[0]; - ret.y = rv[1]; - ret.z = rv[2]; - ret.w = rv[3]; - return ret; -} -inline __device__ longlong2 __ldg(const longlong2 *ptr) { - typedef long long ll2 __attribute__((ext_vector_type(2))); - ll2 rv = __nvvm_ldg_ll2(reinterpret_cast(ptr)); - longlong2 ret; - ret.x = rv[0]; - ret.y = rv[1]; - return ret; -} - -inline __device__ uchar2 __ldg(const uchar2 *ptr) { - typedef unsigned char uc2 __attribute__((ext_vector_type(2))); - uc2 rv = __nvvm_ldg_uc2(reinterpret_cast(ptr)); - uchar2 ret; - ret.x = rv[0]; - ret.y = rv[1]; - return ret; -} -inline __device__ uchar4 __ldg(const uchar4 *ptr) { - typedef unsigned char uc4 __attribute__((ext_vector_type(4))); - uc4 rv = __nvvm_ldg_uc4(reinterpret_cast(ptr)); - uchar4 ret; - ret.x = rv[0]; - ret.y = rv[1]; - ret.z = rv[2]; - ret.w = rv[3]; - return ret; -} -inline __device__ ushort2 __ldg(const ushort2 *ptr) { - typedef unsigned short us2 __attribute__((ext_vector_type(2))); - us2 rv = __nvvm_ldg_us2(reinterpret_cast(ptr)); - ushort2 ret; - ret.x = rv[0]; - ret.y = rv[1]; - return ret; -} -inline __device__ ushort4 __ldg(const ushort4 *ptr) { - typedef unsigned short us4 __attribute__((ext_vector_type(4))); - us4 rv = __nvvm_ldg_us4(reinterpret_cast(ptr)); - ushort4 ret; - ret.x = rv[0]; - ret.y = rv[1]; - ret.z = rv[2]; - ret.w = rv[3]; - return ret; -} -inline __device__ uint2 __ldg(const uint2 *ptr) { - typedef unsigned int ui2 __attribute__((ext_vector_type(2))); - ui2 rv = __nvvm_ldg_ui2(reinterpret_cast(ptr)); - uint2 ret; - ret.x = rv[0]; - ret.y = rv[1]; - return ret; -} -inline __device__ uint4 __ldg(const uint4 *ptr) { - typedef unsigned int ui4 __attribute__((ext_vector_type(4))); - ui4 rv = __nvvm_ldg_ui4(reinterpret_cast(ptr)); - uint4 ret; - ret.x = rv[0]; - ret.y = rv[1]; - ret.z = rv[2]; - ret.w = rv[3]; - return ret; -} -inline __device__ ulonglong2 __ldg(const ulonglong2 *ptr) { - typedef unsigned long long ull2 __attribute__((ext_vector_type(2))); - ull2 rv = __nvvm_ldg_ull2(reinterpret_cast(ptr)); - ulonglong2 ret; - ret.x = rv[0]; - ret.y = rv[1]; - return ret; -} - -inline __device__ float2 __ldg(const float2 *ptr) { - typedef float f2 __attribute__((ext_vector_type(2))); - f2 rv = __nvvm_ldg_f2(reinterpret_cast(ptr)); - float2 ret; - ret.x = rv[0]; - ret.y = rv[1]; - return ret; -} -inline __device__ float4 __ldg(const float4 *ptr) { - typedef float f4 __attribute__((ext_vector_type(4))); - f4 rv = __nvvm_ldg_f4(reinterpret_cast(ptr)); - float4 ret; - ret.x = rv[0]; - ret.y = rv[1]; - ret.z = rv[2]; - ret.w = rv[3]; - return ret; -} -inline __device__ double2 __ldg(const double2 *ptr) { - typedef double d2 __attribute__((ext_vector_type(2))); - d2 rv = __nvvm_ldg_d2(reinterpret_cast(ptr)); - double2 ret; - ret.x = rv[0]; - ret.y = rv[1]; - return ret; -} - -// TODO: Implement these as intrinsics, so the backend can work its magic on -// these. Alternatively, we could implement these as plain C and try to get -// llvm to recognize the relevant patterns. -inline __device__ unsigned __funnelshift_l(unsigned low32, unsigned high32, - unsigned shiftWidth) { - unsigned result; - asm("shf.l.wrap.b32 %0, %1, %2, %3;" - : "=r"(result) - : "r"(low32), "r"(high32), "r"(shiftWidth)); - return result; -} -inline __device__ unsigned __funnelshift_lc(unsigned low32, unsigned high32, - unsigned shiftWidth) { - unsigned result; - asm("shf.l.clamp.b32 %0, %1, %2, %3;" - : "=r"(result) - : "r"(low32), "r"(high32), "r"(shiftWidth)); - return result; -} -inline __device__ unsigned __funnelshift_r(unsigned low32, unsigned high32, - unsigned shiftWidth) { - unsigned result; - asm("shf.r.wrap.b32 %0, %1, %2, %3;" - : "=r"(result) - : "r"(low32), "r"(high32), "r"(shiftWidth)); - return result; -} -inline __device__ unsigned __funnelshift_rc(unsigned low32, unsigned high32, - unsigned shiftWidth) { - unsigned ret; - asm("shf.r.clamp.b32 %0, %1, %2, %3;" - : "=r"(ret) - : "r"(low32), "r"(high32), "r"(shiftWidth)); - return ret; -} - -#endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 320 - -#endif // defined(__CLANG_CUDA_INTRINSICS_H__) diff --git a/bin/app/data/cxx/include/__clang_cuda_libdevice_declares.h b/bin/app/data/cxx/include/__clang_cuda_libdevice_declares.h deleted file mode 100644 index 4d703533..00000000 --- a/bin/app/data/cxx/include/__clang_cuda_libdevice_declares.h +++ /dev/null @@ -1,462 +0,0 @@ -/*===-- __clang_cuda_libdevice_declares.h - decls for libdevice functions --=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_CUDA_LIBDEVICE_DECLARES_H__ -#define __CLANG_CUDA_LIBDEVICE_DECLARES_H__ - -#if defined(__cplusplus) -extern "C" { -#endif - -#if defined(_OPENMP) -#define __DEVICE__ -#elif defined(__CUDA__) -#define __DEVICE__ __device__ -#endif - -__DEVICE__ int __nv_abs(int __a); -__DEVICE__ double __nv_acos(double __a); -__DEVICE__ float __nv_acosf(float __a); -__DEVICE__ double __nv_acosh(double __a); -__DEVICE__ float __nv_acoshf(float __a); -__DEVICE__ double __nv_asin(double __a); -__DEVICE__ float __nv_asinf(float __a); -__DEVICE__ double __nv_asinh(double __a); -__DEVICE__ float __nv_asinhf(float __a); -__DEVICE__ double __nv_atan2(double __a, double __b); -__DEVICE__ float __nv_atan2f(float __a, float __b); -__DEVICE__ double __nv_atan(double __a); -__DEVICE__ float __nv_atanf(float __a); -__DEVICE__ double __nv_atanh(double __a); -__DEVICE__ float __nv_atanhf(float __a); -__DEVICE__ int __nv_brev(int __a); -__DEVICE__ long long __nv_brevll(long long __a); -__DEVICE__ int __nv_byte_perm(int __a, int __b, int __c); -__DEVICE__ double __nv_cbrt(double __a); -__DEVICE__ float __nv_cbrtf(float __a); -__DEVICE__ double __nv_ceil(double __a); -__DEVICE__ float __nv_ceilf(float __a); -__DEVICE__ int __nv_clz(int __a); -__DEVICE__ int __nv_clzll(long long __a); -__DEVICE__ double __nv_copysign(double __a, double __b); -__DEVICE__ float __nv_copysignf(float __a, float __b); -__DEVICE__ double __nv_cos(double __a); -__DEVICE__ float __nv_cosf(float __a); -__DEVICE__ double __nv_cosh(double __a); -__DEVICE__ float __nv_coshf(float __a); -__DEVICE__ double __nv_cospi(double __a); -__DEVICE__ float __nv_cospif(float __a); -__DEVICE__ double __nv_cyl_bessel_i0(double __a); -__DEVICE__ float __nv_cyl_bessel_i0f(float __a); -__DEVICE__ double __nv_cyl_bessel_i1(double __a); -__DEVICE__ float __nv_cyl_bessel_i1f(float __a); -__DEVICE__ double __nv_dadd_rd(double __a, double __b); -__DEVICE__ double __nv_dadd_rn(double __a, double __b); -__DEVICE__ double __nv_dadd_ru(double __a, double __b); -__DEVICE__ double __nv_dadd_rz(double __a, double __b); -__DEVICE__ double __nv_ddiv_rd(double __a, double __b); -__DEVICE__ double __nv_ddiv_rn(double __a, double __b); -__DEVICE__ double __nv_ddiv_ru(double __a, double __b); -__DEVICE__ double __nv_ddiv_rz(double __a, double __b); -__DEVICE__ double __nv_dmul_rd(double __a, double __b); -__DEVICE__ double __nv_dmul_rn(double __a, double __b); -__DEVICE__ double __nv_dmul_ru(double __a, double __b); -__DEVICE__ double __nv_dmul_rz(double __a, double __b); -__DEVICE__ float __nv_double2float_rd(double __a); -__DEVICE__ float __nv_double2float_rn(double __a); -__DEVICE__ float __nv_double2float_ru(double __a); -__DEVICE__ float __nv_double2float_rz(double __a); -__DEVICE__ int __nv_double2hiint(double __a); -__DEVICE__ int __nv_double2int_rd(double __a); -__DEVICE__ int __nv_double2int_rn(double __a); -__DEVICE__ int __nv_double2int_ru(double __a); -__DEVICE__ int __nv_double2int_rz(double __a); -__DEVICE__ long long __nv_double2ll_rd(double __a); -__DEVICE__ long long __nv_double2ll_rn(double __a); -__DEVICE__ long long __nv_double2ll_ru(double __a); -__DEVICE__ long long __nv_double2ll_rz(double __a); -__DEVICE__ int __nv_double2loint(double __a); -__DEVICE__ unsigned int __nv_double2uint_rd(double __a); -__DEVICE__ unsigned int __nv_double2uint_rn(double __a); -__DEVICE__ unsigned int __nv_double2uint_ru(double __a); -__DEVICE__ unsigned int __nv_double2uint_rz(double __a); -__DEVICE__ unsigned long long __nv_double2ull_rd(double __a); -__DEVICE__ unsigned long long __nv_double2ull_rn(double __a); -__DEVICE__ unsigned long long __nv_double2ull_ru(double __a); -__DEVICE__ unsigned long long __nv_double2ull_rz(double __a); -__DEVICE__ unsigned long long __nv_double_as_longlong(double __a); -__DEVICE__ double __nv_drcp_rd(double __a); -__DEVICE__ double __nv_drcp_rn(double __a); -__DEVICE__ double __nv_drcp_ru(double __a); -__DEVICE__ double __nv_drcp_rz(double __a); -__DEVICE__ double __nv_dsqrt_rd(double __a); -__DEVICE__ double __nv_dsqrt_rn(double __a); -__DEVICE__ double __nv_dsqrt_ru(double __a); -__DEVICE__ double __nv_dsqrt_rz(double __a); -__DEVICE__ double __nv_dsub_rd(double __a, double __b); -__DEVICE__ double __nv_dsub_rn(double __a, double __b); -__DEVICE__ double __nv_dsub_ru(double __a, double __b); -__DEVICE__ double __nv_dsub_rz(double __a, double __b); -__DEVICE__ double __nv_erfc(double __a); -__DEVICE__ float __nv_erfcf(float __a); -__DEVICE__ double __nv_erfcinv(double __a); -__DEVICE__ float __nv_erfcinvf(float __a); -__DEVICE__ double __nv_erfcx(double __a); -__DEVICE__ float __nv_erfcxf(float __a); -__DEVICE__ double __nv_erf(double __a); -__DEVICE__ float __nv_erff(float __a); -__DEVICE__ double __nv_erfinv(double __a); -__DEVICE__ float __nv_erfinvf(float __a); -__DEVICE__ double __nv_exp10(double __a); -__DEVICE__ float __nv_exp10f(float __a); -__DEVICE__ double __nv_exp2(double __a); -__DEVICE__ float __nv_exp2f(float __a); -__DEVICE__ double __nv_exp(double __a); -__DEVICE__ float __nv_expf(float __a); -__DEVICE__ double __nv_expm1(double __a); -__DEVICE__ float __nv_expm1f(float __a); -__DEVICE__ double __nv_fabs(double __a); -__DEVICE__ float __nv_fabsf(float __a); -__DEVICE__ float __nv_fadd_rd(float __a, float __b); -__DEVICE__ float __nv_fadd_rn(float __a, float __b); -__DEVICE__ float __nv_fadd_ru(float __a, float __b); -__DEVICE__ float __nv_fadd_rz(float __a, float __b); -__DEVICE__ float __nv_fast_cosf(float __a); -__DEVICE__ float __nv_fast_exp10f(float __a); -__DEVICE__ float __nv_fast_expf(float __a); -__DEVICE__ float __nv_fast_fdividef(float __a, float __b); -__DEVICE__ float __nv_fast_log10f(float __a); -__DEVICE__ float __nv_fast_log2f(float __a); -__DEVICE__ float __nv_fast_logf(float __a); -__DEVICE__ float __nv_fast_powf(float __a, float __b); -__DEVICE__ void __nv_fast_sincosf(float __a, float *__s, float *__c); -__DEVICE__ float __nv_fast_sinf(float __a); -__DEVICE__ float __nv_fast_tanf(float __a); -__DEVICE__ double __nv_fdim(double __a, double __b); -__DEVICE__ float __nv_fdimf(float __a, float __b); -__DEVICE__ float __nv_fdiv_rd(float __a, float __b); -__DEVICE__ float __nv_fdiv_rn(float __a, float __b); -__DEVICE__ float __nv_fdiv_ru(float __a, float __b); -__DEVICE__ float __nv_fdiv_rz(float __a, float __b); -__DEVICE__ int __nv_ffs(int __a); -__DEVICE__ int __nv_ffsll(long long __a); -__DEVICE__ int __nv_finitef(float __a); -__DEVICE__ unsigned short __nv_float2half_rn(float __a); -__DEVICE__ int __nv_float2int_rd(float __a); -__DEVICE__ int __nv_float2int_rn(float __a); -__DEVICE__ int __nv_float2int_ru(float __a); -__DEVICE__ int __nv_float2int_rz(float __a); -__DEVICE__ long long __nv_float2ll_rd(float __a); -__DEVICE__ long long __nv_float2ll_rn(float __a); -__DEVICE__ long long __nv_float2ll_ru(float __a); -__DEVICE__ long long __nv_float2ll_rz(float __a); -__DEVICE__ unsigned int __nv_float2uint_rd(float __a); -__DEVICE__ unsigned int __nv_float2uint_rn(float __a); -__DEVICE__ unsigned int __nv_float2uint_ru(float __a); -__DEVICE__ unsigned int __nv_float2uint_rz(float __a); -__DEVICE__ unsigned long long __nv_float2ull_rd(float __a); -__DEVICE__ unsigned long long __nv_float2ull_rn(float __a); -__DEVICE__ unsigned long long __nv_float2ull_ru(float __a); -__DEVICE__ unsigned long long __nv_float2ull_rz(float __a); -__DEVICE__ int __nv_float_as_int(float __a); -__DEVICE__ unsigned int __nv_float_as_uint(float __a); -__DEVICE__ double __nv_floor(double __a); -__DEVICE__ float __nv_floorf(float __a); -__DEVICE__ double __nv_fma(double __a, double __b, double __c); -__DEVICE__ float __nv_fmaf(float __a, float __b, float __c); -__DEVICE__ float __nv_fmaf_ieee_rd(float __a, float __b, float __c); -__DEVICE__ float __nv_fmaf_ieee_rn(float __a, float __b, float __c); -__DEVICE__ float __nv_fmaf_ieee_ru(float __a, float __b, float __c); -__DEVICE__ float __nv_fmaf_ieee_rz(float __a, float __b, float __c); -__DEVICE__ float __nv_fmaf_rd(float __a, float __b, float __c); -__DEVICE__ float __nv_fmaf_rn(float __a, float __b, float __c); -__DEVICE__ float __nv_fmaf_ru(float __a, float __b, float __c); -__DEVICE__ float __nv_fmaf_rz(float __a, float __b, float __c); -__DEVICE__ double __nv_fma_rd(double __a, double __b, double __c); -__DEVICE__ double __nv_fma_rn(double __a, double __b, double __c); -__DEVICE__ double __nv_fma_ru(double __a, double __b, double __c); -__DEVICE__ double __nv_fma_rz(double __a, double __b, double __c); -__DEVICE__ double __nv_fmax(double __a, double __b); -__DEVICE__ float __nv_fmaxf(float __a, float __b); -__DEVICE__ double __nv_fmin(double __a, double __b); -__DEVICE__ float __nv_fminf(float __a, float __b); -__DEVICE__ double __nv_fmod(double __a, double __b); -__DEVICE__ float __nv_fmodf(float __a, float __b); -__DEVICE__ float __nv_fmul_rd(float __a, float __b); -__DEVICE__ float __nv_fmul_rn(float __a, float __b); -__DEVICE__ float __nv_fmul_ru(float __a, float __b); -__DEVICE__ float __nv_fmul_rz(float __a, float __b); -__DEVICE__ float __nv_frcp_rd(float __a); -__DEVICE__ float __nv_frcp_rn(float __a); -__DEVICE__ float __nv_frcp_ru(float __a); -__DEVICE__ float __nv_frcp_rz(float __a); -__DEVICE__ double __nv_frexp(double __a, int *__b); -__DEVICE__ float __nv_frexpf(float __a, int *__b); -__DEVICE__ float __nv_frsqrt_rn(float __a); -__DEVICE__ float __nv_fsqrt_rd(float __a); -__DEVICE__ float __nv_fsqrt_rn(float __a); -__DEVICE__ float __nv_fsqrt_ru(float __a); -__DEVICE__ float __nv_fsqrt_rz(float __a); -__DEVICE__ float __nv_fsub_rd(float __a, float __b); -__DEVICE__ float __nv_fsub_rn(float __a, float __b); -__DEVICE__ float __nv_fsub_ru(float __a, float __b); -__DEVICE__ float __nv_fsub_rz(float __a, float __b); -__DEVICE__ int __nv_hadd(int __a, int __b); -__DEVICE__ float __nv_half2float(unsigned short __h); -__DEVICE__ double __nv_hiloint2double(int __a, int __b); -__DEVICE__ double __nv_hypot(double __a, double __b); -__DEVICE__ float __nv_hypotf(float __a, float __b); -__DEVICE__ int __nv_ilogb(double __a); -__DEVICE__ int __nv_ilogbf(float __a); -__DEVICE__ double __nv_int2double_rn(int __a); -__DEVICE__ float __nv_int2float_rd(int __a); -__DEVICE__ float __nv_int2float_rn(int __a); -__DEVICE__ float __nv_int2float_ru(int __a); -__DEVICE__ float __nv_int2float_rz(int __a); -__DEVICE__ float __nv_int_as_float(int __a); -__DEVICE__ int __nv_isfinited(double __a); -__DEVICE__ int __nv_isinfd(double __a); -__DEVICE__ int __nv_isinff(float __a); -__DEVICE__ int __nv_isnand(double __a); -__DEVICE__ int __nv_isnanf(float __a); -__DEVICE__ double __nv_j0(double __a); -__DEVICE__ float __nv_j0f(float __a); -__DEVICE__ double __nv_j1(double __a); -__DEVICE__ float __nv_j1f(float __a); -__DEVICE__ float __nv_jnf(int __a, float __b); -__DEVICE__ double __nv_jn(int __a, double __b); -__DEVICE__ double __nv_ldexp(double __a, int __b); -__DEVICE__ float __nv_ldexpf(float __a, int __b); -__DEVICE__ double __nv_lgamma(double __a); -__DEVICE__ float __nv_lgammaf(float __a); -__DEVICE__ double __nv_ll2double_rd(long long __a); -__DEVICE__ double __nv_ll2double_rn(long long __a); -__DEVICE__ double __nv_ll2double_ru(long long __a); -__DEVICE__ double __nv_ll2double_rz(long long __a); -__DEVICE__ float __nv_ll2float_rd(long long __a); -__DEVICE__ float __nv_ll2float_rn(long long __a); -__DEVICE__ float __nv_ll2float_ru(long long __a); -__DEVICE__ float __nv_ll2float_rz(long long __a); -__DEVICE__ long long __nv_llabs(long long __a); -__DEVICE__ long long __nv_llmax(long long __a, long long __b); -__DEVICE__ long long __nv_llmin(long long __a, long long __b); -__DEVICE__ long long __nv_llrint(double __a); -__DEVICE__ long long __nv_llrintf(float __a); -__DEVICE__ long long __nv_llround(double __a); -__DEVICE__ long long __nv_llroundf(float __a); -__DEVICE__ double __nv_log10(double __a); -__DEVICE__ float __nv_log10f(float __a); -__DEVICE__ double __nv_log1p(double __a); -__DEVICE__ float __nv_log1pf(float __a); -__DEVICE__ double __nv_log2(double __a); -__DEVICE__ float __nv_log2f(float __a); -__DEVICE__ double __nv_logb(double __a); -__DEVICE__ float __nv_logbf(float __a); -__DEVICE__ double __nv_log(double __a); -__DEVICE__ float __nv_logf(float __a); -__DEVICE__ double __nv_longlong_as_double(long long __a); -__DEVICE__ int __nv_max(int __a, int __b); -__DEVICE__ int __nv_min(int __a, int __b); -__DEVICE__ double __nv_modf(double __a, double *__b); -__DEVICE__ float __nv_modff(float __a, float *__b); -__DEVICE__ int __nv_mul24(int __a, int __b); -__DEVICE__ long long __nv_mul64hi(long long __a, long long __b); -__DEVICE__ int __nv_mulhi(int __a, int __b); -__DEVICE__ double __nv_nan(const signed char *__a); -__DEVICE__ float __nv_nanf(const signed char *__a); -__DEVICE__ double __nv_nearbyint(double __a); -__DEVICE__ float __nv_nearbyintf(float __a); -__DEVICE__ double __nv_nextafter(double __a, double __b); -__DEVICE__ float __nv_nextafterf(float __a, float __b); -__DEVICE__ double __nv_norm3d(double __a, double __b, double __c); -__DEVICE__ float __nv_norm3df(float __a, float __b, float __c); -__DEVICE__ double __nv_norm4d(double __a, double __b, double __c, double __d); -__DEVICE__ float __nv_norm4df(float __a, float __b, float __c, float __d); -__DEVICE__ double __nv_normcdf(double __a); -__DEVICE__ float __nv_normcdff(float __a); -__DEVICE__ double __nv_normcdfinv(double __a); -__DEVICE__ float __nv_normcdfinvf(float __a); -__DEVICE__ float __nv_normf(int __a, const float *__b); -__DEVICE__ double __nv_norm(int __a, const double *__b); -__DEVICE__ int __nv_popc(int __a); -__DEVICE__ int __nv_popcll(long long __a); -__DEVICE__ double __nv_pow(double __a, double __b); -__DEVICE__ float __nv_powf(float __a, float __b); -__DEVICE__ double __nv_powi(double __a, int __b); -__DEVICE__ float __nv_powif(float __a, int __b); -__DEVICE__ double __nv_rcbrt(double __a); -__DEVICE__ float __nv_rcbrtf(float __a); -__DEVICE__ double __nv_rcp64h(double __a); -__DEVICE__ double __nv_remainder(double __a, double __b); -__DEVICE__ float __nv_remainderf(float __a, float __b); -__DEVICE__ double __nv_remquo(double __a, double __b, int *__c); -__DEVICE__ float __nv_remquof(float __a, float __b, int *__c); -__DEVICE__ int __nv_rhadd(int __a, int __b); -__DEVICE__ double __nv_rhypot(double __a, double __b); -__DEVICE__ float __nv_rhypotf(float __a, float __b); -__DEVICE__ double __nv_rint(double __a); -__DEVICE__ float __nv_rintf(float __a); -__DEVICE__ double __nv_rnorm3d(double __a, double __b, double __c); -__DEVICE__ float __nv_rnorm3df(float __a, float __b, float __c); -__DEVICE__ double __nv_rnorm4d(double __a, double __b, double __c, double __d); -__DEVICE__ float __nv_rnorm4df(float __a, float __b, float __c, float __d); -__DEVICE__ float __nv_rnormf(int __a, const float *__b); -__DEVICE__ double __nv_rnorm(int __a, const double *__b); -__DEVICE__ double __nv_round(double __a); -__DEVICE__ float __nv_roundf(float __a); -__DEVICE__ double __nv_rsqrt(double __a); -__DEVICE__ float __nv_rsqrtf(float __a); -__DEVICE__ int __nv_sad(int __a, int __b, int __c); -__DEVICE__ float __nv_saturatef(float __a); -__DEVICE__ double __nv_scalbn(double __a, int __b); -__DEVICE__ float __nv_scalbnf(float __a, int __b); -__DEVICE__ int __nv_signbitd(double __a); -__DEVICE__ int __nv_signbitf(float __a); -__DEVICE__ void __nv_sincos(double __a, double *__b, double *__c); -__DEVICE__ void __nv_sincosf(float __a, float *__b, float *__c); -__DEVICE__ void __nv_sincospi(double __a, double *__b, double *__c); -__DEVICE__ void __nv_sincospif(float __a, float *__b, float *__c); -__DEVICE__ double __nv_sin(double __a); -__DEVICE__ float __nv_sinf(float __a); -__DEVICE__ double __nv_sinh(double __a); -__DEVICE__ float __nv_sinhf(float __a); -__DEVICE__ double __nv_sinpi(double __a); -__DEVICE__ float __nv_sinpif(float __a); -__DEVICE__ double __nv_sqrt(double __a); -__DEVICE__ float __nv_sqrtf(float __a); -__DEVICE__ double __nv_tan(double __a); -__DEVICE__ float __nv_tanf(float __a); -__DEVICE__ double __nv_tanh(double __a); -__DEVICE__ float __nv_tanhf(float __a); -__DEVICE__ double __nv_tgamma(double __a); -__DEVICE__ float __nv_tgammaf(float __a); -__DEVICE__ double __nv_trunc(double __a); -__DEVICE__ float __nv_truncf(float __a); -__DEVICE__ int __nv_uhadd(unsigned int __a, unsigned int __b); -__DEVICE__ double __nv_uint2double_rn(unsigned int __i); -__DEVICE__ float __nv_uint2float_rd(unsigned int __a); -__DEVICE__ float __nv_uint2float_rn(unsigned int __a); -__DEVICE__ float __nv_uint2float_ru(unsigned int __a); -__DEVICE__ float __nv_uint2float_rz(unsigned int __a); -__DEVICE__ float __nv_uint_as_float(unsigned int __a); -__DEVICE__ double __nv_ull2double_rd(unsigned long long __a); -__DEVICE__ double __nv_ull2double_rn(unsigned long long __a); -__DEVICE__ double __nv_ull2double_ru(unsigned long long __a); -__DEVICE__ double __nv_ull2double_rz(unsigned long long __a); -__DEVICE__ float __nv_ull2float_rd(unsigned long long __a); -__DEVICE__ float __nv_ull2float_rn(unsigned long long __a); -__DEVICE__ float __nv_ull2float_ru(unsigned long long __a); -__DEVICE__ float __nv_ull2float_rz(unsigned long long __a); -__DEVICE__ unsigned long long __nv_ullmax(unsigned long long __a, - unsigned long long __b); -__DEVICE__ unsigned long long __nv_ullmin(unsigned long long __a, - unsigned long long __b); -__DEVICE__ unsigned int __nv_umax(unsigned int __a, unsigned int __b); -__DEVICE__ unsigned int __nv_umin(unsigned int __a, unsigned int __b); -__DEVICE__ unsigned int __nv_umul24(unsigned int __a, unsigned int __b); -__DEVICE__ unsigned long long __nv_umul64hi(unsigned long long __a, - unsigned long long __b); -__DEVICE__ unsigned int __nv_umulhi(unsigned int __a, unsigned int __b); -__DEVICE__ unsigned int __nv_urhadd(unsigned int __a, unsigned int __b); -__DEVICE__ unsigned int __nv_usad(unsigned int __a, unsigned int __b, - unsigned int __c); -#if CUDA_VERSION >= 9000 && CUDA_VERSION < 9020 -__DEVICE__ int __nv_vabs2(int __a); -__DEVICE__ int __nv_vabs4(int __a); -__DEVICE__ int __nv_vabsdiffs2(int __a, int __b); -__DEVICE__ int __nv_vabsdiffs4(int __a, int __b); -__DEVICE__ int __nv_vabsdiffu2(int __a, int __b); -__DEVICE__ int __nv_vabsdiffu4(int __a, int __b); -__DEVICE__ int __nv_vabsss2(int __a); -__DEVICE__ int __nv_vabsss4(int __a); -__DEVICE__ int __nv_vadd2(int __a, int __b); -__DEVICE__ int __nv_vadd4(int __a, int __b); -__DEVICE__ int __nv_vaddss2(int __a, int __b); -__DEVICE__ int __nv_vaddss4(int __a, int __b); -__DEVICE__ int __nv_vaddus2(int __a, int __b); -__DEVICE__ int __nv_vaddus4(int __a, int __b); -__DEVICE__ int __nv_vavgs2(int __a, int __b); -__DEVICE__ int __nv_vavgs4(int __a, int __b); -__DEVICE__ int __nv_vavgu2(int __a, int __b); -__DEVICE__ int __nv_vavgu4(int __a, int __b); -__DEVICE__ int __nv_vcmpeq2(int __a, int __b); -__DEVICE__ int __nv_vcmpeq4(int __a, int __b); -__DEVICE__ int __nv_vcmpges2(int __a, int __b); -__DEVICE__ int __nv_vcmpges4(int __a, int __b); -__DEVICE__ int __nv_vcmpgeu2(int __a, int __b); -__DEVICE__ int __nv_vcmpgeu4(int __a, int __b); -__DEVICE__ int __nv_vcmpgts2(int __a, int __b); -__DEVICE__ int __nv_vcmpgts4(int __a, int __b); -__DEVICE__ int __nv_vcmpgtu2(int __a, int __b); -__DEVICE__ int __nv_vcmpgtu4(int __a, int __b); -__DEVICE__ int __nv_vcmples2(int __a, int __b); -__DEVICE__ int __nv_vcmples4(int __a, int __b); -__DEVICE__ int __nv_vcmpleu2(int __a, int __b); -__DEVICE__ int __nv_vcmpleu4(int __a, int __b); -__DEVICE__ int __nv_vcmplts2(int __a, int __b); -__DEVICE__ int __nv_vcmplts4(int __a, int __b); -__DEVICE__ int __nv_vcmpltu2(int __a, int __b); -__DEVICE__ int __nv_vcmpltu4(int __a, int __b); -__DEVICE__ int __nv_vcmpne2(int __a, int __b); -__DEVICE__ int __nv_vcmpne4(int __a, int __b); -__DEVICE__ int __nv_vhaddu2(int __a, int __b); -__DEVICE__ int __nv_vhaddu4(int __a, int __b); -__DEVICE__ int __nv_vmaxs2(int __a, int __b); -__DEVICE__ int __nv_vmaxs4(int __a, int __b); -__DEVICE__ int __nv_vmaxu2(int __a, int __b); -__DEVICE__ int __nv_vmaxu4(int __a, int __b); -__DEVICE__ int __nv_vmins2(int __a, int __b); -__DEVICE__ int __nv_vmins4(int __a, int __b); -__DEVICE__ int __nv_vminu2(int __a, int __b); -__DEVICE__ int __nv_vminu4(int __a, int __b); -__DEVICE__ int __nv_vneg2(int __a); -__DEVICE__ int __nv_vneg4(int __a); -__DEVICE__ int __nv_vnegss2(int __a); -__DEVICE__ int __nv_vnegss4(int __a); -__DEVICE__ int __nv_vsads2(int __a, int __b); -__DEVICE__ int __nv_vsads4(int __a, int __b); -__DEVICE__ int __nv_vsadu2(int __a, int __b); -__DEVICE__ int __nv_vsadu4(int __a, int __b); -__DEVICE__ int __nv_vseteq2(int __a, int __b); -__DEVICE__ int __nv_vseteq4(int __a, int __b); -__DEVICE__ int __nv_vsetges2(int __a, int __b); -__DEVICE__ int __nv_vsetges4(int __a, int __b); -__DEVICE__ int __nv_vsetgeu2(int __a, int __b); -__DEVICE__ int __nv_vsetgeu4(int __a, int __b); -__DEVICE__ int __nv_vsetgts2(int __a, int __b); -__DEVICE__ int __nv_vsetgts4(int __a, int __b); -__DEVICE__ int __nv_vsetgtu2(int __a, int __b); -__DEVICE__ int __nv_vsetgtu4(int __a, int __b); -__DEVICE__ int __nv_vsetles2(int __a, int __b); -__DEVICE__ int __nv_vsetles4(int __a, int __b); -__DEVICE__ int __nv_vsetleu2(int __a, int __b); -__DEVICE__ int __nv_vsetleu4(int __a, int __b); -__DEVICE__ int __nv_vsetlts2(int __a, int __b); -__DEVICE__ int __nv_vsetlts4(int __a, int __b); -__DEVICE__ int __nv_vsetltu2(int __a, int __b); -__DEVICE__ int __nv_vsetltu4(int __a, int __b); -__DEVICE__ int __nv_vsetne2(int __a, int __b); -__DEVICE__ int __nv_vsetne4(int __a, int __b); -__DEVICE__ int __nv_vsub2(int __a, int __b); -__DEVICE__ int __nv_vsub4(int __a, int __b); -__DEVICE__ int __nv_vsubss2(int __a, int __b); -__DEVICE__ int __nv_vsubss4(int __a, int __b); -__DEVICE__ int __nv_vsubus2(int __a, int __b); -__DEVICE__ int __nv_vsubus4(int __a, int __b); -#endif // CUDA_VERSION -__DEVICE__ double __nv_y0(double __a); -__DEVICE__ float __nv_y0f(float __a); -__DEVICE__ double __nv_y1(double __a); -__DEVICE__ float __nv_y1f(float __a); -__DEVICE__ float __nv_ynf(int __a, float __b); -__DEVICE__ double __nv_yn(int __a, double __b); -#if defined(__cplusplus) -} // extern "C" -#endif -#endif // __CLANG_CUDA_LIBDEVICE_DECLARES_H__ diff --git a/bin/app/data/cxx/include/__clang_cuda_math_forward_declares.h b/bin/app/data/cxx/include/__clang_cuda_math_forward_declares.h deleted file mode 100644 index 0afe4db5..00000000 --- a/bin/app/data/cxx/include/__clang_cuda_math_forward_declares.h +++ /dev/null @@ -1,308 +0,0 @@ -/*===- __clang_math_forward_declares.h - Prototypes of __device__ math fns --=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __CLANG__CUDA_MATH_FORWARD_DECLARES_H__ -#define __CLANG__CUDA_MATH_FORWARD_DECLARES_H__ -#ifndef __CUDA__ -#error "This file is for CUDA compilation only." -#endif - -// This file forward-declares of some math functions we (or the CUDA headers) -// will define later. We need to do this, and do it before cmath is included, -// because the standard library may have constexpr math functions. In the -// absence of a prior __device__ decl, those constexpr functions may become -// implicitly host+device. host+device functions can't be overloaded, so that -// would preclude the use of our own __device__ overloads for these functions. - -#pragma push_macro("__DEVICE__") -#ifdef _OPENMP -#define __DEVICE__ static __inline__ __attribute__((always_inline)) -#else -#define __DEVICE__ \ - static __inline__ __attribute__((always_inline)) __attribute__((device)) -#endif - -// For C++ 17 we need to include noexcept attribute to be compatible -// with the header-defined version. This may be removed once -// variant is supported. -#if defined(_OPENMP) && defined(__cplusplus) && __cplusplus >= 201703L -#define __NOEXCEPT noexcept -#else -#define __NOEXCEPT -#endif - -#if !(defined(_OPENMP) && defined(__cplusplus)) -__DEVICE__ long abs(long); -__DEVICE__ long long abs(long long); -__DEVICE__ double abs(double); -__DEVICE__ float abs(float); -#endif -// While providing the CUDA declarations and definitions for math functions, -// we may manually define additional functions. -// TODO: Once variant is supported the additional functions will have -// to be removed. -#if defined(_OPENMP) && defined(__cplusplus) -__DEVICE__ const double abs(const double); -__DEVICE__ const float abs(const float); -#endif -__DEVICE__ int abs(int) __NOEXCEPT; -__DEVICE__ double acos(double); -__DEVICE__ float acos(float); -__DEVICE__ double acosh(double); -__DEVICE__ float acosh(float); -__DEVICE__ double asin(double); -__DEVICE__ float asin(float); -__DEVICE__ double asinh(double); -__DEVICE__ float asinh(float); -__DEVICE__ double atan2(double, double); -__DEVICE__ float atan2(float, float); -__DEVICE__ double atan(double); -__DEVICE__ float atan(float); -__DEVICE__ double atanh(double); -__DEVICE__ float atanh(float); -__DEVICE__ double cbrt(double); -__DEVICE__ float cbrt(float); -__DEVICE__ double ceil(double); -__DEVICE__ float ceil(float); -__DEVICE__ double copysign(double, double); -__DEVICE__ float copysign(float, float); -__DEVICE__ double cos(double); -__DEVICE__ float cos(float); -__DEVICE__ double cosh(double); -__DEVICE__ float cosh(float); -__DEVICE__ double erfc(double); -__DEVICE__ float erfc(float); -__DEVICE__ double erf(double); -__DEVICE__ float erf(float); -__DEVICE__ double exp2(double); -__DEVICE__ float exp2(float); -__DEVICE__ double exp(double); -__DEVICE__ float exp(float); -__DEVICE__ double expm1(double); -__DEVICE__ float expm1(float); -__DEVICE__ double fabs(double) __NOEXCEPT; -__DEVICE__ float fabs(float) __NOEXCEPT; -__DEVICE__ double fdim(double, double); -__DEVICE__ float fdim(float, float); -__DEVICE__ double floor(double); -__DEVICE__ float floor(float); -__DEVICE__ double fma(double, double, double); -__DEVICE__ float fma(float, float, float); -__DEVICE__ double fmax(double, double); -__DEVICE__ float fmax(float, float); -__DEVICE__ double fmin(double, double); -__DEVICE__ float fmin(float, float); -__DEVICE__ double fmod(double, double); -__DEVICE__ float fmod(float, float); -__DEVICE__ int fpclassify(double); -__DEVICE__ int fpclassify(float); -__DEVICE__ double frexp(double, int *); -__DEVICE__ float frexp(float, int *); -__DEVICE__ double hypot(double, double); -__DEVICE__ float hypot(float, float); -__DEVICE__ int ilogb(double); -__DEVICE__ int ilogb(float); -#ifdef _MSC_VER -__DEVICE__ bool isfinite(long double); -#endif -__DEVICE__ bool isfinite(double); -__DEVICE__ bool isfinite(float); -__DEVICE__ bool isgreater(double, double); -__DEVICE__ bool isgreaterequal(double, double); -__DEVICE__ bool isgreaterequal(float, float); -__DEVICE__ bool isgreater(float, float); -#ifdef _MSC_VER -__DEVICE__ bool isinf(long double); -#endif -__DEVICE__ bool isinf(double); -__DEVICE__ bool isinf(float); -__DEVICE__ bool isless(double, double); -__DEVICE__ bool islessequal(double, double); -__DEVICE__ bool islessequal(float, float); -__DEVICE__ bool isless(float, float); -__DEVICE__ bool islessgreater(double, double); -__DEVICE__ bool islessgreater(float, float); -#ifdef _MSC_VER -__DEVICE__ bool isnan(long double); -#endif -__DEVICE__ bool isnan(double); -__DEVICE__ bool isnan(float); -__DEVICE__ bool isnormal(double); -__DEVICE__ bool isnormal(float); -__DEVICE__ bool isunordered(double, double); -__DEVICE__ bool isunordered(float, float); -__DEVICE__ long labs(long) __NOEXCEPT; -__DEVICE__ double ldexp(double, int); -__DEVICE__ float ldexp(float, int); -__DEVICE__ double lgamma(double); -__DEVICE__ float lgamma(float); -__DEVICE__ long long llabs(long long) __NOEXCEPT; -__DEVICE__ long long llrint(double); -__DEVICE__ long long llrint(float); -__DEVICE__ double log10(double); -__DEVICE__ float log10(float); -__DEVICE__ double log1p(double); -__DEVICE__ float log1p(float); -__DEVICE__ double log2(double); -__DEVICE__ float log2(float); -__DEVICE__ double logb(double); -__DEVICE__ float logb(float); -#if defined(_OPENMP) && defined(__cplusplus) -__DEVICE__ long double log(long double); -#endif -__DEVICE__ double log(double); -__DEVICE__ float log(float); -__DEVICE__ long lrint(double); -__DEVICE__ long lrint(float); -__DEVICE__ long lround(double); -__DEVICE__ long lround(float); -__DEVICE__ long long llround(float); // No llround(double). -__DEVICE__ double modf(double, double *); -__DEVICE__ float modf(float, float *); -__DEVICE__ double nan(const char *); -__DEVICE__ float nanf(const char *); -__DEVICE__ double nearbyint(double); -__DEVICE__ float nearbyint(float); -__DEVICE__ double nextafter(double, double); -__DEVICE__ float nextafter(float, float); -__DEVICE__ double pow(double, double); -__DEVICE__ double pow(double, int); -__DEVICE__ float pow(float, float); -__DEVICE__ float pow(float, int); -__DEVICE__ double remainder(double, double); -__DEVICE__ float remainder(float, float); -__DEVICE__ double remquo(double, double, int *); -__DEVICE__ float remquo(float, float, int *); -__DEVICE__ double rint(double); -__DEVICE__ float rint(float); -__DEVICE__ double round(double); -__DEVICE__ float round(float); -__DEVICE__ double scalbln(double, long); -__DEVICE__ float scalbln(float, long); -__DEVICE__ double scalbn(double, int); -__DEVICE__ float scalbn(float, int); -__DEVICE__ bool signbit(double); -__DEVICE__ bool signbit(float); -__DEVICE__ double sin(double); -__DEVICE__ float sin(float); -__DEVICE__ double sinh(double); -__DEVICE__ float sinh(float); -__DEVICE__ double sqrt(double); -__DEVICE__ float sqrt(float); -__DEVICE__ double tan(double); -__DEVICE__ float tan(float); -__DEVICE__ double tanh(double); -__DEVICE__ float tanh(float); -__DEVICE__ double tgamma(double); -__DEVICE__ float tgamma(float); -__DEVICE__ double trunc(double); -__DEVICE__ float trunc(float); - -// Notably missing above is nexttoward, which we don't define on -// the device side because libdevice doesn't give us an implementation, and we -// don't want to be in the business of writing one ourselves. - -// We need to define these overloads in exactly the namespace our standard -// library uses (including the right inline namespace), otherwise they won't be -// picked up by other functions in the standard library (e.g. functions in -// ). Thus the ugliness below. -#ifdef _LIBCPP_BEGIN_NAMESPACE_STD -_LIBCPP_BEGIN_NAMESPACE_STD -#else -namespace std { -#ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION -_GLIBCXX_BEGIN_NAMESPACE_VERSION -#endif -#endif - -using ::abs; -using ::acos; -using ::acosh; -using ::asin; -using ::asinh; -using ::atan; -using ::atan2; -using ::atanh; -using ::cbrt; -using ::ceil; -using ::copysign; -using ::cos; -using ::cosh; -using ::erf; -using ::erfc; -using ::exp; -using ::exp2; -using ::expm1; -using ::fabs; -using ::fdim; -using ::floor; -using ::fma; -using ::fmax; -using ::fmin; -using ::fmod; -using ::fpclassify; -using ::frexp; -using ::hypot; -using ::ilogb; -using ::isfinite; -using ::isgreater; -using ::isgreaterequal; -using ::isinf; -using ::isless; -using ::islessequal; -using ::islessgreater; -using ::isnan; -using ::isnormal; -using ::isunordered; -using ::labs; -using ::ldexp; -using ::lgamma; -using ::llabs; -using ::llrint; -using ::log; -using ::log10; -using ::log1p; -using ::log2; -using ::logb; -using ::lrint; -using ::lround; -using ::llround; -using ::modf; -using ::nan; -using ::nanf; -using ::nearbyint; -using ::nextafter; -using ::pow; -using ::remainder; -using ::remquo; -using ::rint; -using ::round; -using ::scalbln; -using ::scalbn; -using ::signbit; -using ::sin; -using ::sinh; -using ::sqrt; -using ::tan; -using ::tanh; -using ::tgamma; -using ::trunc; - -#ifdef _LIBCPP_END_NAMESPACE_STD -_LIBCPP_END_NAMESPACE_STD -#else -#ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION -_GLIBCXX_END_NAMESPACE_VERSION -#endif -} // namespace std -#endif - -#undef __NOEXCEPT -#pragma pop_macro("__DEVICE__") - -#endif diff --git a/bin/app/data/cxx/include/__clang_cuda_runtime_wrapper.h b/bin/app/data/cxx/include/__clang_cuda_runtime_wrapper.h deleted file mode 100644 index 3e362dd9..00000000 --- a/bin/app/data/cxx/include/__clang_cuda_runtime_wrapper.h +++ /dev/null @@ -1,426 +0,0 @@ -/*===---- __clang_cuda_runtime_wrapper.h - CUDA runtime support -------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* - * WARNING: This header is intended to be directly -include'd by - * the compiler and is not supposed to be included by users. - * - * CUDA headers are implemented in a way that currently makes it - * impossible for user code to #include directly when compiling with - * Clang. They present different view of CUDA-supplied functions - * depending on where in NVCC's compilation pipeline the headers are - * included. Neither of these modes provides function definitions with - * correct attributes, so we use preprocessor to force the headers - * into a form that Clang can use. - * - * Similarly to NVCC which -include's cuda_runtime.h, Clang -include's - * this file during every CUDA compilation. - */ - -#ifndef __CLANG_CUDA_RUNTIME_WRAPPER_H__ -#define __CLANG_CUDA_RUNTIME_WRAPPER_H__ - -#if defined(__CUDA__) && defined(__clang__) - -// Include some forward declares that must come before cmath. -#include <__clang_cuda_math_forward_declares.h> - -// Include some standard headers to avoid CUDA headers including them -// while some required macros (like __THROW) are in a weird state. -#include -#include -#include - -// Preserve common macros that will be changed below by us or by CUDA -// headers. -#pragma push_macro("__THROW") -#pragma push_macro("__CUDA_ARCH__") - -// WARNING: Preprocessor hacks below are based on specific details of -// CUDA-7.x headers and are not expected to work with any other -// version of CUDA headers. -#include "cuda.h" -#if !defined(CUDA_VERSION) -#error "cuda.h did not define CUDA_VERSION" -#elif CUDA_VERSION < 7000 || CUDA_VERSION > 10010 -#error "Unsupported CUDA version!" -#endif - -#pragma push_macro("__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__") -#if CUDA_VERSION >= 10000 -#define __CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -#endif - -// Make largest subset of device functions available during host -// compilation -- SM_35 for the time being. -#ifndef __CUDA_ARCH__ -#define __CUDA_ARCH__ 350 -#endif - -#include "__clang_cuda_builtin_vars.h" - -// No need for device_launch_parameters.h as __clang_cuda_builtin_vars.h above -// has taken care of builtin variables declared in the file. -#define __DEVICE_LAUNCH_PARAMETERS_H__ - -// {math,device}_functions.h only have declarations of the -// functions. We don't need them as we're going to pull in their -// definitions from .hpp files. -#define __DEVICE_FUNCTIONS_H__ -#define __MATH_FUNCTIONS_H__ -#define __COMMON_FUNCTIONS_H__ -// device_functions_decls is replaced by __clang_cuda_device_functions.h -// included below. -#define __DEVICE_FUNCTIONS_DECLS_H__ - -#undef __CUDACC__ -#if CUDA_VERSION < 9000 -#define __CUDABE__ -#else -#define __CUDA_LIBDEVICE__ -#endif -// Disables definitions of device-side runtime support stubs in -// cuda_device_runtime_api.h -#include "driver_types.h" -#include "host_config.h" -#include "host_defines.h" - -// Temporarily replace "nv_weak" with weak, so __attribute__((nv_weak)) in -// cuda_device_runtime_api.h ends up being __attribute__((weak)) which is the -// functional equivalent of what we need. -#pragma push_macro("nv_weak") -#define nv_weak weak -#undef __CUDABE__ -#undef __CUDA_LIBDEVICE__ -#define __CUDACC__ -#include "cuda_runtime.h" - -#pragma pop_macro("nv_weak") -#undef __CUDACC__ -#define __CUDABE__ - -// CUDA headers use __nvvm_memcpy and __nvvm_memset which Clang does -// not have at the moment. Emulate them with a builtin memcpy/memset. -#define __nvvm_memcpy(s, d, n, a) __builtin_memcpy(s, d, n) -#define __nvvm_memset(d, c, n, a) __builtin_memset(d, c, n) - -#if CUDA_VERSION < 9000 -#include "crt/device_runtime.h" -#endif -#include "crt/host_runtime.h" -// device_runtime.h defines __cxa_* macros that will conflict with -// cxxabi.h. -// FIXME: redefine these as __device__ functions. -#undef __cxa_vec_ctor -#undef __cxa_vec_cctor -#undef __cxa_vec_dtor -#undef __cxa_vec_new -#undef __cxa_vec_new2 -#undef __cxa_vec_new3 -#undef __cxa_vec_delete2 -#undef __cxa_vec_delete -#undef __cxa_vec_delete3 -#undef __cxa_pure_virtual - -// math_functions.hpp expects this host function be defined on MacOS, but it -// ends up not being there because of the games we play here. Just define it -// ourselves; it's simple enough. -#ifdef __APPLE__ -inline __host__ double __signbitd(double x) { - return std::signbit(x); -} -#endif - -// CUDA 9.1 no longer provides declarations for libdevice functions, so we need -// to provide our own. -#include <__clang_cuda_libdevice_declares.h> - -// Wrappers for many device-side standard library functions became compiler -// builtins in CUDA-9 and have been removed from the CUDA headers. Clang now -// provides its own implementation of the wrappers. -#if CUDA_VERSION >= 9000 -#include <__clang_cuda_device_functions.h> -#endif - -// __THROW is redefined to be empty by device_functions_decls.h in CUDA. Clang's -// counterpart does not do it, so we need to make it empty here to keep -// following CUDA includes happy. -#undef __THROW -#define __THROW - -// CUDA 8.0.41 relies on __USE_FAST_MATH__ and __CUDA_PREC_DIV's values. -// Previous versions used to check whether they are defined or not. -// CU_DEVICE_INVALID macro is only defined in 8.0.41, so we use it -// here to detect the switch. - -#if defined(CU_DEVICE_INVALID) -#if !defined(__USE_FAST_MATH__) -#define __USE_FAST_MATH__ 0 -#endif - -#if !defined(__CUDA_PREC_DIV) -#define __CUDA_PREC_DIV 0 -#endif -#endif - -// Temporarily poison __host__ macro to ensure it's not used by any of -// the headers we're about to include. -#pragma push_macro("__host__") -#define __host__ UNEXPECTED_HOST_ATTRIBUTE - -// device_functions.hpp and math_functions*.hpp use 'static -// __forceinline__' (with no __device__) for definitions of device -// functions. Temporarily redefine __forceinline__ to include -// __device__. -#pragma push_macro("__forceinline__") -#define __forceinline__ __device__ __inline__ __attribute__((always_inline)) -#if CUDA_VERSION < 9000 -#include "device_functions.hpp" -#endif - -// math_function.hpp uses the __USE_FAST_MATH__ macro to determine whether we -// get the slow-but-accurate or fast-but-inaccurate versions of functions like -// sin and exp. This is controlled in clang by -fcuda-approx-transcendentals. -// -// device_functions.hpp uses __USE_FAST_MATH__ for a different purpose (fast vs. -// slow divides), so we need to scope our define carefully here. -#pragma push_macro("__USE_FAST_MATH__") -#if defined(__CLANG_CUDA_APPROX_TRANSCENDENTALS__) -#define __USE_FAST_MATH__ 1 -#endif - -#if CUDA_VERSION >= 9000 -// CUDA-9.2 needs host-side memcpy for some host functions in -// device_functions.hpp -#if CUDA_VERSION >= 9020 -#include -#endif -#include "crt/math_functions.hpp" -#else -#include "math_functions.hpp" -#endif - -#pragma pop_macro("__USE_FAST_MATH__") - -#if CUDA_VERSION < 9000 -#include "math_functions_dbl_ptx3.hpp" -#endif -#pragma pop_macro("__forceinline__") - -// Pull in host-only functions that are only available when neither -// __CUDACC__ nor __CUDABE__ are defined. -#undef __MATH_FUNCTIONS_HPP__ -#undef __CUDABE__ -#if CUDA_VERSION < 9000 -#include "math_functions.hpp" -#endif -// Alas, additional overloads for these functions are hard to get to. -// Considering that we only need these overloads for a few functions, -// we can provide them here. -static inline float rsqrt(float __a) { return rsqrtf(__a); } -static inline float rcbrt(float __a) { return rcbrtf(__a); } -static inline float sinpi(float __a) { return sinpif(__a); } -static inline float cospi(float __a) { return cospif(__a); } -static inline void sincospi(float __a, float *__b, float *__c) { - return sincospif(__a, __b, __c); -} -static inline float erfcinv(float __a) { return erfcinvf(__a); } -static inline float normcdfinv(float __a) { return normcdfinvf(__a); } -static inline float normcdf(float __a) { return normcdff(__a); } -static inline float erfcx(float __a) { return erfcxf(__a); } - -#if CUDA_VERSION < 9000 -// For some reason single-argument variant is not always declared by -// CUDA headers. Alas, device_functions.hpp included below needs it. -static inline __device__ void __brkpt(int __c) { __brkpt(); } -#endif - -// Now include *.hpp with definitions of various GPU functions. Alas, -// a lot of thins get declared/defined with __host__ attribute which -// we don't want and we have to define it out. We also have to include -// {device,math}_functions.hpp again in order to extract the other -// branch of #if/else inside. -#define __host__ -#undef __CUDABE__ -#define __CUDACC__ -#if CUDA_VERSION >= 9000 -// Some atomic functions became compiler builtins in CUDA-9 , so we need their -// declarations. -#include "device_atomic_functions.h" -#endif -#undef __DEVICE_FUNCTIONS_HPP__ -#include "device_atomic_functions.hpp" -#if CUDA_VERSION >= 9000 -#include "crt/device_functions.hpp" -#include "crt/device_double_functions.hpp" -#else -#include "device_functions.hpp" -#define __CUDABE__ -#include "device_double_functions.h" -#undef __CUDABE__ -#endif -#include "sm_20_atomic_functions.hpp" -#include "sm_20_intrinsics.hpp" -#include "sm_32_atomic_functions.hpp" - -// Don't include sm_30_intrinsics.h and sm_32_intrinsics.h. These define the -// __shfl and __ldg intrinsics using inline (volatile) asm, but we want to -// define them using builtins so that the optimizer can reason about and across -// these instructions. In particular, using intrinsics for ldg gets us the -// [addr+imm] addressing mode, which, although it doesn't actually exist in the -// hardware, seems to generate faster machine code because ptxas can more easily -// reason about our code. - -#if CUDA_VERSION >= 8000 -#pragma push_macro("__CUDA_ARCH__") -#undef __CUDA_ARCH__ -#include "sm_60_atomic_functions.hpp" -#include "sm_61_intrinsics.hpp" -#pragma pop_macro("__CUDA_ARCH__") -#endif - -#undef __MATH_FUNCTIONS_HPP__ - -// math_functions.hpp defines ::signbit as a __host__ __device__ function. This -// conflicts with libstdc++'s constexpr ::signbit, so we have to rename -// math_function.hpp's ::signbit. It's guarded by #undef signbit, but that's -// conditional on __GNUC__. :) -#pragma push_macro("signbit") -#pragma push_macro("__GNUC__") -#undef __GNUC__ -#define signbit __ignored_cuda_signbit - -// CUDA-9 omits device-side definitions of some math functions if it sees -// include guard from math.h wrapper from libstdc++. We have to undo the header -// guard temporarily to get the definitions we need. -#pragma push_macro("_GLIBCXX_MATH_H") -#pragma push_macro("_LIBCPP_VERSION") -#if CUDA_VERSION >= 9000 -#undef _GLIBCXX_MATH_H -// We also need to undo another guard that checks for libc++ 3.8+ -#ifdef _LIBCPP_VERSION -#define _LIBCPP_VERSION 3700 -#endif -#endif - -#if CUDA_VERSION >= 9000 -#include "crt/math_functions.hpp" -#else -#include "math_functions.hpp" -#endif -#pragma pop_macro("_GLIBCXX_MATH_H") -#pragma pop_macro("_LIBCPP_VERSION") -#pragma pop_macro("__GNUC__") -#pragma pop_macro("signbit") - -#pragma pop_macro("__host__") - -#include "texture_indirect_functions.h" - -// Restore state of __CUDA_ARCH__ and __THROW we had on entry. -#pragma pop_macro("__CUDA_ARCH__") -#pragma pop_macro("__THROW") - -// Set up compiler macros expected to be seen during compilation. -#undef __CUDABE__ -#define __CUDACC__ - -extern "C" { -// Device-side CUDA system calls. -// http://docs.nvidia.com/cuda/ptx-writers-guide-to-interoperability/index.html#system-calls -// We need these declarations and wrappers for device-side -// malloc/free/printf calls to work without relying on -// -fcuda-disable-target-call-checks option. -__device__ int vprintf(const char *, const char *); -__device__ void free(void *) __attribute((nothrow)); -__device__ void *malloc(size_t) __attribute((nothrow)) __attribute__((malloc)); -__device__ void __assertfail(const char *__message, const char *__file, - unsigned __line, const char *__function, - size_t __charSize) __attribute__((noreturn)); - -// In order for standard assert() macro on linux to work we need to -// provide device-side __assert_fail() -__device__ static inline void __assert_fail(const char *__message, - const char *__file, unsigned __line, - const char *__function) { - __assertfail(__message, __file, __line, __function, sizeof(char)); -} - -// Clang will convert printf into vprintf, but we still need -// device-side declaration for it. -__device__ int printf(const char *, ...); -} // extern "C" - -// We also need device-side std::malloc and std::free. -namespace std { -__device__ static inline void free(void *__ptr) { ::free(__ptr); } -__device__ static inline void *malloc(size_t __size) { - return ::malloc(__size); -} -} // namespace std - -// Out-of-line implementations from __clang_cuda_builtin_vars.h. These need to -// come after we've pulled in the definition of uint3 and dim3. - -__device__ inline __cuda_builtin_threadIdx_t::operator uint3() const { - uint3 ret; - ret.x = x; - ret.y = y; - ret.z = z; - return ret; -} - -__device__ inline __cuda_builtin_blockIdx_t::operator uint3() const { - uint3 ret; - ret.x = x; - ret.y = y; - ret.z = z; - return ret; -} - -__device__ inline __cuda_builtin_blockDim_t::operator dim3() const { - return dim3(x, y, z); -} - -__device__ inline __cuda_builtin_gridDim_t::operator dim3() const { - return dim3(x, y, z); -} - -#include <__clang_cuda_cmath.h> -#include <__clang_cuda_intrinsics.h> -#include <__clang_cuda_complex_builtins.h> - -// curand_mtgp32_kernel helpfully redeclares blockDim and threadIdx in host -// mode, giving them their "proper" types of dim3 and uint3. This is -// incompatible with the types we give in __clang_cuda_builtin_vars.h. As as -// hack, force-include the header (nvcc doesn't include it by default) but -// redefine dim3 and uint3 to our builtin types. (Thankfully dim3 and uint3 are -// only used here for the redeclarations of blockDim and threadIdx.) -#pragma push_macro("dim3") -#pragma push_macro("uint3") -#define dim3 __cuda_builtin_blockDim_t -#define uint3 __cuda_builtin_threadIdx_t -#include "curand_mtgp32_kernel.h" -#pragma pop_macro("dim3") -#pragma pop_macro("uint3") -#pragma pop_macro("__USE_FAST_MATH__") -#pragma pop_macro("__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__") - -// CUDA runtime uses this undocumented function to access kernel launch -// configuration. The declaration is in crt/device_functions.h but that file -// includes a lot of other stuff we don't want. Instead, we'll provide our own -// declaration for it here. -#if CUDA_VERSION >= 9020 -extern "C" unsigned __cudaPushCallConfiguration(dim3 gridDim, dim3 blockDim, - size_t sharedMem = 0, - void *stream = 0); -#endif - -#endif // __CUDA__ -#endif // __CLANG_CUDA_RUNTIME_WRAPPER_H__ diff --git a/bin/app/data/cxx/include/__stddef_max_align_t.h b/bin/app/data/cxx/include/__stddef_max_align_t.h deleted file mode 100644 index e3b43928..00000000 --- a/bin/app/data/cxx/include/__stddef_max_align_t.h +++ /dev/null @@ -1,27 +0,0 @@ -/*===---- __stddef_max_align_t.h - Definition of max_align_t for modules ---=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_MAX_ALIGN_T_DEFINED -#define __CLANG_MAX_ALIGN_T_DEFINED - -#if defined(_MSC_VER) -typedef double max_align_t; -#elif defined(__APPLE__) -typedef long double max_align_t; -#else -// Define 'max_align_t' to match the GCC definition. -typedef struct { - long long __clang_max_align_nonce1 - __attribute__((__aligned__(__alignof__(long long)))); - long double __clang_max_align_nonce2 - __attribute__((__aligned__(__alignof__(long double)))); -} max_align_t; -#endif - -#endif diff --git a/bin/app/data/cxx/include/__wmmintrin_aes.h b/bin/app/data/cxx/include/__wmmintrin_aes.h deleted file mode 100644 index f540319c..00000000 --- a/bin/app/data/cxx/include/__wmmintrin_aes.h +++ /dev/null @@ -1,140 +0,0 @@ -/*===---- __wmmintrin_aes.h - AES intrinsics -------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __WMMINTRIN_H -#error "Never use <__wmmintrin_aes.h> directly; include instead." -#endif - -#ifndef __WMMINTRIN_AES_H -#define __WMMINTRIN_AES_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("aes"), __min_vector_width__(128))) - -/// Performs a single round of AES encryption using the Equivalent -/// Inverse Cipher, transforming the state value from the first source -/// operand using a 128-bit round key value contained in the second source -/// operand, and writes the result to the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VAESENC instruction. -/// -/// \param __V -/// A 128-bit integer vector containing the state value. -/// \param __R -/// A 128-bit integer vector containing the round key value. -/// \returns A 128-bit integer vector containing the encrypted value. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_aesenc_si128(__m128i __V, __m128i __R) -{ - return (__m128i)__builtin_ia32_aesenc128((__v2di)__V, (__v2di)__R); -} - -/// Performs the final round of AES encryption using the Equivalent -/// Inverse Cipher, transforming the state value from the first source -/// operand using a 128-bit round key value contained in the second source -/// operand, and writes the result to the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VAESENCLAST instruction. -/// -/// \param __V -/// A 128-bit integer vector containing the state value. -/// \param __R -/// A 128-bit integer vector containing the round key value. -/// \returns A 128-bit integer vector containing the encrypted value. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_aesenclast_si128(__m128i __V, __m128i __R) -{ - return (__m128i)__builtin_ia32_aesenclast128((__v2di)__V, (__v2di)__R); -} - -/// Performs a single round of AES decryption using the Equivalent -/// Inverse Cipher, transforming the state value from the first source -/// operand using a 128-bit round key value contained in the second source -/// operand, and writes the result to the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VAESDEC instruction. -/// -/// \param __V -/// A 128-bit integer vector containing the state value. -/// \param __R -/// A 128-bit integer vector containing the round key value. -/// \returns A 128-bit integer vector containing the decrypted value. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_aesdec_si128(__m128i __V, __m128i __R) -{ - return (__m128i)__builtin_ia32_aesdec128((__v2di)__V, (__v2di)__R); -} - -/// Performs the final round of AES decryption using the Equivalent -/// Inverse Cipher, transforming the state value from the first source -/// operand using a 128-bit round key value contained in the second source -/// operand, and writes the result to the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VAESDECLAST instruction. -/// -/// \param __V -/// A 128-bit integer vector containing the state value. -/// \param __R -/// A 128-bit integer vector containing the round key value. -/// \returns A 128-bit integer vector containing the decrypted value. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_aesdeclast_si128(__m128i __V, __m128i __R) -{ - return (__m128i)__builtin_ia32_aesdeclast128((__v2di)__V, (__v2di)__R); -} - -/// Applies the AES InvMixColumns() transformation to an expanded key -/// contained in the source operand, and writes the result to the -/// destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VAESIMC instruction. -/// -/// \param __V -/// A 128-bit integer vector containing the expanded key. -/// \returns A 128-bit integer vector containing the transformed value. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_aesimc_si128(__m128i __V) -{ - return (__m128i)__builtin_ia32_aesimc128((__v2di)__V); -} - -/// Generates a round key for AES encryption, operating on 128-bit data -/// specified in the first source operand and using an 8-bit round constant -/// specified by the second source operand, and writes the result to the -/// destination. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_aeskeygenassist_si128(__m128i C, const int R); -/// \endcode -/// -/// This intrinsic corresponds to the AESKEYGENASSIST instruction. -/// -/// \param C -/// A 128-bit integer vector that is used to generate the AES encryption key. -/// \param R -/// An 8-bit round constant used to generate the AES encryption key. -/// \returns A 128-bit round key for AES encryption. -#define _mm_aeskeygenassist_si128(C, R) \ - (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R)) - -#undef __DEFAULT_FN_ATTRS - -#endif /* __WMMINTRIN_AES_H */ diff --git a/bin/app/data/cxx/include/__wmmintrin_pclmul.h b/bin/app/data/cxx/include/__wmmintrin_pclmul.h deleted file mode 100644 index fef4b93d..00000000 --- a/bin/app/data/cxx/include/__wmmintrin_pclmul.h +++ /dev/null @@ -1,48 +0,0 @@ -/*===---- __wmmintrin_pclmul.h - PCMUL intrinsics ---------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __WMMINTRIN_H -#error "Never use <__wmmintrin_pclmul.h> directly; include instead." -#endif - -#ifndef __WMMINTRIN_PCLMUL_H -#define __WMMINTRIN_PCLMUL_H - -/// Multiplies two 64-bit integer values, which are selected from source -/// operands using the immediate-value operand. The multiplication is a -/// carry-less multiplication, and the 128-bit integer product is stored in -/// the destination. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_clmulepi64_si128(__m128i __X, __m128i __Y, const int __I); -/// \endcode -/// -/// This intrinsic corresponds to the VPCLMULQDQ instruction. -/// -/// \param __X -/// A 128-bit vector of [2 x i64] containing one of the source operands. -/// \param __Y -/// A 128-bit vector of [2 x i64] containing one of the source operands. -/// \param __I -/// An immediate value specifying which 64-bit values to select from the -/// operands. Bit 0 is used to select a value from operand \a __X, and bit -/// 4 is used to select a value from operand \a __Y: \n -/// Bit[0]=0 indicates that bits[63:0] of operand \a __X are used. \n -/// Bit[0]=1 indicates that bits[127:64] of operand \a __X are used. \n -/// Bit[4]=0 indicates that bits[63:0] of operand \a __Y are used. \n -/// Bit[4]=1 indicates that bits[127:64] of operand \a __Y are used. -/// \returns The 128-bit integer vector containing the result of the carry-less -/// multiplication of the selected 64-bit values. -#define _mm_clmulepi64_si128(X, Y, I) \ - ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(X), \ - (__v2di)(__m128i)(Y), (char)(I))) - -#endif /* __WMMINTRIN_PCLMUL_H */ diff --git a/bin/app/data/cxx/include/adxintrin.h b/bin/app/data/cxx/include/adxintrin.h deleted file mode 100644 index 72b9ed08..00000000 --- a/bin/app/data/cxx/include/adxintrin.h +++ /dev/null @@ -1,72 +0,0 @@ -/*===---- adxintrin.h - ADX intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __ADXINTRIN_H -#define __ADXINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__)) - -/* Intrinsics that are available only if __ADX__ defined */ -static __inline unsigned char __attribute__((__always_inline__, __nodebug__, __target__("adx"))) -_addcarryx_u32(unsigned char __cf, unsigned int __x, unsigned int __y, - unsigned int *__p) -{ - return __builtin_ia32_addcarryx_u32(__cf, __x, __y, __p); -} - -#ifdef __x86_64__ -static __inline unsigned char __attribute__((__always_inline__, __nodebug__, __target__("adx"))) -_addcarryx_u64(unsigned char __cf, unsigned long long __x, - unsigned long long __y, unsigned long long *__p) -{ - return __builtin_ia32_addcarryx_u64(__cf, __x, __y, __p); -} -#endif - -/* Intrinsics that are also available if __ADX__ undefined */ -static __inline unsigned char __DEFAULT_FN_ATTRS -_addcarry_u32(unsigned char __cf, unsigned int __x, unsigned int __y, - unsigned int *__p) -{ - return __builtin_ia32_addcarryx_u32(__cf, __x, __y, __p); -} - -#ifdef __x86_64__ -static __inline unsigned char __DEFAULT_FN_ATTRS -_addcarry_u64(unsigned char __cf, unsigned long long __x, - unsigned long long __y, unsigned long long *__p) -{ - return __builtin_ia32_addcarryx_u64(__cf, __x, __y, __p); -} -#endif - -static __inline unsigned char __DEFAULT_FN_ATTRS -_subborrow_u32(unsigned char __cf, unsigned int __x, unsigned int __y, - unsigned int *__p) -{ - return __builtin_ia32_subborrow_u32(__cf, __x, __y, __p); -} - -#ifdef __x86_64__ -static __inline unsigned char __DEFAULT_FN_ATTRS -_subborrow_u64(unsigned char __cf, unsigned long long __x, - unsigned long long __y, unsigned long long *__p) -{ - return __builtin_ia32_subborrow_u64(__cf, __x, __y, __p); -} -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif /* __ADXINTRIN_H */ diff --git a/bin/app/data/cxx/include/altivec.h b/bin/app/data/cxx/include/altivec.h deleted file mode 100644 index 4008440b..00000000 --- a/bin/app/data/cxx/include/altivec.h +++ /dev/null @@ -1,16739 +0,0 @@ -/*===---- altivec.h - Standard header for type generic math ---------------===*\ - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * -\*===----------------------------------------------------------------------===*/ - -#ifndef __ALTIVEC_H -#define __ALTIVEC_H - -#ifndef __ALTIVEC__ -#error "AltiVec support not enabled" -#endif - -/* Constants for mapping CR6 bits to predicate result. */ - -#define __CR6_EQ 0 -#define __CR6_EQ_REV 1 -#define __CR6_LT 2 -#define __CR6_LT_REV 3 - -/* Constants for vec_test_data_class */ -#define __VEC_CLASS_FP_SUBNORMAL_N (1 << 0) -#define __VEC_CLASS_FP_SUBNORMAL_P (1 << 1) -#define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \ - __VEC_CLASS_FP_SUBNORMAL_N) -#define __VEC_CLASS_FP_ZERO_N (1<<2) -#define __VEC_CLASS_FP_ZERO_P (1<<3) -#define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | \ - __VEC_CLASS_FP_ZERO_N) -#define __VEC_CLASS_FP_INFINITY_N (1<<4) -#define __VEC_CLASS_FP_INFINITY_P (1<<5) -#define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \ - __VEC_CLASS_FP_INFINITY_N) -#define __VEC_CLASS_FP_NAN (1<<6) -#define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \ - __VEC_CLASS_FP_SUBNORMAL | \ - __VEC_CLASS_FP_ZERO | \ - __VEC_CLASS_FP_INFINITY) - -#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__)) - -#ifdef __POWER9_VECTOR__ -#include -#endif - -static __inline__ vector signed char __ATTRS_o_ai vec_perm( - vector signed char __a, vector signed char __b, vector unsigned char __c); - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_perm(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c); - -static __inline__ vector bool char __ATTRS_o_ai -vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c); - -static __inline__ vector short __ATTRS_o_ai vec_perm(vector signed short __a, - vector signed short __b, - vector unsigned char __c); - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_perm(vector unsigned short __a, vector unsigned short __b, - vector unsigned char __c); - -static __inline__ vector bool short __ATTRS_o_ai vec_perm( - vector bool short __a, vector bool short __b, vector unsigned char __c); - -static __inline__ vector pixel __ATTRS_o_ai vec_perm(vector pixel __a, - vector pixel __b, - vector unsigned char __c); - -static __inline__ vector int __ATTRS_o_ai vec_perm(vector signed int __a, - vector signed int __b, - vector unsigned char __c); - -static __inline__ vector unsigned int __ATTRS_o_ai vec_perm( - vector unsigned int __a, vector unsigned int __b, vector unsigned char __c); - -static __inline__ vector bool int __ATTRS_o_ai -vec_perm(vector bool int __a, vector bool int __b, vector unsigned char __c); - -static __inline__ vector float __ATTRS_o_ai vec_perm(vector float __a, - vector float __b, - vector unsigned char __c); - -#ifdef __VSX__ -static __inline__ vector long long __ATTRS_o_ai -vec_perm(vector signed long long __a, vector signed long long __b, - vector unsigned char __c); - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_perm(vector unsigned long long __a, vector unsigned long long __b, - vector unsigned char __c); - -static __inline__ vector bool long long __ATTRS_o_ai -vec_perm(vector bool long long __a, vector bool long long __b, - vector unsigned char __c); - -static __inline__ vector double __ATTRS_o_ai vec_perm(vector double __a, - vector double __b, - vector unsigned char __c); -#endif - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_xor(vector unsigned char __a, vector unsigned char __b); - -/* vec_abs */ - -#define __builtin_altivec_abs_v16qi vec_abs -#define __builtin_altivec_abs_v8hi vec_abs -#define __builtin_altivec_abs_v4si vec_abs - -static __inline__ vector signed char __ATTRS_o_ai -vec_abs(vector signed char __a) { - return __builtin_altivec_vmaxsb(__a, -__a); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_abs(vector signed short __a) { - return __builtin_altivec_vmaxsh(__a, -__a); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_abs(vector signed int __a) { - return __builtin_altivec_vmaxsw(__a, -__a); -} - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ vector signed long long __ATTRS_o_ai -vec_abs(vector signed long long __a) { - return __builtin_altivec_vmaxsd(__a, -__a); -} -#endif - -static __inline__ vector float __ATTRS_o_ai vec_abs(vector float __a) { -#ifdef __VSX__ - return __builtin_vsx_xvabssp(__a); -#else - vector unsigned int __res = - (vector unsigned int)__a & (vector unsigned int)(0x7FFFFFFF); - return (vector float)__res; -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_abs(vector double __a) { - return __builtin_vsx_xvabsdp(__a); -} -#endif - -/* vec_abss */ -#define __builtin_altivec_abss_v16qi vec_abss -#define __builtin_altivec_abss_v8hi vec_abss -#define __builtin_altivec_abss_v4si vec_abss - -static __inline__ vector signed char __ATTRS_o_ai -vec_abss(vector signed char __a) { - return __builtin_altivec_vmaxsb( - __a, __builtin_altivec_vsubsbs((vector signed char)(0), __a)); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_abss(vector signed short __a) { - return __builtin_altivec_vmaxsh( - __a, __builtin_altivec_vsubshs((vector signed short)(0), __a)); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_abss(vector signed int __a) { - return __builtin_altivec_vmaxsw( - __a, __builtin_altivec_vsubsws((vector signed int)(0), __a)); -} - -/* vec_absd */ -#if defined(__POWER9_VECTOR__) - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_absd(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vabsdub(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_absd(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vabsduh(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_absd(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vabsduw(__a, __b); -} - -#endif /* End __POWER9_VECTOR__ */ - -/* vec_add */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_add(vector signed char __a, vector signed char __b) { - return __a + __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_add(vector bool char __a, vector signed char __b) { - return (vector signed char)__a + __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_add(vector signed char __a, vector bool char __b) { - return __a + (vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_add(vector unsigned char __a, vector unsigned char __b) { - return __a + __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_add(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a + __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_add(vector unsigned char __a, vector bool char __b) { - return __a + (vector unsigned char)__b; -} - -static __inline__ vector short __ATTRS_o_ai vec_add(vector short __a, - vector short __b) { - return __a + __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_add(vector bool short __a, - vector short __b) { - return (vector short)__a + __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_add(vector short __a, - vector bool short __b) { - return __a + (vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_add(vector unsigned short __a, vector unsigned short __b) { - return __a + __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_add(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a + __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_add(vector unsigned short __a, vector bool short __b) { - return __a + (vector unsigned short)__b; -} - -static __inline__ vector int __ATTRS_o_ai vec_add(vector int __a, - vector int __b) { - return __a + __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_add(vector bool int __a, - vector int __b) { - return (vector int)__a + __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_add(vector int __a, - vector bool int __b) { - return __a + (vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_add(vector unsigned int __a, vector unsigned int __b) { - return __a + __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_add(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a + __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_add(vector unsigned int __a, vector bool int __b) { - return __a + (vector unsigned int)__b; -} - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ vector signed long long __ATTRS_o_ai -vec_add(vector signed long long __a, vector signed long long __b) { - return __a + __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_add(vector unsigned long long __a, vector unsigned long long __b) { - return __a + __b; -} - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_add(vector signed __int128 __a, vector signed __int128 __b) { - return __a + __b; -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_add(vector unsigned __int128 __a, vector unsigned __int128 __b) { - return __a + __b; -} -#endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__) - -static __inline__ vector float __ATTRS_o_ai vec_add(vector float __a, - vector float __b) { - return __a + __b; -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_add(vector double __a, - vector double __b) { - return __a + __b; -} -#endif // __VSX__ - -/* vec_adde */ - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_adde(vector signed __int128 __a, vector signed __int128 __b, - vector signed __int128 __c) { - return __builtin_altivec_vaddeuqm(__a, __b, __c); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_adde(vector unsigned __int128 __a, vector unsigned __int128 __b, - vector unsigned __int128 __c) { - return __builtin_altivec_vaddeuqm(__a, __b, __c); -} -#endif - -static __inline__ vector signed int __ATTRS_o_ai -vec_adde(vector signed int __a, vector signed int __b, - vector signed int __c) { - vector signed int __mask = {1, 1, 1, 1}; - vector signed int __carry = __c & __mask; - return vec_add(vec_add(__a, __b), __carry); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_adde(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - vector unsigned int __mask = {1, 1, 1, 1}; - vector unsigned int __carry = __c & __mask; - return vec_add(vec_add(__a, __b), __carry); -} - -/* vec_addec */ - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_addec(vector signed __int128 __a, vector signed __int128 __b, - vector signed __int128 __c) { - return __builtin_altivec_vaddecuq(__a, __b, __c); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_addec(vector unsigned __int128 __a, vector unsigned __int128 __b, - vector unsigned __int128 __c) { - return __builtin_altivec_vaddecuq(__a, __b, __c); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_addec(vector signed int __a, vector signed int __b, - vector signed int __c) { - - signed int __result[4]; - for (int i = 0; i < 4; i++) { - unsigned int __tempa = (unsigned int) __a[i]; - unsigned int __tempb = (unsigned int) __b[i]; - unsigned int __tempc = (unsigned int) __c[i]; - __tempc = __tempc & 0x00000001; - unsigned long long __longa = (unsigned long long) __tempa; - unsigned long long __longb = (unsigned long long) __tempb; - unsigned long long __longc = (unsigned long long) __tempc; - unsigned long long __sum = __longa + __longb + __longc; - unsigned long long __res = (__sum >> 32) & 0x01; - unsigned long long __tempres = (unsigned int) __res; - __result[i] = (signed int) __tempres; - } - - vector signed int ret = { __result[0], __result[1], __result[2], __result[3] }; - return ret; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_addec(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - - unsigned int __result[4]; - for (int i = 0; i < 4; i++) { - unsigned int __tempc = __c[i] & 1; - unsigned long long __longa = (unsigned long long) __a[i]; - unsigned long long __longb = (unsigned long long) __b[i]; - unsigned long long __longc = (unsigned long long) __tempc; - unsigned long long __sum = __longa + __longb + __longc; - unsigned long long __res = (__sum >> 32) & 0x01; - unsigned long long __tempres = (unsigned int) __res; - __result[i] = (signed int) __tempres; - } - - vector unsigned int ret = { __result[0], __result[1], __result[2], __result[3] }; - return ret; -} - -#endif - -/* vec_vaddubm */ - -#define __builtin_altivec_vaddubm vec_vaddubm - -static __inline__ vector signed char __ATTRS_o_ai -vec_vaddubm(vector signed char __a, vector signed char __b) { - return __a + __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vaddubm(vector bool char __a, vector signed char __b) { - return (vector signed char)__a + __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vaddubm(vector signed char __a, vector bool char __b) { - return __a + (vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vaddubm(vector unsigned char __a, vector unsigned char __b) { - return __a + __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vaddubm(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a + __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vaddubm(vector unsigned char __a, vector bool char __b) { - return __a + (vector unsigned char)__b; -} - -/* vec_vadduhm */ - -#define __builtin_altivec_vadduhm vec_vadduhm - -static __inline__ vector short __ATTRS_o_ai vec_vadduhm(vector short __a, - vector short __b) { - return __a + __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vadduhm(vector bool short __a, - vector short __b) { - return (vector short)__a + __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vadduhm(vector short __a, - vector bool short __b) { - return __a + (vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vadduhm(vector unsigned short __a, vector unsigned short __b) { - return __a + __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vadduhm(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a + __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vadduhm(vector unsigned short __a, vector bool short __b) { - return __a + (vector unsigned short)__b; -} - -/* vec_vadduwm */ - -#define __builtin_altivec_vadduwm vec_vadduwm - -static __inline__ vector int __ATTRS_o_ai vec_vadduwm(vector int __a, - vector int __b) { - return __a + __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vadduwm(vector bool int __a, - vector int __b) { - return (vector int)__a + __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vadduwm(vector int __a, - vector bool int __b) { - return __a + (vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vadduwm(vector unsigned int __a, vector unsigned int __b) { - return __a + __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vadduwm(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a + __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vadduwm(vector unsigned int __a, vector bool int __b) { - return __a + (vector unsigned int)__b; -} - -/* vec_vaddfp */ - -#define __builtin_altivec_vaddfp vec_vaddfp - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vaddfp(vector float __a, vector float __b) { - return __a + __b; -} - -/* vec_addc */ - -static __inline__ vector signed int __ATTRS_o_ai -vec_addc(vector signed int __a, vector signed int __b) { - return (vector signed int)__builtin_altivec_vaddcuw((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_addc(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vaddcuw(__a, __b); -} - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_addc(vector signed __int128 __a, vector signed __int128 __b) { - return (vector signed __int128)__builtin_altivec_vaddcuq( - (vector unsigned __int128)__a, (vector unsigned __int128)__b); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_addc(vector unsigned __int128 __a, vector unsigned __int128 __b) { - return __builtin_altivec_vaddcuq(__a, __b); -} -#endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__) - -/* vec_vaddcuw */ - -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_vaddcuw(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vaddcuw(__a, __b); -} - -/* vec_adds */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_adds(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vaddsbs(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_adds(vector bool char __a, vector signed char __b) { - return __builtin_altivec_vaddsbs((vector signed char)__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_adds(vector signed char __a, vector bool char __b) { - return __builtin_altivec_vaddsbs(__a, (vector signed char)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_adds(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vaddubs(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_adds(vector bool char __a, vector unsigned char __b) { - return __builtin_altivec_vaddubs((vector unsigned char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_adds(vector unsigned char __a, vector bool char __b) { - return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_adds(vector short __a, - vector short __b) { - return __builtin_altivec_vaddshs(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_adds(vector bool short __a, - vector short __b) { - return __builtin_altivec_vaddshs((vector short)__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_adds(vector short __a, - vector bool short __b) { - return __builtin_altivec_vaddshs(__a, (vector short)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_adds(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vadduhs(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_adds(vector bool short __a, vector unsigned short __b) { - return __builtin_altivec_vadduhs((vector unsigned short)__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_adds(vector unsigned short __a, vector bool short __b) { - return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_adds(vector int __a, - vector int __b) { - return __builtin_altivec_vaddsws(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_adds(vector bool int __a, - vector int __b) { - return __builtin_altivec_vaddsws((vector int)__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_adds(vector int __a, - vector bool int __b) { - return __builtin_altivec_vaddsws(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_adds(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vadduws(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_adds(vector bool int __a, vector unsigned int __b) { - return __builtin_altivec_vadduws((vector unsigned int)__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_adds(vector unsigned int __a, vector bool int __b) { - return __builtin_altivec_vadduws(__a, (vector unsigned int)__b); -} - -/* vec_vaddsbs */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vaddsbs(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vaddsbs(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vaddsbs(vector bool char __a, vector signed char __b) { - return __builtin_altivec_vaddsbs((vector signed char)__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vaddsbs(vector signed char __a, vector bool char __b) { - return __builtin_altivec_vaddsbs(__a, (vector signed char)__b); -} - -/* vec_vaddubs */ - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vaddubs(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vaddubs(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vaddubs(vector bool char __a, vector unsigned char __b) { - return __builtin_altivec_vaddubs((vector unsigned char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vaddubs(vector unsigned char __a, vector bool char __b) { - return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b); -} - -/* vec_vaddshs */ - -static __inline__ vector short __ATTRS_o_ai vec_vaddshs(vector short __a, - vector short __b) { - return __builtin_altivec_vaddshs(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vaddshs(vector bool short __a, - vector short __b) { - return __builtin_altivec_vaddshs((vector short)__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vaddshs(vector short __a, - vector bool short __b) { - return __builtin_altivec_vaddshs(__a, (vector short)__b); -} - -/* vec_vadduhs */ - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vadduhs(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vadduhs(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vadduhs(vector bool short __a, vector unsigned short __b) { - return __builtin_altivec_vadduhs((vector unsigned short)__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vadduhs(vector unsigned short __a, vector bool short __b) { - return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b); -} - -/* vec_vaddsws */ - -static __inline__ vector int __ATTRS_o_ai vec_vaddsws(vector int __a, - vector int __b) { - return __builtin_altivec_vaddsws(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vaddsws(vector bool int __a, - vector int __b) { - return __builtin_altivec_vaddsws((vector int)__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vaddsws(vector int __a, - vector bool int __b) { - return __builtin_altivec_vaddsws(__a, (vector int)__b); -} - -/* vec_vadduws */ - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vadduws(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vadduws(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vadduws(vector bool int __a, vector unsigned int __b) { - return __builtin_altivec_vadduws((vector unsigned int)__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vadduws(vector unsigned int __a, vector bool int __b) { - return __builtin_altivec_vadduws(__a, (vector unsigned int)__b); -} - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -/* vec_vadduqm */ - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_vadduqm(vector signed __int128 __a, vector signed __int128 __b) { - return __a + __b; -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_vadduqm(vector unsigned __int128 __a, vector unsigned __int128 __b) { - return __a + __b; -} - -/* vec_vaddeuqm */ - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_vaddeuqm(vector signed __int128 __a, vector signed __int128 __b, - vector signed __int128 __c) { - return __builtin_altivec_vaddeuqm(__a, __b, __c); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_vaddeuqm(vector unsigned __int128 __a, vector unsigned __int128 __b, - vector unsigned __int128 __c) { - return __builtin_altivec_vaddeuqm(__a, __b, __c); -} - -/* vec_vaddcuq */ - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_vaddcuq(vector signed __int128 __a, vector signed __int128 __b) { - return __builtin_altivec_vaddcuq(__a, __b); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_vaddcuq(vector unsigned __int128 __a, vector unsigned __int128 __b) { - return __builtin_altivec_vaddcuq(__a, __b); -} - -/* vec_vaddecuq */ - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_vaddecuq(vector signed __int128 __a, vector signed __int128 __b, - vector signed __int128 __c) { - return __builtin_altivec_vaddecuq(__a, __b, __c); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_vaddecuq(vector unsigned __int128 __a, vector unsigned __int128 __b, - vector unsigned __int128 __c) { - return __builtin_altivec_vaddecuq(__a, __b, __c); -} -#endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__) - -/* vec_and */ - -#define __builtin_altivec_vand vec_and - -static __inline__ vector signed char __ATTRS_o_ai -vec_and(vector signed char __a, vector signed char __b) { - return __a & __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_and(vector bool char __a, vector signed char __b) { - return (vector signed char)__a & __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_and(vector signed char __a, vector bool char __b) { - return __a & (vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_and(vector unsigned char __a, vector unsigned char __b) { - return __a & __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_and(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a & __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_and(vector unsigned char __a, vector bool char __b) { - return __a & (vector unsigned char)__b; -} - -static __inline__ vector bool char __ATTRS_o_ai vec_and(vector bool char __a, - vector bool char __b) { - return __a & __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_and(vector short __a, - vector short __b) { - return __a & __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_and(vector bool short __a, - vector short __b) { - return (vector short)__a & __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_and(vector short __a, - vector bool short __b) { - return __a & (vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_and(vector unsigned short __a, vector unsigned short __b) { - return __a & __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_and(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a & __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_and(vector unsigned short __a, vector bool short __b) { - return __a & (vector unsigned short)__b; -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_and(vector bool short __a, vector bool short __b) { - return __a & __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_and(vector int __a, - vector int __b) { - return __a & __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_and(vector bool int __a, - vector int __b) { - return (vector int)__a & __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_and(vector int __a, - vector bool int __b) { - return __a & (vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_and(vector unsigned int __a, vector unsigned int __b) { - return __a & __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_and(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a & __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_and(vector unsigned int __a, vector bool int __b) { - return __a & (vector unsigned int)__b; -} - -static __inline__ vector bool int __ATTRS_o_ai vec_and(vector bool int __a, - vector bool int __b) { - return __a & __b; -} - -static __inline__ vector float __ATTRS_o_ai vec_and(vector float __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a & (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_and(vector bool int __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a & (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_and(vector float __a, - vector bool int __b) { - vector unsigned int __res = - (vector unsigned int)__a & (vector unsigned int)__b; - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_and(vector bool long long __a, - vector double __b) { - vector unsigned long long __res = - (vector unsigned long long)__a & (vector unsigned long long)__b; - return (vector double)__res; -} - -static __inline__ vector double __ATTRS_o_ai -vec_and(vector double __a, vector bool long long __b) { - vector unsigned long long __res = - (vector unsigned long long)__a & (vector unsigned long long)__b; - return (vector double)__res; -} - -static __inline__ vector double __ATTRS_o_ai vec_and(vector double __a, - vector double __b) { - vector unsigned long long __res = - (vector unsigned long long)__a & (vector unsigned long long)__b; - return (vector double)__res; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_and(vector signed long long __a, vector signed long long __b) { - return __a & __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_and(vector bool long long __a, vector signed long long __b) { - return (vector signed long long)__a & __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_and(vector signed long long __a, vector bool long long __b) { - return __a & (vector signed long long)__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_and(vector unsigned long long __a, vector unsigned long long __b) { - return __a & __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_and(vector bool long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__a & __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_and(vector unsigned long long __a, vector bool long long __b) { - return __a & (vector unsigned long long)__b; -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_and(vector bool long long __a, vector bool long long __b) { - return __a & __b; -} -#endif - -/* vec_vand */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vand(vector signed char __a, vector signed char __b) { - return __a & __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vand(vector bool char __a, vector signed char __b) { - return (vector signed char)__a & __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vand(vector signed char __a, vector bool char __b) { - return __a & (vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vand(vector unsigned char __a, vector unsigned char __b) { - return __a & __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vand(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a & __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vand(vector unsigned char __a, vector bool char __b) { - return __a & (vector unsigned char)__b; -} - -static __inline__ vector bool char __ATTRS_o_ai vec_vand(vector bool char __a, - vector bool char __b) { - return __a & __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vand(vector short __a, - vector short __b) { - return __a & __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vand(vector bool short __a, - vector short __b) { - return (vector short)__a & __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vand(vector short __a, - vector bool short __b) { - return __a & (vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vand(vector unsigned short __a, vector unsigned short __b) { - return __a & __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vand(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a & __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vand(vector unsigned short __a, vector bool short __b) { - return __a & (vector unsigned short)__b; -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vand(vector bool short __a, vector bool short __b) { - return __a & __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vand(vector int __a, - vector int __b) { - return __a & __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vand(vector bool int __a, - vector int __b) { - return (vector int)__a & __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vand(vector int __a, - vector bool int __b) { - return __a & (vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vand(vector unsigned int __a, vector unsigned int __b) { - return __a & __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vand(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a & __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vand(vector unsigned int __a, vector bool int __b) { - return __a & (vector unsigned int)__b; -} - -static __inline__ vector bool int __ATTRS_o_ai vec_vand(vector bool int __a, - vector bool int __b) { - return __a & __b; -} - -static __inline__ vector float __ATTRS_o_ai vec_vand(vector float __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a & (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_vand(vector bool int __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a & (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_vand(vector float __a, - vector bool int __b) { - vector unsigned int __res = - (vector unsigned int)__a & (vector unsigned int)__b; - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_vand(vector signed long long __a, vector signed long long __b) { - return __a & __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_vand(vector bool long long __a, vector signed long long __b) { - return (vector signed long long)__a & __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_vand(vector signed long long __a, vector bool long long __b) { - return __a & (vector signed long long)__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vand(vector unsigned long long __a, vector unsigned long long __b) { - return __a & __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vand(vector bool long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__a & __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vand(vector unsigned long long __a, vector bool long long __b) { - return __a & (vector unsigned long long)__b; -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_vand(vector bool long long __a, vector bool long long __b) { - return __a & __b; -} -#endif - -/* vec_andc */ - -#define __builtin_altivec_vandc vec_andc - -static __inline__ vector signed char __ATTRS_o_ai -vec_andc(vector signed char __a, vector signed char __b) { - return __a & ~__b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_andc(vector bool char __a, vector signed char __b) { - return (vector signed char)__a & ~__b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_andc(vector signed char __a, vector bool char __b) { - return __a & ~(vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_andc(vector unsigned char __a, vector unsigned char __b) { - return __a & ~__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_andc(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a & ~__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_andc(vector unsigned char __a, vector bool char __b) { - return __a & ~(vector unsigned char)__b; -} - -static __inline__ vector bool char __ATTRS_o_ai vec_andc(vector bool char __a, - vector bool char __b) { - return __a & ~__b; -} - -static __inline__ vector short __ATTRS_o_ai vec_andc(vector short __a, - vector short __b) { - return __a & ~__b; -} - -static __inline__ vector short __ATTRS_o_ai vec_andc(vector bool short __a, - vector short __b) { - return (vector short)__a & ~__b; -} - -static __inline__ vector short __ATTRS_o_ai vec_andc(vector short __a, - vector bool short __b) { - return __a & ~(vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_andc(vector unsigned short __a, vector unsigned short __b) { - return __a & ~__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_andc(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a & ~__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_andc(vector unsigned short __a, vector bool short __b) { - return __a & ~(vector unsigned short)__b; -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_andc(vector bool short __a, vector bool short __b) { - return __a & ~__b; -} - -static __inline__ vector int __ATTRS_o_ai vec_andc(vector int __a, - vector int __b) { - return __a & ~__b; -} - -static __inline__ vector int __ATTRS_o_ai vec_andc(vector bool int __a, - vector int __b) { - return (vector int)__a & ~__b; -} - -static __inline__ vector int __ATTRS_o_ai vec_andc(vector int __a, - vector bool int __b) { - return __a & ~(vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_andc(vector unsigned int __a, vector unsigned int __b) { - return __a & ~__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_andc(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a & ~__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_andc(vector unsigned int __a, vector bool int __b) { - return __a & ~(vector unsigned int)__b; -} - -static __inline__ vector bool int __ATTRS_o_ai vec_andc(vector bool int __a, - vector bool int __b) { - return __a & ~__b; -} - -static __inline__ vector float __ATTRS_o_ai vec_andc(vector float __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a & ~(vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_andc(vector bool int __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a & ~(vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_andc(vector float __a, - vector bool int __b) { - vector unsigned int __res = - (vector unsigned int)__a & ~(vector unsigned int)__b; - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_andc(vector bool long long __a, - vector double __b) { - vector unsigned long long __res = - (vector unsigned long long)__a & ~(vector unsigned long long)__b; - return (vector double)__res; -} - -static __inline__ vector double __ATTRS_o_ai -vec_andc(vector double __a, vector bool long long __b) { - vector unsigned long long __res = - (vector unsigned long long)__a & ~(vector unsigned long long)__b; - return (vector double)__res; -} - -static __inline__ vector double __ATTRS_o_ai vec_andc(vector double __a, - vector double __b) { - vector unsigned long long __res = - (vector unsigned long long)__a & ~(vector unsigned long long)__b; - return (vector double)__res; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_andc(vector signed long long __a, vector signed long long __b) { - return __a & ~__b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_andc(vector bool long long __a, vector signed long long __b) { - return (vector signed long long)__a & ~__b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_andc(vector signed long long __a, vector bool long long __b) { - return __a & ~(vector signed long long)__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_andc(vector unsigned long long __a, vector unsigned long long __b) { - return __a & ~__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_andc(vector bool long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__a & ~__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_andc(vector unsigned long long __a, vector bool long long __b) { - return __a & ~(vector unsigned long long)__b; -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_andc(vector bool long long __a, vector bool long long __b) { - return __a & ~__b; -} -#endif - -/* vec_vandc */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vandc(vector signed char __a, vector signed char __b) { - return __a & ~__b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vandc(vector bool char __a, vector signed char __b) { - return (vector signed char)__a & ~__b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vandc(vector signed char __a, vector bool char __b) { - return __a & ~(vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vandc(vector unsigned char __a, vector unsigned char __b) { - return __a & ~__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vandc(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a & ~__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vandc(vector unsigned char __a, vector bool char __b) { - return __a & ~(vector unsigned char)__b; -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vandc(vector bool char __a, vector bool char __b) { - return __a & ~__b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vandc(vector short __a, - vector short __b) { - return __a & ~__b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vandc(vector bool short __a, - vector short __b) { - return (vector short)__a & ~__b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vandc(vector short __a, - vector bool short __b) { - return __a & ~(vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vandc(vector unsigned short __a, vector unsigned short __b) { - return __a & ~__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vandc(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a & ~__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vandc(vector unsigned short __a, vector bool short __b) { - return __a & ~(vector unsigned short)__b; -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vandc(vector bool short __a, vector bool short __b) { - return __a & ~__b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vandc(vector int __a, - vector int __b) { - return __a & ~__b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vandc(vector bool int __a, - vector int __b) { - return (vector int)__a & ~__b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vandc(vector int __a, - vector bool int __b) { - return __a & ~(vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vandc(vector unsigned int __a, vector unsigned int __b) { - return __a & ~__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vandc(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a & ~__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vandc(vector unsigned int __a, vector bool int __b) { - return __a & ~(vector unsigned int)__b; -} - -static __inline__ vector bool int __ATTRS_o_ai vec_vandc(vector bool int __a, - vector bool int __b) { - return __a & ~__b; -} - -static __inline__ vector float __ATTRS_o_ai vec_vandc(vector float __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a & ~(vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_vandc(vector bool int __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a & ~(vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_vandc(vector float __a, - vector bool int __b) { - vector unsigned int __res = - (vector unsigned int)__a & ~(vector unsigned int)__b; - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_vandc(vector signed long long __a, vector signed long long __b) { - return __a & ~__b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_vandc(vector bool long long __a, vector signed long long __b) { - return (vector signed long long)__a & ~__b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_vandc(vector signed long long __a, vector bool long long __b) { - return __a & ~(vector signed long long)__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vandc(vector unsigned long long __a, vector unsigned long long __b) { - return __a & ~__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vandc(vector bool long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__a & ~__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vandc(vector unsigned long long __a, vector bool long long __b) { - return __a & ~(vector unsigned long long)__b; -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_vandc(vector bool long long __a, vector bool long long __b) { - return __a & ~__b; -} -#endif - -/* vec_avg */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_avg(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vavgsb(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_avg(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vavgub(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_avg(vector short __a, - vector short __b) { - return __builtin_altivec_vavgsh(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_avg(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vavguh(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_avg(vector int __a, - vector int __b) { - return __builtin_altivec_vavgsw(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_avg(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vavguw(__a, __b); -} - -/* vec_vavgsb */ - -static __inline__ vector signed char __attribute__((__always_inline__)) -vec_vavgsb(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vavgsb(__a, __b); -} - -/* vec_vavgub */ - -static __inline__ vector unsigned char __attribute__((__always_inline__)) -vec_vavgub(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vavgub(__a, __b); -} - -/* vec_vavgsh */ - -static __inline__ vector short __attribute__((__always_inline__)) -vec_vavgsh(vector short __a, vector short __b) { - return __builtin_altivec_vavgsh(__a, __b); -} - -/* vec_vavguh */ - -static __inline__ vector unsigned short __attribute__((__always_inline__)) -vec_vavguh(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vavguh(__a, __b); -} - -/* vec_vavgsw */ - -static __inline__ vector int __attribute__((__always_inline__)) -vec_vavgsw(vector int __a, vector int __b) { - return __builtin_altivec_vavgsw(__a, __b); -} - -/* vec_vavguw */ - -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_vavguw(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vavguw(__a, __b); -} - -/* vec_ceil */ - -static __inline__ vector float __ATTRS_o_ai vec_ceil(vector float __a) { -#ifdef __VSX__ - return __builtin_vsx_xvrspip(__a); -#else - return __builtin_altivec_vrfip(__a); -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_ceil(vector double __a) { - return __builtin_vsx_xvrdpip(__a); -} -#endif - -/* vec_vrfip */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vrfip(vector float __a) { - return __builtin_altivec_vrfip(__a); -} - -/* vec_cmpb */ - -static __inline__ vector int __attribute__((__always_inline__)) -vec_cmpb(vector float __a, vector float __b) { - return __builtin_altivec_vcmpbfp(__a, __b); -} - -/* vec_vcmpbfp */ - -static __inline__ vector int __attribute__((__always_inline__)) -vec_vcmpbfp(vector float __a, vector float __b) { - return __builtin_altivec_vcmpbfp(__a, __b); -} - -/* vec_cmpeq */ - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpeq(vector signed char __a, vector signed char __b) { - return (vector bool char)__builtin_altivec_vcmpequb((vector char)__a, - (vector char)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpeq(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)__builtin_altivec_vcmpequb((vector char)__a, - (vector char)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpeq(vector bool char __a, vector bool char __b) { - return (vector bool char)__builtin_altivec_vcmpequb((vector char)__a, - (vector char)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai vec_cmpeq(vector short __a, - vector short __b) { - return (vector bool short)__builtin_altivec_vcmpequh(__a, __b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmpeq(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)__builtin_altivec_vcmpequh((vector short)__a, - (vector short)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmpeq(vector bool short __a, vector bool short __b) { - return (vector bool short)__builtin_altivec_vcmpequh((vector short)__a, - (vector short)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_cmpeq(vector int __a, - vector int __b) { - return (vector bool int)__builtin_altivec_vcmpequw(__a, __b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmpeq(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)__builtin_altivec_vcmpequw((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_cmpeq(vector bool int __a, - vector bool int __b) { - return (vector bool int)__builtin_altivec_vcmpequw((vector int)__a, - (vector int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpeq(vector signed long long __a, vector signed long long __b) { - return (vector bool long long)__builtin_altivec_vcmpequd(__a, __b); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) { - return (vector bool long long)__builtin_altivec_vcmpequd( - (vector long long)__a, (vector long long)__b); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpeq(vector bool long long __a, vector bool long long __b) { - return (vector bool long long)__builtin_altivec_vcmpequd( - (vector long long)__a, (vector long long)__b); -} - -#endif - -static __inline__ vector bool int __ATTRS_o_ai vec_cmpeq(vector float __a, - vector float __b) { -#ifdef __VSX__ - return (vector bool int)__builtin_vsx_xvcmpeqsp(__a, __b); -#else - return (vector bool int)__builtin_altivec_vcmpeqfp(__a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpeq(vector double __a, vector double __b) { - return (vector bool long long)__builtin_vsx_xvcmpeqdp(__a, __b); -} -#endif - -#ifdef __POWER9_VECTOR__ -/* vec_cmpne */ - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpne(vector bool char __a, vector bool char __b) { - return (vector bool char)__builtin_altivec_vcmpneb((vector char)__a, - (vector char)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpne(vector signed char __a, vector signed char __b) { - return (vector bool char)__builtin_altivec_vcmpneb((vector char)__a, - (vector char)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpne(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)__builtin_altivec_vcmpneb((vector char)__a, - (vector char)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmpne(vector bool short __a, vector bool short __b) { - return (vector bool short)__builtin_altivec_vcmpneh((vector short)__a, - (vector short)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmpne(vector signed short __a, vector signed short __b) { - return (vector bool short)__builtin_altivec_vcmpneh((vector short)__a, - (vector short)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmpne(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)__builtin_altivec_vcmpneh((vector short)__a, - (vector short)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmpne(vector bool int __a, vector bool int __b) { - return (vector bool int)__builtin_altivec_vcmpnew((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmpne(vector signed int __a, vector signed int __b) { - return (vector bool int)__builtin_altivec_vcmpnew((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmpne(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)__builtin_altivec_vcmpnew((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpne(vector bool long long __a, vector bool long long __b) { - return (vector bool long long) - ~(__builtin_altivec_vcmpequd((vector long long)__a, (vector long long)__b)); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpne(vector signed long long __a, vector signed long long __b) { - return (vector bool long long) - ~(__builtin_altivec_vcmpequd((vector long long)__a, (vector long long)__b)); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpne(vector unsigned long long __a, vector unsigned long long __b) { - return (vector bool long long) - ~(__builtin_altivec_vcmpequd((vector long long)__a, (vector long long)__b)); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmpne(vector float __a, vector float __b) { - return (vector bool int)__builtin_altivec_vcmpnew((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpne(vector double __a, vector double __b) { - return (vector bool long long) - ~(__builtin_altivec_vcmpequd((vector long long)__a, (vector long long)__b)); -} - -/* vec_cmpnez */ - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpnez(vector signed char __a, vector signed char __b) { - return (vector bool char)__builtin_altivec_vcmpnezb((vector char)__a, - (vector char)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpnez(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)__builtin_altivec_vcmpnezb((vector char)__a, - (vector char)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmpnez(vector signed short __a, vector signed short __b) { - return (vector bool short)__builtin_altivec_vcmpnezh((vector short)__a, - (vector short)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmpnez(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)__builtin_altivec_vcmpnezh((vector short)__a, - (vector short)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmpnez(vector signed int __a, vector signed int __b) { - return (vector bool int)__builtin_altivec_vcmpnezw((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmpnez(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)__builtin_altivec_vcmpnezw((vector int)__a, - (vector int)__b); -} - -static __inline__ signed int __ATTRS_o_ai -vec_cntlz_lsbb(vector signed char __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vctzlsbb(__a); -#else - return __builtin_altivec_vclzlsbb(__a); -#endif -} - -static __inline__ signed int __ATTRS_o_ai -vec_cntlz_lsbb(vector unsigned char __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vctzlsbb(__a); -#else - return __builtin_altivec_vclzlsbb(__a); -#endif -} - -static __inline__ signed int __ATTRS_o_ai -vec_cnttz_lsbb(vector signed char __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vclzlsbb(__a); -#else - return __builtin_altivec_vctzlsbb(__a); -#endif -} - -static __inline__ signed int __ATTRS_o_ai -vec_cnttz_lsbb(vector unsigned char __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vclzlsbb(__a); -#else - return __builtin_altivec_vctzlsbb(__a); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_parity_lsbb(vector unsigned int __a) { - return __builtin_altivec_vprtybw(__a); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_parity_lsbb(vector signed int __a) { - return __builtin_altivec_vprtybw(__a); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_parity_lsbb(vector unsigned __int128 __a) { - return __builtin_altivec_vprtybq(__a); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_parity_lsbb(vector signed __int128 __a) { - return __builtin_altivec_vprtybq(__a); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_parity_lsbb(vector unsigned long long __a) { - return __builtin_altivec_vprtybd(__a); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_parity_lsbb(vector signed long long __a) { - return __builtin_altivec_vprtybd(__a); -} - -#endif - -/* vec_cmpgt */ - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpgt(vector signed char __a, vector signed char __b) { - return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpgt(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b); -} - -static __inline__ vector bool short __ATTRS_o_ai vec_cmpgt(vector short __a, - vector short __b) { - return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmpgt(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_cmpgt(vector int __a, - vector int __b) { - return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmpgt(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpgt(vector signed long long __a, vector signed long long __b) { - return (vector bool long long)__builtin_altivec_vcmpgtsd(__a, __b); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) { - return (vector bool long long)__builtin_altivec_vcmpgtud(__a, __b); -} -#endif - -static __inline__ vector bool int __ATTRS_o_ai vec_cmpgt(vector float __a, - vector float __b) { -#ifdef __VSX__ - return (vector bool int)__builtin_vsx_xvcmpgtsp(__a, __b); -#else - return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpgt(vector double __a, vector double __b) { - return (vector bool long long)__builtin_vsx_xvcmpgtdp(__a, __b); -} -#endif - -/* vec_cmpge */ - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpge(vector signed char __a, vector signed char __b) { - return ~(vec_cmpgt(__b, __a)); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmpge(vector unsigned char __a, vector unsigned char __b) { - return ~(vec_cmpgt(__b, __a)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmpge(vector signed short __a, vector signed short __b) { - return ~(vec_cmpgt(__b, __a)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmpge(vector unsigned short __a, vector unsigned short __b) { - return ~(vec_cmpgt(__b, __a)); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmpge(vector signed int __a, vector signed int __b) { - return ~(vec_cmpgt(__b, __a)); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmpge(vector unsigned int __a, vector unsigned int __b) { - return ~(vec_cmpgt(__b, __a)); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_cmpge(vector float __a, - vector float __b) { -#ifdef __VSX__ - return (vector bool int)__builtin_vsx_xvcmpgesp(__a, __b); -#else - return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpge(vector double __a, vector double __b) { - return (vector bool long long)__builtin_vsx_xvcmpgedp(__a, __b); -} -#endif - -#ifdef __POWER8_VECTOR__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpge(vector signed long long __a, vector signed long long __b) { - return ~(vec_cmpgt(__b, __a)); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) { - return ~(vec_cmpgt(__b, __a)); -} -#endif - -/* vec_vcmpgefp */ - -static __inline__ vector bool int __attribute__((__always_inline__)) -vec_vcmpgefp(vector float __a, vector float __b) { - return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b); -} - -/* vec_vcmpgtsb */ - -static __inline__ vector bool char __attribute__((__always_inline__)) -vec_vcmpgtsb(vector signed char __a, vector signed char __b) { - return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b); -} - -/* vec_vcmpgtub */ - -static __inline__ vector bool char __attribute__((__always_inline__)) -vec_vcmpgtub(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b); -} - -/* vec_vcmpgtsh */ - -static __inline__ vector bool short __attribute__((__always_inline__)) -vec_vcmpgtsh(vector short __a, vector short __b) { - return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b); -} - -/* vec_vcmpgtuh */ - -static __inline__ vector bool short __attribute__((__always_inline__)) -vec_vcmpgtuh(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b); -} - -/* vec_vcmpgtsw */ - -static __inline__ vector bool int __attribute__((__always_inline__)) -vec_vcmpgtsw(vector int __a, vector int __b) { - return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b); -} - -/* vec_vcmpgtuw */ - -static __inline__ vector bool int __attribute__((__always_inline__)) -vec_vcmpgtuw(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b); -} - -/* vec_vcmpgtfp */ - -static __inline__ vector bool int __attribute__((__always_inline__)) -vec_vcmpgtfp(vector float __a, vector float __b) { - return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b); -} - -/* vec_cmple */ - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmple(vector signed char __a, vector signed char __b) { - return vec_cmpge(__b, __a); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmple(vector unsigned char __a, vector unsigned char __b) { - return vec_cmpge(__b, __a); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmple(vector signed short __a, vector signed short __b) { - return vec_cmpge(__b, __a); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmple(vector unsigned short __a, vector unsigned short __b) { - return vec_cmpge(__b, __a); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmple(vector signed int __a, vector signed int __b) { - return vec_cmpge(__b, __a); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmple(vector unsigned int __a, vector unsigned int __b) { - return vec_cmpge(__b, __a); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_cmple(vector float __a, - vector float __b) { - return vec_cmpge(__b, __a); -} - -#ifdef __VSX__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmple(vector double __a, vector double __b) { - return vec_cmpge(__b, __a); -} -#endif - -#ifdef __POWER8_VECTOR__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmple(vector signed long long __a, vector signed long long __b) { - return vec_cmpge(__b, __a); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmple(vector unsigned long long __a, vector unsigned long long __b) { - return vec_cmpge(__b, __a); -} -#endif - -/* vec_cmplt */ - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmplt(vector signed char __a, vector signed char __b) { - return vec_cmpgt(__b, __a); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_cmplt(vector unsigned char __a, vector unsigned char __b) { - return vec_cmpgt(__b, __a); -} - -static __inline__ vector bool short __ATTRS_o_ai vec_cmplt(vector short __a, - vector short __b) { - return vec_cmpgt(__b, __a); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_cmplt(vector unsigned short __a, vector unsigned short __b) { - return vec_cmpgt(__b, __a); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_cmplt(vector int __a, - vector int __b) { - return vec_cmpgt(__b, __a); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_cmplt(vector unsigned int __a, vector unsigned int __b) { - return vec_cmpgt(__b, __a); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_cmplt(vector float __a, - vector float __b) { - return vec_cmpgt(__b, __a); -} - -#ifdef __VSX__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmplt(vector double __a, vector double __b) { - return vec_cmpgt(__b, __a); -} -#endif - -#ifdef __POWER8_VECTOR__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmplt(vector signed long long __a, vector signed long long __b) { - return vec_cmpgt(__b, __a); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) { - return vec_cmpgt(__b, __a); -} - -/* vec_popcnt */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_popcnt(vector signed char __a) { - return __builtin_altivec_vpopcntb(__a); -} -static __inline__ vector unsigned char __ATTRS_o_ai -vec_popcnt(vector unsigned char __a) { - return __builtin_altivec_vpopcntb(__a); -} -static __inline__ vector signed short __ATTRS_o_ai -vec_popcnt(vector signed short __a) { - return __builtin_altivec_vpopcnth(__a); -} -static __inline__ vector unsigned short __ATTRS_o_ai -vec_popcnt(vector unsigned short __a) { - return __builtin_altivec_vpopcnth(__a); -} -static __inline__ vector signed int __ATTRS_o_ai -vec_popcnt(vector signed int __a) { - return __builtin_altivec_vpopcntw(__a); -} -static __inline__ vector unsigned int __ATTRS_o_ai -vec_popcnt(vector unsigned int __a) { - return __builtin_altivec_vpopcntw(__a); -} -static __inline__ vector signed long long __ATTRS_o_ai -vec_popcnt(vector signed long long __a) { - return __builtin_altivec_vpopcntd(__a); -} -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_popcnt(vector unsigned long long __a) { - return __builtin_altivec_vpopcntd(__a); -} - -/* vec_cntlz */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_cntlz(vector signed char __a) { - return __builtin_altivec_vclzb(__a); -} -static __inline__ vector unsigned char __ATTRS_o_ai -vec_cntlz(vector unsigned char __a) { - return __builtin_altivec_vclzb(__a); -} -static __inline__ vector signed short __ATTRS_o_ai -vec_cntlz(vector signed short __a) { - return __builtin_altivec_vclzh(__a); -} -static __inline__ vector unsigned short __ATTRS_o_ai -vec_cntlz(vector unsigned short __a) { - return __builtin_altivec_vclzh(__a); -} -static __inline__ vector signed int __ATTRS_o_ai -vec_cntlz(vector signed int __a) { - return __builtin_altivec_vclzw(__a); -} -static __inline__ vector unsigned int __ATTRS_o_ai -vec_cntlz(vector unsigned int __a) { - return __builtin_altivec_vclzw(__a); -} -static __inline__ vector signed long long __ATTRS_o_ai -vec_cntlz(vector signed long long __a) { - return __builtin_altivec_vclzd(__a); -} -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_cntlz(vector unsigned long long __a) { - return __builtin_altivec_vclzd(__a); -} -#endif - -#ifdef __POWER9_VECTOR__ - -/* vec_cnttz */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_cnttz(vector signed char __a) { - return __builtin_altivec_vctzb(__a); -} -static __inline__ vector unsigned char __ATTRS_o_ai -vec_cnttz(vector unsigned char __a) { - return __builtin_altivec_vctzb(__a); -} -static __inline__ vector signed short __ATTRS_o_ai -vec_cnttz(vector signed short __a) { - return __builtin_altivec_vctzh(__a); -} -static __inline__ vector unsigned short __ATTRS_o_ai -vec_cnttz(vector unsigned short __a) { - return __builtin_altivec_vctzh(__a); -} -static __inline__ vector signed int __ATTRS_o_ai -vec_cnttz(vector signed int __a) { - return __builtin_altivec_vctzw(__a); -} -static __inline__ vector unsigned int __ATTRS_o_ai -vec_cnttz(vector unsigned int __a) { - return __builtin_altivec_vctzw(__a); -} -static __inline__ vector signed long long __ATTRS_o_ai -vec_cnttz(vector signed long long __a) { - return __builtin_altivec_vctzd(__a); -} -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_cnttz(vector unsigned long long __a) { - return __builtin_altivec_vctzd(__a); -} - -/* vec_first_match_index */ - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_index(vector signed char __a, vector signed char __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 3; - } - return __res[0] >> 3; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_index(vector unsigned char __a, vector unsigned char __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 3; - } - return __res[0] >> 3; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_index(vector signed short __a, vector signed short __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 4; - } - return __res[0] >> 4; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_index(vector unsigned short __a, vector unsigned short __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 4; - } - return __res[0] >> 4; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_index(vector signed int __a, vector signed int __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 5; - } - return __res[0] >> 5; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_index(vector unsigned int __a, vector unsigned int __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpeq(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpeq(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 5; - } - return __res[0] >> 5; -} - -/* vec_first_match_or_eos_index */ - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_or_eos_index(vector signed char __a, vector signed char __b) { - /* Compare the result of the comparison of two vectors with either and OR the - result. Either the elements are equal or one will equal the comparison - result if either is zero. - */ - vector bool char __tmp1 = vec_cmpeq(__a, __b); - vector bool char __tmp2 = __tmp1 | - vec_cmpeq((vector signed char)__tmp1, __a) | - vec_cmpeq((vector signed char)__tmp1, __b); - - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)__tmp2); -#else - vec_cntlz((vector unsigned long long)__tmp2); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 3; - } - return __res[0] >> 3; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_or_eos_index(vector unsigned char __a, - vector unsigned char __b) { - vector bool char __tmp1 = vec_cmpeq(__a, __b); - vector bool char __tmp2 = __tmp1 | - vec_cmpeq((vector unsigned char)__tmp1, __a) | - vec_cmpeq((vector unsigned char)__tmp1, __b); - - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)__tmp2); -#else - vec_cntlz((vector unsigned long long)__tmp2); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 3; - } - return __res[0] >> 3; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_or_eos_index(vector signed short __a, vector signed short __b) { - vector bool short __tmp1 = vec_cmpeq(__a, __b); - vector bool short __tmp2 = __tmp1 | - vec_cmpeq((vector signed short)__tmp1, __a) | - vec_cmpeq((vector signed short)__tmp1, __b); - - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)__tmp2); -#else - vec_cntlz((vector unsigned long long)__tmp2); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 4; - } - return __res[0] >> 4; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_or_eos_index(vector unsigned short __a, - vector unsigned short __b) { - vector bool short __tmp1 = vec_cmpeq(__a, __b); - vector bool short __tmp2 = __tmp1 | - vec_cmpeq((vector unsigned short)__tmp1, __a) | - vec_cmpeq((vector unsigned short)__tmp1, __b); - - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)__tmp2); -#else - vec_cntlz((vector unsigned long long)__tmp2); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 4; - } - return __res[0] >> 4; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_or_eos_index(vector signed int __a, vector signed int __b) { - vector bool int __tmp1 = vec_cmpeq(__a, __b); - vector bool int __tmp2 = __tmp1 | vec_cmpeq((vector signed int)__tmp1, __a) | - vec_cmpeq((vector signed int)__tmp1, __b); - - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)__tmp2); -#else - vec_cntlz((vector unsigned long long)__tmp2); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 5; - } - return __res[0] >> 5; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_match_or_eos_index(vector unsigned int __a, vector unsigned int __b) { - vector bool int __tmp1 = vec_cmpeq(__a, __b); - vector bool int __tmp2 = __tmp1 | - vec_cmpeq((vector unsigned int)__tmp1, __a) | - vec_cmpeq((vector unsigned int)__tmp1, __b); - - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)__tmp2); -#else - vec_cntlz((vector unsigned long long)__tmp2); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 5; - } - return __res[0] >> 5; -} - -/* vec_first_mismatch_index */ - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_index(vector signed char __a, vector signed char __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 3; - } - return __res[0] >> 3; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_index(vector unsigned char __a, vector unsigned char __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 3; - } - return __res[0] >> 3; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_index(vector signed short __a, vector signed short __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 4; - } - return __res[0] >> 4; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_index(vector unsigned short __a, vector unsigned short __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 4; - } - return __res[0] >> 4; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_index(vector signed int __a, vector signed int __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 5; - } - return __res[0] >> 5; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_index(vector unsigned int __a, vector unsigned int __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpne(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpne(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 5; - } - return __res[0] >> 5; -} - -/* vec_first_mismatch_or_eos_index */ - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_or_eos_index(vector signed char __a, - vector signed char __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 3; - } - return __res[0] >> 3; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_or_eos_index(vector unsigned char __a, - vector unsigned char __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 3; - } - return __res[0] >> 3; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_or_eos_index(vector signed short __a, - vector signed short __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 4; - } - return __res[0] >> 4; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_or_eos_index(vector unsigned short __a, - vector unsigned short __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 4; - } - return __res[0] >> 4; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_or_eos_index(vector signed int __a, vector signed int __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 5; - } - return __res[0] >> 5; -} - -static __inline__ unsigned __ATTRS_o_ai -vec_first_mismatch_or_eos_index(vector unsigned int __a, - vector unsigned int __b) { - vector unsigned long long __res = -#ifdef __LITTLE_ENDIAN__ - vec_cnttz((vector unsigned long long)vec_cmpnez(__a, __b)); -#else - vec_cntlz((vector unsigned long long)vec_cmpnez(__a, __b)); -#endif - if (__res[0] == 64) { - return (__res[1] + 64) >> 5; - } - return __res[0] >> 5; -} - -static __inline__ vector double __ATTRS_o_ai -vec_insert_exp(vector double __a, vector unsigned long long __b) { - return __builtin_vsx_xviexpdp((vector unsigned long long)__a,__b); -} - -static __inline__ vector double __ATTRS_o_ai -vec_insert_exp(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_vsx_xviexpdp(__a,__b); -} - -static __inline__ vector float __ATTRS_o_ai -vec_insert_exp(vector float __a, vector unsigned int __b) { - return __builtin_vsx_xviexpsp((vector unsigned int)__a,__b); -} - -static __inline__ vector float __ATTRS_o_ai -vec_insert_exp(vector unsigned int __a, vector unsigned int __b) { - return __builtin_vsx_xviexpsp(__a,__b); -} - -#if defined(__powerpc64__) -static __inline__ vector signed char __ATTRS_o_ai vec_xl_len(signed char *__a, - size_t __b) { - return (vector signed char)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_xl_len(unsigned char *__a, size_t __b) { - return (vector unsigned char)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector signed short __ATTRS_o_ai vec_xl_len(signed short *__a, - size_t __b) { - return (vector signed short)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_xl_len(unsigned short *__a, size_t __b) { - return (vector unsigned short)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector signed int __ATTRS_o_ai vec_xl_len(signed int *__a, - size_t __b) { - return (vector signed int)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai vec_xl_len(unsigned int *__a, - size_t __b) { - return (vector unsigned int)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector float __ATTRS_o_ai vec_xl_len(float *__a, size_t __b) { - return (vector float)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_xl_len(signed __int128 *__a, size_t __b) { - return (vector signed __int128)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_xl_len(unsigned __int128 *__a, size_t __b) { - return (vector unsigned __int128)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_xl_len(signed long long *__a, size_t __b) { - return (vector signed long long)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_xl_len(unsigned long long *__a, size_t __b) { - return (vector unsigned long long)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector double __ATTRS_o_ai vec_xl_len(double *__a, - size_t __b) { - return (vector double)__builtin_vsx_lxvl(__a, (__b << 56)); -} - -static __inline__ vector double __ATTRS_o_ai vec_xl_len_r(unsigned char *__a, - size_t __b) { - vector unsigned char __res = - (vector unsigned char)__builtin_vsx_lxvll(__a, (__b << 56)); -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __mask = - (vector unsigned char)__builtin_altivec_lvsr(16 - __b, (int *)NULL); - __res = (vector unsigned char)__builtin_altivec_vperm_4si( - (vector int)__res, (vector int)__res, __mask); -#endif - return __res; -} - -// vec_xst_len -static __inline__ void __ATTRS_o_ai vec_xst_len(vector unsigned char __a, - unsigned char *__b, - size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector signed char __a, - signed char *__b, size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector signed short __a, - signed short *__b, size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector unsigned short __a, - unsigned short *__b, - size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector signed int __a, - signed int *__b, size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector unsigned int __a, - unsigned int *__b, size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector float __a, float *__b, - size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector signed __int128 __a, - signed __int128 *__b, - size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector unsigned __int128 __a, - unsigned __int128 *__b, - size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector signed long long __a, - signed long long *__b, - size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector unsigned long long __a, - unsigned long long *__b, - size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len(vector double __a, double *__b, - size_t __c) { - return __builtin_vsx_stxvl((vector int)__a, __b, (__c << 56)); -} - -static __inline__ void __ATTRS_o_ai vec_xst_len_r(vector unsigned char __a, - unsigned char *__b, - size_t __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __mask = - (vector unsigned char)__builtin_altivec_lvsl(16 - __c, (int *)NULL); - vector unsigned char __res = - __builtin_altivec_vperm_4si((vector int)__a, (vector int)__a, __mask); - return __builtin_vsx_stxvll((vector int)__res, __b, (__c << 56)); -#else - return __builtin_vsx_stxvll((vector int)__a, __b, (__c << 56)); -#endif -} -#endif -#endif - -/* vec_cpsgn */ - -#ifdef __VSX__ -static __inline__ vector float __ATTRS_o_ai vec_cpsgn(vector float __a, - vector float __b) { - return __builtin_vsx_xvcpsgnsp(__a, __b); -} - -static __inline__ vector double __ATTRS_o_ai vec_cpsgn(vector double __a, - vector double __b) { - return __builtin_vsx_xvcpsgndp(__a, __b); -} -#endif - -/* vec_ctf */ - -#ifdef __VSX__ -#define vec_ctf(__a, __b) \ - _Generic((__a), vector int \ - : (vector float)__builtin_altivec_vcfsx((__a), (__b)), \ - vector unsigned int \ - : (vector float)__builtin_altivec_vcfux((vector int)(__a), (__b)), \ - vector unsigned long long \ - : (__builtin_convertvector((vector unsigned long long)(__a), \ - vector double) * \ - (vector double)(vector unsigned long long)((0x3ffULL - (__b)) \ - << 52)), \ - vector signed long long \ - : (__builtin_convertvector((vector signed long long)(__a), \ - vector double) * \ - (vector double)(vector unsigned long long)((0x3ffULL - (__b)) \ - << 52))) -#else -#define vec_ctf(__a, __b) \ - _Generic((__a), vector int \ - : (vector float)__builtin_altivec_vcfsx((__a), (__b)), \ - vector unsigned int \ - : (vector float)__builtin_altivec_vcfux((vector int)(__a), (__b))) -#endif - -/* vec_vcfsx */ - -#define vec_vcfux __builtin_altivec_vcfux - -/* vec_vcfux */ - -#define vec_vcfsx(__a, __b) __builtin_altivec_vcfsx((vector int)(__a), (__b)) - -/* vec_cts */ - -#ifdef __VSX__ -#define vec_cts(__a, __b) \ - _Generic((__a), vector float \ - : __builtin_altivec_vctsxs((__a), (__b)), vector double \ - : __extension__({ \ - vector double __ret = \ - (__a) * \ - (vector double)(vector unsigned long long)((0x3ffULL + (__b)) \ - << 52); \ - __builtin_convertvector(__ret, vector signed long long); \ - })) -#else -#define vec_cts __builtin_altivec_vctsxs -#endif - -/* vec_vctsxs */ - -#define vec_vctsxs __builtin_altivec_vctsxs - -/* vec_ctu */ - -#ifdef __VSX__ -#define vec_ctu(__a, __b) \ - _Generic((__a), vector float \ - : __builtin_altivec_vctuxs((__a), (__b)), vector double \ - : __extension__({ \ - vector double __ret = \ - (__a) * \ - (vector double)(vector unsigned long long)((0x3ffULL + __b) \ - << 52); \ - __builtin_convertvector(__ret, vector unsigned long long); \ - })) -#else -#define vec_ctu __builtin_altivec_vctuxs -#endif - -/* vec_vctuxs */ - -#define vec_vctuxs __builtin_altivec_vctuxs - -/* vec_signed */ - -static __inline__ vector signed int __ATTRS_o_ai -vec_sld(vector signed int, vector signed int, unsigned const int __c); - -static __inline__ vector signed int __ATTRS_o_ai -vec_signed(vector float __a) { - return __builtin_convertvector(__a, vector signed int); -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_signed(vector double __a) { - return __builtin_convertvector(__a, vector signed long long); -} - -static __inline__ vector signed int __attribute__((__always_inline__)) -vec_signed2(vector double __a, vector double __b) { - return (vector signed int) { __a[0], __a[1], __b[0], __b[1] }; -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_signede(vector double __a) { -#ifdef __LITTLE_ENDIAN__ - vector signed int __ret = __builtin_vsx_xvcvdpsxws(__a); - return vec_sld(__ret, __ret, 12); -#else - return __builtin_vsx_xvcvdpsxws(__a); -#endif -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_signedo(vector double __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvdpsxws(__a); -#else - vector signed int __ret = __builtin_vsx_xvcvdpsxws(__a); - return vec_sld(__ret, __ret, 12); -#endif -} -#endif - -/* vec_unsigned */ - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sld(vector unsigned int, vector unsigned int, unsigned const int __c); - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_unsigned(vector float __a) { - return __builtin_convertvector(__a, vector unsigned int); -} - -#ifdef __VSX__ -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_unsigned(vector double __a) { - return __builtin_convertvector(__a, vector unsigned long long); -} - -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_unsigned2(vector double __a, vector double __b) { - return (vector unsigned int) { __a[0], __a[1], __b[0], __b[1] }; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_unsignede(vector double __a) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned int __ret = __builtin_vsx_xvcvdpuxws(__a); - return vec_sld(__ret, __ret, 12); -#else - return __builtin_vsx_xvcvdpuxws(__a); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_unsignedo(vector double __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvdpuxws(__a); -#else - vector unsigned int __ret = __builtin_vsx_xvcvdpuxws(__a); - return vec_sld(__ret, __ret, 12); -#endif -} -#endif - -/* vec_float */ - -static __inline__ vector float __ATTRS_o_ai -vec_sld(vector float, vector float, unsigned const int __c); - -static __inline__ vector float __ATTRS_o_ai -vec_float(vector signed int __a) { - return __builtin_convertvector(__a, vector float); -} - -static __inline__ vector float __ATTRS_o_ai -vec_float(vector unsigned int __a) { - return __builtin_convertvector(__a, vector float); -} - -#ifdef __VSX__ -static __inline__ vector float __ATTRS_o_ai -vec_float2(vector signed long long __a, vector signed long long __b) { - return (vector float) { __a[0], __a[1], __b[0], __b[1] }; -} - -static __inline__ vector float __ATTRS_o_ai -vec_float2(vector unsigned long long __a, vector unsigned long long __b) { - return (vector float) { __a[0], __a[1], __b[0], __b[1] }; -} - -static __inline__ vector float __ATTRS_o_ai -vec_float2(vector double __a, vector double __b) { - return (vector float) { __a[0], __a[1], __b[0], __b[1] }; -} - -static __inline__ vector float __ATTRS_o_ai -vec_floate(vector signed long long __a) { -#ifdef __LITTLE_ENDIAN__ - vector float __ret = __builtin_vsx_xvcvsxdsp(__a); - return vec_sld(__ret, __ret, 12); -#else - return __builtin_vsx_xvcvsxdsp(__a); -#endif -} - -static __inline__ vector float __ATTRS_o_ai -vec_floate(vector unsigned long long __a) { -#ifdef __LITTLE_ENDIAN__ - vector float __ret = __builtin_vsx_xvcvuxdsp(__a); - return vec_sld(__ret, __ret, 12); -#else - return __builtin_vsx_xvcvuxdsp(__a); -#endif -} - -static __inline__ vector float __ATTRS_o_ai -vec_floate(vector double __a) { -#ifdef __LITTLE_ENDIAN__ - vector float __ret = __builtin_vsx_xvcvdpsp(__a); - return vec_sld(__ret, __ret, 12); -#else - return __builtin_vsx_xvcvdpsp(__a); -#endif -} - -static __inline__ vector float __ATTRS_o_ai -vec_floato(vector signed long long __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvsxdsp(__a); -#else - vector float __ret = __builtin_vsx_xvcvsxdsp(__a); - return vec_sld(__ret, __ret, 12); -#endif -} - -static __inline__ vector float __ATTRS_o_ai -vec_floato(vector unsigned long long __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvuxdsp(__a); -#else - vector float __ret = __builtin_vsx_xvcvuxdsp(__a); - return vec_sld(__ret, __ret, 12); -#endif -} - -static __inline__ vector float __ATTRS_o_ai -vec_floato(vector double __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvdpsp(__a); -#else - vector float __ret = __builtin_vsx_xvcvdpsp(__a); - return vec_sld(__ret, __ret, 12); -#endif -} -#endif - -/* vec_double */ - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai -vec_double(vector signed long long __a) { - return __builtin_convertvector(__a, vector double); -} - -static __inline__ vector double __ATTRS_o_ai -vec_double(vector unsigned long long __a) { - return __builtin_convertvector(__a, vector double); -} - -static __inline__ vector double __ATTRS_o_ai -vec_doublee(vector signed int __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvsxwdp(vec_sld(__a, __a, 4)); -#else - return __builtin_vsx_xvcvsxwdp(__a); -#endif -} - -static __inline__ vector double __ATTRS_o_ai -vec_doublee(vector unsigned int __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvuxwdp(vec_sld(__a, __a, 4)); -#else - return __builtin_vsx_xvcvuxwdp(__a); -#endif -} - -static __inline__ vector double __ATTRS_o_ai -vec_doublee(vector float __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvspdp(vec_sld(__a, __a, 4)); -#else - return __builtin_vsx_xvcvspdp(__a); -#endif -} - -static __inline__ vector double __ATTRS_o_ai -vec_doubleh(vector signed int __a) { - vector double __ret = {__a[0], __a[1]}; - return __ret; -} - -static __inline__ vector double __ATTRS_o_ai -vec_doubleh(vector unsigned int __a) { - vector double __ret = {__a[0], __a[1]}; - return __ret; -} - -static __inline__ vector double __ATTRS_o_ai -vec_doubleh(vector float __a) { - vector double __ret = {__a[0], __a[1]}; - return __ret; -} - -static __inline__ vector double __ATTRS_o_ai -vec_doublel(vector signed int __a) { - vector double __ret = {__a[2], __a[3]}; - return __ret; -} - -static __inline__ vector double __ATTRS_o_ai -vec_doublel(vector unsigned int __a) { - vector double __ret = {__a[2], __a[3]}; - return __ret; -} - -static __inline__ vector double __ATTRS_o_ai -vec_doublel(vector float __a) { - vector double __ret = {__a[2], __a[3]}; - return __ret; -} - -static __inline__ vector double __ATTRS_o_ai -vec_doubleo(vector signed int __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvsxwdp(__a); -#else - return __builtin_vsx_xvcvsxwdp(vec_sld(__a, __a, 4)); -#endif -} - -static __inline__ vector double __ATTRS_o_ai -vec_doubleo(vector unsigned int __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvuxwdp(__a); -#else - return __builtin_vsx_xvcvuxwdp(vec_sld(__a, __a, 4)); -#endif -} - -static __inline__ vector double __ATTRS_o_ai -vec_doubleo(vector float __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_vsx_xvcvspdp(__a); -#else - return __builtin_vsx_xvcvspdp(vec_sld(__a, __a, 4)); -#endif -} -#endif - -/* vec_div */ - -/* Integer vector divides (vectors are scalarized, elements divided - and the vectors reassembled). -*/ -static __inline__ vector signed char __ATTRS_o_ai -vec_div(vector signed char __a, vector signed char __b) { - return __a / __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_div(vector unsigned char __a, vector unsigned char __b) { - return __a / __b; -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_div(vector signed short __a, vector signed short __b) { - return __a / __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_div(vector unsigned short __a, vector unsigned short __b) { - return __a / __b; -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_div(vector signed int __a, vector signed int __b) { - return __a / __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_div(vector unsigned int __a, vector unsigned int __b) { - return __a / __b; -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_div(vector signed long long __a, vector signed long long __b) { - return __a / __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_div(vector unsigned long long __a, vector unsigned long long __b) { - return __a / __b; -} - -static __inline__ vector float __ATTRS_o_ai vec_div(vector float __a, - vector float __b) { - return __a / __b; -} - -static __inline__ vector double __ATTRS_o_ai vec_div(vector double __a, - vector double __b) { - return __a / __b; -} -#endif - -/* vec_dss */ - -static __inline__ void __attribute__((__always_inline__)) vec_dss(int __a) { - __builtin_altivec_dss(__a); -} - -/* vec_dssall */ - -static __inline__ void __attribute__((__always_inline__)) vec_dssall(void) { - __builtin_altivec_dssall(); -} - -/* vec_dst */ -#define vec_dst(__PTR, __CW, __STR) \ - __extension__( \ - { __builtin_altivec_dst((const void *)(__PTR), (__CW), (__STR)); }) - -/* vec_dstst */ -#define vec_dstst(__PTR, __CW, __STR) \ - __extension__( \ - { __builtin_altivec_dstst((const void *)(__PTR), (__CW), (__STR)); }) - -/* vec_dststt */ -#define vec_dststt(__PTR, __CW, __STR) \ - __extension__( \ - { __builtin_altivec_dststt((const void *)(__PTR), (__CW), (__STR)); }) - -/* vec_dstt */ -#define vec_dstt(__PTR, __CW, __STR) \ - __extension__( \ - { __builtin_altivec_dstt((const void *)(__PTR), (__CW), (__STR)); }) - -/* vec_eqv */ - -#ifdef __POWER8_VECTOR__ -static __inline__ vector signed char __ATTRS_o_ai -vec_eqv(vector signed char __a, vector signed char __b) { - return (vector signed char)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_eqv(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai vec_eqv(vector bool char __a, - vector bool char __b) { - return (vector bool char)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_eqv(vector signed short __a, vector signed short __b) { - return (vector signed short)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_eqv(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_eqv(vector bool short __a, vector bool short __b) { - return (vector bool short)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_eqv(vector signed int __a, vector signed int __b) { - return (vector signed int)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_eqv(vector unsigned int __a, vector unsigned int __b) { - return __builtin_vsx_xxleqv(__a, __b); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_eqv(vector bool int __a, - vector bool int __b) { - return (vector bool int)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_eqv(vector signed long long __a, vector signed long long __b) { - return (vector signed long long)__builtin_vsx_xxleqv( - (vector unsigned int)__a, (vector unsigned int)__b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_eqv(vector unsigned long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__builtin_vsx_xxleqv( - (vector unsigned int)__a, (vector unsigned int)__b); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_eqv(vector bool long long __a, vector bool long long __b) { - return (vector bool long long)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector float __ATTRS_o_ai vec_eqv(vector float __a, - vector float __b) { - return (vector float)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ vector double __ATTRS_o_ai vec_eqv(vector double __a, - vector double __b) { - return (vector double)__builtin_vsx_xxleqv((vector unsigned int)__a, - (vector unsigned int)__b); -} -#endif - -/* vec_expte */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_expte(vector float __a) { - return __builtin_altivec_vexptefp(__a); -} - -/* vec_vexptefp */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vexptefp(vector float __a) { - return __builtin_altivec_vexptefp(__a); -} - -/* vec_floor */ - -static __inline__ vector float __ATTRS_o_ai vec_floor(vector float __a) { -#ifdef __VSX__ - return __builtin_vsx_xvrspim(__a); -#else - return __builtin_altivec_vrfim(__a); -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_floor(vector double __a) { - return __builtin_vsx_xvrdpim(__a); -} -#endif - -/* vec_vrfim */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vrfim(vector float __a) { - return __builtin_altivec_vrfim(__a); -} - -/* vec_ld */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_ld(int __a, const vector signed char *__b) { - return (vector signed char)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_ld(int __a, const signed char *__b) { - return (vector signed char)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_ld(int __a, const vector unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_ld(int __a, const unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_ld(int __a, const vector bool char *__b) { - return (vector bool char)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_ld(int __a, - const vector short *__b) { - return (vector short)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_ld(int __a, const short *__b) { - return (vector short)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_ld(int __a, const vector unsigned short *__b) { - return (vector unsigned short)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_ld(int __a, const unsigned short *__b) { - return (vector unsigned short)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_ld(int __a, const vector bool short *__b) { - return (vector bool short)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_ld(int __a, - const vector pixel *__b) { - return (vector pixel)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_ld(int __a, - const vector int *__b) { - return (vector int)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_ld(int __a, const int *__b) { - return (vector int)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_ld(int __a, const vector unsigned int *__b) { - return (vector unsigned int)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_ld(int __a, const unsigned int *__b) { - return (vector unsigned int)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_ld(int __a, const vector bool int *__b) { - return (vector bool int)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_ld(int __a, - const vector float *__b) { - return (vector float)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_ld(int __a, const float *__b) { - return (vector float)__builtin_altivec_lvx(__a, __b); -} - -/* vec_lvx */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvx(int __a, const vector signed char *__b) { - return (vector signed char)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvx(int __a, const signed char *__b) { - return (vector signed char)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvx(int __a, const vector unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvx(int __a, const unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_lvx(int __a, const vector bool char *__b) { - return (vector bool char)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvx(int __a, - const vector short *__b) { - return (vector short)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvx(int __a, const short *__b) { - return (vector short)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvx(int __a, const vector unsigned short *__b) { - return (vector unsigned short)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvx(int __a, const unsigned short *__b) { - return (vector unsigned short)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_lvx(int __a, const vector bool short *__b) { - return (vector bool short)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_lvx(int __a, - const vector pixel *__b) { - return (vector pixel)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvx(int __a, - const vector int *__b) { - return (vector int)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvx(int __a, const int *__b) { - return (vector int)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvx(int __a, const vector unsigned int *__b) { - return (vector unsigned int)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvx(int __a, const unsigned int *__b) { - return (vector unsigned int)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_lvx(int __a, const vector bool int *__b) { - return (vector bool int)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvx(int __a, - const vector float *__b) { - return (vector float)__builtin_altivec_lvx(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvx(int __a, const float *__b) { - return (vector float)__builtin_altivec_lvx(__a, __b); -} - -/* vec_lde */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_lde(int __a, const signed char *__b) { - return (vector signed char)__builtin_altivec_lvebx(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lde(int __a, const unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvebx(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_lde(int __a, const short *__b) { - return (vector short)__builtin_altivec_lvehx(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lde(int __a, const unsigned short *__b) { - return (vector unsigned short)__builtin_altivec_lvehx(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_lde(int __a, const int *__b) { - return (vector int)__builtin_altivec_lvewx(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lde(int __a, const unsigned int *__b) { - return (vector unsigned int)__builtin_altivec_lvewx(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_lde(int __a, const float *__b) { - return (vector float)__builtin_altivec_lvewx(__a, __b); -} - -/* vec_lvebx */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvebx(int __a, const signed char *__b) { - return (vector signed char)__builtin_altivec_lvebx(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvebx(int __a, const unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvebx(__a, __b); -} - -/* vec_lvehx */ - -static __inline__ vector short __ATTRS_o_ai vec_lvehx(int __a, - const short *__b) { - return (vector short)__builtin_altivec_lvehx(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvehx(int __a, const unsigned short *__b) { - return (vector unsigned short)__builtin_altivec_lvehx(__a, __b); -} - -/* vec_lvewx */ - -static __inline__ vector int __ATTRS_o_ai vec_lvewx(int __a, const int *__b) { - return (vector int)__builtin_altivec_lvewx(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvewx(int __a, const unsigned int *__b) { - return (vector unsigned int)__builtin_altivec_lvewx(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvewx(int __a, - const float *__b) { - return (vector float)__builtin_altivec_lvewx(__a, __b); -} - -/* vec_ldl */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_ldl(int __a, const vector signed char *__b) { - return (vector signed char)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_ldl(int __a, const signed char *__b) { - return (vector signed char)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_ldl(int __a, const vector unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_ldl(int __a, const unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_ldl(int __a, const vector bool char *__b) { - return (vector bool char)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_ldl(int __a, - const vector short *__b) { - return (vector short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_ldl(int __a, const short *__b) { - return (vector short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_ldl(int __a, const vector unsigned short *__b) { - return (vector unsigned short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_ldl(int __a, const unsigned short *__b) { - return (vector unsigned short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_ldl(int __a, const vector bool short *__b) { - return (vector bool short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_ldl(int __a, - const vector pixel *__b) { - return (vector pixel short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_ldl(int __a, - const vector int *__b) { - return (vector int)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_ldl(int __a, const int *__b) { - return (vector int)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_ldl(int __a, const vector unsigned int *__b) { - return (vector unsigned int)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_ldl(int __a, const unsigned int *__b) { - return (vector unsigned int)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_ldl(int __a, const vector bool int *__b) { - return (vector bool int)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_ldl(int __a, - const vector float *__b) { - return (vector float)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_ldl(int __a, const float *__b) { - return (vector float)__builtin_altivec_lvxl(__a, __b); -} - -/* vec_lvxl */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvxl(int __a, const vector signed char *__b) { - return (vector signed char)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvxl(int __a, const signed char *__b) { - return (vector signed char)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvxl(int __a, const vector unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvxl(int __a, const unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_lvxl(int __a, const vector bool char *__b) { - return (vector bool char)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvxl(int __a, - const vector short *__b) { - return (vector short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvxl(int __a, - const short *__b) { - return (vector short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvxl(int __a, const vector unsigned short *__b) { - return (vector unsigned short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvxl(int __a, const unsigned short *__b) { - return (vector unsigned short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_lvxl(int __a, const vector bool short *__b) { - return (vector bool short)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_lvxl(int __a, - const vector pixel *__b) { - return (vector pixel)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvxl(int __a, - const vector int *__b) { - return (vector int)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvxl(int __a, const int *__b) { - return (vector int)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvxl(int __a, const vector unsigned int *__b) { - return (vector unsigned int)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvxl(int __a, const unsigned int *__b) { - return (vector unsigned int)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_lvxl(int __a, const vector bool int *__b) { - return (vector bool int)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvxl(int __a, - const vector float *__b) { - return (vector float)__builtin_altivec_lvxl(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvxl(int __a, - const float *__b) { - return (vector float)__builtin_altivec_lvxl(__a, __b); -} - -/* vec_loge */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_loge(vector float __a) { - return __builtin_altivec_vlogefp(__a); -} - -/* vec_vlogefp */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vlogefp(vector float __a) { - return __builtin_altivec_vlogefp(__a); -} - -/* vec_lvsl */ - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsl(int __a, const signed char *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsl(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvsl(int __a, const signed char *__b) { - return (vector unsigned char)__builtin_altivec_lvsl(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsl(int __a, const unsigned char *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsl(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvsl(int __a, const unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvsl(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsl(int __a, const short *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsl(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsl(int __a, - const short *__b) { - return (vector unsigned char)__builtin_altivec_lvsl(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsl(int __a, const unsigned short *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsl(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvsl(int __a, const unsigned short *__b) { - return (vector unsigned char)__builtin_altivec_lvsl(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsl(int __a, const int *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsl(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsl(int __a, - const int *__b) { - return (vector unsigned char)__builtin_altivec_lvsl(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsl(int __a, const unsigned int *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsl(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvsl(int __a, const unsigned int *__b) { - return (vector unsigned char)__builtin_altivec_lvsl(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsl(int __a, const float *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsl(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsl(int __a, - const float *__b) { - return (vector unsigned char)__builtin_altivec_lvsl(__a, __b); -} -#endif - -/* vec_lvsr */ - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsr(int __a, const signed char *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsr(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvsr(int __a, const signed char *__b) { - return (vector unsigned char)__builtin_altivec_lvsr(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsr(int __a, const unsigned char *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsr(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvsr(int __a, const unsigned char *__b) { - return (vector unsigned char)__builtin_altivec_lvsr(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsr(int __a, const short *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsr(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsr(int __a, - const short *__b) { - return (vector unsigned char)__builtin_altivec_lvsr(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsr(int __a, const unsigned short *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsr(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvsr(int __a, const unsigned short *__b) { - return (vector unsigned char)__builtin_altivec_lvsr(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsr(int __a, const int *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsr(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsr(int __a, - const int *__b) { - return (vector unsigned char)__builtin_altivec_lvsr(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsr(int __a, const unsigned int *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsr(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvsr(int __a, const unsigned int *__b) { - return (vector unsigned char)__builtin_altivec_lvsr(__a, __b); -} -#endif - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector unsigned char __ATTRS_o_ai - __attribute__((__deprecated__("use assignment for unaligned little endian \ -loads/stores"))) vec_lvsr(int __a, const float *__b) { - vector unsigned char mask = - (vector unsigned char)__builtin_altivec_lvsr(__a, __b); - vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8, - 7, 6, 5, 4, 3, 2, 1, 0}; - return vec_perm(mask, mask, reverse); -} -#else -static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsr(int __a, - const float *__b) { - return (vector unsigned char)__builtin_altivec_lvsr(__a, __b); -} -#endif - -/* vec_madd */ -static __inline__ vector signed short __ATTRS_o_ai -vec_mladd(vector signed short, vector signed short, vector signed short); -static __inline__ vector signed short __ATTRS_o_ai -vec_mladd(vector signed short, vector unsigned short, vector unsigned short); -static __inline__ vector signed short __ATTRS_o_ai -vec_mladd(vector unsigned short, vector signed short, vector signed short); -static __inline__ vector unsigned short __ATTRS_o_ai -vec_mladd(vector unsigned short, vector unsigned short, vector unsigned short); - -static __inline__ vector signed short __ATTRS_o_ai vec_madd( - vector signed short __a, vector signed short __b, vector signed short __c) { - return vec_mladd(__a, __b, __c); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_madd(vector signed short __a, vector unsigned short __b, - vector unsigned short __c) { - return vec_mladd(__a, __b, __c); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_madd(vector unsigned short __a, vector signed short __b, - vector signed short __c) { - return vec_mladd(__a, __b, __c); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_madd(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return vec_mladd(__a, __b, __c); -} - -static __inline__ vector float __ATTRS_o_ai vec_madd(vector float __a, - vector float __b, - vector float __c) { -#ifdef __VSX__ - return __builtin_vsx_xvmaddasp(__a, __b, __c); -#else - return __builtin_altivec_vmaddfp(__a, __b, __c); -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_madd(vector double __a, - vector double __b, - vector double __c) { - return __builtin_vsx_xvmaddadp(__a, __b, __c); -} -#endif - -/* vec_vmaddfp */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vmaddfp(vector float __a, vector float __b, vector float __c) { - return __builtin_altivec_vmaddfp(__a, __b, __c); -} - -/* vec_madds */ - -static __inline__ vector signed short __attribute__((__always_inline__)) -vec_madds(vector signed short __a, vector signed short __b, - vector signed short __c) { - return __builtin_altivec_vmhaddshs(__a, __b, __c); -} - -/* vec_vmhaddshs */ -static __inline__ vector signed short __attribute__((__always_inline__)) -vec_vmhaddshs(vector signed short __a, vector signed short __b, - vector signed short __c) { - return __builtin_altivec_vmhaddshs(__a, __b, __c); -} - -/* vec_msub */ - -#ifdef __VSX__ -static __inline__ vector float __ATTRS_o_ai vec_msub(vector float __a, - vector float __b, - vector float __c) { - return __builtin_vsx_xvmsubasp(__a, __b, __c); -} - -static __inline__ vector double __ATTRS_o_ai vec_msub(vector double __a, - vector double __b, - vector double __c) { - return __builtin_vsx_xvmsubadp(__a, __b, __c); -} -#endif - -/* vec_max */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_max(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vmaxsb(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_max(vector bool char __a, vector signed char __b) { - return __builtin_altivec_vmaxsb((vector signed char)__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_max(vector signed char __a, vector bool char __b) { - return __builtin_altivec_vmaxsb(__a, (vector signed char)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_max(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vmaxub(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_max(vector bool char __a, vector unsigned char __b) { - return __builtin_altivec_vmaxub((vector unsigned char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_max(vector unsigned char __a, vector bool char __b) { - return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_max(vector short __a, - vector short __b) { - return __builtin_altivec_vmaxsh(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_max(vector bool short __a, - vector short __b) { - return __builtin_altivec_vmaxsh((vector short)__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_max(vector short __a, - vector bool short __b) { - return __builtin_altivec_vmaxsh(__a, (vector short)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_max(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vmaxuh(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_max(vector bool short __a, vector unsigned short __b) { - return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_max(vector unsigned short __a, vector bool short __b) { - return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_max(vector int __a, - vector int __b) { - return __builtin_altivec_vmaxsw(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_max(vector bool int __a, - vector int __b) { - return __builtin_altivec_vmaxsw((vector int)__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_max(vector int __a, - vector bool int __b) { - return __builtin_altivec_vmaxsw(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_max(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vmaxuw(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_max(vector bool int __a, vector unsigned int __b) { - return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_max(vector unsigned int __a, vector bool int __b) { - return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_max(vector signed long long __a, vector signed long long __b) { - return __builtin_altivec_vmaxsd(__a, __b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_max(vector bool long long __a, vector signed long long __b) { - return __builtin_altivec_vmaxsd((vector signed long long)__a, __b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_max(vector signed long long __a, vector bool long long __b) { - return __builtin_altivec_vmaxsd(__a, (vector signed long long)__b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_max(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_altivec_vmaxud(__a, __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_max(vector bool long long __a, vector unsigned long long __b) { - return __builtin_altivec_vmaxud((vector unsigned long long)__a, __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_max(vector unsigned long long __a, vector bool long long __b) { - return __builtin_altivec_vmaxud(__a, (vector unsigned long long)__b); -} -#endif - -static __inline__ vector float __ATTRS_o_ai vec_max(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvmaxsp(__a, __b); -#else - return __builtin_altivec_vmaxfp(__a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_max(vector double __a, - vector double __b) { - return __builtin_vsx_xvmaxdp(__a, __b); -} -#endif - -/* vec_vmaxsb */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vmaxsb(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vmaxsb(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vmaxsb(vector bool char __a, vector signed char __b) { - return __builtin_altivec_vmaxsb((vector signed char)__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vmaxsb(vector signed char __a, vector bool char __b) { - return __builtin_altivec_vmaxsb(__a, (vector signed char)__b); -} - -/* vec_vmaxub */ - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vmaxub(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vmaxub(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vmaxub(vector bool char __a, vector unsigned char __b) { - return __builtin_altivec_vmaxub((vector unsigned char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vmaxub(vector unsigned char __a, vector bool char __b) { - return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b); -} - -/* vec_vmaxsh */ - -static __inline__ vector short __ATTRS_o_ai vec_vmaxsh(vector short __a, - vector short __b) { - return __builtin_altivec_vmaxsh(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vmaxsh(vector bool short __a, - vector short __b) { - return __builtin_altivec_vmaxsh((vector short)__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vmaxsh(vector short __a, - vector bool short __b) { - return __builtin_altivec_vmaxsh(__a, (vector short)__b); -} - -/* vec_vmaxuh */ - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vmaxuh(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vmaxuh(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vmaxuh(vector bool short __a, vector unsigned short __b) { - return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vmaxuh(vector unsigned short __a, vector bool short __b) { - return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b); -} - -/* vec_vmaxsw */ - -static __inline__ vector int __ATTRS_o_ai vec_vmaxsw(vector int __a, - vector int __b) { - return __builtin_altivec_vmaxsw(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vmaxsw(vector bool int __a, - vector int __b) { - return __builtin_altivec_vmaxsw((vector int)__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vmaxsw(vector int __a, - vector bool int __b) { - return __builtin_altivec_vmaxsw(__a, (vector int)__b); -} - -/* vec_vmaxuw */ - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vmaxuw(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vmaxuw(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vmaxuw(vector bool int __a, vector unsigned int __b) { - return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vmaxuw(vector unsigned int __a, vector bool int __b) { - return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b); -} - -/* vec_vmaxfp */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vmaxfp(vector float __a, vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvmaxsp(__a, __b); -#else - return __builtin_altivec_vmaxfp(__a, __b); -#endif -} - -/* vec_mergeh */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_mergeh(vector signed char __a, vector signed char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12, - 0x03, 0x13, 0x04, 0x14, 0x05, 0x15, - 0x06, 0x16, 0x07, 0x17)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_mergeh(vector unsigned char __a, vector unsigned char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12, - 0x03, 0x13, 0x04, 0x14, 0x05, 0x15, - 0x06, 0x16, 0x07, 0x17)); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_mergeh(vector bool char __a, vector bool char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12, - 0x03, 0x13, 0x04, 0x14, 0x05, 0x15, - 0x06, 0x16, 0x07, 0x17)); -} - -static __inline__ vector short __ATTRS_o_ai vec_mergeh(vector short __a, - vector short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03, - 0x12, 0x13, 0x04, 0x05, 0x14, 0x15, - 0x06, 0x07, 0x16, 0x17)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_mergeh(vector unsigned short __a, vector unsigned short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03, - 0x12, 0x13, 0x04, 0x05, 0x14, 0x15, - 0x06, 0x07, 0x16, 0x17)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_mergeh(vector bool short __a, vector bool short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03, - 0x12, 0x13, 0x04, 0x05, 0x14, 0x15, - 0x06, 0x07, 0x16, 0x17)); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_mergeh(vector pixel __a, - vector pixel __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03, - 0x12, 0x13, 0x04, 0x05, 0x14, 0x15, - 0x06, 0x07, 0x16, 0x17)); -} - -static __inline__ vector int __ATTRS_o_ai vec_mergeh(vector int __a, - vector int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x04, 0x05, 0x06, 0x07, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_mergeh(vector unsigned int __a, vector unsigned int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x04, 0x05, 0x06, 0x07, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_mergeh(vector bool int __a, - vector bool int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x04, 0x05, 0x06, 0x07, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector float __ATTRS_o_ai vec_mergeh(vector float __a, - vector float __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x04, 0x05, 0x06, 0x07, - 0x14, 0x15, 0x16, 0x17)); -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_mergeh(vector signed long long __a, vector signed long long __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_mergeh(vector signed long long __a, vector bool long long __b) { - return vec_perm(__a, (vector signed long long)__b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_mergeh(vector bool long long __a, vector signed long long __b) { - return vec_perm((vector signed long long)__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mergeh(vector unsigned long long __a, vector bool long long __b) { - return vec_perm(__a, (vector unsigned long long)__b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mergeh(vector bool long long __a, vector unsigned long long __b) { - return vec_perm((vector unsigned long long)__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_mergeh(vector bool long long __a, vector bool long long __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector double __ATTRS_o_ai vec_mergeh(vector double __a, - vector double __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17)); -} -static __inline__ vector double __ATTRS_o_ai -vec_mergeh(vector double __a, vector bool long long __b) { - return vec_perm(__a, (vector double)__b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17)); -} -static __inline__ vector double __ATTRS_o_ai -vec_mergeh(vector bool long long __a, vector double __b) { - return vec_perm((vector double)__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17)); -} -#endif - -/* vec_vmrghb */ - -#define __builtin_altivec_vmrghb vec_vmrghb - -static __inline__ vector signed char __ATTRS_o_ai -vec_vmrghb(vector signed char __a, vector signed char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12, - 0x03, 0x13, 0x04, 0x14, 0x05, 0x15, - 0x06, 0x16, 0x07, 0x17)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vmrghb(vector unsigned char __a, vector unsigned char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12, - 0x03, 0x13, 0x04, 0x14, 0x05, 0x15, - 0x06, 0x16, 0x07, 0x17)); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vmrghb(vector bool char __a, vector bool char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12, - 0x03, 0x13, 0x04, 0x14, 0x05, 0x15, - 0x06, 0x16, 0x07, 0x17)); -} - -/* vec_vmrghh */ - -#define __builtin_altivec_vmrghh vec_vmrghh - -static __inline__ vector short __ATTRS_o_ai vec_vmrghh(vector short __a, - vector short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03, - 0x12, 0x13, 0x04, 0x05, 0x14, 0x15, - 0x06, 0x07, 0x16, 0x17)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vmrghh(vector unsigned short __a, vector unsigned short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03, - 0x12, 0x13, 0x04, 0x05, 0x14, 0x15, - 0x06, 0x07, 0x16, 0x17)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vmrghh(vector bool short __a, vector bool short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03, - 0x12, 0x13, 0x04, 0x05, 0x14, 0x15, - 0x06, 0x07, 0x16, 0x17)); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vmrghh(vector pixel __a, - vector pixel __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03, - 0x12, 0x13, 0x04, 0x05, 0x14, 0x15, - 0x06, 0x07, 0x16, 0x17)); -} - -/* vec_vmrghw */ - -#define __builtin_altivec_vmrghw vec_vmrghw - -static __inline__ vector int __ATTRS_o_ai vec_vmrghw(vector int __a, - vector int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x04, 0x05, 0x06, 0x07, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vmrghw(vector unsigned int __a, vector unsigned int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x04, 0x05, 0x06, 0x07, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_vmrghw(vector bool int __a, - vector bool int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x04, 0x05, 0x06, 0x07, - 0x14, 0x15, 0x16, 0x17)); -} - -static __inline__ vector float __ATTRS_o_ai vec_vmrghw(vector float __a, - vector float __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x04, 0x05, 0x06, 0x07, - 0x14, 0x15, 0x16, 0x17)); -} - -/* vec_mergel */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_mergel(vector signed char __a, vector signed char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, - 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D, - 0x0E, 0x1E, 0x0F, 0x1F)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_mergel(vector unsigned char __a, vector unsigned char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, - 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D, - 0x0E, 0x1E, 0x0F, 0x1F)); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_mergel(vector bool char __a, vector bool char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, - 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D, - 0x0E, 0x1E, 0x0F, 0x1F)); -} - -static __inline__ vector short __ATTRS_o_ai vec_mergel(vector short __a, - vector short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, - 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D, - 0x0E, 0x0F, 0x1E, 0x1F)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_mergel(vector unsigned short __a, vector unsigned short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, - 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D, - 0x0E, 0x0F, 0x1E, 0x1F)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_mergel(vector bool short __a, vector bool short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, - 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D, - 0x0E, 0x0F, 0x1E, 0x1F)); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_mergel(vector pixel __a, - vector pixel __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, - 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D, - 0x0E, 0x0F, 0x1E, 0x1F)); -} - -static __inline__ vector int __ATTRS_o_ai vec_mergel(vector int __a, - vector int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, - 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_mergel(vector unsigned int __a, vector unsigned int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, - 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_mergel(vector bool int __a, - vector bool int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, - 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -static __inline__ vector float __ATTRS_o_ai vec_mergel(vector float __a, - vector float __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, - 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_mergel(vector signed long long __a, vector signed long long __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, - 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B, - 0x1C, 0x1D, 0x1E, 0x1F)); -} -static __inline__ vector signed long long __ATTRS_o_ai -vec_mergel(vector signed long long __a, vector bool long long __b) { - return vec_perm(__a, (vector signed long long)__b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, - 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B, - 0x1C, 0x1D, 0x1E, 0x1F)); -} -static __inline__ vector signed long long __ATTRS_o_ai -vec_mergel(vector bool long long __a, vector signed long long __b) { - return vec_perm((vector signed long long)__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, - 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B, - 0x1C, 0x1D, 0x1E, 0x1F)); -} -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mergel(vector unsigned long long __a, vector unsigned long long __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, - 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B, - 0x1C, 0x1D, 0x1E, 0x1F)); -} -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mergel(vector unsigned long long __a, vector bool long long __b) { - return vec_perm(__a, (vector unsigned long long)__b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, - 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B, - 0x1C, 0x1D, 0x1E, 0x1F)); -} -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mergel(vector bool long long __a, vector unsigned long long __b) { - return vec_perm((vector unsigned long long)__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, - 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B, - 0x1C, 0x1D, 0x1E, 0x1F)); -} -static __inline__ vector bool long long __ATTRS_o_ai -vec_mergel(vector bool long long __a, vector bool long long __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, - 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B, - 0x1C, 0x1D, 0x1E, 0x1F)); -} -static __inline__ vector double __ATTRS_o_ai vec_mergel(vector double __a, - vector double __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, - 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B, - 0x1C, 0x1D, 0x1E, 0x1F)); -} -static __inline__ vector double __ATTRS_o_ai -vec_mergel(vector double __a, vector bool long long __b) { - return vec_perm(__a, (vector double)__b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, - 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B, - 0x1C, 0x1D, 0x1E, 0x1F)); -} -static __inline__ vector double __ATTRS_o_ai -vec_mergel(vector bool long long __a, vector double __b) { - return vec_perm((vector double)__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, - 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B, - 0x1C, 0x1D, 0x1E, 0x1F)); -} -#endif - -/* vec_vmrglb */ - -#define __builtin_altivec_vmrglb vec_vmrglb - -static __inline__ vector signed char __ATTRS_o_ai -vec_vmrglb(vector signed char __a, vector signed char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, - 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D, - 0x0E, 0x1E, 0x0F, 0x1F)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vmrglb(vector unsigned char __a, vector unsigned char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, - 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D, - 0x0E, 0x1E, 0x0F, 0x1F)); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vmrglb(vector bool char __a, vector bool char __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, - 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D, - 0x0E, 0x1E, 0x0F, 0x1F)); -} - -/* vec_vmrglh */ - -#define __builtin_altivec_vmrglh vec_vmrglh - -static __inline__ vector short __ATTRS_o_ai vec_vmrglh(vector short __a, - vector short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, - 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D, - 0x0E, 0x0F, 0x1E, 0x1F)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vmrglh(vector unsigned short __a, vector unsigned short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, - 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D, - 0x0E, 0x0F, 0x1E, 0x1F)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vmrglh(vector bool short __a, vector bool short __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, - 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D, - 0x0E, 0x0F, 0x1E, 0x1F)); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vmrglh(vector pixel __a, - vector pixel __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, - 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D, - 0x0E, 0x0F, 0x1E, 0x1F)); -} - -/* vec_vmrglw */ - -#define __builtin_altivec_vmrglw vec_vmrglw - -static __inline__ vector int __ATTRS_o_ai vec_vmrglw(vector int __a, - vector int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, - 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vmrglw(vector unsigned int __a, vector unsigned int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, - 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_vmrglw(vector bool int __a, - vector bool int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, - 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -static __inline__ vector float __ATTRS_o_ai vec_vmrglw(vector float __a, - vector float __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, - 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -#ifdef __POWER8_VECTOR__ -/* vec_mergee */ - -static __inline__ vector bool int __ATTRS_o_ai vec_mergee(vector bool int __a, - vector bool int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B, - 0x18, 0x19, 0x1A, 0x1B)); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_mergee(vector signed int __a, vector signed int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B, - 0x18, 0x19, 0x1A, 0x1B)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_mergee(vector unsigned int __a, vector unsigned int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B, - 0x18, 0x19, 0x1A, 0x1B)); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_mergee(vector bool long long __a, vector bool long long __b) { - return vec_mergeh(__a, __b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_mergee(vector signed long long __a, vector signed long long __b) { - return vec_mergeh(__a, __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mergee(vector unsigned long long __a, vector unsigned long long __b) { - return vec_mergeh(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai -vec_mergee(vector float __a, vector float __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11, - 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B, - 0x18, 0x19, 0x1A, 0x1B)); -} - -static __inline__ vector double __ATTRS_o_ai -vec_mergee(vector double __a, vector double __b) { - return vec_mergeh(__a, __b); -} - -/* vec_mergeo */ - -static __inline__ vector bool int __ATTRS_o_ai vec_mergeo(vector bool int __a, - vector bool int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15, - 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_mergeo(vector signed int __a, vector signed int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15, - 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_mergeo(vector unsigned int __a, vector unsigned int __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15, - 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_mergeo(vector bool long long __a, vector bool long long __b) { - return vec_mergel(__a, __b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_mergeo(vector signed long long __a, vector signed long long __b) { - return vec_mergel(__a, __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mergeo(vector unsigned long long __a, vector unsigned long long __b) { - return vec_mergel(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai -vec_mergeo(vector float __a, vector float __b) { - return vec_perm(__a, __b, - (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15, - 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F, - 0x1C, 0x1D, 0x1E, 0x1F)); -} - -static __inline__ vector double __ATTRS_o_ai -vec_mergeo(vector double __a, vector double __b) { - return vec_mergel(__a, __b); -} - -#endif - -/* vec_mfvscr */ - -static __inline__ vector unsigned short __attribute__((__always_inline__)) -vec_mfvscr(void) { - return __builtin_altivec_mfvscr(); -} - -/* vec_min */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_min(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vminsb(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_min(vector bool char __a, vector signed char __b) { - return __builtin_altivec_vminsb((vector signed char)__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_min(vector signed char __a, vector bool char __b) { - return __builtin_altivec_vminsb(__a, (vector signed char)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_min(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vminub(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_min(vector bool char __a, vector unsigned char __b) { - return __builtin_altivec_vminub((vector unsigned char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_min(vector unsigned char __a, vector bool char __b) { - return __builtin_altivec_vminub(__a, (vector unsigned char)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_min(vector short __a, - vector short __b) { - return __builtin_altivec_vminsh(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_min(vector bool short __a, - vector short __b) { - return __builtin_altivec_vminsh((vector short)__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_min(vector short __a, - vector bool short __b) { - return __builtin_altivec_vminsh(__a, (vector short)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_min(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vminuh(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_min(vector bool short __a, vector unsigned short __b) { - return __builtin_altivec_vminuh((vector unsigned short)__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_min(vector unsigned short __a, vector bool short __b) { - return __builtin_altivec_vminuh(__a, (vector unsigned short)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_min(vector int __a, - vector int __b) { - return __builtin_altivec_vminsw(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_min(vector bool int __a, - vector int __b) { - return __builtin_altivec_vminsw((vector int)__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_min(vector int __a, - vector bool int __b) { - return __builtin_altivec_vminsw(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_min(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vminuw(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_min(vector bool int __a, vector unsigned int __b) { - return __builtin_altivec_vminuw((vector unsigned int)__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_min(vector unsigned int __a, vector bool int __b) { - return __builtin_altivec_vminuw(__a, (vector unsigned int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_min(vector signed long long __a, vector signed long long __b) { - return __builtin_altivec_vminsd(__a, __b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_min(vector bool long long __a, vector signed long long __b) { - return __builtin_altivec_vminsd((vector signed long long)__a, __b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_min(vector signed long long __a, vector bool long long __b) { - return __builtin_altivec_vminsd(__a, (vector signed long long)__b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_min(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_altivec_vminud(__a, __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_min(vector bool long long __a, vector unsigned long long __b) { - return __builtin_altivec_vminud((vector unsigned long long)__a, __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_min(vector unsigned long long __a, vector bool long long __b) { - return __builtin_altivec_vminud(__a, (vector unsigned long long)__b); -} -#endif - -static __inline__ vector float __ATTRS_o_ai vec_min(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvminsp(__a, __b); -#else - return __builtin_altivec_vminfp(__a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_min(vector double __a, - vector double __b) { - return __builtin_vsx_xvmindp(__a, __b); -} -#endif - -/* vec_vminsb */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vminsb(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vminsb(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vminsb(vector bool char __a, vector signed char __b) { - return __builtin_altivec_vminsb((vector signed char)__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vminsb(vector signed char __a, vector bool char __b) { - return __builtin_altivec_vminsb(__a, (vector signed char)__b); -} - -/* vec_vminub */ - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vminub(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vminub(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vminub(vector bool char __a, vector unsigned char __b) { - return __builtin_altivec_vminub((vector unsigned char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vminub(vector unsigned char __a, vector bool char __b) { - return __builtin_altivec_vminub(__a, (vector unsigned char)__b); -} - -/* vec_vminsh */ - -static __inline__ vector short __ATTRS_o_ai vec_vminsh(vector short __a, - vector short __b) { - return __builtin_altivec_vminsh(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vminsh(vector bool short __a, - vector short __b) { - return __builtin_altivec_vminsh((vector short)__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vminsh(vector short __a, - vector bool short __b) { - return __builtin_altivec_vminsh(__a, (vector short)__b); -} - -/* vec_vminuh */ - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vminuh(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vminuh(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vminuh(vector bool short __a, vector unsigned short __b) { - return __builtin_altivec_vminuh((vector unsigned short)__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vminuh(vector unsigned short __a, vector bool short __b) { - return __builtin_altivec_vminuh(__a, (vector unsigned short)__b); -} - -/* vec_vminsw */ - -static __inline__ vector int __ATTRS_o_ai vec_vminsw(vector int __a, - vector int __b) { - return __builtin_altivec_vminsw(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vminsw(vector bool int __a, - vector int __b) { - return __builtin_altivec_vminsw((vector int)__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vminsw(vector int __a, - vector bool int __b) { - return __builtin_altivec_vminsw(__a, (vector int)__b); -} - -/* vec_vminuw */ - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vminuw(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vminuw(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vminuw(vector bool int __a, vector unsigned int __b) { - return __builtin_altivec_vminuw((vector unsigned int)__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vminuw(vector unsigned int __a, vector bool int __b) { - return __builtin_altivec_vminuw(__a, (vector unsigned int)__b); -} - -/* vec_vminfp */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vminfp(vector float __a, vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvminsp(__a, __b); -#else - return __builtin_altivec_vminfp(__a, __b); -#endif -} - -/* vec_mladd */ - -#define __builtin_altivec_vmladduhm vec_mladd - -static __inline__ vector short __ATTRS_o_ai vec_mladd(vector short __a, - vector short __b, - vector short __c) { - return __a * __b + __c; -} - -static __inline__ vector short __ATTRS_o_ai vec_mladd( - vector short __a, vector unsigned short __b, vector unsigned short __c) { - return __a * (vector short)__b + (vector short)__c; -} - -static __inline__ vector short __ATTRS_o_ai vec_mladd(vector unsigned short __a, - vector short __b, - vector short __c) { - return (vector short)__a * __b + __c; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_mladd(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return __a * __b + __c; -} - -/* vec_vmladduhm */ - -static __inline__ vector short __ATTRS_o_ai vec_vmladduhm(vector short __a, - vector short __b, - vector short __c) { - return __a * __b + __c; -} - -static __inline__ vector short __ATTRS_o_ai vec_vmladduhm( - vector short __a, vector unsigned short __b, vector unsigned short __c) { - return __a * (vector short)__b + (vector short)__c; -} - -static __inline__ vector short __ATTRS_o_ai -vec_vmladduhm(vector unsigned short __a, vector short __b, vector short __c) { - return (vector short)__a * __b + __c; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vmladduhm(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return __a * __b + __c; -} - -/* vec_mradds */ - -static __inline__ vector short __attribute__((__always_inline__)) -vec_mradds(vector short __a, vector short __b, vector short __c) { - return __builtin_altivec_vmhraddshs(__a, __b, __c); -} - -/* vec_vmhraddshs */ - -static __inline__ vector short __attribute__((__always_inline__)) -vec_vmhraddshs(vector short __a, vector short __b, vector short __c) { - return __builtin_altivec_vmhraddshs(__a, __b, __c); -} - -/* vec_msum */ - -static __inline__ vector int __ATTRS_o_ai vec_msum(vector signed char __a, - vector unsigned char __b, - vector int __c) { - return __builtin_altivec_vmsummbm(__a, __b, __c); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_msum(vector unsigned char __a, vector unsigned char __b, - vector unsigned int __c) { - return __builtin_altivec_vmsumubm(__a, __b, __c); -} - -static __inline__ vector int __ATTRS_o_ai vec_msum(vector short __a, - vector short __b, - vector int __c) { - return __builtin_altivec_vmsumshm(__a, __b, __c); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_msum(vector unsigned short __a, vector unsigned short __b, - vector unsigned int __c) { - return __builtin_altivec_vmsumuhm(__a, __b, __c); -} - -/* vec_vmsummbm */ - -static __inline__ vector int __attribute__((__always_inline__)) -vec_vmsummbm(vector signed char __a, vector unsigned char __b, vector int __c) { - return __builtin_altivec_vmsummbm(__a, __b, __c); -} - -/* vec_vmsumubm */ - -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_vmsumubm(vector unsigned char __a, vector unsigned char __b, - vector unsigned int __c) { - return __builtin_altivec_vmsumubm(__a, __b, __c); -} - -/* vec_vmsumshm */ - -static __inline__ vector int __attribute__((__always_inline__)) -vec_vmsumshm(vector short __a, vector short __b, vector int __c) { - return __builtin_altivec_vmsumshm(__a, __b, __c); -} - -/* vec_vmsumuhm */ - -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_vmsumuhm(vector unsigned short __a, vector unsigned short __b, - vector unsigned int __c) { - return __builtin_altivec_vmsumuhm(__a, __b, __c); -} - -/* vec_msums */ - -static __inline__ vector int __ATTRS_o_ai vec_msums(vector short __a, - vector short __b, - vector int __c) { - return __builtin_altivec_vmsumshs(__a, __b, __c); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_msums(vector unsigned short __a, vector unsigned short __b, - vector unsigned int __c) { - return __builtin_altivec_vmsumuhs(__a, __b, __c); -} - -/* vec_vmsumshs */ - -static __inline__ vector int __attribute__((__always_inline__)) -vec_vmsumshs(vector short __a, vector short __b, vector int __c) { - return __builtin_altivec_vmsumshs(__a, __b, __c); -} - -/* vec_vmsumuhs */ - -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_vmsumuhs(vector unsigned short __a, vector unsigned short __b, - vector unsigned int __c) { - return __builtin_altivec_vmsumuhs(__a, __b, __c); -} - -/* vec_mtvscr */ - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector signed char __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector unsigned char __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector bool char __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector short __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector unsigned short __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector bool short __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector pixel __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector int __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector unsigned int __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector bool int __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -static __inline__ void __ATTRS_o_ai vec_mtvscr(vector float __a) { - __builtin_altivec_mtvscr((vector int)__a); -} - -/* vec_mul */ - -/* Integer vector multiplication will involve multiplication of the odd/even - elements separately, then truncating the results and moving to the - result vector. -*/ -static __inline__ vector signed char __ATTRS_o_ai -vec_mul(vector signed char __a, vector signed char __b) { - return __a * __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_mul(vector unsigned char __a, vector unsigned char __b) { - return __a * __b; -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_mul(vector signed short __a, vector signed short __b) { - return __a * __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_mul(vector unsigned short __a, vector unsigned short __b) { - return __a * __b; -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_mul(vector signed int __a, vector signed int __b) { - return __a * __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_mul(vector unsigned int __a, vector unsigned int __b) { - return __a * __b; -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_mul(vector signed long long __a, vector signed long long __b) { - return __a * __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mul(vector unsigned long long __a, vector unsigned long long __b) { - return __a * __b; -} -#endif - -static __inline__ vector float __ATTRS_o_ai vec_mul(vector float __a, - vector float __b) { - return __a * __b; -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_mul(vector double __a, - vector double __b) { - return __a * __b; -} -#endif - -/* The vmulos* and vmules* instructions have a big endian bias, so - we must reverse the meaning of "even" and "odd" for little endian. */ - -/* vec_mule */ - -static __inline__ vector short __ATTRS_o_ai vec_mule(vector signed char __a, - vector signed char __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulosb(__a, __b); -#else - return __builtin_altivec_vmulesb(__a, __b); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_mule(vector unsigned char __a, vector unsigned char __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmuloub(__a, __b); -#else - return __builtin_altivec_vmuleub(__a, __b); -#endif -} - -static __inline__ vector int __ATTRS_o_ai vec_mule(vector short __a, - vector short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulosh(__a, __b); -#else - return __builtin_altivec_vmulesh(__a, __b); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_mule(vector unsigned short __a, vector unsigned short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulouh(__a, __b); -#else - return __builtin_altivec_vmuleuh(__a, __b); -#endif -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_mule(vector signed int __a, vector signed int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulosw(__a, __b); -#else - return __builtin_altivec_vmulesw(__a, __b); -#endif -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mule(vector unsigned int __a, vector unsigned int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulouw(__a, __b); -#else - return __builtin_altivec_vmuleuw(__a, __b); -#endif -} -#endif - -/* vec_vmulesb */ - -static __inline__ vector short __attribute__((__always_inline__)) -vec_vmulesb(vector signed char __a, vector signed char __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulosb(__a, __b); -#else - return __builtin_altivec_vmulesb(__a, __b); -#endif -} - -/* vec_vmuleub */ - -static __inline__ vector unsigned short __attribute__((__always_inline__)) -vec_vmuleub(vector unsigned char __a, vector unsigned char __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmuloub(__a, __b); -#else - return __builtin_altivec_vmuleub(__a, __b); -#endif -} - -/* vec_vmulesh */ - -static __inline__ vector int __attribute__((__always_inline__)) -vec_vmulesh(vector short __a, vector short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulosh(__a, __b); -#else - return __builtin_altivec_vmulesh(__a, __b); -#endif -} - -/* vec_vmuleuh */ - -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_vmuleuh(vector unsigned short __a, vector unsigned short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulouh(__a, __b); -#else - return __builtin_altivec_vmuleuh(__a, __b); -#endif -} - -/* vec_mulo */ - -static __inline__ vector short __ATTRS_o_ai vec_mulo(vector signed char __a, - vector signed char __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulesb(__a, __b); -#else - return __builtin_altivec_vmulosb(__a, __b); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_mulo(vector unsigned char __a, vector unsigned char __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmuleub(__a, __b); -#else - return __builtin_altivec_vmuloub(__a, __b); -#endif -} - -static __inline__ vector int __ATTRS_o_ai vec_mulo(vector short __a, - vector short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulesh(__a, __b); -#else - return __builtin_altivec_vmulosh(__a, __b); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_mulo(vector unsigned short __a, vector unsigned short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmuleuh(__a, __b); -#else - return __builtin_altivec_vmulouh(__a, __b); -#endif -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_mulo(vector signed int __a, vector signed int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulesw(__a, __b); -#else - return __builtin_altivec_vmulosw(__a, __b); -#endif -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_mulo(vector unsigned int __a, vector unsigned int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmuleuw(__a, __b); -#else - return __builtin_altivec_vmulouw(__a, __b); -#endif -} -#endif - -/* vec_vmulosb */ - -static __inline__ vector short __attribute__((__always_inline__)) -vec_vmulosb(vector signed char __a, vector signed char __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulesb(__a, __b); -#else - return __builtin_altivec_vmulosb(__a, __b); -#endif -} - -/* vec_vmuloub */ - -static __inline__ vector unsigned short __attribute__((__always_inline__)) -vec_vmuloub(vector unsigned char __a, vector unsigned char __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmuleub(__a, __b); -#else - return __builtin_altivec_vmuloub(__a, __b); -#endif -} - -/* vec_vmulosh */ - -static __inline__ vector int __attribute__((__always_inline__)) -vec_vmulosh(vector short __a, vector short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmulesh(__a, __b); -#else - return __builtin_altivec_vmulosh(__a, __b); -#endif -} - -/* vec_vmulouh */ - -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_vmulouh(vector unsigned short __a, vector unsigned short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vmuleuh(__a, __b); -#else - return __builtin_altivec_vmulouh(__a, __b); -#endif -} - -/* vec_nand */ - -#ifdef __POWER8_VECTOR__ -static __inline__ vector signed char __ATTRS_o_ai -vec_nand(vector signed char __a, vector signed char __b) { - return ~(__a & __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_nand(vector signed char __a, vector bool char __b) { - return ~(__a & __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_nand(vector bool char __a, vector signed char __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_nand(vector unsigned char __a, vector unsigned char __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_nand(vector unsigned char __a, vector bool char __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_nand(vector bool char __a, vector unsigned char __b) { - return ~(__a & __b); -} - -static __inline__ vector bool char __ATTRS_o_ai vec_nand(vector bool char __a, - vector bool char __b) { - return ~(__a & __b); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_nand(vector signed short __a, vector signed short __b) { - return ~(__a & __b); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_nand(vector signed short __a, vector bool short __b) { - return ~(__a & __b); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_nand(vector bool short __a, vector signed short __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_nand(vector unsigned short __a, vector unsigned short __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_nand(vector unsigned short __a, vector bool short __b) { - return ~(__a & __b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_nand(vector bool short __a, vector bool short __b) { - return ~(__a & __b); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_nand(vector signed int __a, vector signed int __b) { - return ~(__a & __b); -} - -static __inline__ vector signed int __ATTRS_o_ai vec_nand(vector signed int __a, - vector bool int __b) { - return ~(__a & __b); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_nand(vector bool int __a, vector signed int __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_nand(vector unsigned int __a, vector unsigned int __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_nand(vector unsigned int __a, vector bool int __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_nand(vector bool int __a, vector unsigned int __b) { - return ~(__a & __b); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_nand(vector bool int __a, - vector bool int __b) { - return ~(__a & __b); -} - -static __inline__ vector float __ATTRS_o_ai -vec_nand(vector float __a, vector float __b) { - return (vector float)(~((vector unsigned int)__a & - (vector unsigned int)__b)); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_nand(vector signed long long __a, vector signed long long __b) { - return ~(__a & __b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_nand(vector signed long long __a, vector bool long long __b) { - return ~(__a & __b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_nand(vector bool long long __a, vector signed long long __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_nand(vector unsigned long long __a, vector unsigned long long __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_nand(vector unsigned long long __a, vector bool long long __b) { - return ~(__a & __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_nand(vector bool long long __a, vector unsigned long long __b) { - return ~(__a & __b); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_nand(vector bool long long __a, vector bool long long __b) { - return ~(__a & __b); -} - -static __inline__ vector double __ATTRS_o_ai -vec_nand(vector double __a, vector double __b) { - return (vector double)(~((vector unsigned long long)__a & - (vector unsigned long long)__b)); -} - -#endif - -/* vec_nmadd */ - -#ifdef __VSX__ -static __inline__ vector float __ATTRS_o_ai vec_nmadd(vector float __a, - vector float __b, - vector float __c) { - return __builtin_vsx_xvnmaddasp(__a, __b, __c); -} - -static __inline__ vector double __ATTRS_o_ai vec_nmadd(vector double __a, - vector double __b, - vector double __c) { - return __builtin_vsx_xvnmaddadp(__a, __b, __c); -} -#endif - -/* vec_nmsub */ - -static __inline__ vector float __ATTRS_o_ai vec_nmsub(vector float __a, - vector float __b, - vector float __c) { -#ifdef __VSX__ - return __builtin_vsx_xvnmsubasp(__a, __b, __c); -#else - return __builtin_altivec_vnmsubfp(__a, __b, __c); -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_nmsub(vector double __a, - vector double __b, - vector double __c) { - return __builtin_vsx_xvnmsubadp(__a, __b, __c); -} -#endif - -/* vec_vnmsubfp */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vnmsubfp(vector float __a, vector float __b, vector float __c) { - return __builtin_altivec_vnmsubfp(__a, __b, __c); -} - -/* vec_nor */ - -#define __builtin_altivec_vnor vec_nor - -static __inline__ vector signed char __ATTRS_o_ai -vec_nor(vector signed char __a, vector signed char __b) { - return ~(__a | __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_nor(vector unsigned char __a, vector unsigned char __b) { - return ~(__a | __b); -} - -static __inline__ vector bool char __ATTRS_o_ai vec_nor(vector bool char __a, - vector bool char __b) { - return ~(__a | __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_nor(vector short __a, - vector short __b) { - return ~(__a | __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_nor(vector unsigned short __a, vector unsigned short __b) { - return ~(__a | __b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_nor(vector bool short __a, vector bool short __b) { - return ~(__a | __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_nor(vector int __a, - vector int __b) { - return ~(__a | __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_nor(vector unsigned int __a, vector unsigned int __b) { - return ~(__a | __b); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_nor(vector bool int __a, - vector bool int __b) { - return ~(__a | __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_nor(vector float __a, - vector float __b) { - vector unsigned int __res = - ~((vector unsigned int)__a | (vector unsigned int)__b); - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_nor(vector double __a, - vector double __b) { - vector unsigned long long __res = - ~((vector unsigned long long)__a | (vector unsigned long long)__b); - return (vector double)__res; -} -#endif - -/* vec_vnor */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vnor(vector signed char __a, vector signed char __b) { - return ~(__a | __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vnor(vector unsigned char __a, vector unsigned char __b) { - return ~(__a | __b); -} - -static __inline__ vector bool char __ATTRS_o_ai vec_vnor(vector bool char __a, - vector bool char __b) { - return ~(__a | __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vnor(vector short __a, - vector short __b) { - return ~(__a | __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vnor(vector unsigned short __a, vector unsigned short __b) { - return ~(__a | __b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vnor(vector bool short __a, vector bool short __b) { - return ~(__a | __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vnor(vector int __a, - vector int __b) { - return ~(__a | __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vnor(vector unsigned int __a, vector unsigned int __b) { - return ~(__a | __b); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_vnor(vector bool int __a, - vector bool int __b) { - return ~(__a | __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_vnor(vector float __a, - vector float __b) { - vector unsigned int __res = - ~((vector unsigned int)__a | (vector unsigned int)__b); - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_nor(vector signed long long __a, vector signed long long __b) { - return ~(__a | __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_nor(vector unsigned long long __a, vector unsigned long long __b) { - return ~(__a | __b); -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_nor(vector bool long long __a, vector bool long long __b) { - return ~(__a | __b); -} -#endif - -/* vec_or */ - -#define __builtin_altivec_vor vec_or - -static __inline__ vector signed char __ATTRS_o_ai -vec_or(vector signed char __a, vector signed char __b) { - return __a | __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_or(vector bool char __a, vector signed char __b) { - return (vector signed char)__a | __b; -} - -static __inline__ vector signed char __ATTRS_o_ai vec_or(vector signed char __a, - vector bool char __b) { - return __a | (vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_or(vector unsigned char __a, vector unsigned char __b) { - return __a | __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_or(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a | __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_or(vector unsigned char __a, vector bool char __b) { - return __a | (vector unsigned char)__b; -} - -static __inline__ vector bool char __ATTRS_o_ai vec_or(vector bool char __a, - vector bool char __b) { - return __a | __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_or(vector short __a, - vector short __b) { - return __a | __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_or(vector bool short __a, - vector short __b) { - return (vector short)__a | __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_or(vector short __a, - vector bool short __b) { - return __a | (vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_or(vector unsigned short __a, vector unsigned short __b) { - return __a | __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_or(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a | __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_or(vector unsigned short __a, vector bool short __b) { - return __a | (vector unsigned short)__b; -} - -static __inline__ vector bool short __ATTRS_o_ai vec_or(vector bool short __a, - vector bool short __b) { - return __a | __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_or(vector int __a, - vector int __b) { - return __a | __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_or(vector bool int __a, - vector int __b) { - return (vector int)__a | __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_or(vector int __a, - vector bool int __b) { - return __a | (vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_or(vector unsigned int __a, vector unsigned int __b) { - return __a | __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_or(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a | __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_or(vector unsigned int __a, vector bool int __b) { - return __a | (vector unsigned int)__b; -} - -static __inline__ vector bool int __ATTRS_o_ai vec_or(vector bool int __a, - vector bool int __b) { - return __a | __b; -} - -static __inline__ vector float __ATTRS_o_ai vec_or(vector float __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a | (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_or(vector bool int __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a | (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_or(vector float __a, - vector bool int __b) { - vector unsigned int __res = - (vector unsigned int)__a | (vector unsigned int)__b; - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_or(vector bool long long __a, - vector double __b) { - return (vector unsigned long long)__a | (vector unsigned long long)__b; -} - -static __inline__ vector double __ATTRS_o_ai vec_or(vector double __a, - vector bool long long __b) { - return (vector unsigned long long)__a | (vector unsigned long long)__b; -} - -static __inline__ vector double __ATTRS_o_ai vec_or(vector double __a, - vector double __b) { - vector unsigned long long __res = - (vector unsigned long long)__a | (vector unsigned long long)__b; - return (vector double)__res; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_or(vector signed long long __a, vector signed long long __b) { - return __a | __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_or(vector bool long long __a, vector signed long long __b) { - return (vector signed long long)__a | __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_or(vector signed long long __a, vector bool long long __b) { - return __a | (vector signed long long)__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_or(vector unsigned long long __a, vector unsigned long long __b) { - return __a | __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_or(vector bool long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__a | __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_or(vector unsigned long long __a, vector bool long long __b) { - return __a | (vector unsigned long long)__b; -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_or(vector bool long long __a, vector bool long long __b) { - return __a | __b; -} -#endif - -#ifdef __POWER8_VECTOR__ -static __inline__ vector signed char __ATTRS_o_ai -vec_orc(vector signed char __a, vector signed char __b) { - return __a | ~__b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_orc(vector signed char __a, vector bool char __b) { - return __a | ~__b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_orc(vector bool char __a, vector signed char __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_orc(vector unsigned char __a, vector unsigned char __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_orc(vector unsigned char __a, vector bool char __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_orc(vector bool char __a, vector unsigned char __b) { - return __a | ~__b; -} - -static __inline__ vector bool char __ATTRS_o_ai vec_orc(vector bool char __a, - vector bool char __b) { - return __a | ~__b; -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_orc(vector signed short __a, vector signed short __b) { - return __a | ~__b; -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_orc(vector signed short __a, vector bool short __b) { - return __a | ~__b; -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_orc(vector bool short __a, vector signed short __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_orc(vector unsigned short __a, vector unsigned short __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_orc(vector unsigned short __a, vector bool short __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_orc(vector bool short __a, vector unsigned short __b) { - return __a | ~__b; -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_orc(vector bool short __a, vector bool short __b) { - return __a | ~__b; -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_orc(vector signed int __a, vector signed int __b) { - return __a | ~__b; -} - -static __inline__ vector signed int __ATTRS_o_ai vec_orc(vector signed int __a, - vector bool int __b) { - return __a | ~__b; -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_orc(vector bool int __a, vector signed int __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_orc(vector unsigned int __a, vector unsigned int __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_orc(vector unsigned int __a, vector bool int __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_orc(vector bool int __a, vector unsigned int __b) { - return __a | ~__b; -} - -static __inline__ vector bool int __ATTRS_o_ai vec_orc(vector bool int __a, - vector bool int __b) { - return __a | ~__b; -} - -static __inline__ vector float __ATTRS_o_ai -vec_orc(vector bool int __a, vector float __b) { - return (vector float)(__a | ~(vector unsigned int)__b); -} - -static __inline__ vector float __ATTRS_o_ai -vec_orc(vector float __a, vector bool int __b) { - return (vector float)((vector unsigned int)__a | ~__b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_orc(vector signed long long __a, vector signed long long __b) { - return __a | ~__b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_orc(vector signed long long __a, vector bool long long __b) { - return __a | ~__b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_orc(vector bool long long __a, vector signed long long __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_orc(vector unsigned long long __a, vector unsigned long long __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_orc(vector unsigned long long __a, vector bool long long __b) { - return __a | ~__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_orc(vector bool long long __a, vector unsigned long long __b) { - return __a | ~__b; -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_orc(vector bool long long __a, vector bool long long __b) { - return __a | ~__b; -} - -static __inline__ vector double __ATTRS_o_ai -vec_orc(vector double __a, vector bool long long __b) { - return (vector double)((vector unsigned long long)__a | ~__b); -} - -static __inline__ vector double __ATTRS_o_ai -vec_orc(vector bool long long __a, vector double __b) { - return (vector double)(__a | ~(vector unsigned long long)__b); -} -#endif - -/* vec_vor */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vor(vector signed char __a, vector signed char __b) { - return __a | __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vor(vector bool char __a, vector signed char __b) { - return (vector signed char)__a | __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vor(vector signed char __a, vector bool char __b) { - return __a | (vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vor(vector unsigned char __a, vector unsigned char __b) { - return __a | __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vor(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a | __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vor(vector unsigned char __a, vector bool char __b) { - return __a | (vector unsigned char)__b; -} - -static __inline__ vector bool char __ATTRS_o_ai vec_vor(vector bool char __a, - vector bool char __b) { - return __a | __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vor(vector short __a, - vector short __b) { - return __a | __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vor(vector bool short __a, - vector short __b) { - return (vector short)__a | __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vor(vector short __a, - vector bool short __b) { - return __a | (vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vor(vector unsigned short __a, vector unsigned short __b) { - return __a | __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vor(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a | __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vor(vector unsigned short __a, vector bool short __b) { - return __a | (vector unsigned short)__b; -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vor(vector bool short __a, vector bool short __b) { - return __a | __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vor(vector int __a, - vector int __b) { - return __a | __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vor(vector bool int __a, - vector int __b) { - return (vector int)__a | __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vor(vector int __a, - vector bool int __b) { - return __a | (vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vor(vector unsigned int __a, vector unsigned int __b) { - return __a | __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vor(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a | __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vor(vector unsigned int __a, vector bool int __b) { - return __a | (vector unsigned int)__b; -} - -static __inline__ vector bool int __ATTRS_o_ai vec_vor(vector bool int __a, - vector bool int __b) { - return __a | __b; -} - -static __inline__ vector float __ATTRS_o_ai vec_vor(vector float __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a | (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_vor(vector bool int __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a | (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_vor(vector float __a, - vector bool int __b) { - vector unsigned int __res = - (vector unsigned int)__a | (vector unsigned int)__b; - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_vor(vector signed long long __a, vector signed long long __b) { - return __a | __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_vor(vector bool long long __a, vector signed long long __b) { - return (vector signed long long)__a | __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_vor(vector signed long long __a, vector bool long long __b) { - return __a | (vector signed long long)__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vor(vector unsigned long long __a, vector unsigned long long __b) { - return __a | __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vor(vector bool long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__a | __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vor(vector unsigned long long __a, vector bool long long __b) { - return __a | (vector unsigned long long)__b; -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_vor(vector bool long long __a, vector bool long long __b) { - return __a | __b; -} -#endif - -/* vec_pack */ - -/* The various vector pack instructions have a big-endian bias, so for - little endian we must handle reversed element numbering. */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_pack(vector signed short __a, vector signed short __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector signed char)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, - 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E)); -#else - return (vector signed char)vec_perm( - __a, __b, - (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, - 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F)); -#endif -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_pack(vector unsigned short __a, vector unsigned short __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned char)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, - 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E)); -#else - return (vector unsigned char)vec_perm( - __a, __b, - (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, - 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F)); -#endif -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_pack(vector bool short __a, vector bool short __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool char)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, - 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E)); -#else - return (vector bool char)vec_perm( - __a, __b, - (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, - 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F)); -#endif -} - -static __inline__ vector short __ATTRS_o_ai vec_pack(vector int __a, - vector int __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector short)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D, - 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D)); -#else - return (vector short)vec_perm( - __a, __b, - (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F, - 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F)); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_pack(vector unsigned int __a, vector unsigned int __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned short)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D, - 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D)); -#else - return (vector unsigned short)vec_perm( - __a, __b, - (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F, - 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F)); -#endif -} - -static __inline__ vector bool short __ATTRS_o_ai vec_pack(vector bool int __a, - vector bool int __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool short)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D, - 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D)); -#else - return (vector bool short)vec_perm( - __a, __b, - (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F, - 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F)); -#endif -} - -#ifdef __VSX__ -static __inline__ vector signed int __ATTRS_o_ai -vec_pack(vector signed long long __a, vector signed long long __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector signed int)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, - 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B)); -#else - return (vector signed int)vec_perm( - __a, __b, - (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, - 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F)); -#endif -} -static __inline__ vector unsigned int __ATTRS_o_ai -vec_pack(vector unsigned long long __a, vector unsigned long long __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned int)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, - 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B)); -#else - return (vector unsigned int)vec_perm( - __a, __b, - (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, - 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F)); -#endif -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_pack(vector bool long long __a, vector bool long long __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool int)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, - 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B)); -#else - return (vector bool int)vec_perm( - __a, __b, - (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, - 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F)); -#endif -} - -static __inline__ vector float __ATTRS_o_ai -vec_pack(vector double __a, vector double __b) { - return (vector float) (__a[0], __a[1], __b[0], __b[1]); -} -#endif - -#ifdef __POWER9_VECTOR__ -static __inline__ vector unsigned short __ATTRS_o_ai -vec_pack_to_short_fp32(vector float __a, vector float __b) { - vector float __resa = __builtin_vsx_xvcvsphp(__a); - vector float __resb = __builtin_vsx_xvcvsphp(__b); -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned short)vec_mergee(__resa, __resb); -#else - return (vector unsigned short)vec_mergeo(__resa, __resb); -#endif -} - -#endif -/* vec_vpkuhum */ - -#define __builtin_altivec_vpkuhum vec_vpkuhum - -static __inline__ vector signed char __ATTRS_o_ai -vec_vpkuhum(vector signed short __a, vector signed short __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector signed char)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, - 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E)); -#else - return (vector signed char)vec_perm( - __a, __b, - (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, - 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F)); -#endif -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vpkuhum(vector unsigned short __a, vector unsigned short __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned char)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, - 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E)); -#else - return (vector unsigned char)vec_perm( - __a, __b, - (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, - 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F)); -#endif -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vpkuhum(vector bool short __a, vector bool short __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool char)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, - 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E)); -#else - return (vector bool char)vec_perm( - __a, __b, - (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, - 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F)); -#endif -} - -/* vec_vpkuwum */ - -#define __builtin_altivec_vpkuwum vec_vpkuwum - -static __inline__ vector short __ATTRS_o_ai vec_vpkuwum(vector int __a, - vector int __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector short)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D, - 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D)); -#else - return (vector short)vec_perm( - __a, __b, - (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F, - 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F)); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vpkuwum(vector unsigned int __a, vector unsigned int __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned short)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D, - 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D)); -#else - return (vector unsigned short)vec_perm( - __a, __b, - (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F, - 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F)); -#endif -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vpkuwum(vector bool int __a, vector bool int __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool short)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D, - 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D)); -#else - return (vector bool short)vec_perm( - __a, __b, - (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F, - 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F)); -#endif -} - -/* vec_vpkudum */ - -#ifdef __POWER8_VECTOR__ -#define __builtin_altivec_vpkudum vec_vpkudum - -static __inline__ vector int __ATTRS_o_ai vec_vpkudum(vector long long __a, - vector long long __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector int)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, - 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B)); -#else - return (vector int)vec_perm( - __a, __b, - (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, - 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F)); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vpkudum(vector unsigned long long __a, vector unsigned long long __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned int)vec_perm( - __a, __b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, - 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B)); -#else - return (vector unsigned int)vec_perm( - __a, __b, - (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, - 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F)); -#endif -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vpkudum(vector bool long long __a, vector bool long long __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool int)vec_perm( - (vector long long)__a, (vector long long)__b, - (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, - 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B)); -#else - return (vector bool int)vec_perm( - (vector long long)__a, (vector long long)__b, - (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, - 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F)); -#endif -} -#endif - -/* vec_packpx */ - -static __inline__ vector pixel __attribute__((__always_inline__)) -vec_packpx(vector unsigned int __a, vector unsigned int __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector pixel)__builtin_altivec_vpkpx(__b, __a); -#else - return (vector pixel)__builtin_altivec_vpkpx(__a, __b); -#endif -} - -/* vec_vpkpx */ - -static __inline__ vector pixel __attribute__((__always_inline__)) -vec_vpkpx(vector unsigned int __a, vector unsigned int __b) { -#ifdef __LITTLE_ENDIAN__ - return (vector pixel)__builtin_altivec_vpkpx(__b, __a); -#else - return (vector pixel)__builtin_altivec_vpkpx(__a, __b); -#endif -} - -/* vec_packs */ - -static __inline__ vector signed char __ATTRS_o_ai vec_packs(vector short __a, - vector short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkshss(__b, __a); -#else - return __builtin_altivec_vpkshss(__a, __b); -#endif -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_packs(vector unsigned short __a, vector unsigned short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkuhus(__b, __a); -#else - return __builtin_altivec_vpkuhus(__a, __b); -#endif -} - -static __inline__ vector signed short __ATTRS_o_ai vec_packs(vector int __a, - vector int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkswss(__b, __a); -#else - return __builtin_altivec_vpkswss(__a, __b); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_packs(vector unsigned int __a, vector unsigned int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkuwus(__b, __a); -#else - return __builtin_altivec_vpkuwus(__a, __b); -#endif -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector int __ATTRS_o_ai vec_packs(vector long long __a, - vector long long __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpksdss(__b, __a); -#else - return __builtin_altivec_vpksdss(__a, __b); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_packs(vector unsigned long long __a, vector unsigned long long __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkudus(__b, __a); -#else - return __builtin_altivec_vpkudus(__a, __b); -#endif -} -#endif - -/* vec_vpkshss */ - -static __inline__ vector signed char __attribute__((__always_inline__)) -vec_vpkshss(vector short __a, vector short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkshss(__b, __a); -#else - return __builtin_altivec_vpkshss(__a, __b); -#endif -} - -/* vec_vpksdss */ - -#ifdef __POWER8_VECTOR__ -static __inline__ vector int __ATTRS_o_ai vec_vpksdss(vector long long __a, - vector long long __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpksdss(__b, __a); -#else - return __builtin_altivec_vpksdss(__a, __b); -#endif -} -#endif - -/* vec_vpkuhus */ - -static __inline__ vector unsigned char __attribute__((__always_inline__)) -vec_vpkuhus(vector unsigned short __a, vector unsigned short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkuhus(__b, __a); -#else - return __builtin_altivec_vpkuhus(__a, __b); -#endif -} - -/* vec_vpkudus */ - -#ifdef __POWER8_VECTOR__ -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_vpkudus(vector unsigned long long __a, vector unsigned long long __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkudus(__b, __a); -#else - return __builtin_altivec_vpkudus(__a, __b); -#endif -} -#endif - -/* vec_vpkswss */ - -static __inline__ vector signed short __attribute__((__always_inline__)) -vec_vpkswss(vector int __a, vector int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkswss(__b, __a); -#else - return __builtin_altivec_vpkswss(__a, __b); -#endif -} - -/* vec_vpkuwus */ - -static __inline__ vector unsigned short __attribute__((__always_inline__)) -vec_vpkuwus(vector unsigned int __a, vector unsigned int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkuwus(__b, __a); -#else - return __builtin_altivec_vpkuwus(__a, __b); -#endif -} - -/* vec_packsu */ - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_packsu(vector short __a, vector short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkshus(__b, __a); -#else - return __builtin_altivec_vpkshus(__a, __b); -#endif -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_packsu(vector unsigned short __a, vector unsigned short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkuhus(__b, __a); -#else - return __builtin_altivec_vpkuhus(__a, __b); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_packsu(vector int __a, vector int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkswus(__b, __a); -#else - return __builtin_altivec_vpkswus(__a, __b); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_packsu(vector unsigned int __a, vector unsigned int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkuwus(__b, __a); -#else - return __builtin_altivec_vpkuwus(__a, __b); -#endif -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector unsigned int __ATTRS_o_ai -vec_packsu(vector long long __a, vector long long __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpksdus(__b, __a); -#else - return __builtin_altivec_vpksdus(__a, __b); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_packsu(vector unsigned long long __a, vector unsigned long long __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkudus(__b, __a); -#else - return __builtin_altivec_vpkudus(__a, __b); -#endif -} -#endif - -/* vec_vpkshus */ - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vpkshus(vector short __a, vector short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkshus(__b, __a); -#else - return __builtin_altivec_vpkshus(__a, __b); -#endif -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vpkshus(vector unsigned short __a, vector unsigned short __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkuhus(__b, __a); -#else - return __builtin_altivec_vpkuhus(__a, __b); -#endif -} - -/* vec_vpkswus */ - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vpkswus(vector int __a, vector int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkswus(__b, __a); -#else - return __builtin_altivec_vpkswus(__a, __b); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vpkswus(vector unsigned int __a, vector unsigned int __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpkuwus(__b, __a); -#else - return __builtin_altivec_vpkuwus(__a, __b); -#endif -} - -/* vec_vpksdus */ - -#ifdef __POWER8_VECTOR__ -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vpksdus(vector long long __a, vector long long __b) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vpksdus(__b, __a); -#else - return __builtin_altivec_vpksdus(__a, __b); -#endif -} -#endif - -/* vec_perm */ - -// The vperm instruction is defined architecturally with a big-endian bias. -// For little endian, we swap the input operands and invert the permute -// control vector. Only the rightmost 5 bits matter, so we could use -// a vector of all 31s instead of all 255s to perform the inversion. -// However, when the PCV is not a constant, using 255 has an advantage -// in that the vec_xor can be recognized as a vec_nor (and for P8 and -// later, possibly a vec_nand). - -static __inline__ vector signed char __ATTRS_o_ai vec_perm( - vector signed char __a, vector signed char __b, vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector signed char)__builtin_altivec_vperm_4si((vector int)__b, - (vector int)__a, __d); -#else - return (vector signed char)__builtin_altivec_vperm_4si((vector int)__a, - (vector int)__b, __c); -#endif -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_perm(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector unsigned char)__builtin_altivec_vperm_4si( - (vector int)__b, (vector int)__a, __d); -#else - return (vector unsigned char)__builtin_altivec_vperm_4si( - (vector int)__a, (vector int)__b, __c); -#endif -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector bool char)__builtin_altivec_vperm_4si((vector int)__b, - (vector int)__a, __d); -#else - return (vector bool char)__builtin_altivec_vperm_4si((vector int)__a, - (vector int)__b, __c); -#endif -} - -static __inline__ vector short __ATTRS_o_ai vec_perm(vector signed short __a, - vector signed short __b, - vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector signed short)__builtin_altivec_vperm_4si((vector int)__b, - (vector int)__a, __d); -#else - return (vector signed short)__builtin_altivec_vperm_4si((vector int)__a, - (vector int)__b, __c); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_perm(vector unsigned short __a, vector unsigned short __b, - vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector unsigned short)__builtin_altivec_vperm_4si( - (vector int)__b, (vector int)__a, __d); -#else - return (vector unsigned short)__builtin_altivec_vperm_4si( - (vector int)__a, (vector int)__b, __c); -#endif -} - -static __inline__ vector bool short __ATTRS_o_ai vec_perm( - vector bool short __a, vector bool short __b, vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector bool short)__builtin_altivec_vperm_4si((vector int)__b, - (vector int)__a, __d); -#else - return (vector bool short)__builtin_altivec_vperm_4si((vector int)__a, - (vector int)__b, __c); -#endif -} - -static __inline__ vector pixel __ATTRS_o_ai vec_perm(vector pixel __a, - vector pixel __b, - vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector pixel)__builtin_altivec_vperm_4si((vector int)__b, - (vector int)__a, __d); -#else - return (vector pixel)__builtin_altivec_vperm_4si((vector int)__a, - (vector int)__b, __c); -#endif -} - -static __inline__ vector int __ATTRS_o_ai vec_perm(vector signed int __a, - vector signed int __b, - vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector signed int)__builtin_altivec_vperm_4si(__b, __a, __d); -#else - return (vector signed int)__builtin_altivec_vperm_4si(__a, __b, __c); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_perm(vector unsigned int __a, vector unsigned int __b, - vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector unsigned int)__builtin_altivec_vperm_4si((vector int)__b, - (vector int)__a, __d); -#else - return (vector unsigned int)__builtin_altivec_vperm_4si((vector int)__a, - (vector int)__b, __c); -#endif -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_perm(vector bool int __a, vector bool int __b, vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector bool int)__builtin_altivec_vperm_4si((vector int)__b, - (vector int)__a, __d); -#else - return (vector bool int)__builtin_altivec_vperm_4si((vector int)__a, - (vector int)__b, __c); -#endif -} - -static __inline__ vector float __ATTRS_o_ai vec_perm(vector float __a, - vector float __b, - vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector float)__builtin_altivec_vperm_4si((vector int)__b, - (vector int)__a, __d); -#else - return (vector float)__builtin_altivec_vperm_4si((vector int)__a, - (vector int)__b, __c); -#endif -} - -#ifdef __VSX__ -static __inline__ vector long long __ATTRS_o_ai -vec_perm(vector signed long long __a, vector signed long long __b, - vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector signed long long)__builtin_altivec_vperm_4si( - (vector int)__b, (vector int)__a, __d); -#else - return (vector signed long long)__builtin_altivec_vperm_4si( - (vector int)__a, (vector int)__b, __c); -#endif -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_perm(vector unsigned long long __a, vector unsigned long long __b, - vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector unsigned long long)__builtin_altivec_vperm_4si( - (vector int)__b, (vector int)__a, __d); -#else - return (vector unsigned long long)__builtin_altivec_vperm_4si( - (vector int)__a, (vector int)__b, __c); -#endif -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_perm(vector bool long long __a, vector bool long long __b, - vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector bool long long)__builtin_altivec_vperm_4si( - (vector int)__b, (vector int)__a, __d); -#else - return (vector bool long long)__builtin_altivec_vperm_4si( - (vector int)__a, (vector int)__b, __c); -#endif -} - -static __inline__ vector double __ATTRS_o_ai -vec_perm(vector double __a, vector double __b, vector unsigned char __c) { -#ifdef __LITTLE_ENDIAN__ - vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255}; - __d = vec_xor(__c, __d); - return (vector double)__builtin_altivec_vperm_4si((vector int)__b, - (vector int)__a, __d); -#else - return (vector double)__builtin_altivec_vperm_4si((vector int)__a, - (vector int)__b, __c); -#endif -} -#endif - -/* vec_vperm */ - -static __inline__ vector signed char __ATTRS_o_ai vec_vperm( - vector signed char __a, vector signed char __b, vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vperm(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector bool char __ATTRS_o_ai vec_vperm( - vector bool char __a, vector bool char __b, vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector short __ATTRS_o_ai -vec_vperm(vector short __a, vector short __b, vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vperm(vector unsigned short __a, vector unsigned short __b, - vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector bool short __ATTRS_o_ai vec_vperm( - vector bool short __a, vector bool short __b, vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector pixel __ATTRS_o_ai -vec_vperm(vector pixel __a, vector pixel __b, vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector int __ATTRS_o_ai vec_vperm(vector int __a, - vector int __b, - vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vperm(vector unsigned int __a, vector unsigned int __b, - vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vperm(vector bool int __a, vector bool int __b, vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector float __ATTRS_o_ai -vec_vperm(vector float __a, vector float __b, vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -#ifdef __VSX__ -static __inline__ vector long long __ATTRS_o_ai vec_vperm( - vector long long __a, vector long long __b, vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vperm(vector unsigned long long __a, vector unsigned long long __b, - vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} - -static __inline__ vector double __ATTRS_o_ai -vec_vperm(vector double __a, vector double __b, vector unsigned char __c) { - return vec_perm(__a, __b, __c); -} -#endif - -/* vec_re */ - -static __inline__ vector float __ATTRS_o_ai vec_re(vector float __a) { -#ifdef __VSX__ - return __builtin_vsx_xvresp(__a); -#else - return __builtin_altivec_vrefp(__a); -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_re(vector double __a) { - return __builtin_vsx_xvredp(__a); -} -#endif - -/* vec_vrefp */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vrefp(vector float __a) { - return __builtin_altivec_vrefp(__a); -} - -/* vec_rl */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_rl(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_rl(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_rl(vector short __a, - vector unsigned short __b) { - return __builtin_altivec_vrlh(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_rl(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_rl(vector int __a, - vector unsigned int __b) { - return __builtin_altivec_vrlw(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_rl(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_rl(vector signed long long __a, vector unsigned long long __b) { - return __builtin_altivec_vrld(__a, __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_rl(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_altivec_vrld(__a, __b); -} -#endif - -/* vec_rlmi */ -#ifdef __POWER9_VECTOR__ -static __inline__ vector unsigned int __ATTRS_o_ai -vec_rlmi(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return __builtin_altivec_vrlwmi(__a, __c, __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_rlmi(vector unsigned long long __a, vector unsigned long long __b, - vector unsigned long long __c) { - return __builtin_altivec_vrldmi(__a, __c, __b); -} - -/* vec_rlnm */ -static __inline__ vector unsigned int __ATTRS_o_ai -vec_rlnm(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - vector unsigned int OneByte = { 0x8, 0x8, 0x8, 0x8 }; - return __builtin_altivec_vrlwnm(__a, ((__c << OneByte) | __b)); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_rlnm(vector unsigned long long __a, vector unsigned long long __b, - vector unsigned long long __c) { - vector unsigned long long OneByte = { 0x8, 0x8 }; - return __builtin_altivec_vrldnm(__a, ((__c << OneByte) | __b)); -} -#endif - -/* vec_vrlb */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vrlb(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vrlb(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b); -} - -/* vec_vrlh */ - -static __inline__ vector short __ATTRS_o_ai -vec_vrlh(vector short __a, vector unsigned short __b) { - return __builtin_altivec_vrlh(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vrlh(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b); -} - -/* vec_vrlw */ - -static __inline__ vector int __ATTRS_o_ai vec_vrlw(vector int __a, - vector unsigned int __b) { - return __builtin_altivec_vrlw(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vrlw(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b); -} - -/* vec_round */ - -static __inline__ vector float __ATTRS_o_ai vec_round(vector float __a) { -#ifdef __VSX__ - return __builtin_vsx_xvrspi(__a); -#else - return __builtin_altivec_vrfin(__a); -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_round(vector double __a) { - return __builtin_vsx_xvrdpi(__a); -} - -/* vec_rint */ - -static __inline__ vector float __ATTRS_o_ai vec_rint(vector float __a) { - return __builtin_vsx_xvrspic(__a); -} - -static __inline__ vector double __ATTRS_o_ai vec_rint(vector double __a) { - return __builtin_vsx_xvrdpic(__a); -} - -/* vec_nearbyint */ - -static __inline__ vector float __ATTRS_o_ai vec_nearbyint(vector float __a) { - return __builtin_vsx_xvrspi(__a); -} - -static __inline__ vector double __ATTRS_o_ai vec_nearbyint(vector double __a) { - return __builtin_vsx_xvrdpi(__a); -} -#endif - -/* vec_vrfin */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vrfin(vector float __a) { - return __builtin_altivec_vrfin(__a); -} - -/* vec_sqrt */ - -#ifdef __VSX__ -static __inline__ vector float __ATTRS_o_ai vec_sqrt(vector float __a) { - return __builtin_vsx_xvsqrtsp(__a); -} - -static __inline__ vector double __ATTRS_o_ai vec_sqrt(vector double __a) { - return __builtin_vsx_xvsqrtdp(__a); -} -#endif - -/* vec_rsqrte */ - -static __inline__ vector float __ATTRS_o_ai vec_rsqrte(vector float __a) { -#ifdef __VSX__ - return __builtin_vsx_xvrsqrtesp(__a); -#else - return __builtin_altivec_vrsqrtefp(__a); -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_rsqrte(vector double __a) { - return __builtin_vsx_xvrsqrtedp(__a); -} -#endif - -/* vec_vrsqrtefp */ - -static __inline__ __vector float __attribute__((__always_inline__)) -vec_vrsqrtefp(vector float __a) { - return __builtin_altivec_vrsqrtefp(__a); -} - -/* vec_sel */ - -#define __builtin_altivec_vsel_4si vec_sel - -static __inline__ vector signed char __ATTRS_o_ai vec_sel( - vector signed char __a, vector signed char __b, vector unsigned char __c) { - return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_sel(vector signed char __a, vector signed char __b, vector bool char __c) { - return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sel(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector unsigned char __ATTRS_o_ai vec_sel( - vector unsigned char __a, vector unsigned char __b, vector bool char __c) { - return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) { - return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c); -} - -static __inline__ vector bool char __ATTRS_o_ai vec_sel(vector bool char __a, - vector bool char __b, - vector bool char __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector short __ATTRS_o_ai vec_sel(vector short __a, - vector short __b, - vector unsigned short __c) { - return (__a & ~(vector short)__c) | (__b & (vector short)__c); -} - -static __inline__ vector short __ATTRS_o_ai vec_sel(vector short __a, - vector short __b, - vector bool short __c) { - return (__a & ~(vector short)__c) | (__b & (vector short)__c); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sel(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sel(vector unsigned short __a, vector unsigned short __b, - vector bool short __c) { - return (__a & ~(vector unsigned short)__c) | - (__b & (vector unsigned short)__c); -} - -static __inline__ vector bool short __ATTRS_o_ai vec_sel( - vector bool short __a, vector bool short __b, vector unsigned short __c) { - return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector int __ATTRS_o_ai vec_sel(vector int __a, - vector int __b, - vector unsigned int __c) { - return (__a & ~(vector int)__c) | (__b & (vector int)__c); -} - -static __inline__ vector int __ATTRS_o_ai vec_sel(vector int __a, - vector int __b, - vector bool int __c) { - return (__a & ~(vector int)__c) | (__b & (vector int)__c); -} - -static __inline__ vector unsigned int __ATTRS_o_ai vec_sel( - vector unsigned int __a, vector unsigned int __b, vector unsigned int __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) { - return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) { - return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_sel(vector bool int __a, - vector bool int __b, - vector bool int __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector float __ATTRS_o_ai vec_sel(vector float __a, - vector float __b, - vector unsigned int __c) { - vector int __res = ((vector int)__a & ~(vector int)__c) | - ((vector int)__b & (vector int)__c); - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_sel(vector float __a, - vector float __b, - vector bool int __c) { - vector int __res = ((vector int)__a & ~(vector int)__c) | - ((vector int)__b & (vector int)__c); - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai -vec_sel(vector double __a, vector double __b, vector bool long long __c) { - vector long long __res = ((vector long long)__a & ~(vector long long)__c) | - ((vector long long)__b & (vector long long)__c); - return (vector double)__res; -} - -static __inline__ vector double __ATTRS_o_ai -vec_sel(vector double __a, vector double __b, vector unsigned long long __c) { - vector long long __res = ((vector long long)__a & ~(vector long long)__c) | - ((vector long long)__b & (vector long long)__c); - return (vector double)__res; -} -#endif - -/* vec_vsel */ - -static __inline__ vector signed char __ATTRS_o_ai vec_vsel( - vector signed char __a, vector signed char __b, vector unsigned char __c) { - return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsel(vector signed char __a, vector signed char __b, vector bool char __c) { - return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsel(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector unsigned char __ATTRS_o_ai vec_vsel( - vector unsigned char __a, vector unsigned char __b, vector bool char __c) { - return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vsel(vector bool char __a, vector bool char __b, vector unsigned char __c) { - return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c); -} - -static __inline__ vector bool char __ATTRS_o_ai vec_vsel(vector bool char __a, - vector bool char __b, - vector bool char __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector short __ATTRS_o_ai -vec_vsel(vector short __a, vector short __b, vector unsigned short __c) { - return (__a & ~(vector short)__c) | (__b & (vector short)__c); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsel(vector short __a, - vector short __b, - vector bool short __c) { - return (__a & ~(vector short)__c) | (__b & (vector short)__c); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsel(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsel(vector unsigned short __a, vector unsigned short __b, - vector bool short __c) { - return (__a & ~(vector unsigned short)__c) | - (__b & (vector unsigned short)__c); -} - -static __inline__ vector bool short __ATTRS_o_ai vec_vsel( - vector bool short __a, vector bool short __b, vector unsigned short __c) { - return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vsel(vector bool short __a, vector bool short __b, vector bool short __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsel(vector int __a, - vector int __b, - vector unsigned int __c) { - return (__a & ~(vector int)__c) | (__b & (vector int)__c); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsel(vector int __a, - vector int __b, - vector bool int __c) { - return (__a & ~(vector int)__c) | (__b & (vector int)__c); -} - -static __inline__ vector unsigned int __ATTRS_o_ai vec_vsel( - vector unsigned int __a, vector unsigned int __b, vector unsigned int __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector unsigned int __ATTRS_o_ai vec_vsel( - vector unsigned int __a, vector unsigned int __b, vector bool int __c) { - return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vsel(vector bool int __a, vector bool int __b, vector unsigned int __c) { - return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_vsel(vector bool int __a, - vector bool int __b, - vector bool int __c) { - return (__a & ~__c) | (__b & __c); -} - -static __inline__ vector float __ATTRS_o_ai vec_vsel(vector float __a, - vector float __b, - vector unsigned int __c) { - vector int __res = ((vector int)__a & ~(vector int)__c) | - ((vector int)__b & (vector int)__c); - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_vsel(vector float __a, - vector float __b, - vector bool int __c) { - vector int __res = ((vector int)__a & ~(vector int)__c) | - ((vector int)__b & (vector int)__c); - return (vector float)__res; -} - -/* vec_sl */ - -// vec_sl does modulo arithmetic on __b first, so __b is allowed to be more -// than the length of __a. -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sl(vector unsigned char __a, vector unsigned char __b) { - return __a << (__b % - (vector unsigned char)(sizeof(unsigned char) * __CHAR_BIT__)); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_sl(vector signed char __a, vector unsigned char __b) { - return (vector signed char)vec_sl((vector unsigned char)__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sl(vector unsigned short __a, vector unsigned short __b) { - return __a << (__b % (vector unsigned short)(sizeof(unsigned short) * - __CHAR_BIT__)); -} - -static __inline__ vector short __ATTRS_o_ai vec_sl(vector short __a, - vector unsigned short __b) { - return (vector short)vec_sl((vector unsigned short)__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sl(vector unsigned int __a, vector unsigned int __b) { - return __a << (__b % - (vector unsigned int)(sizeof(unsigned int) * __CHAR_BIT__)); -} - -static __inline__ vector int __ATTRS_o_ai vec_sl(vector int __a, - vector unsigned int __b) { - return (vector int)vec_sl((vector unsigned int)__a, __b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_sl(vector unsigned long long __a, vector unsigned long long __b) { - return __a << (__b % (vector unsigned long long)(sizeof(unsigned long long) * - __CHAR_BIT__)); -} - -static __inline__ vector long long __ATTRS_o_ai -vec_sl(vector long long __a, vector unsigned long long __b) { - return (vector long long)vec_sl((vector unsigned long long)__a, __b); -} -#endif - -/* vec_vslb */ - -#define __builtin_altivec_vslb vec_vslb - -static __inline__ vector signed char __ATTRS_o_ai -vec_vslb(vector signed char __a, vector unsigned char __b) { - return vec_sl(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vslb(vector unsigned char __a, vector unsigned char __b) { - return vec_sl(__a, __b); -} - -/* vec_vslh */ - -#define __builtin_altivec_vslh vec_vslh - -static __inline__ vector short __ATTRS_o_ai -vec_vslh(vector short __a, vector unsigned short __b) { - return vec_sl(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vslh(vector unsigned short __a, vector unsigned short __b) { - return vec_sl(__a, __b); -} - -/* vec_vslw */ - -#define __builtin_altivec_vslw vec_vslw - -static __inline__ vector int __ATTRS_o_ai vec_vslw(vector int __a, - vector unsigned int __b) { - return vec_sl(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vslw(vector unsigned int __a, vector unsigned int __b) { - return vec_sl(__a, __b); -} - -/* vec_sld */ - -#define __builtin_altivec_vsldoi_4si vec_sld - -static __inline__ vector signed char __ATTRS_o_ai vec_sld( - vector signed char __a, vector signed char __b, unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sld(vector unsigned char __a, vector unsigned char __b, - unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_sld(vector bool char __a, vector bool char __b, unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector signed short __ATTRS_o_ai vec_sld( - vector signed short __a, vector signed short __b, unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sld(vector unsigned short __a, vector unsigned short __b, - unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_sld(vector bool short __a, vector bool short __b, unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector pixel __ATTRS_o_ai vec_sld(vector pixel __a, - vector pixel __b, - unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_sld(vector signed int __a, vector signed int __b, unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai vec_sld( - vector unsigned int __a, vector unsigned int __b, unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector bool int __ATTRS_o_ai vec_sld(vector bool int __a, - vector bool int __b, - unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector float __ATTRS_o_ai vec_sld(vector float __a, - vector float __b, - unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -#ifdef __VSX__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_sld(vector bool long long __a, vector bool long long __b, - unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_sld(vector signed long long __a, vector signed long long __b, - unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_sld(vector unsigned long long __a, vector unsigned long long __b, - unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector double __ATTRS_o_ai vec_sld(vector double __a, - vector double __b, - unsigned const int __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} -#endif - -/* vec_sldw */ -static __inline__ vector signed char __ATTRS_o_ai vec_sldw( - vector signed char __a, vector signed char __b, unsigned const int __c) { - return vec_sld(__a, __b, ((__c << 2) & 0x0F)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sldw(vector unsigned char __a, vector unsigned char __b, - unsigned const int __c) { - return vec_sld(__a, __b, ((__c << 2) & 0x0F)); -} - -static __inline__ vector signed short __ATTRS_o_ai vec_sldw( - vector signed short __a, vector signed short __b, unsigned const int __c) { - return vec_sld(__a, __b, ((__c << 2) & 0x0F)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sldw(vector unsigned short __a, vector unsigned short __b, - unsigned const int __c) { - return vec_sld(__a, __b, ((__c << 2) & 0x0F)); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_sldw(vector signed int __a, vector signed int __b, unsigned const int __c) { - return vec_sld(__a, __b, ((__c << 2) & 0x0F)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai vec_sldw( - vector unsigned int __a, vector unsigned int __b, unsigned const int __c) { - return vec_sld(__a, __b, ((__c << 2) & 0x0F)); -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_sldw(vector signed long long __a, vector signed long long __b, - unsigned const int __c) { - return vec_sld(__a, __b, ((__c << 2) & 0x0F)); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_sldw(vector unsigned long long __a, vector unsigned long long __b, - unsigned const int __c) { - return vec_sld(__a, __b, ((__c << 2) & 0x0F)); -} -#endif - -#ifdef __POWER9_VECTOR__ -/* vec_slv */ -static __inline__ vector unsigned char __ATTRS_o_ai -vec_slv(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vslv(__a, __b); -} - -/* vec_srv */ -static __inline__ vector unsigned char __ATTRS_o_ai -vec_srv(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vsrv(__a, __b); -} -#endif - -/* vec_vsldoi */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsldoi(vector signed char __a, vector signed char __b, unsigned char __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector unsigned char __ATTRS_o_ai vec_vsldoi( - vector unsigned char __a, vector unsigned char __b, unsigned char __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector short __ATTRS_o_ai vec_vsldoi(vector short __a, - vector short __b, - unsigned char __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector unsigned short __ATTRS_o_ai vec_vsldoi( - vector unsigned short __a, vector unsigned short __b, unsigned char __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vsldoi(vector pixel __a, - vector pixel __b, - unsigned char __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector int __ATTRS_o_ai vec_vsldoi(vector int __a, - vector int __b, - unsigned char __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai vec_vsldoi( - vector unsigned int __a, vector unsigned int __b, unsigned char __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -static __inline__ vector float __ATTRS_o_ai vec_vsldoi(vector float __a, - vector float __b, - unsigned char __c) { - unsigned char __d = __c & 0x0F; -#ifdef __LITTLE_ENDIAN__ - return vec_perm( - __b, __a, (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, - 20 - __d, 21 - __d, 22 - __d, 23 - __d, - 24 - __d, 25 - __d, 26 - __d, 27 - __d, - 28 - __d, 29 - __d, 30 - __d, 31 - __d)); -#else - return vec_perm( - __a, __b, - (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5, - __d + 6, __d + 7, __d + 8, __d + 9, __d + 10, - __d + 11, __d + 12, __d + 13, __d + 14, __d + 15)); -#endif -} - -/* vec_sll */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_sll(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_sll(vector signed char __a, vector unsigned short __b) { - return (vector signed char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_sll(vector signed char __a, vector unsigned int __b) { - return (vector signed char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sll(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sll(vector unsigned char __a, vector unsigned short __b) { - return (vector unsigned char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sll(vector unsigned char __a, vector unsigned int __b) { - return (vector unsigned char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_sll(vector bool char __a, vector unsigned char __b) { - return (vector bool char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_sll(vector bool char __a, vector unsigned short __b) { - return (vector bool char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_sll(vector bool char __a, vector unsigned int __b) { - return (vector bool char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_sll(vector short __a, - vector unsigned char __b) { - return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_sll(vector short __a, - vector unsigned short __b) { - return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_sll(vector short __a, - vector unsigned int __b) { - return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sll(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sll(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sll(vector unsigned short __a, vector unsigned int __b) { - return (vector unsigned short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_sll(vector bool short __a, vector unsigned char __b) { - return (vector bool short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_sll(vector bool short __a, vector unsigned short __b) { - return (vector bool short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_sll(vector bool short __a, vector unsigned int __b) { - return (vector bool short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_sll(vector pixel __a, - vector unsigned char __b) { - return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_sll(vector pixel __a, - vector unsigned short __b) { - return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_sll(vector pixel __a, - vector unsigned int __b) { - return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_sll(vector int __a, - vector unsigned char __b) { - return (vector int)__builtin_altivec_vsl(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_sll(vector int __a, - vector unsigned short __b) { - return (vector int)__builtin_altivec_vsl(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_sll(vector int __a, - vector unsigned int __b) { - return (vector int)__builtin_altivec_vsl(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sll(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sll(vector unsigned int __a, vector unsigned short __b) { - return (vector unsigned int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sll(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_sll(vector bool int __a, vector unsigned char __b) { - return (vector bool int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_sll(vector bool int __a, vector unsigned short __b) { - return (vector bool int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_sll(vector bool int __a, vector unsigned int __b) { - return (vector bool int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_sll(vector signed long long __a, vector unsigned char __b) { - return (vector signed long long)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_sll(vector unsigned long long __a, vector unsigned char __b) { - return (vector unsigned long long)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} -#endif - -/* vec_vsl */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsl(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsl(vector signed char __a, vector unsigned short __b) { - return (vector signed char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsl(vector signed char __a, vector unsigned int __b) { - return (vector signed char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsl(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsl(vector unsigned char __a, vector unsigned short __b) { - return (vector unsigned char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsl(vector unsigned char __a, vector unsigned int __b) { - return (vector unsigned char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vsl(vector bool char __a, vector unsigned char __b) { - return (vector bool char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vsl(vector bool char __a, vector unsigned short __b) { - return (vector bool char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vsl(vector bool char __a, vector unsigned int __b) { - return (vector bool char)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsl(vector short __a, - vector unsigned char __b) { - return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsl(vector short __a, - vector unsigned short __b) { - return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsl(vector short __a, - vector unsigned int __b) { - return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsl(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsl(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsl(vector unsigned short __a, vector unsigned int __b) { - return (vector unsigned short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vsl(vector bool short __a, vector unsigned char __b) { - return (vector bool short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vsl(vector bool short __a, vector unsigned short __b) { - return (vector bool short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vsl(vector bool short __a, vector unsigned int __b) { - return (vector bool short)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vsl(vector pixel __a, - vector unsigned char __b) { - return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vsl(vector pixel __a, - vector unsigned short __b) { - return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vsl(vector pixel __a, - vector unsigned int __b) { - return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsl(vector int __a, - vector unsigned char __b) { - return (vector int)__builtin_altivec_vsl(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsl(vector int __a, - vector unsigned short __b) { - return (vector int)__builtin_altivec_vsl(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsl(vector int __a, - vector unsigned int __b) { - return (vector int)__builtin_altivec_vsl(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsl(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsl(vector unsigned int __a, vector unsigned short __b) { - return (vector unsigned int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsl(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vsl(vector bool int __a, vector unsigned char __b) { - return (vector bool int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vsl(vector bool int __a, vector unsigned short __b) { - return (vector bool int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vsl(vector bool int __a, vector unsigned int __b) { - return (vector bool int)__builtin_altivec_vsl((vector int)__a, - (vector int)__b); -} - -/* vec_slo */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_slo(vector signed char __a, vector signed char __b) { - return (vector signed char)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_slo(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_slo(vector unsigned char __a, vector signed char __b) { - return (vector unsigned char)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_slo(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_slo(vector short __a, - vector signed char __b) { - return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_slo(vector short __a, - vector unsigned char __b) { - return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_slo(vector unsigned short __a, vector signed char __b) { - return (vector unsigned short)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_slo(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_slo(vector pixel __a, - vector signed char __b) { - return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_slo(vector pixel __a, - vector unsigned char __b) { - return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_slo(vector int __a, - vector signed char __b) { - return (vector int)__builtin_altivec_vslo(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_slo(vector int __a, - vector unsigned char __b) { - return (vector int)__builtin_altivec_vslo(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_slo(vector unsigned int __a, vector signed char __b) { - return (vector unsigned int)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_slo(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector float __ATTRS_o_ai vec_slo(vector float __a, - vector signed char __b) { - return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -static __inline__ vector float __ATTRS_o_ai vec_slo(vector float __a, - vector unsigned char __b) { - return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_slo(vector signed long long __a, vector signed char __b) { - return (vector signed long long)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_slo(vector signed long long __a, vector unsigned char __b) { - return (vector signed long long)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_slo(vector unsigned long long __a, vector signed char __b) { - return (vector unsigned long long)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_slo(vector unsigned long long __a, vector unsigned char __b) { - return (vector unsigned long long)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} -#endif - -/* vec_vslo */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vslo(vector signed char __a, vector signed char __b) { - return (vector signed char)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vslo(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vslo(vector unsigned char __a, vector signed char __b) { - return (vector unsigned char)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vslo(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vslo(vector short __a, - vector signed char __b) { - return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vslo(vector short __a, - vector unsigned char __b) { - return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vslo(vector unsigned short __a, vector signed char __b) { - return (vector unsigned short)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vslo(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vslo(vector pixel __a, - vector signed char __b) { - return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vslo(vector pixel __a, - vector unsigned char __b) { - return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vslo(vector int __a, - vector signed char __b) { - return (vector int)__builtin_altivec_vslo(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vslo(vector int __a, - vector unsigned char __b) { - return (vector int)__builtin_altivec_vslo(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vslo(vector unsigned int __a, vector signed char __b) { - return (vector unsigned int)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vslo(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_altivec_vslo((vector int)__a, - (vector int)__b); -} - -static __inline__ vector float __ATTRS_o_ai vec_vslo(vector float __a, - vector signed char __b) { - return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -static __inline__ vector float __ATTRS_o_ai vec_vslo(vector float __a, - vector unsigned char __b) { - return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b); -} - -/* vec_splat */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_splat(vector signed char __a, unsigned const int __b) { - return vec_perm(__a, __a, (vector unsigned char)(__b & 0x0F)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_splat(vector unsigned char __a, unsigned const int __b) { - return vec_perm(__a, __a, (vector unsigned char)(__b & 0x0F)); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_splat(vector bool char __a, unsigned const int __b) { - return vec_perm(__a, __a, (vector unsigned char)(__b & 0x0F)); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_splat(vector signed short __a, unsigned const int __b) { - unsigned char b0 = (__b & 0x07) * 2; - unsigned char b1 = b0 + 1; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1, - b0, b1, b0, b1, b0, b1)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_splat(vector unsigned short __a, unsigned const int __b) { - unsigned char b0 = (__b & 0x07) * 2; - unsigned char b1 = b0 + 1; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1, - b0, b1, b0, b1, b0, b1)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_splat(vector bool short __a, unsigned const int __b) { - unsigned char b0 = (__b & 0x07) * 2; - unsigned char b1 = b0 + 1; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1, - b0, b1, b0, b1, b0, b1)); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_splat(vector pixel __a, - unsigned const int __b) { - unsigned char b0 = (__b & 0x07) * 2; - unsigned char b1 = b0 + 1; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1, - b0, b1, b0, b1, b0, b1)); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_splat(vector signed int __a, unsigned const int __b) { - unsigned char b0 = (__b & 0x03) * 4; - unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1, - b2, b3, b0, b1, b2, b3)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_splat(vector unsigned int __a, unsigned const int __b) { - unsigned char b0 = (__b & 0x03) * 4; - unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1, - b2, b3, b0, b1, b2, b3)); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_splat(vector bool int __a, unsigned const int __b) { - unsigned char b0 = (__b & 0x03) * 4; - unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1, - b2, b3, b0, b1, b2, b3)); -} - -static __inline__ vector float __ATTRS_o_ai vec_splat(vector float __a, - unsigned const int __b) { - unsigned char b0 = (__b & 0x03) * 4; - unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1, - b2, b3, b0, b1, b2, b3)); -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_splat(vector double __a, - unsigned const int __b) { - unsigned char b0 = (__b & 0x01) * 8; - unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5, - b6 = b0 + 6, b7 = b0 + 7; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1, - b2, b3, b4, b5, b6, b7)); -} -static __inline__ vector bool long long __ATTRS_o_ai -vec_splat(vector bool long long __a, unsigned const int __b) { - unsigned char b0 = (__b & 0x01) * 8; - unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5, - b6 = b0 + 6, b7 = b0 + 7; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1, - b2, b3, b4, b5, b6, b7)); -} -static __inline__ vector signed long long __ATTRS_o_ai -vec_splat(vector signed long long __a, unsigned const int __b) { - unsigned char b0 = (__b & 0x01) * 8; - unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5, - b6 = b0 + 6, b7 = b0 + 7; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1, - b2, b3, b4, b5, b6, b7)); -} -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_splat(vector unsigned long long __a, unsigned const int __b) { - unsigned char b0 = (__b & 0x01) * 8; - unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5, - b6 = b0 + 6, b7 = b0 + 7; - return vec_perm(__a, __a, - (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1, - b2, b3, b4, b5, b6, b7)); -} -#endif - -/* vec_vspltb */ - -#define __builtin_altivec_vspltb vec_vspltb - -static __inline__ vector signed char __ATTRS_o_ai -vec_vspltb(vector signed char __a, unsigned char __b) { - return vec_perm(__a, __a, (vector unsigned char)(__b)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vspltb(vector unsigned char __a, unsigned char __b) { - return vec_perm(__a, __a, (vector unsigned char)(__b)); -} - -static __inline__ vector bool char __ATTRS_o_ai vec_vspltb(vector bool char __a, - unsigned char __b) { - return vec_perm(__a, __a, (vector unsigned char)(__b)); -} - -/* vec_vsplth */ - -#define __builtin_altivec_vsplth vec_vsplth - -static __inline__ vector short __ATTRS_o_ai vec_vsplth(vector short __a, - unsigned char __b) { - __b *= 2; - unsigned char b1 = __b + 1; - return vec_perm(__a, __a, - (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1, - __b, b1, __b, b1, __b, b1, __b, b1)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsplth(vector unsigned short __a, unsigned char __b) { - __b *= 2; - unsigned char b1 = __b + 1; - return vec_perm(__a, __a, - (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1, - __b, b1, __b, b1, __b, b1, __b, b1)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vsplth(vector bool short __a, unsigned char __b) { - __b *= 2; - unsigned char b1 = __b + 1; - return vec_perm(__a, __a, - (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1, - __b, b1, __b, b1, __b, b1, __b, b1)); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vsplth(vector pixel __a, - unsigned char __b) { - __b *= 2; - unsigned char b1 = __b + 1; - return vec_perm(__a, __a, - (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1, - __b, b1, __b, b1, __b, b1, __b, b1)); -} - -/* vec_vspltw */ - -#define __builtin_altivec_vspltw vec_vspltw - -static __inline__ vector int __ATTRS_o_ai vec_vspltw(vector int __a, - unsigned char __b) { - __b *= 4; - unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3; - return vec_perm(__a, __a, - (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b, - b1, b2, b3, __b, b1, b2, b3)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vspltw(vector unsigned int __a, unsigned char __b) { - __b *= 4; - unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3; - return vec_perm(__a, __a, - (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b, - b1, b2, b3, __b, b1, b2, b3)); -} - -static __inline__ vector bool int __ATTRS_o_ai vec_vspltw(vector bool int __a, - unsigned char __b) { - __b *= 4; - unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3; - return vec_perm(__a, __a, - (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b, - b1, b2, b3, __b, b1, b2, b3)); -} - -static __inline__ vector float __ATTRS_o_ai vec_vspltw(vector float __a, - unsigned char __b) { - __b *= 4; - unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3; - return vec_perm(__a, __a, - (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b, - b1, b2, b3, __b, b1, b2, b3)); -} - -/* vec_splat_s8 */ - -#define __builtin_altivec_vspltisb vec_splat_s8 - -// FIXME: parameter should be treated as 5-bit signed literal -static __inline__ vector signed char __ATTRS_o_ai -vec_splat_s8(signed char __a) { - return (vector signed char)(__a); -} - -/* vec_vspltisb */ - -// FIXME: parameter should be treated as 5-bit signed literal -static __inline__ vector signed char __ATTRS_o_ai -vec_vspltisb(signed char __a) { - return (vector signed char)(__a); -} - -/* vec_splat_s16 */ - -#define __builtin_altivec_vspltish vec_splat_s16 - -// FIXME: parameter should be treated as 5-bit signed literal -static __inline__ vector short __ATTRS_o_ai vec_splat_s16(signed char __a) { - return (vector short)(__a); -} - -/* vec_vspltish */ - -// FIXME: parameter should be treated as 5-bit signed literal -static __inline__ vector short __ATTRS_o_ai vec_vspltish(signed char __a) { - return (vector short)(__a); -} - -/* vec_splat_s32 */ - -#define __builtin_altivec_vspltisw vec_splat_s32 - -// FIXME: parameter should be treated as 5-bit signed literal -static __inline__ vector int __ATTRS_o_ai vec_splat_s32(signed char __a) { - return (vector int)(__a); -} - -/* vec_vspltisw */ - -// FIXME: parameter should be treated as 5-bit signed literal -static __inline__ vector int __ATTRS_o_ai vec_vspltisw(signed char __a) { - return (vector int)(__a); -} - -/* vec_splat_u8 */ - -// FIXME: parameter should be treated as 5-bit signed literal -static __inline__ vector unsigned char __ATTRS_o_ai -vec_splat_u8(unsigned char __a) { - return (vector unsigned char)(__a); -} - -/* vec_splat_u16 */ - -// FIXME: parameter should be treated as 5-bit signed literal -static __inline__ vector unsigned short __ATTRS_o_ai -vec_splat_u16(signed char __a) { - return (vector unsigned short)(__a); -} - -/* vec_splat_u32 */ - -// FIXME: parameter should be treated as 5-bit signed literal -static __inline__ vector unsigned int __ATTRS_o_ai -vec_splat_u32(signed char __a) { - return (vector unsigned int)(__a); -} - -/* vec_sr */ - -// vec_sr does modulo arithmetic on __b first, so __b is allowed to be more -// than the length of __a. -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sr(vector unsigned char __a, vector unsigned char __b) { - return __a >> - (__b % (vector unsigned char)(sizeof(unsigned char) * __CHAR_BIT__)); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_sr(vector signed char __a, vector unsigned char __b) { - return (vector signed char)vec_sr((vector unsigned char)__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sr(vector unsigned short __a, vector unsigned short __b) { - return __a >> - (__b % (vector unsigned short)(sizeof(unsigned short) * __CHAR_BIT__)); -} - -static __inline__ vector short __ATTRS_o_ai vec_sr(vector short __a, - vector unsigned short __b) { - return (vector short)vec_sr((vector unsigned short)__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sr(vector unsigned int __a, vector unsigned int __b) { - return __a >> - (__b % (vector unsigned int)(sizeof(unsigned int) * __CHAR_BIT__)); -} - -static __inline__ vector int __ATTRS_o_ai vec_sr(vector int __a, - vector unsigned int __b) { - return (vector int)vec_sr((vector unsigned int)__a, __b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_sr(vector unsigned long long __a, vector unsigned long long __b) { - return __a >> (__b % (vector unsigned long long)(sizeof(unsigned long long) * - __CHAR_BIT__)); -} - -static __inline__ vector long long __ATTRS_o_ai -vec_sr(vector long long __a, vector unsigned long long __b) { - return (vector long long)vec_sr((vector unsigned long long)__a, __b); -} -#endif - -/* vec_vsrb */ - -#define __builtin_altivec_vsrb vec_vsrb - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsrb(vector signed char __a, vector unsigned char __b) { - return vec_sr(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsrb(vector unsigned char __a, vector unsigned char __b) { - return vec_sr(__a, __b); -} - -/* vec_vsrh */ - -#define __builtin_altivec_vsrh vec_vsrh - -static __inline__ vector short __ATTRS_o_ai -vec_vsrh(vector short __a, vector unsigned short __b) { - return vec_sr(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsrh(vector unsigned short __a, vector unsigned short __b) { - return vec_sr(__a, __b); -} - -/* vec_vsrw */ - -#define __builtin_altivec_vsrw vec_vsrw - -static __inline__ vector int __ATTRS_o_ai vec_vsrw(vector int __a, - vector unsigned int __b) { - return vec_sr(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsrw(vector unsigned int __a, vector unsigned int __b) { - return vec_sr(__a, __b); -} - -/* vec_sra */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_sra(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sra(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_sra(vector short __a, - vector unsigned short __b) { - return __builtin_altivec_vsrah(__a, (vector unsigned short)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sra(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_sra(vector int __a, - vector unsigned int __b) { - return __builtin_altivec_vsraw(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sra(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_sra(vector signed long long __a, vector unsigned long long __b) { - return __a >> __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_sra(vector unsigned long long __a, vector unsigned long long __b) { - return (vector unsigned long long)((vector signed long long)__a >> __b); -} -#endif - -/* vec_vsrab */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsrab(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsrab(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b); -} - -/* vec_vsrah */ - -static __inline__ vector short __ATTRS_o_ai -vec_vsrah(vector short __a, vector unsigned short __b) { - return __builtin_altivec_vsrah(__a, (vector unsigned short)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsrah(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b); -} - -/* vec_vsraw */ - -static __inline__ vector int __ATTRS_o_ai vec_vsraw(vector int __a, - vector unsigned int __b) { - return __builtin_altivec_vsraw(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsraw(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b); -} - -/* vec_srl */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_srl(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_srl(vector signed char __a, vector unsigned short __b) { - return (vector signed char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_srl(vector signed char __a, vector unsigned int __b) { - return (vector signed char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_srl(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_srl(vector unsigned char __a, vector unsigned short __b) { - return (vector unsigned char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_srl(vector unsigned char __a, vector unsigned int __b) { - return (vector unsigned char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_srl(vector bool char __a, vector unsigned char __b) { - return (vector bool char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_srl(vector bool char __a, vector unsigned short __b) { - return (vector bool char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_srl(vector bool char __a, vector unsigned int __b) { - return (vector bool char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_srl(vector short __a, - vector unsigned char __b) { - return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_srl(vector short __a, - vector unsigned short __b) { - return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_srl(vector short __a, - vector unsigned int __b) { - return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_srl(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_srl(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_srl(vector unsigned short __a, vector unsigned int __b) { - return (vector unsigned short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_srl(vector bool short __a, vector unsigned char __b) { - return (vector bool short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_srl(vector bool short __a, vector unsigned short __b) { - return (vector bool short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_srl(vector bool short __a, vector unsigned int __b) { - return (vector bool short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_srl(vector pixel __a, - vector unsigned char __b) { - return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_srl(vector pixel __a, - vector unsigned short __b) { - return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_srl(vector pixel __a, - vector unsigned int __b) { - return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_srl(vector int __a, - vector unsigned char __b) { - return (vector int)__builtin_altivec_vsr(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_srl(vector int __a, - vector unsigned short __b) { - return (vector int)__builtin_altivec_vsr(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_srl(vector int __a, - vector unsigned int __b) { - return (vector int)__builtin_altivec_vsr(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_srl(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_srl(vector unsigned int __a, vector unsigned short __b) { - return (vector unsigned int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_srl(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_srl(vector bool int __a, vector unsigned char __b) { - return (vector bool int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_srl(vector bool int __a, vector unsigned short __b) { - return (vector bool int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_srl(vector bool int __a, vector unsigned int __b) { - return (vector bool int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_srl(vector signed long long __a, vector unsigned char __b) { - return (vector signed long long)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_srl(vector unsigned long long __a, vector unsigned char __b) { - return (vector unsigned long long)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} -#endif - -/* vec_vsr */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsr(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsr(vector signed char __a, vector unsigned short __b) { - return (vector signed char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsr(vector signed char __a, vector unsigned int __b) { - return (vector signed char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsr(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsr(vector unsigned char __a, vector unsigned short __b) { - return (vector unsigned char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsr(vector unsigned char __a, vector unsigned int __b) { - return (vector unsigned char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vsr(vector bool char __a, vector unsigned char __b) { - return (vector bool char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vsr(vector bool char __a, vector unsigned short __b) { - return (vector bool char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vsr(vector bool char __a, vector unsigned int __b) { - return (vector bool char)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsr(vector short __a, - vector unsigned char __b) { - return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsr(vector short __a, - vector unsigned short __b) { - return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsr(vector short __a, - vector unsigned int __b) { - return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsr(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsr(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsr(vector unsigned short __a, vector unsigned int __b) { - return (vector unsigned short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vsr(vector bool short __a, vector unsigned char __b) { - return (vector bool short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vsr(vector bool short __a, vector unsigned short __b) { - return (vector bool short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vsr(vector bool short __a, vector unsigned int __b) { - return (vector bool short)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vsr(vector pixel __a, - vector unsigned char __b) { - return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vsr(vector pixel __a, - vector unsigned short __b) { - return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vsr(vector pixel __a, - vector unsigned int __b) { - return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsr(vector int __a, - vector unsigned char __b) { - return (vector int)__builtin_altivec_vsr(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsr(vector int __a, - vector unsigned short __b) { - return (vector int)__builtin_altivec_vsr(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsr(vector int __a, - vector unsigned int __b) { - return (vector int)__builtin_altivec_vsr(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsr(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsr(vector unsigned int __a, vector unsigned short __b) { - return (vector unsigned int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsr(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vsr(vector bool int __a, vector unsigned char __b) { - return (vector bool int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vsr(vector bool int __a, vector unsigned short __b) { - return (vector bool int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vsr(vector bool int __a, vector unsigned int __b) { - return (vector bool int)__builtin_altivec_vsr((vector int)__a, - (vector int)__b); -} - -/* vec_sro */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_sro(vector signed char __a, vector signed char __b) { - return (vector signed char)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_sro(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sro(vector unsigned char __a, vector signed char __b) { - return (vector unsigned char)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sro(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_sro(vector short __a, - vector signed char __b) { - return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_sro(vector short __a, - vector unsigned char __b) { - return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sro(vector unsigned short __a, vector signed char __b) { - return (vector unsigned short)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sro(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_sro(vector pixel __a, - vector signed char __b) { - return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_sro(vector pixel __a, - vector unsigned char __b) { - return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_sro(vector int __a, - vector signed char __b) { - return (vector int)__builtin_altivec_vsro(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_sro(vector int __a, - vector unsigned char __b) { - return (vector int)__builtin_altivec_vsro(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sro(vector unsigned int __a, vector signed char __b) { - return (vector unsigned int)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sro(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector float __ATTRS_o_ai vec_sro(vector float __a, - vector signed char __b) { - return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -static __inline__ vector float __ATTRS_o_ai vec_sro(vector float __a, - vector unsigned char __b) { - return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_sro(vector signed long long __a, vector signed char __b) { - return (vector signed long long)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_sro(vector signed long long __a, vector unsigned char __b) { - return (vector signed long long)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_sro(vector unsigned long long __a, vector signed char __b) { - return (vector unsigned long long)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_sro(vector unsigned long long __a, vector unsigned char __b) { - return (vector unsigned long long)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} -#endif - -/* vec_vsro */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsro(vector signed char __a, vector signed char __b) { - return (vector signed char)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsro(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsro(vector unsigned char __a, vector signed char __b) { - return (vector unsigned char)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsro(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsro(vector short __a, - vector signed char __b) { - return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsro(vector short __a, - vector unsigned char __b) { - return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsro(vector unsigned short __a, vector signed char __b) { - return (vector unsigned short)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsro(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vsro(vector pixel __a, - vector signed char __b) { - return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_vsro(vector pixel __a, - vector unsigned char __b) { - return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsro(vector int __a, - vector signed char __b) { - return (vector int)__builtin_altivec_vsro(__a, (vector int)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsro(vector int __a, - vector unsigned char __b) { - return (vector int)__builtin_altivec_vsro(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsro(vector unsigned int __a, vector signed char __b) { - return (vector unsigned int)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsro(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_altivec_vsro((vector int)__a, - (vector int)__b); -} - -static __inline__ vector float __ATTRS_o_ai vec_vsro(vector float __a, - vector signed char __b) { - return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -static __inline__ vector float __ATTRS_o_ai vec_vsro(vector float __a, - vector unsigned char __b) { - return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b); -} - -/* vec_st */ - -static __inline__ void __ATTRS_o_ai vec_st(vector signed char __a, int __b, - vector signed char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector signed char __a, int __b, - signed char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector unsigned char __a, int __b, - vector unsigned char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector unsigned char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector bool char __a, int __b, - signed char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector bool char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector bool char __a, int __b, - vector bool char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector short __a, int __b, - vector short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector short __a, int __b, - short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector unsigned short __a, int __b, - vector unsigned short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector unsigned short __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector bool short __a, int __b, - short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector bool short __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector bool short __a, int __b, - vector bool short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector pixel __a, int __b, - short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector pixel __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector pixel __a, int __b, - vector pixel *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector int __a, int __b, - vector int *__c) { - __builtin_altivec_stvx(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector int __a, int __b, int *__c) { - __builtin_altivec_stvx(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector unsigned int __a, int __b, - vector unsigned int *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector unsigned int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector bool int __a, int __b, - int *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector bool int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector bool int __a, int __b, - vector bool int *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector float __a, int __b, - vector float *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_st(vector float __a, int __b, - float *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -/* vec_stvx */ - -static __inline__ void __ATTRS_o_ai vec_stvx(vector signed char __a, int __b, - vector signed char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector signed char __a, int __b, - signed char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned char __a, int __b, - vector unsigned char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector bool char __a, int __b, - signed char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector bool char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector bool char __a, int __b, - vector bool char *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector short __a, int __b, - vector short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector short __a, int __b, - short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned short __a, int __b, - vector unsigned short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned short __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector bool short __a, int __b, - short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector bool short __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector bool short __a, int __b, - vector bool short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector pixel __a, int __b, - short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector pixel __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector pixel __a, int __b, - vector pixel *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector int __a, int __b, - vector int *__c) { - __builtin_altivec_stvx(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector int __a, int __b, - int *__c) { - __builtin_altivec_stvx(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned int __a, int __b, - vector unsigned int *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector unsigned int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector bool int __a, int __b, - int *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector bool int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector bool int __a, int __b, - vector bool int *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector float __a, int __b, - vector float *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvx(vector float __a, int __b, - float *__c) { - __builtin_altivec_stvx((vector int)__a, __b, __c); -} - -/* vec_ste */ - -static __inline__ void __ATTRS_o_ai vec_ste(vector signed char __a, int __b, - signed char *__c) { - __builtin_altivec_stvebx((vector char)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector unsigned char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvebx((vector char)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector bool char __a, int __b, - signed char *__c) { - __builtin_altivec_stvebx((vector char)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector bool char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvebx((vector char)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector short __a, int __b, - short *__c) { - __builtin_altivec_stvehx(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector unsigned short __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvehx((vector short)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector bool short __a, int __b, - short *__c) { - __builtin_altivec_stvehx((vector short)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector bool short __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvehx((vector short)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector pixel __a, int __b, - short *__c) { - __builtin_altivec_stvehx((vector short)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector pixel __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvehx((vector short)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector int __a, int __b, int *__c) { - __builtin_altivec_stvewx(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector unsigned int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvewx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector bool int __a, int __b, - int *__c) { - __builtin_altivec_stvewx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector bool int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvewx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_ste(vector float __a, int __b, - float *__c) { - __builtin_altivec_stvewx((vector int)__a, __b, __c); -} - -/* vec_stvebx */ - -static __inline__ void __ATTRS_o_ai vec_stvebx(vector signed char __a, int __b, - signed char *__c) { - __builtin_altivec_stvebx((vector char)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvebx(vector unsigned char __a, - int __b, unsigned char *__c) { - __builtin_altivec_stvebx((vector char)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvebx(vector bool char __a, int __b, - signed char *__c) { - __builtin_altivec_stvebx((vector char)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvebx(vector bool char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvebx((vector char)__a, __b, __c); -} - -/* vec_stvehx */ - -static __inline__ void __ATTRS_o_ai vec_stvehx(vector short __a, int __b, - short *__c) { - __builtin_altivec_stvehx(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvehx(vector unsigned short __a, - int __b, unsigned short *__c) { - __builtin_altivec_stvehx((vector short)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvehx(vector bool short __a, int __b, - short *__c) { - __builtin_altivec_stvehx((vector short)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvehx(vector bool short __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvehx((vector short)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvehx(vector pixel __a, int __b, - short *__c) { - __builtin_altivec_stvehx((vector short)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvehx(vector pixel __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvehx((vector short)__a, __b, __c); -} - -/* vec_stvewx */ - -static __inline__ void __ATTRS_o_ai vec_stvewx(vector int __a, int __b, - int *__c) { - __builtin_altivec_stvewx(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvewx(vector unsigned int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvewx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvewx(vector bool int __a, int __b, - int *__c) { - __builtin_altivec_stvewx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvewx(vector bool int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvewx((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvewx(vector float __a, int __b, - float *__c) { - __builtin_altivec_stvewx((vector int)__a, __b, __c); -} - -/* vec_stl */ - -static __inline__ void __ATTRS_o_ai vec_stl(vector signed char __a, int __b, - vector signed char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector signed char __a, int __b, - signed char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned char __a, int __b, - vector unsigned char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector bool char __a, int __b, - signed char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector bool char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector bool char __a, int __b, - vector bool char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector short __a, int __b, - vector short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector short __a, int __b, - short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned short __a, int __b, - vector unsigned short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned short __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector bool short __a, int __b, - short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector bool short __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector bool short __a, int __b, - vector bool short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector pixel __a, int __b, - short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector pixel __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector pixel __a, int __b, - vector pixel *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector int __a, int __b, - vector int *__c) { - __builtin_altivec_stvxl(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector int __a, int __b, int *__c) { - __builtin_altivec_stvxl(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned int __a, int __b, - vector unsigned int *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector unsigned int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector bool int __a, int __b, - int *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector bool int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector bool int __a, int __b, - vector bool int *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector float __a, int __b, - vector float *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stl(vector float __a, int __b, - float *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -/* vec_stvxl */ - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector signed char __a, int __b, - vector signed char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector signed char __a, int __b, - signed char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned char __a, int __b, - vector unsigned char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool char __a, int __b, - signed char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool char __a, int __b, - unsigned char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool char __a, int __b, - vector bool char *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector short __a, int __b, - vector short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector short __a, int __b, - short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned short __a, - int __b, - vector unsigned short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned short __a, - int __b, unsigned short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool short __a, int __b, - short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool short __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool short __a, int __b, - vector bool short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector pixel __a, int __b, - short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector pixel __a, int __b, - unsigned short *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector pixel __a, int __b, - vector pixel *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector int __a, int __b, - vector int *__c) { - __builtin_altivec_stvxl(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector int __a, int __b, - int *__c) { - __builtin_altivec_stvxl(__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned int __a, int __b, - vector unsigned int *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector unsigned int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool int __a, int __b, - int *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool int __a, int __b, - unsigned int *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector bool int __a, int __b, - vector bool int *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector float __a, int __b, - vector float *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvxl(vector float __a, int __b, - float *__c) { - __builtin_altivec_stvxl((vector int)__a, __b, __c); -} - -/* vec_sub */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_sub(vector signed char __a, vector signed char __b) { - return __a - __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_sub(vector bool char __a, vector signed char __b) { - return (vector signed char)__a - __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_sub(vector signed char __a, vector bool char __b) { - return __a - (vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sub(vector unsigned char __a, vector unsigned char __b) { - return __a - __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sub(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a - __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_sub(vector unsigned char __a, vector bool char __b) { - return __a - (vector unsigned char)__b; -} - -static __inline__ vector short __ATTRS_o_ai vec_sub(vector short __a, - vector short __b) { - return __a - __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_sub(vector bool short __a, - vector short __b) { - return (vector short)__a - __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_sub(vector short __a, - vector bool short __b) { - return __a - (vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sub(vector unsigned short __a, vector unsigned short __b) { - return __a - __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sub(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a - __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_sub(vector unsigned short __a, vector bool short __b) { - return __a - (vector unsigned short)__b; -} - -static __inline__ vector int __ATTRS_o_ai vec_sub(vector int __a, - vector int __b) { - return __a - __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_sub(vector bool int __a, - vector int __b) { - return (vector int)__a - __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_sub(vector int __a, - vector bool int __b) { - return __a - (vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sub(vector unsigned int __a, vector unsigned int __b) { - return __a - __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sub(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a - __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sub(vector unsigned int __a, vector bool int __b) { - return __a - (vector unsigned int)__b; -} - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_sub(vector signed __int128 __a, vector signed __int128 __b) { - return __a - __b; -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_sub(vector unsigned __int128 __a, vector unsigned __int128 __b) { - return __a - __b; -} -#endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__) - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_sub(vector signed long long __a, vector signed long long __b) { - return __a - __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_sub(vector unsigned long long __a, vector unsigned long long __b) { - return __a - __b; -} - -static __inline__ vector double __ATTRS_o_ai vec_sub(vector double __a, - vector double __b) { - return __a - __b; -} -#endif - -static __inline__ vector float __ATTRS_o_ai vec_sub(vector float __a, - vector float __b) { - return __a - __b; -} - -/* vec_vsububm */ - -#define __builtin_altivec_vsububm vec_vsububm - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsububm(vector signed char __a, vector signed char __b) { - return __a - __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsububm(vector bool char __a, vector signed char __b) { - return (vector signed char)__a - __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsububm(vector signed char __a, vector bool char __b) { - return __a - (vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsububm(vector unsigned char __a, vector unsigned char __b) { - return __a - __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsububm(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a - __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsububm(vector unsigned char __a, vector bool char __b) { - return __a - (vector unsigned char)__b; -} - -/* vec_vsubuhm */ - -#define __builtin_altivec_vsubuhm vec_vsubuhm - -static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector short __a, - vector short __b) { - return __a - __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector bool short __a, - vector short __b) { - return (vector short)__a - __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector short __a, - vector bool short __b) { - return __a - (vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsubuhm(vector unsigned short __a, vector unsigned short __b) { - return __a - __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsubuhm(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a - __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsubuhm(vector unsigned short __a, vector bool short __b) { - return __a - (vector unsigned short)__b; -} - -/* vec_vsubuwm */ - -#define __builtin_altivec_vsubuwm vec_vsubuwm - -static __inline__ vector int __ATTRS_o_ai vec_vsubuwm(vector int __a, - vector int __b) { - return __a - __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vsubuwm(vector bool int __a, - vector int __b) { - return (vector int)__a - __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vsubuwm(vector int __a, - vector bool int __b) { - return __a - (vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsubuwm(vector unsigned int __a, vector unsigned int __b) { - return __a - __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsubuwm(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a - __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsubuwm(vector unsigned int __a, vector bool int __b) { - return __a - (vector unsigned int)__b; -} - -/* vec_vsubfp */ - -#define __builtin_altivec_vsubfp vec_vsubfp - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vsubfp(vector float __a, vector float __b) { - return __a - __b; -} - -/* vec_subc */ - -static __inline__ vector signed int __ATTRS_o_ai -vec_subc(vector signed int __a, vector signed int __b) { - return (vector signed int)__builtin_altivec_vsubcuw((vector unsigned int)__a, - (vector unsigned int) __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_subc(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vsubcuw(__a, __b); -} - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_subc(vector unsigned __int128 __a, vector unsigned __int128 __b) { - return __builtin_altivec_vsubcuq(__a, __b); -} - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_subc(vector signed __int128 __a, vector signed __int128 __b) { - return __builtin_altivec_vsubcuq(__a, __b); -} -#endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__) - -/* vec_vsubcuw */ - -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_vsubcuw(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vsubcuw(__a, __b); -} - -/* vec_subs */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_subs(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vsubsbs(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_subs(vector bool char __a, vector signed char __b) { - return __builtin_altivec_vsubsbs((vector signed char)__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_subs(vector signed char __a, vector bool char __b) { - return __builtin_altivec_vsubsbs(__a, (vector signed char)__b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_subs(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vsububs(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_subs(vector bool char __a, vector unsigned char __b) { - return __builtin_altivec_vsububs((vector unsigned char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_subs(vector unsigned char __a, vector bool char __b) { - return __builtin_altivec_vsububs(__a, (vector unsigned char)__b); -} - -static __inline__ vector short __ATTRS_o_ai vec_subs(vector short __a, - vector short __b) { - return __builtin_altivec_vsubshs(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_subs(vector bool short __a, - vector short __b) { - return __builtin_altivec_vsubshs((vector short)__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_subs(vector short __a, - vector bool short __b) { - return __builtin_altivec_vsubshs(__a, (vector short)__b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_subs(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vsubuhs(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_subs(vector bool short __a, vector unsigned short __b) { - return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_subs(vector unsigned short __a, vector bool short __b) { - return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b); -} - -static __inline__ vector int __ATTRS_o_ai vec_subs(vector int __a, - vector int __b) { - return __builtin_altivec_vsubsws(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_subs(vector bool int __a, - vector int __b) { - return __builtin_altivec_vsubsws((vector int)__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_subs(vector int __a, - vector bool int __b) { - return __builtin_altivec_vsubsws(__a, (vector int)__b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_subs(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vsubuws(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_subs(vector bool int __a, vector unsigned int __b) { - return __builtin_altivec_vsubuws((vector unsigned int)__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_subs(vector unsigned int __a, vector bool int __b) { - return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b); -} - -/* vec_vsubsbs */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsubsbs(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vsubsbs(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsubsbs(vector bool char __a, vector signed char __b) { - return __builtin_altivec_vsubsbs((vector signed char)__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsubsbs(vector signed char __a, vector bool char __b) { - return __builtin_altivec_vsubsbs(__a, (vector signed char)__b); -} - -/* vec_vsububs */ - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsububs(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vsububs(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsububs(vector bool char __a, vector unsigned char __b) { - return __builtin_altivec_vsububs((vector unsigned char)__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsububs(vector unsigned char __a, vector bool char __b) { - return __builtin_altivec_vsububs(__a, (vector unsigned char)__b); -} - -/* vec_vsubshs */ - -static __inline__ vector short __ATTRS_o_ai vec_vsubshs(vector short __a, - vector short __b) { - return __builtin_altivec_vsubshs(__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsubshs(vector bool short __a, - vector short __b) { - return __builtin_altivec_vsubshs((vector short)__a, __b); -} - -static __inline__ vector short __ATTRS_o_ai vec_vsubshs(vector short __a, - vector bool short __b) { - return __builtin_altivec_vsubshs(__a, (vector short)__b); -} - -/* vec_vsubuhs */ - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsubuhs(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_vsubuhs(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsubuhs(vector bool short __a, vector unsigned short __b) { - return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsubuhs(vector unsigned short __a, vector bool short __b) { - return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b); -} - -/* vec_vsubsws */ - -static __inline__ vector int __ATTRS_o_ai vec_vsubsws(vector int __a, - vector int __b) { - return __builtin_altivec_vsubsws(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsubsws(vector bool int __a, - vector int __b) { - return __builtin_altivec_vsubsws((vector int)__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_vsubsws(vector int __a, - vector bool int __b) { - return __builtin_altivec_vsubsws(__a, (vector int)__b); -} - -/* vec_vsubuws */ - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsubuws(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_vsubuws(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsubuws(vector bool int __a, vector unsigned int __b) { - return __builtin_altivec_vsubuws((vector unsigned int)__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsubuws(vector unsigned int __a, vector bool int __b) { - return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b); -} - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -/* vec_vsubuqm */ - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_vsubuqm(vector signed __int128 __a, vector signed __int128 __b) { - return __a - __b; -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_vsubuqm(vector unsigned __int128 __a, vector unsigned __int128 __b) { - return __a - __b; -} - -/* vec_vsubeuqm */ - - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_vsubeuqm(vector signed __int128 __a, vector signed __int128 __b, - vector signed __int128 __c) { - return __builtin_altivec_vsubeuqm(__a, __b, __c); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_vsubeuqm(vector unsigned __int128 __a, vector unsigned __int128 __b, - vector unsigned __int128 __c) { - return __builtin_altivec_vsubeuqm(__a, __b, __c); -} - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_sube(vector signed __int128 __a, vector signed __int128 __b, - vector signed __int128 __c) { - return __builtin_altivec_vsubeuqm(__a, __b, __c); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_sube(vector unsigned __int128 __a, vector unsigned __int128 __b, - vector unsigned __int128 __c) { - return __builtin_altivec_vsubeuqm(__a, __b, __c); -} - -/* vec_vsubcuq */ - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_vsubcuq(vector signed __int128 __a, vector signed __int128 __b) { - return __builtin_altivec_vsubcuq(__a, __b); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_vsubcuq(vector unsigned __int128 __a, vector unsigned __int128 __b) { - return __builtin_altivec_vsubcuq(__a, __b); -} - -/* vec_vsubecuq */ - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_vsubecuq(vector signed __int128 __a, vector signed __int128 __b, - vector signed __int128 __c) { - return __builtin_altivec_vsubecuq(__a, __b, __c); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_vsubecuq(vector unsigned __int128 __a, vector unsigned __int128 __b, - vector unsigned __int128 __c) { - return __builtin_altivec_vsubecuq(__a, __b, __c); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_subec(vector signed int __a, vector signed int __b, - vector signed int __c) { - return vec_addec(__a, ~__b, __c); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_subec(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return vec_addec(__a, ~__b, __c); -} - -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_subec(vector signed __int128 __a, vector signed __int128 __b, - vector signed __int128 __c) { - return __builtin_altivec_vsubecuq(__a, __b, __c); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_subec(vector unsigned __int128 __a, vector unsigned __int128 __b, - vector unsigned __int128 __c) { - return __builtin_altivec_vsubecuq(__a, __b, __c); -} -#endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__) - -static __inline__ vector signed int __ATTRS_o_ai -vec_sube(vector signed int __a, vector signed int __b, - vector signed int __c) { - vector signed int __mask = {1, 1, 1, 1}; - vector signed int __carry = __c & __mask; - return vec_adde(__a, ~__b, __carry); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sube(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - vector unsigned int __mask = {1, 1, 1, 1}; - vector unsigned int __carry = __c & __mask; - return vec_adde(__a, ~__b, __carry); -} -/* vec_sum4s */ - -static __inline__ vector int __ATTRS_o_ai vec_sum4s(vector signed char __a, - vector int __b) { - return __builtin_altivec_vsum4sbs(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_sum4s(vector unsigned char __a, vector unsigned int __b) { - return __builtin_altivec_vsum4ubs(__a, __b); -} - -static __inline__ vector int __ATTRS_o_ai vec_sum4s(vector signed short __a, - vector int __b) { - return __builtin_altivec_vsum4shs(__a, __b); -} - -/* vec_vsum4sbs */ - -static __inline__ vector int __attribute__((__always_inline__)) -vec_vsum4sbs(vector signed char __a, vector int __b) { - return __builtin_altivec_vsum4sbs(__a, __b); -} - -/* vec_vsum4ubs */ - -static __inline__ vector unsigned int __attribute__((__always_inline__)) -vec_vsum4ubs(vector unsigned char __a, vector unsigned int __b) { - return __builtin_altivec_vsum4ubs(__a, __b); -} - -/* vec_vsum4shs */ - -static __inline__ vector int __attribute__((__always_inline__)) -vec_vsum4shs(vector signed short __a, vector int __b) { - return __builtin_altivec_vsum4shs(__a, __b); -} - -/* vec_sum2s */ - -/* The vsum2sws instruction has a big-endian bias, so that the second - input vector and the result always reference big-endian elements - 1 and 3 (little-endian element 0 and 2). For ease of porting the - programmer wants elements 1 and 3 in both cases, so for little - endian we must perform some permutes. */ - -static __inline__ vector signed int __attribute__((__always_inline__)) -vec_sum2s(vector int __a, vector int __b) { -#ifdef __LITTLE_ENDIAN__ - vector int __c = (vector signed int)vec_perm( - __b, __b, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15, - 8, 9, 10, 11)); - __c = __builtin_altivec_vsum2sws(__a, __c); - return (vector signed int)vec_perm( - __c, __c, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15, - 8, 9, 10, 11)); -#else - return __builtin_altivec_vsum2sws(__a, __b); -#endif -} - -/* vec_vsum2sws */ - -static __inline__ vector signed int __attribute__((__always_inline__)) -vec_vsum2sws(vector int __a, vector int __b) { -#ifdef __LITTLE_ENDIAN__ - vector int __c = (vector signed int)vec_perm( - __b, __b, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15, - 8, 9, 10, 11)); - __c = __builtin_altivec_vsum2sws(__a, __c); - return (vector signed int)vec_perm( - __c, __c, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15, - 8, 9, 10, 11)); -#else - return __builtin_altivec_vsum2sws(__a, __b); -#endif -} - -/* vec_sums */ - -/* The vsumsws instruction has a big-endian bias, so that the second - input vector and the result always reference big-endian element 3 - (little-endian element 0). For ease of porting the programmer - wants element 3 in both cases, so for little endian we must perform - some permutes. */ - -static __inline__ vector signed int __attribute__((__always_inline__)) -vec_sums(vector signed int __a, vector signed int __b) { -#ifdef __LITTLE_ENDIAN__ - __b = (vector signed int)vec_splat(__b, 3); - __b = __builtin_altivec_vsumsws(__a, __b); - return (vector signed int)(0, 0, 0, __b[0]); -#else - return __builtin_altivec_vsumsws(__a, __b); -#endif -} - -/* vec_vsumsws */ - -static __inline__ vector signed int __attribute__((__always_inline__)) -vec_vsumsws(vector signed int __a, vector signed int __b) { -#ifdef __LITTLE_ENDIAN__ - __b = (vector signed int)vec_splat(__b, 3); - __b = __builtin_altivec_vsumsws(__a, __b); - return (vector signed int)(0, 0, 0, __b[0]); -#else - return __builtin_altivec_vsumsws(__a, __b); -#endif -} - -/* vec_trunc */ - -static __inline__ vector float __ATTRS_o_ai vec_trunc(vector float __a) { -#ifdef __VSX__ - return __builtin_vsx_xvrspiz(__a); -#else - return __builtin_altivec_vrfiz(__a); -#endif -} - -#ifdef __VSX__ -static __inline__ vector double __ATTRS_o_ai vec_trunc(vector double __a) { - return __builtin_vsx_xvrdpiz(__a); -} -#endif - -/* vec_vrfiz */ - -static __inline__ vector float __attribute__((__always_inline__)) -vec_vrfiz(vector float __a) { - return __builtin_altivec_vrfiz(__a); -} - -/* vec_unpackh */ - -/* The vector unpack instructions all have a big-endian bias, so for - little endian we must reverse the meanings of "high" and "low." */ - -static __inline__ vector short __ATTRS_o_ai -vec_unpackh(vector signed char __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupklsb((vector char)__a); -#else - return __builtin_altivec_vupkhsb((vector char)__a); -#endif -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_unpackh(vector bool char __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool short)__builtin_altivec_vupklsb((vector char)__a); -#else - return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a); -#endif -} - -static __inline__ vector int __ATTRS_o_ai vec_unpackh(vector short __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupklsh(__a); -#else - return __builtin_altivec_vupkhsh(__a); -#endif -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_unpackh(vector bool short __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool int)__builtin_altivec_vupklsh((vector short)__a); -#else - return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_unpackh(vector pixel __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a); -#else - return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a); -#endif -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector long long __ATTRS_o_ai vec_unpackh(vector int __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupklsw(__a); -#else - return __builtin_altivec_vupkhsw(__a); -#endif -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_unpackh(vector bool int __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a); -#else - return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a); -#endif -} - -static __inline__ vector double __ATTRS_o_ai -vec_unpackh(vector float __a) { - return (vector double)(__a[0], __a[1]); -} -#endif - -/* vec_vupkhsb */ - -static __inline__ vector short __ATTRS_o_ai -vec_vupkhsb(vector signed char __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupklsb((vector char)__a); -#else - return __builtin_altivec_vupkhsb((vector char)__a); -#endif -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vupkhsb(vector bool char __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool short)__builtin_altivec_vupklsb((vector char)__a); -#else - return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a); -#endif -} - -/* vec_vupkhsh */ - -static __inline__ vector int __ATTRS_o_ai vec_vupkhsh(vector short __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupklsh(__a); -#else - return __builtin_altivec_vupkhsh(__a); -#endif -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vupkhsh(vector bool short __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool int)__builtin_altivec_vupklsh((vector short)__a); -#else - return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vupkhsh(vector pixel __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a); -#else - return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a); -#endif -} - -/* vec_vupkhsw */ - -#ifdef __POWER8_VECTOR__ -static __inline__ vector long long __ATTRS_o_ai vec_vupkhsw(vector int __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupklsw(__a); -#else - return __builtin_altivec_vupkhsw(__a); -#endif -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_vupkhsw(vector bool int __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a); -#else - return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a); -#endif -} -#endif - -/* vec_unpackl */ - -static __inline__ vector short __ATTRS_o_ai -vec_unpackl(vector signed char __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupkhsb((vector char)__a); -#else - return __builtin_altivec_vupklsb((vector char)__a); -#endif -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_unpackl(vector bool char __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a); -#else - return (vector bool short)__builtin_altivec_vupklsb((vector char)__a); -#endif -} - -static __inline__ vector int __ATTRS_o_ai vec_unpackl(vector short __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupkhsh(__a); -#else - return __builtin_altivec_vupklsh(__a); -#endif -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_unpackl(vector bool short __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a); -#else - return (vector bool int)__builtin_altivec_vupklsh((vector short)__a); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_unpackl(vector pixel __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a); -#else - return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a); -#endif -} - -#ifdef __POWER8_VECTOR__ -static __inline__ vector long long __ATTRS_o_ai vec_unpackl(vector int __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupkhsw(__a); -#else - return __builtin_altivec_vupklsw(__a); -#endif -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_unpackl(vector bool int __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a); -#else - return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a); -#endif -} - -static __inline__ vector double __ATTRS_o_ai -vec_unpackl(vector float __a) { - return (vector double)(__a[2], __a[3]); -} -#endif - -/* vec_vupklsb */ - -static __inline__ vector short __ATTRS_o_ai -vec_vupklsb(vector signed char __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupkhsb((vector char)__a); -#else - return __builtin_altivec_vupklsb((vector char)__a); -#endif -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vupklsb(vector bool char __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a); -#else - return (vector bool short)__builtin_altivec_vupklsb((vector char)__a); -#endif -} - -/* vec_vupklsh */ - -static __inline__ vector int __ATTRS_o_ai vec_vupklsh(vector short __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupkhsh(__a); -#else - return __builtin_altivec_vupklsh(__a); -#endif -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_vupklsh(vector bool short __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a); -#else - return (vector bool int)__builtin_altivec_vupklsh((vector short)__a); -#endif -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vupklsh(vector pixel __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a); -#else - return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a); -#endif -} - -/* vec_vupklsw */ - -#ifdef __POWER8_VECTOR__ -static __inline__ vector long long __ATTRS_o_ai vec_vupklsw(vector int __a) { -#ifdef __LITTLE_ENDIAN__ - return __builtin_altivec_vupkhsw(__a); -#else - return __builtin_altivec_vupklsw(__a); -#endif -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_vupklsw(vector bool int __a) { -#ifdef __LITTLE_ENDIAN__ - return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a); -#else - return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a); -#endif -} -#endif - -/* vec_vsx_ld */ - -#ifdef __VSX__ - -static __inline__ vector bool int __ATTRS_o_ai -vec_vsx_ld(int __a, const vector bool int *__b) { - return (vector bool int)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_vsx_ld(int __a, const vector signed int *__b) { - return (vector signed int)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_vsx_ld(int __a, const signed int *__b) { - return (vector signed int)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsx_ld(int __a, const vector unsigned int *__b) { - return (vector unsigned int)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vsx_ld(int __a, const unsigned int *__b) { - return (vector unsigned int)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai -vec_vsx_ld(int __a, const vector float *__b) { - return (vector float)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector float __ATTRS_o_ai vec_vsx_ld(int __a, - const float *__b) { - return (vector float)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_vsx_ld(int __a, const vector signed long long *__b) { - return (vector signed long long)__builtin_vsx_lxvd2x(__a, __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vsx_ld(int __a, const vector unsigned long long *__b) { - return (vector unsigned long long)__builtin_vsx_lxvd2x(__a, __b); -} - -static __inline__ vector double __ATTRS_o_ai -vec_vsx_ld(int __a, const vector double *__b) { - return (vector double)__builtin_vsx_lxvd2x(__a, __b); -} - -static __inline__ vector double __ATTRS_o_ai -vec_vsx_ld(int __a, const double *__b) { - return (vector double)__builtin_vsx_lxvd2x(__a, __b); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vsx_ld(int __a, const vector bool short *__b) { - return (vector bool short)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_vsx_ld(int __a, const vector signed short *__b) { - return (vector signed short)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_vsx_ld(int __a, const signed short *__b) { - return (vector signed short)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsx_ld(int __a, const vector unsigned short *__b) { - return (vector unsigned short)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vsx_ld(int __a, const unsigned short *__b) { - return (vector unsigned short)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_vsx_ld(int __a, const vector bool char *__b) { - return (vector bool char)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsx_ld(int __a, const vector signed char *__b) { - return (vector signed char)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vsx_ld(int __a, const signed char *__b) { - return (vector signed char)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsx_ld(int __a, const vector unsigned char *__b) { - return (vector unsigned char)__builtin_vsx_lxvw4x(__a, __b); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vsx_ld(int __a, const unsigned char *__b) { - return (vector unsigned char)__builtin_vsx_lxvw4x(__a, __b); -} - -#endif - -/* vec_vsx_st */ - -#ifdef __VSX__ - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool int __a, int __b, - vector bool int *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool int __a, int __b, - signed int *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool int __a, int __b, - unsigned int *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed int __a, int __b, - vector signed int *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed int __a, int __b, - signed int *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned int __a, int __b, - vector unsigned int *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned int __a, int __b, - unsigned int *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector float __a, int __b, - vector float *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector float __a, int __b, - float *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed long long __a, - int __b, - vector signed long long *__c) { - __builtin_vsx_stxvd2x((vector double)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned long long __a, - int __b, - vector unsigned long long *__c) { - __builtin_vsx_stxvd2x((vector double)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector double __a, int __b, - vector double *__c) { - __builtin_vsx_stxvd2x((vector double)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector double __a, int __b, - double *__c) { - __builtin_vsx_stxvd2x((vector double)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool short __a, int __b, - vector bool short *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool short __a, int __b, - signed short *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool short __a, int __b, - unsigned short *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed short __a, int __b, - vector signed short *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed short __a, int __b, - signed short *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned short __a, - int __b, - vector unsigned short *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned short __a, - int __b, unsigned short *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b, - vector bool char *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b, - signed char *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b, - unsigned char *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed char __a, int __b, - vector signed char *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed char __a, int __b, - signed char *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned char __a, - int __b, - vector unsigned char *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_vsx_st(vector unsigned char __a, - int __b, unsigned char *__c) { - __builtin_vsx_stxvw4x((vector int)__a, __b, __c); -} - -#endif - -#ifdef __VSX__ -#define vec_xxpermdi __builtin_vsx_xxpermdi -#define vec_xxsldwi __builtin_vsx_xxsldwi -#endif - -/* vec_xor */ - -#define __builtin_altivec_vxor vec_xor - -static __inline__ vector signed char __ATTRS_o_ai -vec_xor(vector signed char __a, vector signed char __b) { - return __a ^ __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_xor(vector bool char __a, vector signed char __b) { - return (vector signed char)__a ^ __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_xor(vector signed char __a, vector bool char __b) { - return __a ^ (vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_xor(vector unsigned char __a, vector unsigned char __b) { - return __a ^ __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_xor(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a ^ __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_xor(vector unsigned char __a, vector bool char __b) { - return __a ^ (vector unsigned char)__b; -} - -static __inline__ vector bool char __ATTRS_o_ai vec_xor(vector bool char __a, - vector bool char __b) { - return __a ^ __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_xor(vector short __a, - vector short __b) { - return __a ^ __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_xor(vector bool short __a, - vector short __b) { - return (vector short)__a ^ __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_xor(vector short __a, - vector bool short __b) { - return __a ^ (vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_xor(vector unsigned short __a, vector unsigned short __b) { - return __a ^ __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_xor(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a ^ __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_xor(vector unsigned short __a, vector bool short __b) { - return __a ^ (vector unsigned short)__b; -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_xor(vector bool short __a, vector bool short __b) { - return __a ^ __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_xor(vector int __a, - vector int __b) { - return __a ^ __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_xor(vector bool int __a, - vector int __b) { - return (vector int)__a ^ __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_xor(vector int __a, - vector bool int __b) { - return __a ^ (vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_xor(vector unsigned int __a, vector unsigned int __b) { - return __a ^ __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_xor(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a ^ __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_xor(vector unsigned int __a, vector bool int __b) { - return __a ^ (vector unsigned int)__b; -} - -static __inline__ vector bool int __ATTRS_o_ai vec_xor(vector bool int __a, - vector bool int __b) { - return __a ^ __b; -} - -static __inline__ vector float __ATTRS_o_ai vec_xor(vector float __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a ^ (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_xor(vector bool int __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a ^ (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_xor(vector float __a, - vector bool int __b) { - vector unsigned int __res = - (vector unsigned int)__a ^ (vector unsigned int)__b; - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_xor(vector signed long long __a, vector signed long long __b) { - return __a ^ __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_xor(vector bool long long __a, vector signed long long __b) { - return (vector signed long long)__a ^ __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_xor(vector signed long long __a, vector bool long long __b) { - return __a ^ (vector signed long long)__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_xor(vector unsigned long long __a, vector unsigned long long __b) { - return __a ^ __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_xor(vector bool long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__a ^ __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_xor(vector unsigned long long __a, vector bool long long __b) { - return __a ^ (vector unsigned long long)__b; -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_xor(vector bool long long __a, vector bool long long __b) { - return __a ^ __b; -} - -static __inline__ vector double __ATTRS_o_ai vec_xor(vector double __a, - vector double __b) { - return (vector double)((vector unsigned long long)__a ^ - (vector unsigned long long)__b); -} - -static __inline__ vector double __ATTRS_o_ai -vec_xor(vector double __a, vector bool long long __b) { - return (vector double)((vector unsigned long long)__a ^ - (vector unsigned long long)__b); -} - -static __inline__ vector double __ATTRS_o_ai vec_xor(vector bool long long __a, - vector double __b) { - return (vector double)((vector unsigned long long)__a ^ - (vector unsigned long long)__b); -} -#endif - -/* vec_vxor */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_vxor(vector signed char __a, vector signed char __b) { - return __a ^ __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vxor(vector bool char __a, vector signed char __b) { - return (vector signed char)__a ^ __b; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vxor(vector signed char __a, vector bool char __b) { - return __a ^ (vector signed char)__b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vxor(vector unsigned char __a, vector unsigned char __b) { - return __a ^ __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vxor(vector bool char __a, vector unsigned char __b) { - return (vector unsigned char)__a ^ __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vxor(vector unsigned char __a, vector bool char __b) { - return __a ^ (vector unsigned char)__b; -} - -static __inline__ vector bool char __ATTRS_o_ai vec_vxor(vector bool char __a, - vector bool char __b) { - return __a ^ __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vxor(vector short __a, - vector short __b) { - return __a ^ __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vxor(vector bool short __a, - vector short __b) { - return (vector short)__a ^ __b; -} - -static __inline__ vector short __ATTRS_o_ai vec_vxor(vector short __a, - vector bool short __b) { - return __a ^ (vector short)__b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vxor(vector unsigned short __a, vector unsigned short __b) { - return __a ^ __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vxor(vector bool short __a, vector unsigned short __b) { - return (vector unsigned short)__a ^ __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_vxor(vector unsigned short __a, vector bool short __b) { - return __a ^ (vector unsigned short)__b; -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_vxor(vector bool short __a, vector bool short __b) { - return __a ^ __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vxor(vector int __a, - vector int __b) { - return __a ^ __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vxor(vector bool int __a, - vector int __b) { - return (vector int)__a ^ __b; -} - -static __inline__ vector int __ATTRS_o_ai vec_vxor(vector int __a, - vector bool int __b) { - return __a ^ (vector int)__b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vxor(vector unsigned int __a, vector unsigned int __b) { - return __a ^ __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vxor(vector bool int __a, vector unsigned int __b) { - return (vector unsigned int)__a ^ __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_vxor(vector unsigned int __a, vector bool int __b) { - return __a ^ (vector unsigned int)__b; -} - -static __inline__ vector bool int __ATTRS_o_ai vec_vxor(vector bool int __a, - vector bool int __b) { - return __a ^ __b; -} - -static __inline__ vector float __ATTRS_o_ai vec_vxor(vector float __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a ^ (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_vxor(vector bool int __a, - vector float __b) { - vector unsigned int __res = - (vector unsigned int)__a ^ (vector unsigned int)__b; - return (vector float)__res; -} - -static __inline__ vector float __ATTRS_o_ai vec_vxor(vector float __a, - vector bool int __b) { - vector unsigned int __res = - (vector unsigned int)__a ^ (vector unsigned int)__b; - return (vector float)__res; -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_vxor(vector signed long long __a, vector signed long long __b) { - return __a ^ __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_vxor(vector bool long long __a, vector signed long long __b) { - return (vector signed long long)__a ^ __b; -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_vxor(vector signed long long __a, vector bool long long __b) { - return __a ^ (vector signed long long)__b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vxor(vector unsigned long long __a, vector unsigned long long __b) { - return __a ^ __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vxor(vector bool long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__a ^ __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_vxor(vector unsigned long long __a, vector bool long long __b) { - return __a ^ (vector unsigned long long)__b; -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_vxor(vector bool long long __a, vector bool long long __b) { - return __a ^ __b; -} -#endif - -/* ------------------------ extensions for CBEA ----------------------------- */ - -/* vec_extract */ - -static __inline__ signed char __ATTRS_o_ai vec_extract(vector signed char __a, - int __b) { - return __a[__b]; -} - -static __inline__ unsigned char __ATTRS_o_ai -vec_extract(vector unsigned char __a, int __b) { - return __a[__b]; -} - -static __inline__ unsigned char __ATTRS_o_ai vec_extract(vector bool char __a, - int __b) { - return __a[__b]; -} - -static __inline__ signed short __ATTRS_o_ai vec_extract(vector signed short __a, - int __b) { - return __a[__b]; -} - -static __inline__ unsigned short __ATTRS_o_ai -vec_extract(vector unsigned short __a, int __b) { - return __a[__b]; -} - -static __inline__ unsigned short __ATTRS_o_ai vec_extract(vector bool short __a, - int __b) { - return __a[__b]; -} - -static __inline__ signed int __ATTRS_o_ai vec_extract(vector signed int __a, - int __b) { - return __a[__b]; -} - -static __inline__ unsigned int __ATTRS_o_ai vec_extract(vector unsigned int __a, - int __b) { - return __a[__b]; -} - -static __inline__ unsigned int __ATTRS_o_ai vec_extract(vector bool int __a, - int __b) { - return __a[__b]; -} - -#ifdef __VSX__ -static __inline__ signed long long __ATTRS_o_ai -vec_extract(vector signed long long __a, int __b) { - return __a[__b]; -} - -static __inline__ unsigned long long __ATTRS_o_ai -vec_extract(vector unsigned long long __a, int __b) { - return __a[__b]; -} - -static __inline__ unsigned long long __ATTRS_o_ai -vec_extract(vector bool long long __a, int __b) { - return __a[__b]; -} - -static __inline__ double __ATTRS_o_ai vec_extract(vector double __a, int __b) { - return __a[__b]; -} -#endif - -static __inline__ float __ATTRS_o_ai vec_extract(vector float __a, int __b) { - return __a[__b]; -} - -#ifdef __POWER9_VECTOR__ - -#define vec_insert4b __builtin_vsx_insertword -#define vec_extract4b __builtin_vsx_extractuword - -/* vec_extract_exp */ - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_extract_exp(vector float __a) { - return __builtin_vsx_xvxexpsp(__a); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_extract_exp(vector double __a) { - return __builtin_vsx_xvxexpdp(__a); -} - -/* vec_extract_sig */ - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_extract_sig(vector float __a) { - return __builtin_vsx_xvxsigsp(__a); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_extract_sig (vector double __a) { - return __builtin_vsx_xvxsigdp(__a); -} - -static __inline__ vector float __ATTRS_o_ai -vec_extract_fp32_from_shorth(vector unsigned short __a) { - vector unsigned short __b = -#ifdef __LITTLE_ENDIAN__ - __builtin_shufflevector(__a, __a, 0, -1, 1, -1, 2, -1, 3, -1); -#else - __builtin_shufflevector(__a, __a, -1, 0, -1, 1, -1, 2, -1, 3); -#endif - return __builtin_vsx_xvcvhpsp(__b); -} - -static __inline__ vector float __ATTRS_o_ai -vec_extract_fp32_from_shortl(vector unsigned short __a) { - vector unsigned short __b = -#ifdef __LITTLE_ENDIAN__ - __builtin_shufflevector(__a, __a, 4, -1, 5, -1, 6, -1, 7, -1); -#else - __builtin_shufflevector(__a, __a, -1, 4, -1, 5, -1, 6, -1, 7); -#endif - return __builtin_vsx_xvcvhpsp(__b); -} -#endif /* __POWER9_VECTOR__ */ - -/* vec_insert */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_insert(signed char __a, vector signed char __b, int __c) { - __b[__c] = __a; - return __b; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_insert(unsigned char __a, vector unsigned char __b, int __c) { - __b[__c] = __a; - return __b; -} - -static __inline__ vector bool char __ATTRS_o_ai vec_insert(unsigned char __a, - vector bool char __b, - int __c) { - __b[__c] = __a; - return __b; -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_insert(signed short __a, vector signed short __b, int __c) { - __b[__c] = __a; - return __b; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_insert(unsigned short __a, vector unsigned short __b, int __c) { - __b[__c] = __a; - return __b; -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_insert(unsigned short __a, vector bool short __b, int __c) { - __b[__c] = __a; - return __b; -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_insert(signed int __a, vector signed int __b, int __c) { - __b[__c] = __a; - return __b; -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_insert(unsigned int __a, vector unsigned int __b, int __c) { - __b[__c] = __a; - return __b; -} - -static __inline__ vector bool int __ATTRS_o_ai vec_insert(unsigned int __a, - vector bool int __b, - int __c) { - __b[__c] = __a; - return __b; -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_insert(signed long long __a, vector signed long long __b, int __c) { - __b[__c] = __a; - return __b; -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_insert(unsigned long long __a, vector unsigned long long __b, int __c) { - __b[__c] = __a; - return __b; -} - -static __inline__ vector bool long long __ATTRS_o_ai -vec_insert(unsigned long long __a, vector bool long long __b, int __c) { - __b[__c] = __a; - return __b; -} -static __inline__ vector double __ATTRS_o_ai vec_insert(double __a, - vector double __b, - int __c) { - __b[__c] = __a; - return __b; -} -#endif - -static __inline__ vector float __ATTRS_o_ai vec_insert(float __a, - vector float __b, - int __c) { - __b[__c] = __a; - return __b; -} - -/* vec_lvlx */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvlx(int __a, const signed char *__b) { - return vec_perm(vec_ld(__a, __b), (vector signed char)(0), - vec_lvsl(__a, __b)); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvlx(int __a, const vector signed char *__b) { - return vec_perm(vec_ld(__a, __b), (vector signed char)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvlx(int __a, const unsigned char *__b) { - return vec_perm(vec_ld(__a, __b), (vector unsigned char)(0), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvlx(int __a, const vector unsigned char *__b) { - return vec_perm(vec_ld(__a, __b), (vector unsigned char)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_lvlx(int __a, const vector bool char *__b) { - return vec_perm(vec_ld(__a, __b), (vector bool char)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvlx(int __a, - const short *__b) { - return vec_perm(vec_ld(__a, __b), (vector short)(0), vec_lvsl(__a, __b)); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvlx(int __a, - const vector short *__b) { - return vec_perm(vec_ld(__a, __b), (vector short)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvlx(int __a, const unsigned short *__b) { - return vec_perm(vec_ld(__a, __b), (vector unsigned short)(0), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvlx(int __a, const vector unsigned short *__b) { - return vec_perm(vec_ld(__a, __b), (vector unsigned short)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_lvlx(int __a, const vector bool short *__b) { - return vec_perm(vec_ld(__a, __b), (vector bool short)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_lvlx(int __a, - const vector pixel *__b) { - return vec_perm(vec_ld(__a, __b), (vector pixel)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvlx(int __a, const int *__b) { - return vec_perm(vec_ld(__a, __b), (vector int)(0), vec_lvsl(__a, __b)); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvlx(int __a, - const vector int *__b) { - return vec_perm(vec_ld(__a, __b), (vector int)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvlx(int __a, const unsigned int *__b) { - return vec_perm(vec_ld(__a, __b), (vector unsigned int)(0), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvlx(int __a, const vector unsigned int *__b) { - return vec_perm(vec_ld(__a, __b), (vector unsigned int)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_lvlx(int __a, const vector bool int *__b) { - return vec_perm(vec_ld(__a, __b), (vector bool int)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvlx(int __a, - const float *__b) { - return vec_perm(vec_ld(__a, __b), (vector float)(0), vec_lvsl(__a, __b)); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvlx(int __a, - const vector float *__b) { - return vec_perm(vec_ld(__a, __b), (vector float)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -/* vec_lvlxl */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvlxl(int __a, const signed char *__b) { - return vec_perm(vec_ldl(__a, __b), (vector signed char)(0), - vec_lvsl(__a, __b)); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvlxl(int __a, const vector signed char *__b) { - return vec_perm(vec_ldl(__a, __b), (vector signed char)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvlxl(int __a, const unsigned char *__b) { - return vec_perm(vec_ldl(__a, __b), (vector unsigned char)(0), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvlxl(int __a, const vector unsigned char *__b) { - return vec_perm(vec_ldl(__a, __b), (vector unsigned char)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_lvlxl(int __a, const vector bool char *__b) { - return vec_perm(vec_ldl(__a, __b), (vector bool char)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvlxl(int __a, - const short *__b) { - return vec_perm(vec_ldl(__a, __b), (vector short)(0), vec_lvsl(__a, __b)); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvlxl(int __a, - const vector short *__b) { - return vec_perm(vec_ldl(__a, __b), (vector short)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvlxl(int __a, const unsigned short *__b) { - return vec_perm(vec_ldl(__a, __b), (vector unsigned short)(0), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvlxl(int __a, const vector unsigned short *__b) { - return vec_perm(vec_ldl(__a, __b), (vector unsigned short)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_lvlxl(int __a, const vector bool short *__b) { - return vec_perm(vec_ldl(__a, __b), (vector bool short)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_lvlxl(int __a, - const vector pixel *__b) { - return vec_perm(vec_ldl(__a, __b), (vector pixel)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvlxl(int __a, const int *__b) { - return vec_perm(vec_ldl(__a, __b), (vector int)(0), vec_lvsl(__a, __b)); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvlxl(int __a, - const vector int *__b) { - return vec_perm(vec_ldl(__a, __b), (vector int)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvlxl(int __a, const unsigned int *__b) { - return vec_perm(vec_ldl(__a, __b), (vector unsigned int)(0), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvlxl(int __a, const vector unsigned int *__b) { - return vec_perm(vec_ldl(__a, __b), (vector unsigned int)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_lvlxl(int __a, const vector bool int *__b) { - return vec_perm(vec_ldl(__a, __b), (vector bool int)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvlxl(int __a, - const float *__b) { - return vec_perm(vec_ldl(__a, __b), (vector float)(0), vec_lvsl(__a, __b)); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvlxl(int __a, - vector float *__b) { - return vec_perm(vec_ldl(__a, __b), (vector float)(0), - vec_lvsl(__a, (unsigned char *)__b)); -} - -/* vec_lvrx */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvrx(int __a, const signed char *__b) { - return vec_perm((vector signed char)(0), vec_ld(__a, __b), - vec_lvsl(__a, __b)); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvrx(int __a, const vector signed char *__b) { - return vec_perm((vector signed char)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvrx(int __a, const unsigned char *__b) { - return vec_perm((vector unsigned char)(0), vec_ld(__a, __b), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvrx(int __a, const vector unsigned char *__b) { - return vec_perm((vector unsigned char)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_lvrx(int __a, const vector bool char *__b) { - return vec_perm((vector bool char)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvrx(int __a, - const short *__b) { - return vec_perm((vector short)(0), vec_ld(__a, __b), vec_lvsl(__a, __b)); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvrx(int __a, - const vector short *__b) { - return vec_perm((vector short)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvrx(int __a, const unsigned short *__b) { - return vec_perm((vector unsigned short)(0), vec_ld(__a, __b), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvrx(int __a, const vector unsigned short *__b) { - return vec_perm((vector unsigned short)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_lvrx(int __a, const vector bool short *__b) { - return vec_perm((vector bool short)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_lvrx(int __a, - const vector pixel *__b) { - return vec_perm((vector pixel)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvrx(int __a, const int *__b) { - return vec_perm((vector int)(0), vec_ld(__a, __b), vec_lvsl(__a, __b)); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvrx(int __a, - const vector int *__b) { - return vec_perm((vector int)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvrx(int __a, const unsigned int *__b) { - return vec_perm((vector unsigned int)(0), vec_ld(__a, __b), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvrx(int __a, const vector unsigned int *__b) { - return vec_perm((vector unsigned int)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_lvrx(int __a, const vector bool int *__b) { - return vec_perm((vector bool int)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvrx(int __a, - const float *__b) { - return vec_perm((vector float)(0), vec_ld(__a, __b), vec_lvsl(__a, __b)); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvrx(int __a, - const vector float *__b) { - return vec_perm((vector float)(0), vec_ld(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -/* vec_lvrxl */ - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvrxl(int __a, const signed char *__b) { - return vec_perm((vector signed char)(0), vec_ldl(__a, __b), - vec_lvsl(__a, __b)); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_lvrxl(int __a, const vector signed char *__b) { - return vec_perm((vector signed char)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvrxl(int __a, const unsigned char *__b) { - return vec_perm((vector unsigned char)(0), vec_ldl(__a, __b), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_lvrxl(int __a, const vector unsigned char *__b) { - return vec_perm((vector unsigned char)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool char __ATTRS_o_ai -vec_lvrxl(int __a, const vector bool char *__b) { - return vec_perm((vector bool char)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvrxl(int __a, - const short *__b) { - return vec_perm((vector short)(0), vec_ldl(__a, __b), vec_lvsl(__a, __b)); -} - -static __inline__ vector short __ATTRS_o_ai vec_lvrxl(int __a, - const vector short *__b) { - return vec_perm((vector short)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvrxl(int __a, const unsigned short *__b) { - return vec_perm((vector unsigned short)(0), vec_ldl(__a, __b), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_lvrxl(int __a, const vector unsigned short *__b) { - return vec_perm((vector unsigned short)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_lvrxl(int __a, const vector bool short *__b) { - return vec_perm((vector bool short)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector pixel __ATTRS_o_ai vec_lvrxl(int __a, - const vector pixel *__b) { - return vec_perm((vector pixel)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvrxl(int __a, const int *__b) { - return vec_perm((vector int)(0), vec_ldl(__a, __b), vec_lvsl(__a, __b)); -} - -static __inline__ vector int __ATTRS_o_ai vec_lvrxl(int __a, - const vector int *__b) { - return vec_perm((vector int)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvrxl(int __a, const unsigned int *__b) { - return vec_perm((vector unsigned int)(0), vec_ldl(__a, __b), - vec_lvsl(__a, __b)); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_lvrxl(int __a, const vector unsigned int *__b) { - return vec_perm((vector unsigned int)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_lvrxl(int __a, const vector bool int *__b) { - return vec_perm((vector bool int)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvrxl(int __a, - const float *__b) { - return vec_perm((vector float)(0), vec_ldl(__a, __b), vec_lvsl(__a, __b)); -} - -static __inline__ vector float __ATTRS_o_ai vec_lvrxl(int __a, - const vector float *__b) { - return vec_perm((vector float)(0), vec_ldl(__a, __b), - vec_lvsl(__a, (unsigned char *)__b)); -} - -/* vec_stvlx */ - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector signed char __a, int __b, - signed char *__c) { - return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector signed char __a, int __b, - vector signed char *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned char __a, int __b, - unsigned char *__c) { - return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned char __a, int __b, - vector unsigned char *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector bool char __a, int __b, - vector bool char *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector short __a, int __b, - short *__c) { - return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector short __a, int __b, - vector short *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned short __a, - int __b, unsigned short *__c) { - return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned short __a, - int __b, - vector unsigned short *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector bool short __a, int __b, - vector bool short *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector pixel __a, int __b, - vector pixel *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector int __a, int __b, - int *__c) { - return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector int __a, int __b, - vector int *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned int __a, int __b, - unsigned int *__c) { - return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector unsigned int __a, int __b, - vector unsigned int *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector bool int __a, int __b, - vector bool int *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlx(vector float __a, int __b, - vector float *__c) { - return vec_st( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -/* vec_stvlxl */ - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector signed char __a, int __b, - signed char *__c) { - return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector signed char __a, int __b, - vector signed char *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned char __a, - int __b, unsigned char *__c) { - return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned char __a, - int __b, - vector unsigned char *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector bool char __a, int __b, - vector bool char *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector short __a, int __b, - short *__c) { - return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector short __a, int __b, - vector short *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned short __a, - int __b, unsigned short *__c) { - return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned short __a, - int __b, - vector unsigned short *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector bool short __a, int __b, - vector bool short *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector pixel __a, int __b, - vector pixel *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector int __a, int __b, - int *__c) { - return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector int __a, int __b, - vector int *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned int __a, int __b, - unsigned int *__c) { - return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector unsigned int __a, int __b, - vector unsigned int *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector bool int __a, int __b, - vector bool int *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvlxl(vector float __a, int __b, - vector float *__c) { - return vec_stl( - vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -/* vec_stvrx */ - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector signed char __a, int __b, - signed char *__c) { - return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector signed char __a, int __b, - vector signed char *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned char __a, int __b, - unsigned char *__c) { - return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned char __a, int __b, - vector unsigned char *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector bool char __a, int __b, - vector bool char *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector short __a, int __b, - short *__c) { - return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector short __a, int __b, - vector short *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned short __a, - int __b, unsigned short *__c) { - return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned short __a, - int __b, - vector unsigned short *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector bool short __a, int __b, - vector bool short *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector pixel __a, int __b, - vector pixel *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector int __a, int __b, - int *__c) { - return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector int __a, int __b, - vector int *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned int __a, int __b, - unsigned int *__c) { - return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector unsigned int __a, int __b, - vector unsigned int *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector bool int __a, int __b, - vector bool int *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrx(vector float __a, int __b, - vector float *__c) { - return vec_st( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -/* vec_stvrxl */ - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector signed char __a, int __b, - signed char *__c) { - return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector signed char __a, int __b, - vector signed char *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned char __a, - int __b, unsigned char *__c) { - return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned char __a, - int __b, - vector unsigned char *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector bool char __a, int __b, - vector bool char *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector short __a, int __b, - short *__c) { - return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector short __a, int __b, - vector short *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned short __a, - int __b, unsigned short *__c) { - return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned short __a, - int __b, - vector unsigned short *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector bool short __a, int __b, - vector bool short *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector pixel __a, int __b, - vector pixel *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector int __a, int __b, - int *__c) { - return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector int __a, int __b, - vector int *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned int __a, int __b, - unsigned int *__c) { - return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b, - __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector unsigned int __a, int __b, - vector unsigned int *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector bool int __a, int __b, - vector bool int *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -static __inline__ void __ATTRS_o_ai vec_stvrxl(vector float __a, int __b, - vector float *__c) { - return vec_stl( - vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)), - __b, __c); -} - -/* vec_promote */ - -static __inline__ vector signed char __ATTRS_o_ai vec_promote(signed char __a, - int __b) { - vector signed char __res = (vector signed char)(0); - __res[__b] = __a; - return __res; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_promote(unsigned char __a, int __b) { - vector unsigned char __res = (vector unsigned char)(0); - __res[__b] = __a; - return __res; -} - -static __inline__ vector short __ATTRS_o_ai vec_promote(short __a, int __b) { - vector short __res = (vector short)(0); - __res[__b] = __a; - return __res; -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_promote(unsigned short __a, int __b) { - vector unsigned short __res = (vector unsigned short)(0); - __res[__b] = __a; - return __res; -} - -static __inline__ vector int __ATTRS_o_ai vec_promote(int __a, int __b) { - vector int __res = (vector int)(0); - __res[__b] = __a; - return __res; -} - -static __inline__ vector unsigned int __ATTRS_o_ai vec_promote(unsigned int __a, - int __b) { - vector unsigned int __res = (vector unsigned int)(0); - __res[__b] = __a; - return __res; -} - -static __inline__ vector float __ATTRS_o_ai vec_promote(float __a, int __b) { - vector float __res = (vector float)(0); - __res[__b] = __a; - return __res; -} - -/* vec_splats */ - -static __inline__ vector signed char __ATTRS_o_ai vec_splats(signed char __a) { - return (vector signed char)(__a); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_splats(unsigned char __a) { - return (vector unsigned char)(__a); -} - -static __inline__ vector short __ATTRS_o_ai vec_splats(short __a) { - return (vector short)(__a); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_splats(unsigned short __a) { - return (vector unsigned short)(__a); -} - -static __inline__ vector int __ATTRS_o_ai vec_splats(int __a) { - return (vector int)(__a); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_splats(unsigned int __a) { - return (vector unsigned int)(__a); -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_splats(signed long long __a) { - return (vector signed long long)(__a); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_splats(unsigned long long __a) { - return (vector unsigned long long)(__a); -} - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_splats(signed __int128 __a) { - return (vector signed __int128)(__a); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_splats(unsigned __int128 __a) { - return (vector unsigned __int128)(__a); -} - -#endif - -static __inline__ vector double __ATTRS_o_ai vec_splats(double __a) { - return (vector double)(__a); -} -#endif - -static __inline__ vector float __ATTRS_o_ai vec_splats(float __a) { - return (vector float)(__a); -} - -/* ----------------------------- predicates --------------------------------- */ - -/* vec_all_eq */ - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector pixel __a, - vector pixel __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector int __a, vector int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, - (vector int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, (vector long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a, - (vector long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a, - (vector long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a, - vector long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a, - (vector long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a, - (vector long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a, - (vector long long)__b); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_all_eq(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpeqsp_p(__CR6_LT, __a, __b); -#else - return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_all_eq(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpeqdp_p(__CR6_LT, __a, __b); -} -#endif - -/* vec_all_ge */ - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, (vector signed char)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b, - (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b, - (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, (vector short)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector int __a, vector int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, (vector int)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b, - (vector unsigned int)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, (vector unsigned int)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b, - (vector unsigned int)__a); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, __b, __a); -} -static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, (vector signed long long)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__b, - (vector unsigned long long)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __b, - (vector unsigned long long)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__b, - (vector unsigned long long)__a); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_all_ge(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpgesp_p(__CR6_LT, __a, __b); -#else - return __builtin_altivec_vcmpgefp_p(__CR6_LT, __a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_all_ge(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpgedp_p(__CR6_LT, __a, __b); -} -#endif - -/* vec_all_gt */ - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, (vector signed char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a, - (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a, - (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a, - __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector int __a, vector int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, (vector unsigned int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a, - (vector unsigned int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_LT, __a, __b); -} -static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_LT, __a, - (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT, __a, - (vector unsigned long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__a, - (vector unsigned long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__a, - __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__a, - (vector unsigned long long)__b); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_all_gt(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpgtsp_p(__CR6_LT, __a, __b); -#else - return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_all_gt(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpgtdp_p(__CR6_LT, __a, __b); -} -#endif - -/* vec_all_in */ - -static __inline__ int __attribute__((__always_inline__)) -vec_all_in(vector float __a, vector float __b) { - return __builtin_altivec_vcmpbfp_p(__CR6_EQ, __a, __b); -} - -/* vec_all_le */ - -static __inline__ int __ATTRS_o_ai vec_all_le(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, (vector signed char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a, - (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a, - (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a, - __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector int __a, vector int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, (vector unsigned int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a, - (vector unsigned int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_all_le(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, __a, - (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __a, - (vector unsigned long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__a, - (vector unsigned long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__a, - __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_le(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__a, - (vector unsigned long long)__b); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_all_le(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpgesp_p(__CR6_LT, __b, __a); -#else - return __builtin_altivec_vcmpgefp_p(__CR6_LT, __b, __a); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_all_le(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpgedp_p(__CR6_LT, __b, __a); -} -#endif - -/* vec_all_lt */ - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_LT, (vector signed char)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b, - (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b, - (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_LT, (vector short)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector int __a, vector int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_LT, (vector int)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b, - (vector unsigned int)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, (vector unsigned int)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b, - (vector unsigned int)__a); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_LT, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_LT, (vector signed long long)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__b, - (vector unsigned long long)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT, __b, - (vector unsigned long long)__a); -} - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__b, - (vector unsigned long long)__a); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_all_lt(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpgtsp_p(__CR6_LT, __b, __a); -#else - return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __b, __a); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_all_lt(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpgtdp_p(__CR6_LT, __b, __a); -} -#endif - -/* vec_all_nan */ - -static __inline__ int __ATTRS_o_ai vec_all_nan(vector float __a) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpeqsp_p(__CR6_EQ, __a, __a); -#else - return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __a); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_all_nan(vector double __a) { - return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ, __a, __a); -} -#endif - -/* vec_all_ne */ - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector pixel __a, - vector pixel __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector int __a, vector int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, - (vector int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_EQ, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector long long)__a, - (vector long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_EQ, __a, - (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a, - (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a, - (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a, - (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a, - (vector signed long long)__b); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_all_ne(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ, __a, __b); -#else - return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_all_ne(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ, __a, __b); -} -#endif - -/* vec_all_nge */ - -static __inline__ int __ATTRS_o_ai vec_all_nge(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpgesp_p(__CR6_EQ, __a, __b); -#else - return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_all_nge(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpgedp_p(__CR6_EQ, __a, __b); -} -#endif - -/* vec_all_ngt */ - -static __inline__ int __ATTRS_o_ai vec_all_ngt(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpgtsp_p(__CR6_EQ, __a, __b); -#else - return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_all_ngt(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpgtdp_p(__CR6_EQ, __a, __b); -} -#endif - -/* vec_all_nle */ - -static __inline__ int __attribute__((__always_inline__)) -vec_all_nle(vector float __a, vector float __b) { - return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __b, __a); -} - -/* vec_all_nlt */ - -static __inline__ int __attribute__((__always_inline__)) -vec_all_nlt(vector float __a, vector float __b) { - return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __b, __a); -} - -/* vec_all_numeric */ - -static __inline__ int __attribute__((__always_inline__)) -vec_all_numeric(vector float __a) { - return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __a); -} - -/* vec_any_eq */ - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector pixel __a, - vector pixel __b) { - return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector int __a, vector int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, - (vector int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_EQ_REV, (vector long long)__a, - (vector long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_EQ_REV, __a, - (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p( - __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpequd_p( - __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpequd_p( - __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p( - __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_any_eq(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpeqsp_p(__CR6_EQ_REV, __a, __b); -#else - return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_any_eq(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ_REV, __a, __b); -} -#endif - -/* vec_any_ge */ - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, (vector signed char)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b, - (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b, - (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b, - (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, (vector short)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector int __a, vector int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, (vector int)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b, - (vector unsigned int)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b, - (vector unsigned int)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b, - (vector unsigned int)__a); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, - (vector signed long long)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, - (vector unsigned long long)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, - (vector unsigned long long)__b, - (vector unsigned long long)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __b, - (vector unsigned long long)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, - (vector unsigned long long)__b, - (vector unsigned long long)__a); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_any_ge(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpgesp_p(__CR6_EQ_REV, __a, __b); -#else - return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_any_ge(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpgedp_p(__CR6_EQ_REV, __a, __b); -} -#endif - -/* vec_any_gt */ - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a, - (vector signed char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a, - (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a, - (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a, - __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a, - (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a, - __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector int __a, vector int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a, - (vector unsigned int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a, - __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a, - (vector unsigned int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, __a, - (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __a, - (vector unsigned long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, - (vector unsigned long long)__a, - (vector unsigned long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, - (vector unsigned long long)__a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, - (vector unsigned long long)__a, - (vector unsigned long long)__b); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_any_gt(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpgtsp_p(__CR6_EQ_REV, __a, __b); -#else - return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_any_gt(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpgtdp_p(__CR6_EQ_REV, __a, __b); -} -#endif - -/* vec_any_le */ - -static __inline__ int __ATTRS_o_ai vec_any_le(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a, - (vector signed char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a, - (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a, - (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a, - __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a, - (vector unsigned char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a, - __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a, - (vector unsigned short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector int __a, vector int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a, - (vector unsigned int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a, - (vector unsigned int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a, - __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a, - (vector unsigned int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_any_le(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, __a, - (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __a, - (vector unsigned long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, - (vector unsigned long long)__a, - (vector unsigned long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, - (vector unsigned long long)__a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_le(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, - (vector unsigned long long)__a, - (vector unsigned long long)__b); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_any_le(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpgesp_p(__CR6_EQ_REV, __b, __a); -#else - return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __b, __a); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_any_le(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpgedp_p(__CR6_EQ_REV, __b, __a); -} -#endif - -/* vec_any_lt */ - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, (vector signed char)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b, - (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b, - (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b, - (vector unsigned char)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, (vector short)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b, - (vector unsigned short)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector int __a, vector int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, (vector int)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b, - __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b, - (vector unsigned int)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b, - (vector unsigned int)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b, - (vector unsigned int)__a); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, - (vector signed long long)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, - (vector unsigned long long)__b, __a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, - (vector unsigned long long)__b, - (vector unsigned long long)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __b, - (vector unsigned long long)__a); -} - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, - (vector unsigned long long)__b, - (vector unsigned long long)__a); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_any_lt(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpgtsp_p(__CR6_EQ_REV, __b, __a); -#else - return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __b, __a); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_any_lt(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpgtdp_p(__CR6_EQ_REV, __b, __a); -} -#endif - -/* vec_any_nan */ - -static __inline__ int __attribute__((__always_inline__)) -vec_any_nan(vector float __a) { - return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __a); -} - -/* vec_any_ne */ - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed char __a, - vector signed char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool char __a, - vector signed char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool char __a, - vector unsigned char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool char __a, - vector bool char __b) { - return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, - (vector char)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector short __a, - vector short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool short __a, - vector short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool short __a, - vector unsigned short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool short __a, - vector bool short __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector pixel __a, - vector pixel __b) { - return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a, - (vector short)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector int __a, vector int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool int __a, - vector int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool int __a, - vector unsigned int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, - (vector int)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool int __a, - vector bool int __b) { - return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, - (vector int)__b); -} - -#ifdef __POWER8_VECTOR__ -static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a, __b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, (vector long long)__a, - (vector long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a, - (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p( - __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a, - vector signed long long __b) { - return __builtin_altivec_vcmpequd_p( - __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a, - vector unsigned long long __b) { - return __builtin_altivec_vcmpequd_p( - __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b); -} - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector bool long long __a, - vector bool long long __b) { - return __builtin_altivec_vcmpequd_p( - __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b); -} -#endif - -static __inline__ int __ATTRS_o_ai vec_any_ne(vector float __a, - vector float __b) { -#ifdef __VSX__ - return __builtin_vsx_xvcmpeqsp_p(__CR6_LT_REV, __a, __b); -#else - return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __b); -#endif -} - -#ifdef __VSX__ -static __inline__ int __ATTRS_o_ai vec_any_ne(vector double __a, - vector double __b) { - return __builtin_vsx_xvcmpeqdp_p(__CR6_LT_REV, __a, __b); -} -#endif - -/* vec_any_nge */ - -static __inline__ int __attribute__((__always_inline__)) -vec_any_nge(vector float __a, vector float __b) { - return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __a, __b); -} - -/* vec_any_ngt */ - -static __inline__ int __attribute__((__always_inline__)) -vec_any_ngt(vector float __a, vector float __b) { - return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __a, __b); -} - -/* vec_any_nle */ - -static __inline__ int __attribute__((__always_inline__)) -vec_any_nle(vector float __a, vector float __b) { - return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __b, __a); -} - -/* vec_any_nlt */ - -static __inline__ int __attribute__((__always_inline__)) -vec_any_nlt(vector float __a, vector float __b) { - return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __b, __a); -} - -/* vec_any_numeric */ - -static __inline__ int __attribute__((__always_inline__)) -vec_any_numeric(vector float __a) { - return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __a); -} - -/* vec_any_out */ - -static __inline__ int __attribute__((__always_inline__)) -vec_any_out(vector float __a, vector float __b) { - return __builtin_altivec_vcmpbfp_p(__CR6_EQ_REV, __a, __b); -} - -/* Power 8 Crypto functions -Note: We diverge from the current GCC implementation with regard -to cryptography and related functions as follows: -- Only the SHA and AES instructions and builtins are disabled by -mno-crypto -- The remaining ones are only available on Power8 and up so - require -mpower8-vector -The justification for this is that export requirements require that -Category:Vector.Crypto is optional (i.e. compliant hardware may not provide -support). As a result, we need to be able to turn off support for those. -The remaining ones (currently controlled by -mcrypto for GCC) still -need to be provided on compliant hardware even if Vector.Crypto is not -provided. -*/ -#ifdef __CRYPTO__ -#define vec_sbox_be __builtin_altivec_crypto_vsbox -#define vec_cipher_be __builtin_altivec_crypto_vcipher -#define vec_cipherlast_be __builtin_altivec_crypto_vcipherlast -#define vec_ncipher_be __builtin_altivec_crypto_vncipher -#define vec_ncipherlast_be __builtin_altivec_crypto_vncipherlast - -static __inline__ vector unsigned long long __attribute__((__always_inline__)) -__builtin_crypto_vsbox(vector unsigned long long __a) { - return __builtin_altivec_crypto_vsbox(__a); -} - -static __inline__ vector unsigned long long __attribute__((__always_inline__)) -__builtin_crypto_vcipher(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_crypto_vcipher(__a, __b); -} - -static __inline__ vector unsigned long long __attribute__((__always_inline__)) -__builtin_crypto_vcipherlast(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_crypto_vcipherlast(__a, __b); -} - -static __inline__ vector unsigned long long __attribute__((__always_inline__)) -__builtin_crypto_vncipher(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_crypto_vncipher(__a, __b); -} - -static __inline__ vector unsigned long long __attribute__((__always_inline__)) -__builtin_crypto_vncipherlast(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_crypto_vncipherlast(__a, __b); -} - -#define __builtin_crypto_vshasigmad __builtin_altivec_crypto_vshasigmad -#define __builtin_crypto_vshasigmaw __builtin_altivec_crypto_vshasigmaw - -#define vec_shasigma_be(X, Y, Z) \ - _Generic((X), vector unsigned int \ - : __builtin_crypto_vshasigmaw, vector unsigned long long \ - : __builtin_crypto_vshasigmad)((X), (Y), (Z)) -#endif - -#ifdef __POWER8_VECTOR__ -static __inline__ vector bool char __ATTRS_o_ai -vec_permxor(vector bool char __a, vector bool char __b, - vector bool char __c) { - return __builtin_altivec_crypto_vpermxor(__a, __b, __c); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_permxor(vector signed char __a, vector signed char __b, - vector signed char __c) { - return __builtin_altivec_crypto_vpermxor(__a, __b, __c); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_permxor(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_altivec_crypto_vpermxor(__a, __b, __c); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -__builtin_crypto_vpermxor(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_altivec_crypto_vpermxor(__a, __b, __c); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -__builtin_crypto_vpermxor(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return (vector unsigned short)__builtin_altivec_crypto_vpermxor( - (vector unsigned char)__a, (vector unsigned char)__b, - (vector unsigned char)__c); -} - -static __inline__ vector unsigned int __ATTRS_o_ai __builtin_crypto_vpermxor( - vector unsigned int __a, vector unsigned int __b, vector unsigned int __c) { - return (vector unsigned int)__builtin_altivec_crypto_vpermxor( - (vector unsigned char)__a, (vector unsigned char)__b, - (vector unsigned char)__c); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -__builtin_crypto_vpermxor(vector unsigned long long __a, - vector unsigned long long __b, - vector unsigned long long __c) { - return (vector unsigned long long)__builtin_altivec_crypto_vpermxor( - (vector unsigned char)__a, (vector unsigned char)__b, - (vector unsigned char)__c); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -__builtin_crypto_vpmsumb(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_crypto_vpmsumb(__a, __b); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -__builtin_crypto_vpmsumb(vector unsigned short __a, vector unsigned short __b) { - return __builtin_altivec_crypto_vpmsumh(__a, __b); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -__builtin_crypto_vpmsumb(vector unsigned int __a, vector unsigned int __b) { - return __builtin_altivec_crypto_vpmsumw(__a, __b); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -__builtin_crypto_vpmsumb(vector unsigned long long __a, - vector unsigned long long __b) { - return __builtin_altivec_crypto_vpmsumd(__a, __b); -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_vgbbd(vector signed char __a) { - return __builtin_altivec_vgbbd((vector unsigned char)__a); -} - -#define vec_pmsum_be __builtin_crypto_vpmsumb -#define vec_gb __builtin_altivec_vgbbd - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_vgbbd(vector unsigned char __a) { - return __builtin_altivec_vgbbd(__a); -} - -static __inline__ vector long long __ATTRS_o_ai -vec_vbpermq(vector signed char __a, vector signed char __b) { - return __builtin_altivec_vbpermq((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static __inline__ vector long long __ATTRS_o_ai -vec_vbpermq(vector unsigned char __a, vector unsigned char __b) { - return __builtin_altivec_vbpermq(__a, __b); -} - -#ifdef __powerpc64__ -static __inline__ vector unsigned long long __attribute__((__always_inline__)) -vec_bperm(vector unsigned __int128 __a, vector unsigned char __b) { - return __builtin_altivec_vbpermq((vector unsigned char)__a, - (vector unsigned char)__b); -} -#endif -#endif - - -/* vec_reve */ - -static inline __ATTRS_o_ai vector bool char vec_reve(vector bool char __a) { - return __builtin_shufflevector(__a, __a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, - 5, 4, 3, 2, 1, 0); -} - -static inline __ATTRS_o_ai vector signed char vec_reve(vector signed char __a) { - return __builtin_shufflevector(__a, __a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, - 5, 4, 3, 2, 1, 0); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_reve(vector unsigned char __a) { - return __builtin_shufflevector(__a, __a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, - 5, 4, 3, 2, 1, 0); -} - -static inline __ATTRS_o_ai vector bool int vec_reve(vector bool int __a) { - return __builtin_shufflevector(__a, __a, 3, 2, 1, 0); -} - -static inline __ATTRS_o_ai vector signed int vec_reve(vector signed int __a) { - return __builtin_shufflevector(__a, __a, 3, 2, 1, 0); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_reve(vector unsigned int __a) { - return __builtin_shufflevector(__a, __a, 3, 2, 1, 0); -} - -static inline __ATTRS_o_ai vector bool short vec_reve(vector bool short __a) { - return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0); -} - -static inline __ATTRS_o_ai vector signed short -vec_reve(vector signed short __a) { - return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_reve(vector unsigned short __a) { - return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0); -} - -static inline __ATTRS_o_ai vector float vec_reve(vector float __a) { - return __builtin_shufflevector(__a, __a, 3, 2, 1, 0); -} - -#ifdef __VSX__ -static inline __ATTRS_o_ai vector bool long long -vec_reve(vector bool long long __a) { - return __builtin_shufflevector(__a, __a, 1, 0); -} - -static inline __ATTRS_o_ai vector signed long long -vec_reve(vector signed long long __a) { - return __builtin_shufflevector(__a, __a, 1, 0); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_reve(vector unsigned long long __a) { - return __builtin_shufflevector(__a, __a, 1, 0); -} - -static inline __ATTRS_o_ai vector double vec_reve(vector double __a) { - return __builtin_shufflevector(__a, __a, 1, 0); -} -#endif - -/* vec_revb */ -static __inline__ vector bool char __ATTRS_o_ai -vec_revb(vector bool char __a) { - return __a; -} - -static __inline__ vector signed char __ATTRS_o_ai -vec_revb(vector signed char __a) { - return __a; -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_revb(vector unsigned char __a) { - return __a; -} - -static __inline__ vector bool short __ATTRS_o_ai -vec_revb(vector bool short __a) { - vector unsigned char __indices = - { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 }; - return vec_perm(__a, __a, __indices); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_revb(vector signed short __a) { - vector unsigned char __indices = - { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 }; - return vec_perm(__a, __a, __indices); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_revb(vector unsigned short __a) { - vector unsigned char __indices = - { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 }; - return vec_perm(__a, __a, __indices); -} - -static __inline__ vector bool int __ATTRS_o_ai -vec_revb(vector bool int __a) { - vector unsigned char __indices = - { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 }; - return vec_perm(__a, __a, __indices); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_revb(vector signed int __a) { - vector unsigned char __indices = - { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 }; - return vec_perm(__a, __a, __indices); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_revb(vector unsigned int __a) { - vector unsigned char __indices = - { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 }; - return vec_perm(__a, __a, __indices); -} - -static __inline__ vector float __ATTRS_o_ai -vec_revb(vector float __a) { - vector unsigned char __indices = - { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 }; - return vec_perm(__a, __a, __indices); -} - -#ifdef __VSX__ -static __inline__ vector bool long long __ATTRS_o_ai -vec_revb(vector bool long long __a) { - vector unsigned char __indices = - { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 }; - return vec_perm(__a, __a, __indices); -} - -static __inline__ vector signed long long __ATTRS_o_ai -vec_revb(vector signed long long __a) { - vector unsigned char __indices = - { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 }; - return vec_perm(__a, __a, __indices); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_revb(vector unsigned long long __a) { - vector unsigned char __indices = - { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 }; - return vec_perm(__a, __a, __indices); -} - -static __inline__ vector double __ATTRS_o_ai -vec_revb(vector double __a) { - vector unsigned char __indices = - { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 }; - return vec_perm(__a, __a, __indices); -} -#endif /* End __VSX__ */ - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_revb(vector signed __int128 __a) { - vector unsigned char __indices = - { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; - return (vector signed __int128)vec_perm((vector signed int)__a, - (vector signed int)__a, - __indices); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_revb(vector unsigned __int128 __a) { - vector unsigned char __indices = - { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; - return (vector unsigned __int128)vec_perm((vector signed int)__a, - (vector signed int)__a, - __indices); -} -#endif /* END __POWER8_VECTOR__ && __powerpc64__ */ - -/* vec_xl */ - -typedef vector signed char unaligned_vec_schar __attribute__((aligned(1))); -typedef vector unsigned char unaligned_vec_uchar __attribute__((aligned(1))); -typedef vector signed short unaligned_vec_sshort __attribute__((aligned(1))); -typedef vector unsigned short unaligned_vec_ushort __attribute__((aligned(1))); -typedef vector signed int unaligned_vec_sint __attribute__((aligned(1))); -typedef vector unsigned int unaligned_vec_uint __attribute__((aligned(1))); -typedef vector float unaligned_vec_float __attribute__((aligned(1))); - -static inline __ATTRS_o_ai vector signed char vec_xl(signed long long __offset, - signed char *__ptr) { - return *(unaligned_vec_schar *)(__ptr + __offset); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_xl(signed long long __offset, unsigned char *__ptr) { - return *(unaligned_vec_uchar*)(__ptr + __offset); -} - -static inline __ATTRS_o_ai vector signed short vec_xl(signed long long __offset, - signed short *__ptr) { - return *(unaligned_vec_sshort *)(__ptr + __offset); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_xl(signed long long __offset, unsigned short *__ptr) { - return *(unaligned_vec_ushort *)(__ptr + __offset); -} - -static inline __ATTRS_o_ai vector signed int vec_xl(signed long long __offset, - signed int *__ptr) { - return *(unaligned_vec_sint *)(__ptr + __offset); -} - -static inline __ATTRS_o_ai vector unsigned int vec_xl(signed long long __offset, - unsigned int *__ptr) { - return *(unaligned_vec_uint *)(__ptr + __offset); -} - -static inline __ATTRS_o_ai vector float vec_xl(signed long long __offset, - float *__ptr) { - return *(unaligned_vec_float *)(__ptr + __offset); -} - -#ifdef __VSX__ -typedef vector signed long long unaligned_vec_sll __attribute__((aligned(1))); -typedef vector unsigned long long unaligned_vec_ull __attribute__((aligned(1))); -typedef vector double unaligned_vec_double __attribute__((aligned(1))); - -static inline __ATTRS_o_ai vector signed long long -vec_xl(signed long long __offset, signed long long *__ptr) { - return *(unaligned_vec_sll *)(__ptr + __offset); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_xl(signed long long __offset, unsigned long long *__ptr) { - return *(unaligned_vec_ull *)(__ptr + __offset); -} - -static inline __ATTRS_o_ai vector double vec_xl(signed long long __offset, - double *__ptr) { - return *(unaligned_vec_double *)(__ptr + __offset); -} -#endif - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -typedef vector signed __int128 unaligned_vec_si128 __attribute__((aligned(1))); -typedef vector unsigned __int128 unaligned_vec_ui128 - __attribute__((aligned(1))); -static inline __ATTRS_o_ai vector signed __int128 -vec_xl(signed long long __offset, signed __int128 *__ptr) { - return *(unaligned_vec_si128 *)(__ptr + __offset); -} - -static inline __ATTRS_o_ai vector unsigned __int128 -vec_xl(signed long long __offset, unsigned __int128 *__ptr) { - return *(unaligned_vec_ui128 *)(__ptr + __offset); -} -#endif - -/* vec_xl_be */ - -#ifdef __LITTLE_ENDIAN__ -static __inline__ vector signed char __ATTRS_o_ai -vec_xl_be(signed long long __offset, signed char *__ptr) { - vector signed char __vec = __builtin_vsx_lxvd2x_be(__offset, __ptr); - return __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, - 13, 12, 11, 10, 9, 8); -} - -static __inline__ vector unsigned char __ATTRS_o_ai -vec_xl_be(signed long long __offset, unsigned char *__ptr) { - vector unsigned char __vec = __builtin_vsx_lxvd2x_be(__offset, __ptr); - return __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, - 13, 12, 11, 10, 9, 8); -} - -static __inline__ vector signed short __ATTRS_o_ai -vec_xl_be(signed long long __offset, signed short *__ptr) { - vector signed short __vec = __builtin_vsx_lxvd2x_be(__offset, __ptr); - return __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4); -} - -static __inline__ vector unsigned short __ATTRS_o_ai -vec_xl_be(signed long long __offset, unsigned short *__ptr) { - vector unsigned short __vec = __builtin_vsx_lxvd2x_be(__offset, __ptr); - return __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4); -} - -static __inline__ vector signed int __ATTRS_o_ai -vec_xl_be(signed long long __offset, signed int *__ptr) { - return (vector signed int)__builtin_vsx_lxvw4x_be(__offset, __ptr); -} - -static __inline__ vector unsigned int __ATTRS_o_ai -vec_xl_be(signed long long __offset, unsigned int *__ptr) { - return (vector unsigned int)__builtin_vsx_lxvw4x_be(__offset, __ptr); -} - -static __inline__ vector float __ATTRS_o_ai -vec_xl_be(signed long long __offset, float *__ptr) { - return (vector float)__builtin_vsx_lxvw4x_be(__offset, __ptr); -} - -#ifdef __VSX__ -static __inline__ vector signed long long __ATTRS_o_ai -vec_xl_be(signed long long __offset, signed long long *__ptr) { - return (vector signed long long)__builtin_vsx_lxvd2x_be(__offset, __ptr); -} - -static __inline__ vector unsigned long long __ATTRS_o_ai -vec_xl_be(signed long long __offset, unsigned long long *__ptr) { - return (vector unsigned long long)__builtin_vsx_lxvd2x_be(__offset, __ptr); -} - -static __inline__ vector double __ATTRS_o_ai -vec_xl_be(signed long long __offset, double *__ptr) { - return (vector double)__builtin_vsx_lxvd2x_be(__offset, __ptr); -} -#endif - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ vector signed __int128 __ATTRS_o_ai -vec_xl_be(signed long long __offset, signed __int128 *__ptr) { - return vec_xl(__offset, __ptr); -} - -static __inline__ vector unsigned __int128 __ATTRS_o_ai -vec_xl_be(signed long long __offset, unsigned __int128 *__ptr) { - return vec_xl(__offset, __ptr); -} -#endif -#else - #define vec_xl_be vec_xl -#endif - -/* vec_xst */ - -static inline __ATTRS_o_ai void vec_xst(vector signed char __vec, - signed long long __offset, - signed char *__ptr) { - *(unaligned_vec_schar *)(__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void vec_xst(vector unsigned char __vec, - signed long long __offset, - unsigned char *__ptr) { - *(unaligned_vec_uchar *)(__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void vec_xst(vector signed short __vec, - signed long long __offset, - signed short *__ptr) { - *(unaligned_vec_sshort *)(__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void vec_xst(vector unsigned short __vec, - signed long long __offset, - unsigned short *__ptr) { - *(unaligned_vec_ushort *)(__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void vec_xst(vector signed int __vec, - signed long long __offset, - signed int *__ptr) { - *(unaligned_vec_sint *)(__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void vec_xst(vector unsigned int __vec, - signed long long __offset, - unsigned int *__ptr) { - *(unaligned_vec_uint *)(__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void vec_xst(vector float __vec, - signed long long __offset, - float *__ptr) { - *(unaligned_vec_float *)(__ptr + __offset) = __vec; -} - -#ifdef __VSX__ -static inline __ATTRS_o_ai void vec_xst(vector signed long long __vec, - signed long long __offset, - signed long long *__ptr) { - *(unaligned_vec_sll *)(__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void vec_xst(vector unsigned long long __vec, - signed long long __offset, - unsigned long long *__ptr) { - *(unaligned_vec_ull *)(__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void vec_xst(vector double __vec, - signed long long __offset, - double *__ptr) { - *(unaligned_vec_double *)(__ptr + __offset) = __vec; -} -#endif - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static inline __ATTRS_o_ai void vec_xst(vector signed __int128 __vec, - signed long long __offset, - signed __int128 *__ptr) { - *(unaligned_vec_si128 *)(__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void vec_xst(vector unsigned __int128 __vec, - signed long long __offset, - unsigned __int128 *__ptr) { - *(unaligned_vec_ui128 *)(__ptr + __offset) = __vec; -} -#endif - -/* vec_xst_be */ - -#ifdef __LITTLE_ENDIAN__ -static __inline__ void __ATTRS_o_ai vec_xst_be(vector signed char __vec, - signed long long __offset, - signed char *__ptr) { - vector signed char __tmp = - __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, - 13, 12, 11, 10, 9, 8); - __builtin_vsx_stxvd2x_be(__tmp, __offset, __ptr); -} - -static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned char __vec, - signed long long __offset, - unsigned char *__ptr) { - vector unsigned char __tmp = - __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, - 13, 12, 11, 10, 9, 8); - __builtin_vsx_stxvd2x_be(__tmp, __offset, __ptr); -} - -static __inline__ void __ATTRS_o_ai vec_xst_be(vector signed short __vec, - signed long long __offset, - signed short *__ptr) { - vector signed short __tmp = - __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4); - __builtin_vsx_stxvd2x_be(__tmp, __offset, __ptr); -} - -static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned short __vec, - signed long long __offset, - unsigned short *__ptr) { - vector unsigned short __tmp = - __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4); - __builtin_vsx_stxvd2x_be(__tmp, __offset, __ptr); -} - -static __inline__ void __ATTRS_o_ai vec_xst_be(vector signed int __vec, - signed long long __offset, - signed int *__ptr) { - __builtin_vsx_stxvw4x_be(__vec, __offset, __ptr); -} - -static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned int __vec, - signed long long __offset, - unsigned int *__ptr) { - __builtin_vsx_stxvw4x_be(__vec, __offset, __ptr); -} - -static __inline__ void __ATTRS_o_ai vec_xst_be(vector float __vec, - signed long long __offset, - float *__ptr) { - __builtin_vsx_stxvw4x_be(__vec, __offset, __ptr); -} - -#ifdef __VSX__ -static __inline__ void __ATTRS_o_ai vec_xst_be(vector signed long long __vec, - signed long long __offset, - signed long long *__ptr) { - __builtin_vsx_stxvd2x_be(__vec, __offset, __ptr); -} - -static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned long long __vec, - signed long long __offset, - unsigned long long *__ptr) { - __builtin_vsx_stxvd2x_be(__vec, __offset, __ptr); -} - -static __inline__ void __ATTRS_o_ai vec_xst_be(vector double __vec, - signed long long __offset, - double *__ptr) { - __builtin_vsx_stxvd2x_be(__vec, __offset, __ptr); -} -#endif - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static __inline__ void __ATTRS_o_ai vec_xst_be(vector signed __int128 __vec, - signed long long __offset, - signed __int128 *__ptr) { - vec_xst(__vec, __offset, __ptr); -} - -static __inline__ void __ATTRS_o_ai vec_xst_be(vector unsigned __int128 __vec, - signed long long __offset, - unsigned __int128 *__ptr) { - vec_xst(__vec, __offset, __ptr); -} -#endif -#else - #define vec_xst_be vec_xst -#endif - -#ifdef __POWER9_VECTOR__ -#define vec_test_data_class(__a, __b) \ - _Generic((__a), \ - vector float: \ - (vector bool int)__builtin_vsx_xvtstdcsp((__a), (__b)), \ - vector double: \ - (vector bool long long)__builtin_vsx_xvtstdcdp((__a), (__b)) \ - ) - -#endif /* #ifdef __POWER9_VECTOR__ */ - -static vector float __ATTRS_o_ai vec_neg(vector float __a) { - return -__a; -} - -#ifdef __VSX__ -static vector double __ATTRS_o_ai vec_neg(vector double __a) { - return -__a; -} - -#endif - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static vector long long __ATTRS_o_ai vec_neg(vector long long __a) { - return -__a; -} -#endif - -static vector signed int __ATTRS_o_ai vec_neg(vector signed int __a) { - return -__a; -} - -static vector signed short __ATTRS_o_ai vec_neg(vector signed short __a) { - return -__a; -} - -static vector signed char __ATTRS_o_ai vec_neg(vector signed char __a) { - return -__a; -} - -static vector float __ATTRS_o_ai vec_nabs(vector float __a) { - return - vec_abs(__a); -} - -#ifdef __VSX__ -static vector double __ATTRS_o_ai vec_nabs(vector double __a) { - return - vec_abs(__a); -} - -#endif - -#if defined(__POWER8_VECTOR__) && defined(__powerpc64__) -static vector long long __ATTRS_o_ai vec_nabs(vector long long __a) { - return __builtin_altivec_vminsd(__a, -__a); -} -#endif - -static vector signed int __ATTRS_o_ai vec_nabs(vector signed int __a) { - return __builtin_altivec_vminsw(__a, -__a); -} - -static vector signed short __ATTRS_o_ai vec_nabs(vector signed short __a) { - return __builtin_altivec_vminsh(__a, -__a); -} - -static vector signed char __ATTRS_o_ai vec_nabs(vector signed char __a) { - return __builtin_altivec_vminsb(__a, -__a); -} -#undef __ATTRS_o_ai - -#endif /* __ALTIVEC_H */ diff --git a/bin/app/data/cxx/include/ammintrin.h b/bin/app/data/cxx/include/ammintrin.h deleted file mode 100644 index 3806be6e..00000000 --- a/bin/app/data/cxx/include/ammintrin.h +++ /dev/null @@ -1,179 +0,0 @@ -/*===---- ammintrin.h - SSE4a intrinsics -----------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __AMMINTRIN_H -#define __AMMINTRIN_H - -#include - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4a"), __min_vector_width__(128))) - -/// Extracts the specified bits from the lower 64 bits of the 128-bit -/// integer vector operand at the index \a idx and of the length \a len. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_extracti_si64(__m128i x, const int len, const int idx); -/// \endcode -/// -/// This intrinsic corresponds to the EXTRQ instruction. -/// -/// \param x -/// The value from which bits are extracted. -/// \param len -/// Bits [5:0] specify the length; the other bits are ignored. If bits [5:0] -/// are zero, the length is interpreted as 64. -/// \param idx -/// Bits [5:0] specify the index of the least significant bit; the other -/// bits are ignored. If the sum of the index and length is greater than 64, -/// the result is undefined. If the length and index are both zero, bits -/// [63:0] of parameter \a x are extracted. If the length is zero but the -/// index is non-zero, the result is undefined. -/// \returns A 128-bit integer vector whose lower 64 bits contain the bits -/// extracted from the source operand. -#define _mm_extracti_si64(x, len, idx) \ - ((__m128i)__builtin_ia32_extrqi((__v2di)(__m128i)(x), \ - (char)(len), (char)(idx))) - -/// Extracts the specified bits from the lower 64 bits of the 128-bit -/// integer vector operand at the index and of the length specified by -/// \a __y. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the EXTRQ instruction. -/// -/// \param __x -/// The value from which bits are extracted. -/// \param __y -/// Specifies the index of the least significant bit at [13:8] and the -/// length at [5:0]; all other bits are ignored. If bits [5:0] are zero, the -/// length is interpreted as 64. If the sum of the index and length is -/// greater than 64, the result is undefined. If the length and index are -/// both zero, bits [63:0] of parameter \a __x are extracted. If the length -/// is zero but the index is non-zero, the result is undefined. -/// \returns A 128-bit vector whose lower 64 bits contain the bits extracted -/// from the source operand. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_extract_si64(__m128i __x, __m128i __y) -{ - return (__m128i)__builtin_ia32_extrq((__v2di)__x, (__v16qi)__y); -} - -/// Inserts bits of a specified length from the source integer vector -/// \a y into the lower 64 bits of the destination integer vector \a x at -/// the index \a idx and of the length \a len. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_inserti_si64(__m128i x, __m128i y, const int len, -/// const int idx); -/// \endcode -/// -/// This intrinsic corresponds to the INSERTQ instruction. -/// -/// \param x -/// The destination operand where bits will be inserted. The inserted bits -/// are defined by the length \a len and by the index \a idx specifying the -/// least significant bit. -/// \param y -/// The source operand containing the bits to be extracted. The extracted -/// bits are the least significant bits of operand \a y of length \a len. -/// \param len -/// Bits [5:0] specify the length; the other bits are ignored. If bits [5:0] -/// are zero, the length is interpreted as 64. -/// \param idx -/// Bits [5:0] specify the index of the least significant bit; the other -/// bits are ignored. If the sum of the index and length is greater than 64, -/// the result is undefined. If the length and index are both zero, bits -/// [63:0] of parameter \a y are inserted into parameter \a x. If the length -/// is zero but the index is non-zero, the result is undefined. -/// \returns A 128-bit integer vector containing the original lower 64-bits of -/// destination operand \a x with the specified bitfields replaced by the -/// lower bits of source operand \a y. The upper 64 bits of the return value -/// are undefined. -#define _mm_inserti_si64(x, y, len, idx) \ - ((__m128i)__builtin_ia32_insertqi((__v2di)(__m128i)(x), \ - (__v2di)(__m128i)(y), \ - (char)(len), (char)(idx))) - -/// Inserts bits of a specified length from the source integer vector -/// \a __y into the lower 64 bits of the destination integer vector \a __x -/// at the index and of the length specified by \a __y. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the INSERTQ instruction. -/// -/// \param __x -/// The destination operand where bits will be inserted. The inserted bits -/// are defined by the length and by the index of the least significant bit -/// specified by operand \a __y. -/// \param __y -/// The source operand containing the bits to be extracted. The extracted -/// bits are the least significant bits of operand \a __y with length -/// specified by bits [69:64]. These are inserted into the destination at the -/// index specified by bits [77:72]; all other bits are ignored. If bits -/// [69:64] are zero, the length is interpreted as 64. If the sum of the -/// index and length is greater than 64, the result is undefined. If the -/// length and index are both zero, bits [63:0] of parameter \a __y are -/// inserted into parameter \a __x. If the length is zero but the index is -/// non-zero, the result is undefined. -/// \returns A 128-bit integer vector containing the original lower 64-bits of -/// destination operand \a __x with the specified bitfields replaced by the -/// lower bits of source operand \a __y. The upper 64 bits of the return -/// value are undefined. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_insert_si64(__m128i __x, __m128i __y) -{ - return (__m128i)__builtin_ia32_insertq((__v2di)__x, (__v2di)__y); -} - -/// Stores a 64-bit double-precision value in a 64-bit memory location. -/// To minimize caching, the data is flagged as non-temporal (unlikely to be -/// used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVNTSD instruction. -/// -/// \param __p -/// The 64-bit memory location used to store the register value. -/// \param __a -/// The 64-bit double-precision floating-point register value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_stream_sd(double *__p, __m128d __a) -{ - __builtin_ia32_movntsd(__p, (__v2df)__a); -} - -/// Stores a 32-bit single-precision floating-point value in a 32-bit -/// memory location. To minimize caching, the data is flagged as -/// non-temporal (unlikely to be used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVNTSS instruction. -/// -/// \param __p -/// The 32-bit memory location used to store the register value. -/// \param __a -/// The 32-bit single-precision floating-point register value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_stream_ss(float *__p, __m128 __a) -{ - __builtin_ia32_movntss(__p, (__v4sf)__a); -} - -#undef __DEFAULT_FN_ATTRS - -#endif /* __AMMINTRIN_H */ diff --git a/bin/app/data/cxx/include/arm64intr.h b/bin/app/data/cxx/include/arm64intr.h deleted file mode 100644 index 4943b2db..00000000 --- a/bin/app/data/cxx/include/arm64intr.h +++ /dev/null @@ -1,35 +0,0 @@ -/*===---- arm64intr.h - ARM64 Windows intrinsics -------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* Only include this if we're compiling for the windows platform. */ -#ifndef _MSC_VER -#include_next -#else - -#ifndef __ARM64INTR_H -#define __ARM64INTR_H - -typedef enum -{ - _ARM64_BARRIER_SY = 0xF, - _ARM64_BARRIER_ST = 0xE, - _ARM64_BARRIER_LD = 0xD, - _ARM64_BARRIER_ISH = 0xB, - _ARM64_BARRIER_ISHST = 0xA, - _ARM64_BARRIER_ISHLD = 0x9, - _ARM64_BARRIER_NSH = 0x7, - _ARM64_BARRIER_NSHST = 0x6, - _ARM64_BARRIER_NSHLD = 0x5, - _ARM64_BARRIER_OSH = 0x3, - _ARM64_BARRIER_OSHST = 0x2, - _ARM64_BARRIER_OSHLD = 0x1 -} _ARM64INTR_BARRIER_TYPE; - -#endif /* __ARM64INTR_H */ -#endif /* _MSC_VER */ diff --git a/bin/app/data/cxx/include/arm_acle.h b/bin/app/data/cxx/include/arm_acle.h deleted file mode 100644 index 096cc261..00000000 --- a/bin/app/data/cxx/include/arm_acle.h +++ /dev/null @@ -1,630 +0,0 @@ -/*===---- arm_acle.h - ARM Non-Neon intrinsics -----------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __ARM_ACLE_H -#define __ARM_ACLE_H - -#ifndef __ARM_ACLE -#error "ACLE intrinsics support not enabled." -#endif - -#include - -#if defined(__cplusplus) -extern "C" { -#endif - -/* 8 SYNCHRONIZATION, BARRIER AND HINT INTRINSICS */ -/* 8.3 Memory barriers */ -#if !defined(_MSC_VER) -#define __dmb(i) __builtin_arm_dmb(i) -#define __dsb(i) __builtin_arm_dsb(i) -#define __isb(i) __builtin_arm_isb(i) -#endif - -/* 8.4 Hints */ - -#if !defined(_MSC_VER) -static __inline__ void __attribute__((__always_inline__, __nodebug__)) __wfi(void) { - __builtin_arm_wfi(); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__)) __wfe(void) { - __builtin_arm_wfe(); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__)) __sev(void) { - __builtin_arm_sev(); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__)) __sevl(void) { - __builtin_arm_sevl(); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__)) __yield(void) { - __builtin_arm_yield(); -} -#endif - -#if __ARM_32BIT_STATE -#define __dbg(t) __builtin_arm_dbg(t) -#endif - -/* 8.5 Swap */ -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__swp(uint32_t __x, volatile uint32_t *__p) { - uint32_t v; - do - v = __builtin_arm_ldrex(__p); - while (__builtin_arm_strex(__x, __p)); - return v; -} - -/* 8.6 Memory prefetch intrinsics */ -/* 8.6.1 Data prefetch */ -#define __pld(addr) __pldx(0, 0, 0, addr) - -#if __ARM_32BIT_STATE -#define __pldx(access_kind, cache_level, retention_policy, addr) \ - __builtin_arm_prefetch(addr, access_kind, 1) -#else -#define __pldx(access_kind, cache_level, retention_policy, addr) \ - __builtin_arm_prefetch(addr, access_kind, cache_level, retention_policy, 1) -#endif - -/* 8.6.2 Instruction prefetch */ -#define __pli(addr) __plix(0, 0, addr) - -#if __ARM_32BIT_STATE -#define __plix(cache_level, retention_policy, addr) \ - __builtin_arm_prefetch(addr, 0, 0) -#else -#define __plix(cache_level, retention_policy, addr) \ - __builtin_arm_prefetch(addr, 0, cache_level, retention_policy, 0) -#endif - -/* 8.7 NOP */ -static __inline__ void __attribute__((__always_inline__, __nodebug__)) __nop(void) { - __builtin_arm_nop(); -} - -/* 9 DATA-PROCESSING INTRINSICS */ -/* 9.2 Miscellaneous data-processing intrinsics */ -/* ROR */ -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__ror(uint32_t __x, uint32_t __y) { - __y %= 32; - if (__y == 0) - return __x; - return (__x >> __y) | (__x << (32 - __y)); -} - -static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__)) -__rorll(uint64_t __x, uint32_t __y) { - __y %= 64; - if (__y == 0) - return __x; - return (__x >> __y) | (__x << (64 - __y)); -} - -static __inline__ unsigned long __attribute__((__always_inline__, __nodebug__)) -__rorl(unsigned long __x, uint32_t __y) { -#if __SIZEOF_LONG__ == 4 - return __ror(__x, __y); -#else - return __rorll(__x, __y); -#endif -} - - -/* CLZ */ -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__clz(uint32_t __t) { - return __builtin_clz(__t); -} - -static __inline__ unsigned long __attribute__((__always_inline__, __nodebug__)) -__clzl(unsigned long __t) { - return __builtin_clzl(__t); -} - -static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__)) -__clzll(uint64_t __t) { - return __builtin_clzll(__t); -} - -/* REV */ -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__rev(uint32_t __t) { - return __builtin_bswap32(__t); -} - -static __inline__ unsigned long __attribute__((__always_inline__, __nodebug__)) -__revl(unsigned long __t) { -#if __SIZEOF_LONG__ == 4 - return __builtin_bswap32(__t); -#else - return __builtin_bswap64(__t); -#endif -} - -static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__)) -__revll(uint64_t __t) { - return __builtin_bswap64(__t); -} - -/* REV16 */ -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__rev16(uint32_t __t) { - return __ror(__rev(__t), 16); -} - -static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__)) -__rev16ll(uint64_t __t) { - return (((uint64_t)__rev16(__t >> 32)) << 32) | __rev16(__t); -} - -static __inline__ unsigned long __attribute__((__always_inline__, __nodebug__)) -__rev16l(unsigned long __t) { -#if __SIZEOF_LONG__ == 4 - return __rev16(__t); -#else - return __rev16ll(__t); -#endif -} - -/* REVSH */ -static __inline__ int16_t __attribute__((__always_inline__, __nodebug__)) -__revsh(int16_t __t) { - return __builtin_bswap16(__t); -} - -/* RBIT */ -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__rbit(uint32_t __t) { - return __builtin_arm_rbit(__t); -} - -static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__)) -__rbitll(uint64_t __t) { -#if __ARM_32BIT_STATE - return (((uint64_t)__builtin_arm_rbit(__t)) << 32) | - __builtin_arm_rbit(__t >> 32); -#else - return __builtin_arm_rbit64(__t); -#endif -} - -static __inline__ unsigned long __attribute__((__always_inline__, __nodebug__)) -__rbitl(unsigned long __t) { -#if __SIZEOF_LONG__ == 4 - return __rbit(__t); -#else - return __rbitll(__t); -#endif -} - -/* - * 9.3 16-bit multiplications - */ -#if __ARM_FEATURE_DSP -static __inline__ int32_t __attribute__((__always_inline__,__nodebug__)) -__smulbb(int32_t __a, int32_t __b) { - return __builtin_arm_smulbb(__a, __b); -} -static __inline__ int32_t __attribute__((__always_inline__,__nodebug__)) -__smulbt(int32_t __a, int32_t __b) { - return __builtin_arm_smulbt(__a, __b); -} -static __inline__ int32_t __attribute__((__always_inline__,__nodebug__)) -__smultb(int32_t __a, int32_t __b) { - return __builtin_arm_smultb(__a, __b); -} -static __inline__ int32_t __attribute__((__always_inline__,__nodebug__)) -__smultt(int32_t __a, int32_t __b) { - return __builtin_arm_smultt(__a, __b); -} -static __inline__ int32_t __attribute__((__always_inline__,__nodebug__)) -__smulwb(int32_t __a, int32_t __b) { - return __builtin_arm_smulwb(__a, __b); -} -static __inline__ int32_t __attribute__((__always_inline__,__nodebug__)) -__smulwt(int32_t __a, int32_t __b) { - return __builtin_arm_smulwt(__a, __b); -} -#endif - -/* - * 9.4 Saturating intrinsics - * - * FIXME: Change guard to their corrosponding __ARM_FEATURE flag when Q flag - * intrinsics are implemented and the flag is enabled. - */ -/* 9.4.1 Width-specified saturation intrinsics */ -#if __ARM_FEATURE_SAT -#define __ssat(x, y) __builtin_arm_ssat(x, y) -#define __usat(x, y) __builtin_arm_usat(x, y) -#endif - -/* 9.4.2 Saturating addition and subtraction intrinsics */ -#if __ARM_FEATURE_DSP -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__qadd(int32_t __t, int32_t __v) { - return __builtin_arm_qadd(__t, __v); -} - -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__qsub(int32_t __t, int32_t __v) { - return __builtin_arm_qsub(__t, __v); -} - -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__qdbl(int32_t __t) { - return __builtin_arm_qadd(__t, __t); -} -#endif - -/* 9.4.3 Accumultating multiplications */ -#if __ARM_FEATURE_DSP -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smlabb(int32_t __a, int32_t __b, int32_t __c) { - return __builtin_arm_smlabb(__a, __b, __c); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smlabt(int32_t __a, int32_t __b, int32_t __c) { - return __builtin_arm_smlabt(__a, __b, __c); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smlatb(int32_t __a, int32_t __b, int32_t __c) { - return __builtin_arm_smlatb(__a, __b, __c); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smlatt(int32_t __a, int32_t __b, int32_t __c) { - return __builtin_arm_smlatt(__a, __b, __c); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smlawb(int32_t __a, int32_t __b, int32_t __c) { - return __builtin_arm_smlawb(__a, __b, __c); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smlawt(int32_t __a, int32_t __b, int32_t __c) { - return __builtin_arm_smlawt(__a, __b, __c); -} -#endif - - -/* 9.5.4 Parallel 16-bit saturation */ -#if __ARM_FEATURE_SIMD32 -#define __ssat16(x, y) __builtin_arm_ssat16(x, y) -#define __usat16(x, y) __builtin_arm_usat16(x, y) -#endif - -/* 9.5.5 Packing and unpacking */ -#if __ARM_FEATURE_SIMD32 -typedef int32_t int8x4_t; -typedef int32_t int16x2_t; -typedef uint32_t uint8x4_t; -typedef uint32_t uint16x2_t; - -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__sxtab16(int16x2_t __a, int8x4_t __b) { - return __builtin_arm_sxtab16(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__sxtb16(int8x4_t __a) { - return __builtin_arm_sxtb16(__a); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__uxtab16(int16x2_t __a, int8x4_t __b) { - return __builtin_arm_uxtab16(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__uxtb16(int8x4_t __a) { - return __builtin_arm_uxtb16(__a); -} -#endif - -/* 9.5.6 Parallel selection */ -#if __ARM_FEATURE_SIMD32 -static __inline__ uint8x4_t __attribute__((__always_inline__, __nodebug__)) -__sel(uint8x4_t __a, uint8x4_t __b) { - return __builtin_arm_sel(__a, __b); -} -#endif - -/* 9.5.7 Parallel 8-bit addition and subtraction */ -#if __ARM_FEATURE_SIMD32 -static __inline__ int8x4_t __attribute__((__always_inline__, __nodebug__)) -__qadd8(int8x4_t __a, int8x4_t __b) { - return __builtin_arm_qadd8(__a, __b); -} -static __inline__ int8x4_t __attribute__((__always_inline__, __nodebug__)) -__qsub8(int8x4_t __a, int8x4_t __b) { - return __builtin_arm_qsub8(__a, __b); -} -static __inline__ int8x4_t __attribute__((__always_inline__, __nodebug__)) -__sadd8(int8x4_t __a, int8x4_t __b) { - return __builtin_arm_sadd8(__a, __b); -} -static __inline__ int8x4_t __attribute__((__always_inline__, __nodebug__)) -__shadd8(int8x4_t __a, int8x4_t __b) { - return __builtin_arm_shadd8(__a, __b); -} -static __inline__ int8x4_t __attribute__((__always_inline__, __nodebug__)) -__shsub8(int8x4_t __a, int8x4_t __b) { - return __builtin_arm_shsub8(__a, __b); -} -static __inline__ int8x4_t __attribute__((__always_inline__, __nodebug__)) -__ssub8(int8x4_t __a, int8x4_t __b) { - return __builtin_arm_ssub8(__a, __b); -} -static __inline__ uint8x4_t __attribute__((__always_inline__, __nodebug__)) -__uadd8(uint8x4_t __a, uint8x4_t __b) { - return __builtin_arm_uadd8(__a, __b); -} -static __inline__ uint8x4_t __attribute__((__always_inline__, __nodebug__)) -__uhadd8(uint8x4_t __a, uint8x4_t __b) { - return __builtin_arm_uhadd8(__a, __b); -} -static __inline__ uint8x4_t __attribute__((__always_inline__, __nodebug__)) -__uhsub8(uint8x4_t __a, uint8x4_t __b) { - return __builtin_arm_uhsub8(__a, __b); -} -static __inline__ uint8x4_t __attribute__((__always_inline__, __nodebug__)) -__uqadd8(uint8x4_t __a, uint8x4_t __b) { - return __builtin_arm_uqadd8(__a, __b); -} -static __inline__ uint8x4_t __attribute__((__always_inline__, __nodebug__)) -__uqsub8(uint8x4_t __a, uint8x4_t __b) { - return __builtin_arm_uqsub8(__a, __b); -} -static __inline__ uint8x4_t __attribute__((__always_inline__, __nodebug__)) -__usub8(uint8x4_t __a, uint8x4_t __b) { - return __builtin_arm_usub8(__a, __b); -} -#endif - -/* 9.5.8 Sum of 8-bit absolute differences */ -#if __ARM_FEATURE_SIMD32 -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__usad8(uint8x4_t __a, uint8x4_t __b) { - return __builtin_arm_usad8(__a, __b); -} -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__usada8(uint8x4_t __a, uint8x4_t __b, uint32_t __c) { - return __builtin_arm_usada8(__a, __b, __c); -} -#endif - -/* 9.5.9 Parallel 16-bit addition and subtraction */ -#if __ARM_FEATURE_SIMD32 -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__qadd16(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_qadd16(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__qasx(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_qasx(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__qsax(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_qsax(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__qsub16(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_qsub16(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__sadd16(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_sadd16(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__sasx(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_sasx(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__shadd16(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_shadd16(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__shasx(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_shasx(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__shsax(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_shsax(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__shsub16(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_shsub16(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__ssax(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_ssax(__a, __b); -} -static __inline__ int16x2_t __attribute__((__always_inline__, __nodebug__)) -__ssub16(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_ssub16(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__uadd16(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_uadd16(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__uasx(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_uasx(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__uhadd16(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_uhadd16(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__uhasx(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_uhasx(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__uhsax(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_uhsax(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__uhsub16(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_uhsub16(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__uqadd16(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_uqadd16(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__uqasx(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_uqasx(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__uqsax(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_uqsax(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__uqsub16(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_uqsub16(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__usax(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_usax(__a, __b); -} -static __inline__ uint16x2_t __attribute__((__always_inline__, __nodebug__)) -__usub16(uint16x2_t __a, uint16x2_t __b) { - return __builtin_arm_usub16(__a, __b); -} -#endif - -/* 9.5.10 Parallel 16-bit multiplications */ -#if __ARM_FEATURE_SIMD32 -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smlad(int16x2_t __a, int16x2_t __b, int32_t __c) { - return __builtin_arm_smlad(__a, __b, __c); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smladx(int16x2_t __a, int16x2_t __b, int32_t __c) { - return __builtin_arm_smladx(__a, __b, __c); -} -static __inline__ int64_t __attribute__((__always_inline__, __nodebug__)) -__smlald(int16x2_t __a, int16x2_t __b, int64_t __c) { - return __builtin_arm_smlald(__a, __b, __c); -} -static __inline__ int64_t __attribute__((__always_inline__, __nodebug__)) -__smlaldx(int16x2_t __a, int16x2_t __b, int64_t __c) { - return __builtin_arm_smlaldx(__a, __b, __c); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smlsd(int16x2_t __a, int16x2_t __b, int32_t __c) { - return __builtin_arm_smlsd(__a, __b, __c); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smlsdx(int16x2_t __a, int16x2_t __b, int32_t __c) { - return __builtin_arm_smlsdx(__a, __b, __c); -} -static __inline__ int64_t __attribute__((__always_inline__, __nodebug__)) -__smlsld(int16x2_t __a, int16x2_t __b, int64_t __c) { - return __builtin_arm_smlsld(__a, __b, __c); -} -static __inline__ int64_t __attribute__((__always_inline__, __nodebug__)) -__smlsldx(int16x2_t __a, int16x2_t __b, int64_t __c) { - return __builtin_arm_smlsldx(__a, __b, __c); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smuad(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_smuad(__a, __b); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smuadx(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_smuadx(__a, __b); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smusd(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_smusd(__a, __b); -} -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__smusdx(int16x2_t __a, int16x2_t __b) { - return __builtin_arm_smusdx(__a, __b); -} -#endif - -/* 9.7 CRC32 intrinsics */ -#if __ARM_FEATURE_CRC32 -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__crc32b(uint32_t __a, uint8_t __b) { - return __builtin_arm_crc32b(__a, __b); -} - -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__crc32h(uint32_t __a, uint16_t __b) { - return __builtin_arm_crc32h(__a, __b); -} - -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__crc32w(uint32_t __a, uint32_t __b) { - return __builtin_arm_crc32w(__a, __b); -} - -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__crc32d(uint32_t __a, uint64_t __b) { - return __builtin_arm_crc32d(__a, __b); -} - -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__crc32cb(uint32_t __a, uint8_t __b) { - return __builtin_arm_crc32cb(__a, __b); -} - -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__crc32ch(uint32_t __a, uint16_t __b) { - return __builtin_arm_crc32ch(__a, __b); -} - -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__crc32cw(uint32_t __a, uint32_t __b) { - return __builtin_arm_crc32cw(__a, __b); -} - -static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__)) -__crc32cd(uint32_t __a, uint64_t __b) { - return __builtin_arm_crc32cd(__a, __b); -} -#endif - -/* Armv8.3-A Javascript conversion intrinsic */ -#if __ARM_64BIT_STATE && defined(__ARM_FEATURE_JCVT) -static __inline__ int32_t __attribute__((__always_inline__, __nodebug__)) -__jcvt(double __a) { - return __builtin_arm_jcvt(__a); -} -#endif - -/* 10.1 Special register intrinsics */ -#define __arm_rsr(sysreg) __builtin_arm_rsr(sysreg) -#define __arm_rsr64(sysreg) __builtin_arm_rsr64(sysreg) -#define __arm_rsrp(sysreg) __builtin_arm_rsrp(sysreg) -#define __arm_wsr(sysreg, v) __builtin_arm_wsr(sysreg, v) -#define __arm_wsr64(sysreg, v) __builtin_arm_wsr64(sysreg, v) -#define __arm_wsrp(sysreg, v) __builtin_arm_wsrp(sysreg, v) - -// Memory Tagging Extensions (MTE) Intrinsics -#if __ARM_FEATURE_MEMORY_TAGGING -#define __arm_mte_create_random_tag(__ptr, __mask) __builtin_arm_irg(__ptr, __mask) -#define __arm_mte_increment_tag(__ptr, __tag_offset) __builtin_arm_addg(__ptr, __tag_offset) -#define __arm_mte_exclude_tag(__ptr, __excluded) __builtin_arm_gmi(__ptr, __excluded) -#define __arm_mte_get_tag(__ptr) __builtin_arm_ldg(__ptr) -#define __arm_mte_set_tag(__ptr) __builtin_arm_stg(__ptr) -#define __arm_mte_ptrdiff(__ptra, __ptrb) __builtin_arm_subp(__ptra, __ptrb) -#endif - -#if defined(__cplusplus) -} -#endif - -#endif /* __ARM_ACLE_H */ diff --git a/bin/app/data/cxx/include/arm_fp16.h b/bin/app/data/cxx/include/arm_fp16.h deleted file mode 100644 index de544650..00000000 --- a/bin/app/data/cxx/include/arm_fp16.h +++ /dev/null @@ -1,1499 +0,0 @@ -/*===---- arm_fp16.h - ARM FP16 intrinsics ---------------------------------=== - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __ARM_FP16_H -#define __ARM_FP16_H - -#include - -typedef __fp16 float16_t; -#define __ai static __inline__ __attribute__((__always_inline__, __nodebug__)) - -#if defined(__ARM_FEATURE_FP16_SCALAR_ARITHMETIC) && defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -#define vabdh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vabdh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vabdh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vabdh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vabsh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vabsh_f16(__s0); \ - __ret; \ -}) -#else -#define vabsh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vabsh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vaddh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vaddh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vaddh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vaddh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcageh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcageh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vcageh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcageh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcagth_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcagth_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vcagth_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcagth_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcaleh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcaleh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vcaleh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcaleh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcalth_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcalth_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vcalth_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcalth_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vceqh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vceqh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vceqh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vceqh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vceqzh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vceqzh_f16(__s0); \ - __ret; \ -}) -#else -#define vceqzh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vceqzh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcgeh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcgeh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vcgeh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcgeh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcgezh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcgezh_f16(__s0); \ - __ret; \ -}) -#else -#define vcgezh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcgezh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcgth_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcgth_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vcgth_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcgth_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcgtzh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcgtzh_f16(__s0); \ - __ret; \ -}) -#else -#define vcgtzh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcgtzh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcleh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcleh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vcleh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcleh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vclezh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vclezh_f16(__s0); \ - __ret; \ -}) -#else -#define vclezh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vclezh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vclth_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vclth_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vclth_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vclth_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcltzh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcltzh_f16(__s0); \ - __ret; \ -}) -#else -#define vcltzh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcltzh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_s16_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvth_n_s16_f16(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_s16_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvth_n_s16_f16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_s32_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvth_n_s32_f16(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_s32_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvth_n_s32_f16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_s64_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvth_n_s64_f16(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_s64_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvth_n_s64_f16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_u16_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvth_n_u16_f16(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_u16_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvth_n_u16_f16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_u32_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvth_n_u32_f16(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_u32_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvth_n_u32_f16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_u64_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvth_n_u64_f16(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_u64_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvth_n_u64_f16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_s16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvth_s16_f16(__s0); \ - __ret; \ -}) -#else -#define vcvth_s16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvth_s16_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_s32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvth_s32_f16(__s0); \ - __ret; \ -}) -#else -#define vcvth_s32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvth_s32_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_s64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvth_s64_f16(__s0); \ - __ret; \ -}) -#else -#define vcvth_s64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvth_s64_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_u16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvth_u16_f16(__s0); \ - __ret; \ -}) -#else -#define vcvth_u16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvth_u16_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_u32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvth_u32_f16(__s0); \ - __ret; \ -}) -#else -#define vcvth_u32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvth_u32_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_u64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvth_u64_f16(__s0); \ - __ret; \ -}) -#else -#define vcvth_u64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvth_u64_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtah_s16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvtah_s16_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtah_s16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvtah_s16_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtah_s32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvtah_s32_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtah_s32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvtah_s32_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtah_s64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvtah_s64_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtah_s64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvtah_s64_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtah_u16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvtah_u16_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtah_u16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvtah_u16_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtah_u32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvtah_u32_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtah_u32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvtah_u32_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtah_u64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvtah_u64_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtah_u64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvtah_u64_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16_t vcvth_f16_u32(uint32_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_u32(__p0); - return __ret; -} -#else -__ai float16_t vcvth_f16_u32(uint32_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_u32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16_t vcvth_f16_u64(uint64_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_u64(__p0); - return __ret; -} -#else -__ai float16_t vcvth_f16_u64(uint64_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_u64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16_t vcvth_f16_u16(uint16_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_u16(__p0); - return __ret; -} -#else -__ai float16_t vcvth_f16_u16(uint16_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_u16(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16_t vcvth_f16_s32(int32_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_s32(__p0); - return __ret; -} -#else -__ai float16_t vcvth_f16_s32(int32_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_s32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16_t vcvth_f16_s64(int64_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_s64(__p0); - return __ret; -} -#else -__ai float16_t vcvth_f16_s64(int64_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16_t vcvth_f16_s16(int16_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_s16(__p0); - return __ret; -} -#else -__ai float16_t vcvth_f16_s16(int16_t __p0) { - float16_t __ret; - __ret = (float16_t) __builtin_neon_vcvth_f16_s16(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_f16_u32(__p0, __p1) __extension__ ({ \ - uint32_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_u32(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_f16_u32(__p0, __p1) __extension__ ({ \ - uint32_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_u32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_f16_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_u64(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_f16_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_u64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_f16_u16(__p0, __p1) __extension__ ({ \ - uint16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_u16(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_f16_u16(__p0, __p1) __extension__ ({ \ - uint16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_u16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_f16_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_s32(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_f16_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_s32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_f16_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_f16_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvth_n_f16_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_s16(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvth_n_f16_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vcvth_n_f16_s16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtmh_s16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvtmh_s16_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtmh_s16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvtmh_s16_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtmh_s32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvtmh_s32_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtmh_s32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvtmh_s32_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtmh_s64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvtmh_s64_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtmh_s64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvtmh_s64_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtmh_u16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvtmh_u16_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtmh_u16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvtmh_u16_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtmh_u32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvtmh_u32_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtmh_u32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvtmh_u32_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtmh_u64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvtmh_u64_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtmh_u64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvtmh_u64_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtnh_s16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvtnh_s16_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtnh_s16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvtnh_s16_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtnh_s32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvtnh_s32_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtnh_s32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvtnh_s32_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtnh_s64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvtnh_s64_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtnh_s64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvtnh_s64_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtnh_u16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvtnh_u16_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtnh_u16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvtnh_u16_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtnh_u32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvtnh_u32_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtnh_u32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvtnh_u32_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtnh_u64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvtnh_u64_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtnh_u64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvtnh_u64_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtph_s16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvtph_s16_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtph_s16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vcvtph_s16_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtph_s32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvtph_s32_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtph_s32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvtph_s32_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtph_s64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvtph_s64_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtph_s64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvtph_s64_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtph_u16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvtph_u16_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtph_u16_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vcvtph_u16_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtph_u32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvtph_u32_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtph_u32_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvtph_u32_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtph_u64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvtph_u64_f16(__s0); \ - __ret; \ -}) -#else -#define vcvtph_u64_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvtph_u64_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdivh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vdivh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vdivh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vdivh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmah_f16(__p0, __p1, __p2) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vfmah_f16(__s0, __s1, __s2); \ - __ret; \ -}) -#else -#define vfmah_f16(__p0, __p1, __p2) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vfmah_f16(__s0, __s1, __s2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsh_f16(__p0, __p1, __p2) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vfmsh_f16(__s0, __s1, __s2); \ - __ret; \ -}) -#else -#define vfmsh_f16(__p0, __p1, __p2) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vfmsh_f16(__s0, __s1, __s2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmaxh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vmaxh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmaxnmh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxnmh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vmaxnmh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxnmh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vminh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vminh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vminnmh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminnmh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vminnmh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminnmh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmulh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vmulh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmulh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmulxh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vmulxh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmulxh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vnegh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vnegh_f16(__s0); \ - __ret; \ -}) -#else -#define vnegh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vnegh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrecpeh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrecpeh_f16(__s0); \ - __ret; \ -}) -#else -#define vrecpeh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrecpeh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrecpsh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrecpsh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vrecpsh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrecpsh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrecpxh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrecpxh_f16(__s0); \ - __ret; \ -}) -#else -#define vrecpxh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrecpxh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrndh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndh_f16(__s0); \ - __ret; \ -}) -#else -#define vrndh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrndah_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndah_f16(__s0); \ - __ret; \ -}) -#else -#define vrndah_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndah_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrndih_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndih_f16(__s0); \ - __ret; \ -}) -#else -#define vrndih_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndih_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrndmh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndmh_f16(__s0); \ - __ret; \ -}) -#else -#define vrndmh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndmh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrndnh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndnh_f16(__s0); \ - __ret; \ -}) -#else -#define vrndnh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndnh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrndph_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndph_f16(__s0); \ - __ret; \ -}) -#else -#define vrndph_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndph_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrndxh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndxh_f16(__s0); \ - __ret; \ -}) -#else -#define vrndxh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrndxh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsqrteh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrsqrteh_f16(__s0); \ - __ret; \ -}) -#else -#define vrsqrteh_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrsqrteh_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsqrtsh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrsqrtsh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vrsqrtsh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vrsqrtsh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsqrth_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vsqrth_f16(__s0); \ - __ret; \ -}) -#else -#define vsqrth_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vsqrth_f16(__s0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsubh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vsubh_f16(__s0, __s1); \ - __ret; \ -}) -#else -#define vsubh_f16(__p0, __p1) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vsubh_f16(__s0, __s1); \ - __ret; \ -}) -#endif - -#endif - -#undef __ai - -#endif /* __ARM_FP16_H */ diff --git a/bin/app/data/cxx/include/arm_neon.h b/bin/app/data/cxx/include/arm_neon.h deleted file mode 100644 index d6765b36..00000000 --- a/bin/app/data/cxx/include/arm_neon.h +++ /dev/null @@ -1,73681 +0,0 @@ -/*===---- arm_neon.h - ARM Neon intrinsics ---------------------------------=== - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __ARM_NEON_H -#define __ARM_NEON_H - -#if !defined(__ARM_NEON) -#error "NEON support not enabled" -#endif - -#include - -typedef float float32_t; -typedef __fp16 float16_t; -#ifdef __aarch64__ -typedef double float64_t; -#endif - -#ifdef __aarch64__ -typedef uint8_t poly8_t; -typedef uint16_t poly16_t; -typedef uint64_t poly64_t; -typedef __uint128_t poly128_t; -#else -typedef int8_t poly8_t; -typedef int16_t poly16_t; -#endif -typedef __attribute__((neon_vector_type(8))) int8_t int8x8_t; -typedef __attribute__((neon_vector_type(16))) int8_t int8x16_t; -typedef __attribute__((neon_vector_type(4))) int16_t int16x4_t; -typedef __attribute__((neon_vector_type(8))) int16_t int16x8_t; -typedef __attribute__((neon_vector_type(2))) int32_t int32x2_t; -typedef __attribute__((neon_vector_type(4))) int32_t int32x4_t; -typedef __attribute__((neon_vector_type(1))) int64_t int64x1_t; -typedef __attribute__((neon_vector_type(2))) int64_t int64x2_t; -typedef __attribute__((neon_vector_type(8))) uint8_t uint8x8_t; -typedef __attribute__((neon_vector_type(16))) uint8_t uint8x16_t; -typedef __attribute__((neon_vector_type(4))) uint16_t uint16x4_t; -typedef __attribute__((neon_vector_type(8))) uint16_t uint16x8_t; -typedef __attribute__((neon_vector_type(2))) uint32_t uint32x2_t; -typedef __attribute__((neon_vector_type(4))) uint32_t uint32x4_t; -typedef __attribute__((neon_vector_type(1))) uint64_t uint64x1_t; -typedef __attribute__((neon_vector_type(2))) uint64_t uint64x2_t; -typedef __attribute__((neon_vector_type(4))) float16_t float16x4_t; -typedef __attribute__((neon_vector_type(8))) float16_t float16x8_t; -typedef __attribute__((neon_vector_type(2))) float32_t float32x2_t; -typedef __attribute__((neon_vector_type(4))) float32_t float32x4_t; -#ifdef __aarch64__ -typedef __attribute__((neon_vector_type(1))) float64_t float64x1_t; -typedef __attribute__((neon_vector_type(2))) float64_t float64x2_t; -#endif -typedef __attribute__((neon_polyvector_type(8))) poly8_t poly8x8_t; -typedef __attribute__((neon_polyvector_type(16))) poly8_t poly8x16_t; -typedef __attribute__((neon_polyvector_type(4))) poly16_t poly16x4_t; -typedef __attribute__((neon_polyvector_type(8))) poly16_t poly16x8_t; -#ifdef __aarch64__ -typedef __attribute__((neon_polyvector_type(1))) poly64_t poly64x1_t; -typedef __attribute__((neon_polyvector_type(2))) poly64_t poly64x2_t; -#endif - -typedef struct int8x8x2_t { - int8x8_t val[2]; -} int8x8x2_t; - -typedef struct int8x16x2_t { - int8x16_t val[2]; -} int8x16x2_t; - -typedef struct int16x4x2_t { - int16x4_t val[2]; -} int16x4x2_t; - -typedef struct int16x8x2_t { - int16x8_t val[2]; -} int16x8x2_t; - -typedef struct int32x2x2_t { - int32x2_t val[2]; -} int32x2x2_t; - -typedef struct int32x4x2_t { - int32x4_t val[2]; -} int32x4x2_t; - -typedef struct int64x1x2_t { - int64x1_t val[2]; -} int64x1x2_t; - -typedef struct int64x2x2_t { - int64x2_t val[2]; -} int64x2x2_t; - -typedef struct uint8x8x2_t { - uint8x8_t val[2]; -} uint8x8x2_t; - -typedef struct uint8x16x2_t { - uint8x16_t val[2]; -} uint8x16x2_t; - -typedef struct uint16x4x2_t { - uint16x4_t val[2]; -} uint16x4x2_t; - -typedef struct uint16x8x2_t { - uint16x8_t val[2]; -} uint16x8x2_t; - -typedef struct uint32x2x2_t { - uint32x2_t val[2]; -} uint32x2x2_t; - -typedef struct uint32x4x2_t { - uint32x4_t val[2]; -} uint32x4x2_t; - -typedef struct uint64x1x2_t { - uint64x1_t val[2]; -} uint64x1x2_t; - -typedef struct uint64x2x2_t { - uint64x2_t val[2]; -} uint64x2x2_t; - -typedef struct float16x4x2_t { - float16x4_t val[2]; -} float16x4x2_t; - -typedef struct float16x8x2_t { - float16x8_t val[2]; -} float16x8x2_t; - -typedef struct float32x2x2_t { - float32x2_t val[2]; -} float32x2x2_t; - -typedef struct float32x4x2_t { - float32x4_t val[2]; -} float32x4x2_t; - -#ifdef __aarch64__ -typedef struct float64x1x2_t { - float64x1_t val[2]; -} float64x1x2_t; - -typedef struct float64x2x2_t { - float64x2_t val[2]; -} float64x2x2_t; - -#endif -typedef struct poly8x8x2_t { - poly8x8_t val[2]; -} poly8x8x2_t; - -typedef struct poly8x16x2_t { - poly8x16_t val[2]; -} poly8x16x2_t; - -typedef struct poly16x4x2_t { - poly16x4_t val[2]; -} poly16x4x2_t; - -typedef struct poly16x8x2_t { - poly16x8_t val[2]; -} poly16x8x2_t; - -#ifdef __aarch64__ -typedef struct poly64x1x2_t { - poly64x1_t val[2]; -} poly64x1x2_t; - -typedef struct poly64x2x2_t { - poly64x2_t val[2]; -} poly64x2x2_t; - -#endif -typedef struct int8x8x3_t { - int8x8_t val[3]; -} int8x8x3_t; - -typedef struct int8x16x3_t { - int8x16_t val[3]; -} int8x16x3_t; - -typedef struct int16x4x3_t { - int16x4_t val[3]; -} int16x4x3_t; - -typedef struct int16x8x3_t { - int16x8_t val[3]; -} int16x8x3_t; - -typedef struct int32x2x3_t { - int32x2_t val[3]; -} int32x2x3_t; - -typedef struct int32x4x3_t { - int32x4_t val[3]; -} int32x4x3_t; - -typedef struct int64x1x3_t { - int64x1_t val[3]; -} int64x1x3_t; - -typedef struct int64x2x3_t { - int64x2_t val[3]; -} int64x2x3_t; - -typedef struct uint8x8x3_t { - uint8x8_t val[3]; -} uint8x8x3_t; - -typedef struct uint8x16x3_t { - uint8x16_t val[3]; -} uint8x16x3_t; - -typedef struct uint16x4x3_t { - uint16x4_t val[3]; -} uint16x4x3_t; - -typedef struct uint16x8x3_t { - uint16x8_t val[3]; -} uint16x8x3_t; - -typedef struct uint32x2x3_t { - uint32x2_t val[3]; -} uint32x2x3_t; - -typedef struct uint32x4x3_t { - uint32x4_t val[3]; -} uint32x4x3_t; - -typedef struct uint64x1x3_t { - uint64x1_t val[3]; -} uint64x1x3_t; - -typedef struct uint64x2x3_t { - uint64x2_t val[3]; -} uint64x2x3_t; - -typedef struct float16x4x3_t { - float16x4_t val[3]; -} float16x4x3_t; - -typedef struct float16x8x3_t { - float16x8_t val[3]; -} float16x8x3_t; - -typedef struct float32x2x3_t { - float32x2_t val[3]; -} float32x2x3_t; - -typedef struct float32x4x3_t { - float32x4_t val[3]; -} float32x4x3_t; - -#ifdef __aarch64__ -typedef struct float64x1x3_t { - float64x1_t val[3]; -} float64x1x3_t; - -typedef struct float64x2x3_t { - float64x2_t val[3]; -} float64x2x3_t; - -#endif -typedef struct poly8x8x3_t { - poly8x8_t val[3]; -} poly8x8x3_t; - -typedef struct poly8x16x3_t { - poly8x16_t val[3]; -} poly8x16x3_t; - -typedef struct poly16x4x3_t { - poly16x4_t val[3]; -} poly16x4x3_t; - -typedef struct poly16x8x3_t { - poly16x8_t val[3]; -} poly16x8x3_t; - -#ifdef __aarch64__ -typedef struct poly64x1x3_t { - poly64x1_t val[3]; -} poly64x1x3_t; - -typedef struct poly64x2x3_t { - poly64x2_t val[3]; -} poly64x2x3_t; - -#endif -typedef struct int8x8x4_t { - int8x8_t val[4]; -} int8x8x4_t; - -typedef struct int8x16x4_t { - int8x16_t val[4]; -} int8x16x4_t; - -typedef struct int16x4x4_t { - int16x4_t val[4]; -} int16x4x4_t; - -typedef struct int16x8x4_t { - int16x8_t val[4]; -} int16x8x4_t; - -typedef struct int32x2x4_t { - int32x2_t val[4]; -} int32x2x4_t; - -typedef struct int32x4x4_t { - int32x4_t val[4]; -} int32x4x4_t; - -typedef struct int64x1x4_t { - int64x1_t val[4]; -} int64x1x4_t; - -typedef struct int64x2x4_t { - int64x2_t val[4]; -} int64x2x4_t; - -typedef struct uint8x8x4_t { - uint8x8_t val[4]; -} uint8x8x4_t; - -typedef struct uint8x16x4_t { - uint8x16_t val[4]; -} uint8x16x4_t; - -typedef struct uint16x4x4_t { - uint16x4_t val[4]; -} uint16x4x4_t; - -typedef struct uint16x8x4_t { - uint16x8_t val[4]; -} uint16x8x4_t; - -typedef struct uint32x2x4_t { - uint32x2_t val[4]; -} uint32x2x4_t; - -typedef struct uint32x4x4_t { - uint32x4_t val[4]; -} uint32x4x4_t; - -typedef struct uint64x1x4_t { - uint64x1_t val[4]; -} uint64x1x4_t; - -typedef struct uint64x2x4_t { - uint64x2_t val[4]; -} uint64x2x4_t; - -typedef struct float16x4x4_t { - float16x4_t val[4]; -} float16x4x4_t; - -typedef struct float16x8x4_t { - float16x8_t val[4]; -} float16x8x4_t; - -typedef struct float32x2x4_t { - float32x2_t val[4]; -} float32x2x4_t; - -typedef struct float32x4x4_t { - float32x4_t val[4]; -} float32x4x4_t; - -#ifdef __aarch64__ -typedef struct float64x1x4_t { - float64x1_t val[4]; -} float64x1x4_t; - -typedef struct float64x2x4_t { - float64x2_t val[4]; -} float64x2x4_t; - -#endif -typedef struct poly8x8x4_t { - poly8x8_t val[4]; -} poly8x8x4_t; - -typedef struct poly8x16x4_t { - poly8x16_t val[4]; -} poly8x16x4_t; - -typedef struct poly16x4x4_t { - poly16x4_t val[4]; -} poly16x4x4_t; - -typedef struct poly16x8x4_t { - poly16x8_t val[4]; -} poly16x8x4_t; - -#ifdef __aarch64__ -typedef struct poly64x1x4_t { - poly64x1_t val[4]; -} poly64x1x4_t; - -typedef struct poly64x2x4_t { - poly64x2_t val[4]; -} poly64x2x4_t; - -#endif - -#define __ai static __inline__ __attribute__((__always_inline__, __nodebug__)) - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vabdq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vabdq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x16_t __noswap_vabdq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vabdq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vabdq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vabdq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vabdq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vabdq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint16x8_t __noswap_vabdq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vabdq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vabdq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int8x16_t __noswap_vabdq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vabdq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vabdq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vabdq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vabdq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vabdq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vabdq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vabdq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vabdq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vabd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vabd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x8_t __noswap_vabd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vabd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vabd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint32x2_t __noswap_vabd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vabd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vabd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint16x4_t __noswap_vabd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vabd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vabd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int8x8_t __noswap_vabd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vabd_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vabd_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vabd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vabd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vabd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vabd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vabd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vabd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vabsq_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 32); - return __ret; -} -#else -__ai int8x16_t vabsq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vabsq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vabsq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vabsq_s32(int32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vabsq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vabsq_s16(int16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vabsq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vabs_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vabs_v((int8x8_t)__p0, 0); - return __ret; -} -#else -__ai int8x8_t vabs_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vabs_v((int8x8_t)__rev0, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vabs_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vabs_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vabs_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vabs_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vabs_s32(int32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vabs_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vabs_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vabs_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vabs_s16(int16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vabs_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vabs_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vabs_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai uint8x16_t vaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai uint32x4_t vaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vaddq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai uint64x2_t vaddq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai uint16x8_t vaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai int8x16_t vaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vaddq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai float32x4_t vaddq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai int32x4_t vaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vaddq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai int64x2_t vaddq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai int16x8_t vaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai uint8x8_t vadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai uint32x2_t vadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vadd_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai uint64x1_t vadd_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai uint16x4_t vadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai int8x8_t vadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vadd_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai float32x2_t vadd_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai int32x2_t vadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vadd_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai int64x1_t vadd_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai int16x4_t vadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vaddhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vaddhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint16x4_t __noswap_vaddhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vaddhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vaddhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint32x2_t __noswap_vaddhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vaddhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vaddhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x8_t __noswap_vaddhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vaddhn_s32(int32x4_t __p0, int32x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vaddhn_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vaddhn_s32(int32x4_t __p0, int32x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vaddhn_s64(int64x2_t __p0, int64x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vaddhn_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vaddhn_s64(int64x2_t __p0, int64x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vaddhn_s16(int16x8_t __p0, int16x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vaddhn_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int8x8_t __noswap_vaddhn_s16(int16x8_t __p0, int16x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vandq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai uint8x16_t vandq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vandq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai uint32x4_t vandq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vandq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai uint64x2_t vandq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vandq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai uint16x8_t vandq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vandq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai int8x16_t vandq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vandq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai int32x4_t vandq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vandq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai int64x2_t vandq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vandq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai int16x8_t vandq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vand_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai uint8x8_t vand_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vand_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai uint32x2_t vand_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vand_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai uint64x1_t vand_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vand_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai uint16x4_t vand_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vand_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai int8x8_t vand_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vand_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai int32x2_t vand_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vand_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai int64x1_t vand_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vand_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __p0 & __p1; - return __ret; -} -#else -__ai int16x4_t vand_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 & __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vbicq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai uint8x16_t vbicq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vbicq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai uint32x4_t vbicq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vbicq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai uint64x2_t vbicq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vbicq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai uint16x8_t vbicq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vbicq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai int8x16_t vbicq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vbicq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai int32x4_t vbicq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vbicq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai int64x2_t vbicq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vbicq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai int16x8_t vbicq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vbic_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai uint8x8_t vbic_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vbic_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai uint32x2_t vbic_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vbic_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai uint64x1_t vbic_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vbic_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai uint16x4_t vbic_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vbic_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai int8x8_t vbic_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vbic_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai int32x2_t vbic_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vbic_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai int64x1_t vbic_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vbic_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __p0 & ~__p1; - return __ret; -} -#else -__ai int16x4_t vbic_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 & ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vbsl_p8(uint8x8_t __p0, poly8x8_t __p1, poly8x8_t __p2) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 4); - return __ret; -} -#else -__ai poly8x8_t vbsl_p8(uint8x8_t __p0, poly8x8_t __p1, poly8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vbsl_p16(uint16x4_t __p0, poly16x4_t __p1, poly16x4_t __p2) { - poly16x4_t __ret; - __ret = (poly16x4_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 5); - return __ret; -} -#else -__ai poly16x4_t vbsl_p16(uint16x4_t __p0, poly16x4_t __p1, poly16x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = (poly16x4_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 5); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vbslq_p8(uint8x16_t __p0, poly8x16_t __p1, poly8x16_t __p2) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 36); - return __ret; -} -#else -__ai poly8x16_t vbslq_p8(uint8x16_t __p0, poly8x16_t __p1, poly8x16_t __p2) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vbslq_p16(uint16x8_t __p0, poly16x8_t __p1, poly16x8_t __p2) { - poly16x8_t __ret; - __ret = (poly16x8_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 37); - return __ret; -} -#else -__ai poly16x8_t vbslq_p16(uint16x8_t __p0, poly16x8_t __p1, poly16x8_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = (poly16x8_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 37); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vbslq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 48); - return __ret; -} -#else -__ai uint8x16_t vbslq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vbslq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50); - return __ret; -} -#else -__ai uint32x4_t vbslq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vbslq_u64(uint64x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 51); - return __ret; -} -#else -__ai uint64x2_t vbslq_u64(uint64x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vbslq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 49); - return __ret; -} -#else -__ai uint16x8_t vbslq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vbslq_s8(uint8x16_t __p0, int8x16_t __p1, int8x16_t __p2) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 32); - return __ret; -} -#else -__ai int8x16_t vbslq_s8(uint8x16_t __p0, int8x16_t __p1, int8x16_t __p2) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vbslq_f32(uint32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#else -__ai float32x4_t vbslq_f32(uint32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vbslq_s32(uint32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 34); - return __ret; -} -#else -__ai int32x4_t vbslq_s32(uint32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vbslq_s64(uint64x2_t __p0, int64x2_t __p1, int64x2_t __p2) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 35); - return __ret; -} -#else -__ai int64x2_t vbslq_s64(uint64x2_t __p0, int64x2_t __p1, int64x2_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vbslq_s16(uint16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 33); - return __ret; -} -#else -__ai int16x8_t vbslq_s16(uint16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vbsl_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 16); - return __ret; -} -#else -__ai uint8x8_t vbsl_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vbsl_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 18); - return __ret; -} -#else -__ai uint32x2_t vbsl_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vbsl_u64(uint64x1_t __p0, uint64x1_t __p1, uint64x1_t __p2) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 19); - return __ret; -} -#else -__ai uint64x1_t vbsl_u64(uint64x1_t __p0, uint64x1_t __p1, uint64x1_t __p2) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vbsl_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 17); - return __ret; -} -#else -__ai uint16x4_t vbsl_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vbsl_s8(uint8x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 0); - return __ret; -} -#else -__ai int8x8_t vbsl_s8(uint8x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vbsl_f32(uint32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#else -__ai float32x2_t vbsl_f32(uint32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vbsl_s32(uint32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 2); - return __ret; -} -#else -__ai int32x2_t vbsl_s32(uint32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vbsl_s64(uint64x1_t __p0, int64x1_t __p1, int64x1_t __p2) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 3); - return __ret; -} -#else -__ai int64x1_t vbsl_s64(uint64x1_t __p0, int64x1_t __p1, int64x1_t __p2) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vbsl_s16(uint16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 1); - return __ret; -} -#else -__ai int16x4_t vbsl_s16(uint16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcageq_f32(float32x4_t __p0, float32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcageq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vcageq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcageq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcage_f32(float32x2_t __p0, float32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcage_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vcage_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcage_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcagtq_f32(float32x4_t __p0, float32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcagtq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vcagtq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcagtq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcagt_f32(float32x2_t __p0, float32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcagt_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vcagt_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcagt_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcaleq_f32(float32x4_t __p0, float32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcaleq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vcaleq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcaleq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcale_f32(float32x2_t __p0, float32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcale_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vcale_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcale_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcaltq_f32(float32x4_t __p0, float32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcaltq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vcaltq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcaltq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcalt_f32(float32x2_t __p0, float32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcalt_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vcalt_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcalt_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vceq_p8(poly8x8_t __p0, poly8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint8x8_t vceq_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vceqq_p8(poly8x16_t __p0, poly8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint8x16_t vceqq_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vceqq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint8x16_t vceqq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vceqq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint32x4_t vceqq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vceqq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint16x8_t vceqq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vceqq_s8(int8x16_t __p0, int8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint8x16_t vceqq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vceqq_f32(float32x4_t __p0, float32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint32x4_t vceqq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vceqq_s32(int32x4_t __p0, int32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint32x4_t vceqq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vceqq_s16(int16x8_t __p0, int16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint16x8_t vceqq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vceq_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint8x8_t vceq_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vceq_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint32x2_t vceq_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vceq_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint16x4_t vceq_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vceq_s8(int8x8_t __p0, int8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint8x8_t vceq_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vceq_f32(float32x2_t __p0, float32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint32x2_t vceq_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vceq_s32(int32x2_t __p0, int32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint32x2_t vceq_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vceq_s16(int16x4_t __p0, int16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint16x4_t vceq_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcgeq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint8x16_t vcgeq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcgeq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint32x4_t vcgeq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcgeq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint16x8_t vcgeq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcgeq_s8(int8x16_t __p0, int8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint8x16_t vcgeq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcgeq_f32(float32x4_t __p0, float32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint32x4_t vcgeq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcgeq_s32(int32x4_t __p0, int32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint32x4_t vcgeq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcgeq_s16(int16x8_t __p0, int16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint16x8_t vcgeq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcge_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint8x8_t vcge_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcge_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint32x2_t vcge_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcge_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint16x4_t vcge_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcge_s8(int8x8_t __p0, int8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint8x8_t vcge_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcge_f32(float32x2_t __p0, float32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint32x2_t vcge_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcge_s32(int32x2_t __p0, int32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint32x2_t vcge_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcge_s16(int16x4_t __p0, int16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint16x4_t vcge_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcgtq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint8x16_t vcgtq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcgtq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint32x4_t vcgtq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcgtq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint16x8_t vcgtq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcgtq_s8(int8x16_t __p0, int8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint8x16_t vcgtq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcgtq_f32(float32x4_t __p0, float32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint32x4_t vcgtq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcgtq_s32(int32x4_t __p0, int32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint32x4_t vcgtq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcgtq_s16(int16x8_t __p0, int16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint16x8_t vcgtq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcgt_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint8x8_t vcgt_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcgt_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint32x2_t vcgt_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcgt_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint16x4_t vcgt_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcgt_s8(int8x8_t __p0, int8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint8x8_t vcgt_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcgt_f32(float32x2_t __p0, float32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint32x2_t vcgt_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcgt_s32(int32x2_t __p0, int32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint32x2_t vcgt_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcgt_s16(int16x4_t __p0, int16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint16x4_t vcgt_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcleq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint8x16_t vcleq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcleq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint32x4_t vcleq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcleq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint16x8_t vcleq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcleq_s8(int8x16_t __p0, int8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint8x16_t vcleq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcleq_f32(float32x4_t __p0, float32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint32x4_t vcleq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcleq_s32(int32x4_t __p0, int32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint32x4_t vcleq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcleq_s16(int16x8_t __p0, int16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint16x8_t vcleq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcle_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint8x8_t vcle_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcle_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint32x2_t vcle_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcle_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint16x4_t vcle_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcle_s8(int8x8_t __p0, int8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint8x8_t vcle_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcle_f32(float32x2_t __p0, float32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint32x2_t vcle_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcle_s32(int32x2_t __p0, int32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint32x2_t vcle_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcle_s16(int16x4_t __p0, int16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint16x4_t vcle_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vclsq_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vclsq_v((int8x16_t)__p0, 32); - return __ret; -} -#else -__ai int8x16_t vclsq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vclsq_v((int8x16_t)__rev0, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vclsq_s32(int32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vclsq_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vclsq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vclsq_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vclsq_s16(int16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vclsq_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vclsq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vclsq_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vcls_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vcls_v((int8x8_t)__p0, 0); - return __ret; -} -#else -__ai int8x8_t vcls_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vcls_v((int8x8_t)__rev0, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vcls_s32(int32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcls_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vcls_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcls_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vcls_s16(int16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcls_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vcls_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcls_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcltq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint8x16_t vcltq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcltq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint32x4_t vcltq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcltq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint16x8_t vcltq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcltq_s8(int8x16_t __p0, int8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint8x16_t vcltq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcltq_f32(float32x4_t __p0, float32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint32x4_t vcltq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcltq_s32(int32x4_t __p0, int32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint32x4_t vcltq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcltq_s16(int16x8_t __p0, int16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint16x8_t vcltq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vclt_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint8x8_t vclt_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vclt_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint32x2_t vclt_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vclt_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint16x4_t vclt_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vclt_s8(int8x8_t __p0, int8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint8x8_t vclt_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vclt_f32(float32x2_t __p0, float32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint32x2_t vclt_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vclt_s32(int32x2_t __p0, int32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint32x2_t vclt_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vclt_s16(int16x4_t __p0, int16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint16x4_t vclt_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vclzq_u8(uint8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vclzq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vclzq_u32(uint32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vclzq_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vclzq_u16(uint16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vclzq_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vclzq_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 32); - return __ret; -} -#else -__ai int8x16_t vclzq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vclzq_s32(int32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vclzq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vclzq_s16(int16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vclzq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vclz_u8(uint8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vclz_v((int8x8_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vclz_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vclz_u32(uint32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vclz_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vclz_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vclz_u16(uint16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vclz_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vclz_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vclz_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vclz_v((int8x8_t)__p0, 0); - return __ret; -} -#else -__ai int8x8_t vclz_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vclz_s32(int32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vclz_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vclz_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vclz_s16(int16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vclz_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vclz_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vcnt_p8(poly8x8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vcnt_v((int8x8_t)__p0, 4); - return __ret; -} -#else -__ai poly8x8_t vcnt_p8(poly8x8_t __p0) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vcnt_v((int8x8_t)__rev0, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vcntq_p8(poly8x16_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vcntq_v((int8x16_t)__p0, 36); - return __ret; -} -#else -__ai poly8x16_t vcntq_p8(poly8x16_t __p0) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vcntq_v((int8x16_t)__rev0, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcntq_u8(uint8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vcntq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vcntq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vcntq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vcntq_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vcntq_v((int8x16_t)__p0, 32); - return __ret; -} -#else -__ai int8x16_t vcntq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vcntq_v((int8x16_t)__rev0, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcnt_u8(uint8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vcnt_v((int8x8_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vcnt_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vcnt_v((int8x8_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vcnt_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vcnt_v((int8x8_t)__p0, 0); - return __ret; -} -#else -__ai int8x8_t vcnt_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vcnt_v((int8x8_t)__rev0, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vcombine_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#else -__ai poly8x16_t vcombine_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vcombine_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7); - return __ret; -} -#else -__ai poly16x8_t vcombine_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcombine_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#else -__ai uint8x16_t vcombine_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x16_t __noswap_vcombine_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcombine_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3); - return __ret; -} -#else -__ai uint32x4_t vcombine_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vcombine_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcombine_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1); - return __ret; -} -#else -__ai uint64x2_t vcombine_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcombine_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7); - return __ret; -} -#else -__ai uint16x8_t vcombine_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint16x8_t __noswap_vcombine_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vcombine_s8(int8x8_t __p0, int8x8_t __p1) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#else -__ai int8x16_t vcombine_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int8x16_t __noswap_vcombine_s8(int8x8_t __p0, int8x8_t __p1) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vcombine_f32(float32x2_t __p0, float32x2_t __p1) { - float32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3); - return __ret; -} -#else -__ai float32x4_t vcombine_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float32x4_t __noswap_vcombine_f32(float32x2_t __p0, float32x2_t __p1) { - float32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vcombine_f16(float16x4_t __p0, float16x4_t __p1) { - float16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7); - return __ret; -} -#else -__ai float16x8_t vcombine_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai float16x8_t __noswap_vcombine_f16(float16x4_t __p0, float16x4_t __p1) { - float16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vcombine_s32(int32x2_t __p0, int32x2_t __p1) { - int32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3); - return __ret; -} -#else -__ai int32x4_t vcombine_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vcombine_s32(int32x2_t __p0, int32x2_t __p1) { - int32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vcombine_s64(int64x1_t __p0, int64x1_t __p1) { - int64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1); - return __ret; -} -#else -__ai int64x2_t vcombine_s64(int64x1_t __p0, int64x1_t __p1) { - int64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vcombine_s16(int16x4_t __p0, int16x4_t __p1) { - int16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7); - return __ret; -} -#else -__ai int16x8_t vcombine_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vcombine_s16(int16x4_t __p0, int16x4_t __p1) { - int16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vcreate_p8(uint64_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vcreate_p8(uint64_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vcreate_p16(uint64_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vcreate_p16(uint64_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcreate_u8(uint64_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vcreate_u8(uint64_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcreate_u32(uint64_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vcreate_u32(uint64_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcreate_u64(uint64_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vcreate_u64(uint64_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcreate_u16(uint64_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vcreate_u16(uint64_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vcreate_s8(uint64_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vcreate_s8(uint64_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vcreate_f32(uint64_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vcreate_f32(uint64_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vcreate_f16(uint64_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vcreate_f16(uint64_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vcreate_s32(uint64_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vcreate_s32(uint64_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vcreate_s64(uint64_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vcreate_s64(uint64_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vcreate_s16(uint64_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vcreate_s16(uint64_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vcvtq_f32_u32(uint32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vcvtq_f32_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai float32x4_t vcvtq_f32_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vcvtq_f32_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vcvtq_f32_s32(int32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vcvtq_f32_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai float32x4_t vcvtq_f32_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vcvtq_f32_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vcvt_f32_u32(uint32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vcvt_f32_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai float32x2_t vcvt_f32_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vcvt_f32_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vcvt_f32_s32(int32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vcvt_f32_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai float32x2_t vcvt_f32_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vcvt_f32_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_f32_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vcvtq_n_f32_v((int8x16_t)__s0, __p1, 50); \ - __ret; \ -}) -#else -#define vcvtq_n_f32_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vcvtq_n_f32_v((int8x16_t)__rev0, __p1, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_f32_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vcvtq_n_f32_v((int8x16_t)__s0, __p1, 34); \ - __ret; \ -}) -#else -#define vcvtq_n_f32_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vcvtq_n_f32_v((int8x16_t)__rev0, __p1, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_f32_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vcvt_n_f32_v((int8x8_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vcvt_n_f32_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vcvt_n_f32_v((int8x8_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_f32_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vcvt_n_f32_v((int8x8_t)__s0, __p1, 2); \ - __ret; \ -}) -#else -#define vcvt_n_f32_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vcvt_n_f32_v((int8x8_t)__rev0, __p1, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_s32_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vcvtq_n_s32_v((int8x16_t)__s0, __p1, 34); \ - __ret; \ -}) -#else -#define vcvtq_n_s32_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vcvtq_n_s32_v((int8x16_t)__rev0, __p1, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_s32_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vcvt_n_s32_v((int8x8_t)__s0, __p1, 2); \ - __ret; \ -}) -#else -#define vcvt_n_s32_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vcvt_n_s32_v((int8x8_t)__rev0, __p1, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_u32_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vcvtq_n_u32_v((int8x16_t)__s0, __p1, 50); \ - __ret; \ -}) -#else -#define vcvtq_n_u32_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vcvtq_n_u32_v((int8x16_t)__rev0, __p1, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_u32_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vcvt_n_u32_v((int8x8_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vcvt_n_u32_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vcvt_n_u32_v((int8x8_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vcvtq_s32_f32(float32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vcvtq_s32_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vcvtq_s32_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vcvtq_s32_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vcvt_s32_f32(float32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcvt_s32_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vcvt_s32_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcvt_s32_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcvtq_u32_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcvtq_u32_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcvtq_u32_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcvtq_u32_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcvt_u32_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcvt_u32_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcvt_u32_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcvt_u32_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - poly16x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x16_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - poly16x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x16_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x16_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vdup_n_p8(poly8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai poly8x8_t vdup_n_p8(poly8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vdup_n_p16(poly16_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai poly16x4_t vdup_n_p16(poly16_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vdupq_n_p8(poly8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai poly8x16_t vdupq_n_p8(poly8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vdupq_n_p16(poly16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai poly16x8_t vdupq_n_p16(poly16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vdupq_n_u8(uint8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai uint8x16_t vdupq_n_u8(uint8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vdupq_n_u32(uint32_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai uint32x4_t vdupq_n_u32(uint32_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vdupq_n_u64(uint64_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai uint64x2_t vdupq_n_u64(uint64_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vdupq_n_u16(uint16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai uint16x8_t vdupq_n_u16(uint16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vdupq_n_s8(int8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai int8x16_t vdupq_n_s8(int8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vdupq_n_f32(float32_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai float32x4_t vdupq_n_f32(float32_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \ - __ret; \ -}) -#else -#define vdupq_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vdupq_n_s32(int32_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai int32x4_t vdupq_n_s32(int32_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vdupq_n_s64(int64_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai int64x2_t vdupq_n_s64(int64_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vdupq_n_s16(int16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai int16x8_t vdupq_n_s16(int16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vdup_n_u8(uint8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai uint8x8_t vdup_n_u8(uint8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vdup_n_u32(uint32_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai uint32x2_t vdup_n_u32(uint32_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vdup_n_u64(uint64_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) {__p0}; - return __ret; -} -#else -__ai uint64x1_t vdup_n_u64(uint64_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) {__p0}; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vdup_n_u16(uint16_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai uint16x4_t vdup_n_u16(uint16_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vdup_n_s8(int8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai int8x8_t vdup_n_s8(int8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vdup_n_f32(float32_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai float32x2_t vdup_n_f32(float32_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \ - __ret; \ -}) -#else -#define vdup_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vdup_n_s32(int32_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai int32x2_t vdup_n_s32(int32_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vdup_n_s64(int64_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) {__p0}; - return __ret; -} -#else -__ai int64x1_t vdup_n_s64(int64_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) {__p0}; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vdup_n_s16(int16_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai int16x4_t vdup_n_s16(int16_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t veorq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai uint8x16_t veorq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t veorq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai uint32x4_t veorq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t veorq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai uint64x2_t veorq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t veorq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai uint16x8_t veorq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t veorq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai int8x16_t veorq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t veorq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai int32x4_t veorq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t veorq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai int64x2_t veorq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t veorq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai int16x8_t veorq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t veor_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai uint8x8_t veor_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t veor_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai uint32x2_t veor_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t veor_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai uint64x1_t veor_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t veor_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai uint16x4_t veor_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t veor_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai int8x8_t veor_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t veor_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai int32x2_t veor_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t veor_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai int64x1_t veor_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t veor_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __p0 ^ __p1; - return __ret; -} -#else -__ai int16x4_t veor_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 ^ __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 4); \ - __ret; \ -}) -#else -#define vext_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 4); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 5); \ - __ret; \ -}) -#else -#define vext_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 5); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 36); \ - __ret; \ -}) -#else -#define vextq_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 36); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 37); \ - __ret; \ -}) -#else -#define vextq_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 37); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 48); \ - __ret; \ -}) -#else -#define vextq_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 50); \ - __ret; \ -}) -#else -#define vextq_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \ - __ret; \ -}) -#else -#define vextq_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 49); \ - __ret; \ -}) -#else -#define vextq_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 32); \ - __ret; \ -}) -#else -#define vextq_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 41); \ - __ret; \ -}) -#else -#define vextq_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 41); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 34); \ - __ret; \ -}) -#else -#define vextq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 35); \ - __ret; \ -}) -#else -#define vextq_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 33); \ - __ret; \ -}) -#else -#define vextq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 16); \ - __ret; \ -}) -#else -#define vext_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 18); \ - __ret; \ -}) -#else -#define vext_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#else -#define vext_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 17); \ - __ret; \ -}) -#else -#define vext_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 0); \ - __ret; \ -}) -#else -#define vext_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 9); \ - __ret; \ -}) -#else -#define vext_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 9); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 2); \ - __ret; \ -}) -#else -#define vext_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#else -#define vext_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 1); \ - __ret; \ -}) -#else -#define vext_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vget_high_p8(poly8x16_t __p0) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#else -__ai poly8x8_t vget_high_p8(poly8x16_t __p0) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 8, 9, 10, 11, 12, 13, 14, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai poly8x8_t __noswap_vget_high_p8(poly8x16_t __p0) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vget_high_p16(poly16x8_t __p0) { - poly16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7); - return __ret; -} -#else -__ai poly16x4_t vget_high_p16(poly16x8_t __p0) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vget_high_u8(uint8x16_t __p0) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#else -__ai uint8x8_t vget_high_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 8, 9, 10, 11, 12, 13, 14, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x8_t __noswap_vget_high_u8(uint8x16_t __p0) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vget_high_u32(uint32x4_t __p0) { - uint32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 2, 3); - return __ret; -} -#else -__ai uint32x2_t vget_high_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 2, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint32x2_t __noswap_vget_high_u32(uint32x4_t __p0) { - uint32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 2, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vget_high_u64(uint64x2_t __p0) { - uint64x1_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1); - return __ret; -} -#else -__ai uint64x1_t vget_high_u64(uint64x2_t __p0) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x1_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vget_high_u16(uint16x8_t __p0) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7); - return __ret; -} -#else -__ai uint16x4_t vget_high_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint16x4_t __noswap_vget_high_u16(uint16x8_t __p0) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vget_high_s8(int8x16_t __p0) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#else -__ai int8x8_t vget_high_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 8, 9, 10, 11, 12, 13, 14, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int8x8_t __noswap_vget_high_s8(int8x16_t __p0) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vget_high_f32(float32x4_t __p0) { - float32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 2, 3); - return __ret; -} -#else -__ai float32x2_t vget_high_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 2, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float32x2_t __noswap_vget_high_f32(float32x4_t __p0) { - float32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 2, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vget_high_f16(float16x8_t __p0) { - float16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7); - return __ret; -} -#else -__ai float16x4_t vget_high_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float16x4_t __noswap_vget_high_f16(float16x8_t __p0) { - float16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vget_high_s32(int32x4_t __p0) { - int32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 2, 3); - return __ret; -} -#else -__ai int32x2_t vget_high_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 2, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vget_high_s32(int32x4_t __p0) { - int32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 2, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vget_high_s64(int64x2_t __p0) { - int64x1_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1); - return __ret; -} -#else -__ai int64x1_t vget_high_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x1_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vget_high_s16(int16x8_t __p0) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7); - return __ret; -} -#else -__ai int16x4_t vget_high_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vget_high_s16(int16x8_t __p0) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8_t __ret; \ - __ret = (poly8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8_t __ret; \ - __ret = (poly8_t) __builtin_neon_vget_lane_i8((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8_t __ret; \ - __ret = (poly8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16_t __ret; \ - __ret = (poly16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - poly16_t __ret; \ - __ret = (poly16_t) __builtin_neon_vget_lane_i16((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16_t __ret; \ - __ret = (poly16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8_t __ret; \ - __ret = (poly8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8_t __ret; \ - __ret = (poly8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8_t __ret; \ - __ret = (poly8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16_t __ret; \ - __ret = (poly16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16_t __ret; \ - __ret = (poly16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16_t __ret; \ - __ret = (poly16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vgetq_lane_f32((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vgetq_lane_f32((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vgetq_lane_f32((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vget_lane_i8((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vget_lane_i32((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vget_lane_i32((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vget_lane_i32((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vget_lane_i16((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vget_lane_i8((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vget_lane_f32((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vget_lane_f32((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vget_lane_f32((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vget_lane_i32((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vget_lane_i32((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vget_lane_i32((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vget_lane_i16((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vget_low_p8(poly8x16_t __p0) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3, 4, 5, 6, 7); - return __ret; -} -#else -__ai poly8x8_t vget_low_p8(poly8x16_t __p0) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vget_low_p16(poly16x8_t __p0) { - poly16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3); - return __ret; -} -#else -__ai poly16x4_t vget_low_p16(poly16x8_t __p0) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vget_low_u8(uint8x16_t __p0) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3, 4, 5, 6, 7); - return __ret; -} -#else -__ai uint8x8_t vget_low_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vget_low_u32(uint32x4_t __p0) { - uint32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0, 1); - return __ret; -} -#else -__ai uint32x2_t vget_low_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vget_low_u64(uint64x2_t __p0) { - uint64x1_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0); - return __ret; -} -#else -__ai uint64x1_t vget_low_u64(uint64x2_t __p0) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x1_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vget_low_u16(uint16x8_t __p0) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3); - return __ret; -} -#else -__ai uint16x4_t vget_low_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vget_low_s8(int8x16_t __p0) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3, 4, 5, 6, 7); - return __ret; -} -#else -__ai int8x8_t vget_low_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3, 4, 5, 6, 7); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vget_low_f32(float32x4_t __p0) { - float32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0, 1); - return __ret; -} -#else -__ai float32x2_t vget_low_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vget_low_f16(float16x8_t __p0) { - float16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3); - return __ret; -} -#else -__ai float16x4_t vget_low_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vget_low_s32(int32x4_t __p0) { - int32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0, 1); - return __ret; -} -#else -__ai int32x2_t vget_low_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vget_low_s64(int64x2_t __p0) { - int64x1_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0); - return __ret; -} -#else -__ai int64x1_t vget_low_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x1_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vget_low_s16(int16x8_t __p0) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3); - return __ret; -} -#else -__ai int16x4_t vget_low_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vhaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vhaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vhaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vhaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vhaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vhaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vhaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vhaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vhaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vhaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vhaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vhaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vhadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vhadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vhadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vhadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vhadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vhadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vhadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vhadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vhadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vhadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vhadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vhadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vhsubq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vhsubq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vhsubq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vhsubq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vhsubq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vhsubq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vhsubq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vhsubq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vhsubq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vhsubq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vhsubq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vhsubq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vhsub_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vhsub_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vhsub_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vhsub_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vhsub_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vhsub_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vhsub_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vhsub_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vhsub_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vhsub_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p8(__p0) __extension__ ({ \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vld1_v(__p0, 4); \ - __ret; \ -}) -#else -#define vld1_p8(__p0) __extension__ ({ \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vld1_v(__p0, 4); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p16(__p0) __extension__ ({ \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vld1_v(__p0, 5); \ - __ret; \ -}) -#else -#define vld1_p16(__p0) __extension__ ({ \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vld1_v(__p0, 5); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p8(__p0) __extension__ ({ \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vld1q_v(__p0, 36); \ - __ret; \ -}) -#else -#define vld1q_p8(__p0) __extension__ ({ \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vld1q_v(__p0, 36); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p16(__p0) __extension__ ({ \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vld1q_v(__p0, 37); \ - __ret; \ -}) -#else -#define vld1q_p16(__p0) __extension__ ({ \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vld1q_v(__p0, 37); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u8(__p0) __extension__ ({ \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vld1q_v(__p0, 48); \ - __ret; \ -}) -#else -#define vld1q_u8(__p0) __extension__ ({ \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vld1q_v(__p0, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u32(__p0) __extension__ ({ \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vld1q_v(__p0, 50); \ - __ret; \ -}) -#else -#define vld1q_u32(__p0) __extension__ ({ \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vld1q_v(__p0, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u64(__p0) __extension__ ({ \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vld1q_v(__p0, 51); \ - __ret; \ -}) -#else -#define vld1q_u64(__p0) __extension__ ({ \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vld1q_v(__p0, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u16(__p0) __extension__ ({ \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vld1q_v(__p0, 49); \ - __ret; \ -}) -#else -#define vld1q_u16(__p0) __extension__ ({ \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vld1q_v(__p0, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s8(__p0) __extension__ ({ \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vld1q_v(__p0, 32); \ - __ret; \ -}) -#else -#define vld1q_s8(__p0) __extension__ ({ \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vld1q_v(__p0, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f32(__p0) __extension__ ({ \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vld1q_v(__p0, 41); \ - __ret; \ -}) -#else -#define vld1q_f32(__p0) __extension__ ({ \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vld1q_v(__p0, 41); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s32(__p0) __extension__ ({ \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vld1q_v(__p0, 34); \ - __ret; \ -}) -#else -#define vld1q_s32(__p0) __extension__ ({ \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vld1q_v(__p0, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s64(__p0) __extension__ ({ \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vld1q_v(__p0, 35); \ - __ret; \ -}) -#else -#define vld1q_s64(__p0) __extension__ ({ \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vld1q_v(__p0, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s16(__p0) __extension__ ({ \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vld1q_v(__p0, 33); \ - __ret; \ -}) -#else -#define vld1q_s16(__p0) __extension__ ({ \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vld1q_v(__p0, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u8(__p0) __extension__ ({ \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vld1_v(__p0, 16); \ - __ret; \ -}) -#else -#define vld1_u8(__p0) __extension__ ({ \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vld1_v(__p0, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u32(__p0) __extension__ ({ \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vld1_v(__p0, 18); \ - __ret; \ -}) -#else -#define vld1_u32(__p0) __extension__ ({ \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vld1_v(__p0, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u64(__p0) __extension__ ({ \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vld1_v(__p0, 19); \ - __ret; \ -}) -#else -#define vld1_u64(__p0) __extension__ ({ \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vld1_v(__p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u16(__p0) __extension__ ({ \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vld1_v(__p0, 17); \ - __ret; \ -}) -#else -#define vld1_u16(__p0) __extension__ ({ \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vld1_v(__p0, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s8(__p0) __extension__ ({ \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vld1_v(__p0, 0); \ - __ret; \ -}) -#else -#define vld1_s8(__p0) __extension__ ({ \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vld1_v(__p0, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f32(__p0) __extension__ ({ \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vld1_v(__p0, 9); \ - __ret; \ -}) -#else -#define vld1_f32(__p0) __extension__ ({ \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vld1_v(__p0, 9); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s32(__p0) __extension__ ({ \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vld1_v(__p0, 2); \ - __ret; \ -}) -#else -#define vld1_s32(__p0) __extension__ ({ \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vld1_v(__p0, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s64(__p0) __extension__ ({ \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vld1_v(__p0, 3); \ - __ret; \ -}) -#else -#define vld1_s64(__p0) __extension__ ({ \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vld1_v(__p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s16(__p0) __extension__ ({ \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vld1_v(__p0, 1); \ - __ret; \ -}) -#else -#define vld1_s16(__p0) __extension__ ({ \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vld1_v(__p0, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_p8(__p0) __extension__ ({ \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vld1_dup_v(__p0, 4); \ - __ret; \ -}) -#else -#define vld1_dup_p8(__p0) __extension__ ({ \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vld1_dup_v(__p0, 4); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_p16(__p0) __extension__ ({ \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vld1_dup_v(__p0, 5); \ - __ret; \ -}) -#else -#define vld1_dup_p16(__p0) __extension__ ({ \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vld1_dup_v(__p0, 5); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_p8(__p0) __extension__ ({ \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vld1q_dup_v(__p0, 36); \ - __ret; \ -}) -#else -#define vld1q_dup_p8(__p0) __extension__ ({ \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vld1q_dup_v(__p0, 36); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_p16(__p0) __extension__ ({ \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vld1q_dup_v(__p0, 37); \ - __ret; \ -}) -#else -#define vld1q_dup_p16(__p0) __extension__ ({ \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vld1q_dup_v(__p0, 37); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_u8(__p0) __extension__ ({ \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vld1q_dup_v(__p0, 48); \ - __ret; \ -}) -#else -#define vld1q_dup_u8(__p0) __extension__ ({ \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vld1q_dup_v(__p0, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_u32(__p0) __extension__ ({ \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vld1q_dup_v(__p0, 50); \ - __ret; \ -}) -#else -#define vld1q_dup_u32(__p0) __extension__ ({ \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vld1q_dup_v(__p0, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_u64(__p0) __extension__ ({ \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vld1q_dup_v(__p0, 51); \ - __ret; \ -}) -#else -#define vld1q_dup_u64(__p0) __extension__ ({ \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vld1q_dup_v(__p0, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_u16(__p0) __extension__ ({ \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vld1q_dup_v(__p0, 49); \ - __ret; \ -}) -#else -#define vld1q_dup_u16(__p0) __extension__ ({ \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vld1q_dup_v(__p0, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_s8(__p0) __extension__ ({ \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vld1q_dup_v(__p0, 32); \ - __ret; \ -}) -#else -#define vld1q_dup_s8(__p0) __extension__ ({ \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vld1q_dup_v(__p0, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_f32(__p0) __extension__ ({ \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vld1q_dup_v(__p0, 41); \ - __ret; \ -}) -#else -#define vld1q_dup_f32(__p0) __extension__ ({ \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vld1q_dup_v(__p0, 41); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_s32(__p0) __extension__ ({ \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vld1q_dup_v(__p0, 34); \ - __ret; \ -}) -#else -#define vld1q_dup_s32(__p0) __extension__ ({ \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vld1q_dup_v(__p0, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_s64(__p0) __extension__ ({ \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vld1q_dup_v(__p0, 35); \ - __ret; \ -}) -#else -#define vld1q_dup_s64(__p0) __extension__ ({ \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vld1q_dup_v(__p0, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_s16(__p0) __extension__ ({ \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vld1q_dup_v(__p0, 33); \ - __ret; \ -}) -#else -#define vld1q_dup_s16(__p0) __extension__ ({ \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vld1q_dup_v(__p0, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_u8(__p0) __extension__ ({ \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vld1_dup_v(__p0, 16); \ - __ret; \ -}) -#else -#define vld1_dup_u8(__p0) __extension__ ({ \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vld1_dup_v(__p0, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_u32(__p0) __extension__ ({ \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vld1_dup_v(__p0, 18); \ - __ret; \ -}) -#else -#define vld1_dup_u32(__p0) __extension__ ({ \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vld1_dup_v(__p0, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_u64(__p0) __extension__ ({ \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vld1_dup_v(__p0, 19); \ - __ret; \ -}) -#else -#define vld1_dup_u64(__p0) __extension__ ({ \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vld1_dup_v(__p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_u16(__p0) __extension__ ({ \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vld1_dup_v(__p0, 17); \ - __ret; \ -}) -#else -#define vld1_dup_u16(__p0) __extension__ ({ \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vld1_dup_v(__p0, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_s8(__p0) __extension__ ({ \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vld1_dup_v(__p0, 0); \ - __ret; \ -}) -#else -#define vld1_dup_s8(__p0) __extension__ ({ \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vld1_dup_v(__p0, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_f32(__p0) __extension__ ({ \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vld1_dup_v(__p0, 9); \ - __ret; \ -}) -#else -#define vld1_dup_f32(__p0) __extension__ ({ \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vld1_dup_v(__p0, 9); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_s32(__p0) __extension__ ({ \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vld1_dup_v(__p0, 2); \ - __ret; \ -}) -#else -#define vld1_dup_s32(__p0) __extension__ ({ \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vld1_dup_v(__p0, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_s64(__p0) __extension__ ({ \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vld1_dup_v(__p0, 3); \ - __ret; \ -}) -#else -#define vld1_dup_s64(__p0) __extension__ ({ \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vld1_dup_v(__p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_s16(__p0) __extension__ ({ \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vld1_dup_v(__p0, 1); \ - __ret; \ -}) -#else -#define vld1_dup_s16(__p0) __extension__ ({ \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vld1_dup_v(__p0, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 4); \ - __ret; \ -}) -#else -#define vld1_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 4); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 5); \ - __ret; \ -}) -#else -#define vld1_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 5); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 36); \ - __ret; \ -}) -#else -#define vld1q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 36); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 37); \ - __ret; \ -}) -#else -#define vld1q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 37); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 48); \ - __ret; \ -}) -#else -#define vld1q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 50); \ - __ret; \ -}) -#else -#define vld1q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 51); \ - __ret; \ -}) -#else -#define vld1q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 49); \ - __ret; \ -}) -#else -#define vld1q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s1 = __p1; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 32); \ - __ret; \ -}) -#else -#define vld1q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s1 = __p1; \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s1 = __p1; \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 41); \ - __ret; \ -}) -#else -#define vld1q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s1 = __p1; \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 41); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 34); \ - __ret; \ -}) -#else -#define vld1q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 35); \ - __ret; \ -}) -#else -#define vld1q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s1 = __p1; \ - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 33); \ - __ret; \ -}) -#else -#define vld1q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 16); \ - __ret; \ -}) -#else -#define vld1_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 18); \ - __ret; \ -}) -#else -#define vld1_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#else -#define vld1_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 17); \ - __ret; \ -}) -#else -#define vld1_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s1 = __p1; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 0); \ - __ret; \ -}) -#else -#define vld1_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s1 = __p1; \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s1 = __p1; \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 9); \ - __ret; \ -}) -#else -#define vld1_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s1 = __p1; \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 9); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 2); \ - __ret; \ -}) -#else -#define vld1_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#else -#define vld1_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 1); \ - __ret; \ -}) -#else -#define vld1_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p8_x2(__p0) __extension__ ({ \ - poly8x8x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 4); \ - __ret; \ -}) -#else -#define vld1_p8_x2(__p0) __extension__ ({ \ - poly8x8x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p16_x2(__p0) __extension__ ({ \ - poly16x4x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 5); \ - __ret; \ -}) -#else -#define vld1_p16_x2(__p0) __extension__ ({ \ - poly16x4x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p8_x2(__p0) __extension__ ({ \ - poly8x16x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 36); \ - __ret; \ -}) -#else -#define vld1q_p8_x2(__p0) __extension__ ({ \ - poly8x16x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p16_x2(__p0) __extension__ ({ \ - poly16x8x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 37); \ - __ret; \ -}) -#else -#define vld1q_p16_x2(__p0) __extension__ ({ \ - poly16x8x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u8_x2(__p0) __extension__ ({ \ - uint8x16x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 48); \ - __ret; \ -}) -#else -#define vld1q_u8_x2(__p0) __extension__ ({ \ - uint8x16x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u32_x2(__p0) __extension__ ({ \ - uint32x4x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 50); \ - __ret; \ -}) -#else -#define vld1q_u32_x2(__p0) __extension__ ({ \ - uint32x4x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u64_x2(__p0) __extension__ ({ \ - uint64x2x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 51); \ - __ret; \ -}) -#else -#define vld1q_u64_x2(__p0) __extension__ ({ \ - uint64x2x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u16_x2(__p0) __extension__ ({ \ - uint16x8x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 49); \ - __ret; \ -}) -#else -#define vld1q_u16_x2(__p0) __extension__ ({ \ - uint16x8x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s8_x2(__p0) __extension__ ({ \ - int8x16x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 32); \ - __ret; \ -}) -#else -#define vld1q_s8_x2(__p0) __extension__ ({ \ - int8x16x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f32_x2(__p0) __extension__ ({ \ - float32x4x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 41); \ - __ret; \ -}) -#else -#define vld1q_f32_x2(__p0) __extension__ ({ \ - float32x4x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s32_x2(__p0) __extension__ ({ \ - int32x4x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 34); \ - __ret; \ -}) -#else -#define vld1q_s32_x2(__p0) __extension__ ({ \ - int32x4x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s64_x2(__p0) __extension__ ({ \ - int64x2x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 35); \ - __ret; \ -}) -#else -#define vld1q_s64_x2(__p0) __extension__ ({ \ - int64x2x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s16_x2(__p0) __extension__ ({ \ - int16x8x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 33); \ - __ret; \ -}) -#else -#define vld1q_s16_x2(__p0) __extension__ ({ \ - int16x8x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u8_x2(__p0) __extension__ ({ \ - uint8x8x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 16); \ - __ret; \ -}) -#else -#define vld1_u8_x2(__p0) __extension__ ({ \ - uint8x8x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u32_x2(__p0) __extension__ ({ \ - uint32x2x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 18); \ - __ret; \ -}) -#else -#define vld1_u32_x2(__p0) __extension__ ({ \ - uint32x2x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u64_x2(__p0) __extension__ ({ \ - uint64x1x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 19); \ - __ret; \ -}) -#else -#define vld1_u64_x2(__p0) __extension__ ({ \ - uint64x1x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u16_x2(__p0) __extension__ ({ \ - uint16x4x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 17); \ - __ret; \ -}) -#else -#define vld1_u16_x2(__p0) __extension__ ({ \ - uint16x4x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s8_x2(__p0) __extension__ ({ \ - int8x8x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 0); \ - __ret; \ -}) -#else -#define vld1_s8_x2(__p0) __extension__ ({ \ - int8x8x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f32_x2(__p0) __extension__ ({ \ - float32x2x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 9); \ - __ret; \ -}) -#else -#define vld1_f32_x2(__p0) __extension__ ({ \ - float32x2x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s32_x2(__p0) __extension__ ({ \ - int32x2x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 2); \ - __ret; \ -}) -#else -#define vld1_s32_x2(__p0) __extension__ ({ \ - int32x2x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s64_x2(__p0) __extension__ ({ \ - int64x1x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 3); \ - __ret; \ -}) -#else -#define vld1_s64_x2(__p0) __extension__ ({ \ - int64x1x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s16_x2(__p0) __extension__ ({ \ - int16x4x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 1); \ - __ret; \ -}) -#else -#define vld1_s16_x2(__p0) __extension__ ({ \ - int16x4x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p8_x3(__p0) __extension__ ({ \ - poly8x8x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 4); \ - __ret; \ -}) -#else -#define vld1_p8_x3(__p0) __extension__ ({ \ - poly8x8x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p16_x3(__p0) __extension__ ({ \ - poly16x4x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 5); \ - __ret; \ -}) -#else -#define vld1_p16_x3(__p0) __extension__ ({ \ - poly16x4x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p8_x3(__p0) __extension__ ({ \ - poly8x16x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 36); \ - __ret; \ -}) -#else -#define vld1q_p8_x3(__p0) __extension__ ({ \ - poly8x16x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p16_x3(__p0) __extension__ ({ \ - poly16x8x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 37); \ - __ret; \ -}) -#else -#define vld1q_p16_x3(__p0) __extension__ ({ \ - poly16x8x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u8_x3(__p0) __extension__ ({ \ - uint8x16x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 48); \ - __ret; \ -}) -#else -#define vld1q_u8_x3(__p0) __extension__ ({ \ - uint8x16x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u32_x3(__p0) __extension__ ({ \ - uint32x4x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 50); \ - __ret; \ -}) -#else -#define vld1q_u32_x3(__p0) __extension__ ({ \ - uint32x4x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u64_x3(__p0) __extension__ ({ \ - uint64x2x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 51); \ - __ret; \ -}) -#else -#define vld1q_u64_x3(__p0) __extension__ ({ \ - uint64x2x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u16_x3(__p0) __extension__ ({ \ - uint16x8x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 49); \ - __ret; \ -}) -#else -#define vld1q_u16_x3(__p0) __extension__ ({ \ - uint16x8x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s8_x3(__p0) __extension__ ({ \ - int8x16x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 32); \ - __ret; \ -}) -#else -#define vld1q_s8_x3(__p0) __extension__ ({ \ - int8x16x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f32_x3(__p0) __extension__ ({ \ - float32x4x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 41); \ - __ret; \ -}) -#else -#define vld1q_f32_x3(__p0) __extension__ ({ \ - float32x4x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s32_x3(__p0) __extension__ ({ \ - int32x4x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 34); \ - __ret; \ -}) -#else -#define vld1q_s32_x3(__p0) __extension__ ({ \ - int32x4x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s64_x3(__p0) __extension__ ({ \ - int64x2x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 35); \ - __ret; \ -}) -#else -#define vld1q_s64_x3(__p0) __extension__ ({ \ - int64x2x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s16_x3(__p0) __extension__ ({ \ - int16x8x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 33); \ - __ret; \ -}) -#else -#define vld1q_s16_x3(__p0) __extension__ ({ \ - int16x8x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u8_x3(__p0) __extension__ ({ \ - uint8x8x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 16); \ - __ret; \ -}) -#else -#define vld1_u8_x3(__p0) __extension__ ({ \ - uint8x8x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u32_x3(__p0) __extension__ ({ \ - uint32x2x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 18); \ - __ret; \ -}) -#else -#define vld1_u32_x3(__p0) __extension__ ({ \ - uint32x2x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u64_x3(__p0) __extension__ ({ \ - uint64x1x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 19); \ - __ret; \ -}) -#else -#define vld1_u64_x3(__p0) __extension__ ({ \ - uint64x1x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u16_x3(__p0) __extension__ ({ \ - uint16x4x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 17); \ - __ret; \ -}) -#else -#define vld1_u16_x3(__p0) __extension__ ({ \ - uint16x4x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s8_x3(__p0) __extension__ ({ \ - int8x8x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 0); \ - __ret; \ -}) -#else -#define vld1_s8_x3(__p0) __extension__ ({ \ - int8x8x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f32_x3(__p0) __extension__ ({ \ - float32x2x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 9); \ - __ret; \ -}) -#else -#define vld1_f32_x3(__p0) __extension__ ({ \ - float32x2x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s32_x3(__p0) __extension__ ({ \ - int32x2x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 2); \ - __ret; \ -}) -#else -#define vld1_s32_x3(__p0) __extension__ ({ \ - int32x2x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s64_x3(__p0) __extension__ ({ \ - int64x1x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 3); \ - __ret; \ -}) -#else -#define vld1_s64_x3(__p0) __extension__ ({ \ - int64x1x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s16_x3(__p0) __extension__ ({ \ - int16x4x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 1); \ - __ret; \ -}) -#else -#define vld1_s16_x3(__p0) __extension__ ({ \ - int16x4x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p8_x4(__p0) __extension__ ({ \ - poly8x8x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 4); \ - __ret; \ -}) -#else -#define vld1_p8_x4(__p0) __extension__ ({ \ - poly8x8x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p16_x4(__p0) __extension__ ({ \ - poly16x4x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 5); \ - __ret; \ -}) -#else -#define vld1_p16_x4(__p0) __extension__ ({ \ - poly16x4x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p8_x4(__p0) __extension__ ({ \ - poly8x16x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 36); \ - __ret; \ -}) -#else -#define vld1q_p8_x4(__p0) __extension__ ({ \ - poly8x16x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p16_x4(__p0) __extension__ ({ \ - poly16x8x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 37); \ - __ret; \ -}) -#else -#define vld1q_p16_x4(__p0) __extension__ ({ \ - poly16x8x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u8_x4(__p0) __extension__ ({ \ - uint8x16x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 48); \ - __ret; \ -}) -#else -#define vld1q_u8_x4(__p0) __extension__ ({ \ - uint8x16x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u32_x4(__p0) __extension__ ({ \ - uint32x4x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 50); \ - __ret; \ -}) -#else -#define vld1q_u32_x4(__p0) __extension__ ({ \ - uint32x4x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u64_x4(__p0) __extension__ ({ \ - uint64x2x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 51); \ - __ret; \ -}) -#else -#define vld1q_u64_x4(__p0) __extension__ ({ \ - uint64x2x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_u16_x4(__p0) __extension__ ({ \ - uint16x8x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 49); \ - __ret; \ -}) -#else -#define vld1q_u16_x4(__p0) __extension__ ({ \ - uint16x8x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s8_x4(__p0) __extension__ ({ \ - int8x16x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 32); \ - __ret; \ -}) -#else -#define vld1q_s8_x4(__p0) __extension__ ({ \ - int8x16x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f32_x4(__p0) __extension__ ({ \ - float32x4x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 41); \ - __ret; \ -}) -#else -#define vld1q_f32_x4(__p0) __extension__ ({ \ - float32x4x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s32_x4(__p0) __extension__ ({ \ - int32x4x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 34); \ - __ret; \ -}) -#else -#define vld1q_s32_x4(__p0) __extension__ ({ \ - int32x4x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s64_x4(__p0) __extension__ ({ \ - int64x2x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 35); \ - __ret; \ -}) -#else -#define vld1q_s64_x4(__p0) __extension__ ({ \ - int64x2x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_s16_x4(__p0) __extension__ ({ \ - int16x8x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 33); \ - __ret; \ -}) -#else -#define vld1q_s16_x4(__p0) __extension__ ({ \ - int16x8x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u8_x4(__p0) __extension__ ({ \ - uint8x8x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 16); \ - __ret; \ -}) -#else -#define vld1_u8_x4(__p0) __extension__ ({ \ - uint8x8x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u32_x4(__p0) __extension__ ({ \ - uint32x2x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 18); \ - __ret; \ -}) -#else -#define vld1_u32_x4(__p0) __extension__ ({ \ - uint32x2x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u64_x4(__p0) __extension__ ({ \ - uint64x1x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 19); \ - __ret; \ -}) -#else -#define vld1_u64_x4(__p0) __extension__ ({ \ - uint64x1x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_u16_x4(__p0) __extension__ ({ \ - uint16x4x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 17); \ - __ret; \ -}) -#else -#define vld1_u16_x4(__p0) __extension__ ({ \ - uint16x4x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s8_x4(__p0) __extension__ ({ \ - int8x8x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 0); \ - __ret; \ -}) -#else -#define vld1_s8_x4(__p0) __extension__ ({ \ - int8x8x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f32_x4(__p0) __extension__ ({ \ - float32x2x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 9); \ - __ret; \ -}) -#else -#define vld1_f32_x4(__p0) __extension__ ({ \ - float32x2x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s32_x4(__p0) __extension__ ({ \ - int32x2x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 2); \ - __ret; \ -}) -#else -#define vld1_s32_x4(__p0) __extension__ ({ \ - int32x2x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s64_x4(__p0) __extension__ ({ \ - int64x1x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 3); \ - __ret; \ -}) -#else -#define vld1_s64_x4(__p0) __extension__ ({ \ - int64x1x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_s16_x4(__p0) __extension__ ({ \ - int16x4x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 1); \ - __ret; \ -}) -#else -#define vld1_s16_x4(__p0) __extension__ ({ \ - int16x4x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_p8(__p0) __extension__ ({ \ - poly8x8x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 4); \ - __ret; \ -}) -#else -#define vld2_p8(__p0) __extension__ ({ \ - poly8x8x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_p16(__p0) __extension__ ({ \ - poly16x4x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 5); \ - __ret; \ -}) -#else -#define vld2_p16(__p0) __extension__ ({ \ - poly16x4x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_p8(__p0) __extension__ ({ \ - poly8x16x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 36); \ - __ret; \ -}) -#else -#define vld2q_p8(__p0) __extension__ ({ \ - poly8x16x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_p16(__p0) __extension__ ({ \ - poly16x8x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 37); \ - __ret; \ -}) -#else -#define vld2q_p16(__p0) __extension__ ({ \ - poly16x8x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_u8(__p0) __extension__ ({ \ - uint8x16x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 48); \ - __ret; \ -}) -#else -#define vld2q_u8(__p0) __extension__ ({ \ - uint8x16x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_u32(__p0) __extension__ ({ \ - uint32x4x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 50); \ - __ret; \ -}) -#else -#define vld2q_u32(__p0) __extension__ ({ \ - uint32x4x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_u16(__p0) __extension__ ({ \ - uint16x8x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 49); \ - __ret; \ -}) -#else -#define vld2q_u16(__p0) __extension__ ({ \ - uint16x8x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_s8(__p0) __extension__ ({ \ - int8x16x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 32); \ - __ret; \ -}) -#else -#define vld2q_s8(__p0) __extension__ ({ \ - int8x16x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_f32(__p0) __extension__ ({ \ - float32x4x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 41); \ - __ret; \ -}) -#else -#define vld2q_f32(__p0) __extension__ ({ \ - float32x4x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_s32(__p0) __extension__ ({ \ - int32x4x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 34); \ - __ret; \ -}) -#else -#define vld2q_s32(__p0) __extension__ ({ \ - int32x4x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_s16(__p0) __extension__ ({ \ - int16x8x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 33); \ - __ret; \ -}) -#else -#define vld2q_s16(__p0) __extension__ ({ \ - int16x8x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_u8(__p0) __extension__ ({ \ - uint8x8x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 16); \ - __ret; \ -}) -#else -#define vld2_u8(__p0) __extension__ ({ \ - uint8x8x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_u32(__p0) __extension__ ({ \ - uint32x2x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 18); \ - __ret; \ -}) -#else -#define vld2_u32(__p0) __extension__ ({ \ - uint32x2x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_u64(__p0) __extension__ ({ \ - uint64x1x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 19); \ - __ret; \ -}) -#else -#define vld2_u64(__p0) __extension__ ({ \ - uint64x1x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_u16(__p0) __extension__ ({ \ - uint16x4x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 17); \ - __ret; \ -}) -#else -#define vld2_u16(__p0) __extension__ ({ \ - uint16x4x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_s8(__p0) __extension__ ({ \ - int8x8x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 0); \ - __ret; \ -}) -#else -#define vld2_s8(__p0) __extension__ ({ \ - int8x8x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_f32(__p0) __extension__ ({ \ - float32x2x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 9); \ - __ret; \ -}) -#else -#define vld2_f32(__p0) __extension__ ({ \ - float32x2x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_s32(__p0) __extension__ ({ \ - int32x2x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 2); \ - __ret; \ -}) -#else -#define vld2_s32(__p0) __extension__ ({ \ - int32x2x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_s64(__p0) __extension__ ({ \ - int64x1x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 3); \ - __ret; \ -}) -#else -#define vld2_s64(__p0) __extension__ ({ \ - int64x1x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_s16(__p0) __extension__ ({ \ - int16x4x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 1); \ - __ret; \ -}) -#else -#define vld2_s16(__p0) __extension__ ({ \ - int16x4x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_p8(__p0) __extension__ ({ \ - poly8x8x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 4); \ - __ret; \ -}) -#else -#define vld2_dup_p8(__p0) __extension__ ({ \ - poly8x8x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_p16(__p0) __extension__ ({ \ - poly16x4x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 5); \ - __ret; \ -}) -#else -#define vld2_dup_p16(__p0) __extension__ ({ \ - poly16x4x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_p8(__p0) __extension__ ({ \ - poly8x16x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 36); \ - __ret; \ -}) -#else -#define vld2q_dup_p8(__p0) __extension__ ({ \ - poly8x16x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_p16(__p0) __extension__ ({ \ - poly16x8x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 37); \ - __ret; \ -}) -#else -#define vld2q_dup_p16(__p0) __extension__ ({ \ - poly16x8x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_u8(__p0) __extension__ ({ \ - uint8x16x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 48); \ - __ret; \ -}) -#else -#define vld2q_dup_u8(__p0) __extension__ ({ \ - uint8x16x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_u32(__p0) __extension__ ({ \ - uint32x4x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 50); \ - __ret; \ -}) -#else -#define vld2q_dup_u32(__p0) __extension__ ({ \ - uint32x4x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_u64(__p0) __extension__ ({ \ - uint64x2x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 51); \ - __ret; \ -}) -#else -#define vld2q_dup_u64(__p0) __extension__ ({ \ - uint64x2x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_u16(__p0) __extension__ ({ \ - uint16x8x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 49); \ - __ret; \ -}) -#else -#define vld2q_dup_u16(__p0) __extension__ ({ \ - uint16x8x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_s8(__p0) __extension__ ({ \ - int8x16x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 32); \ - __ret; \ -}) -#else -#define vld2q_dup_s8(__p0) __extension__ ({ \ - int8x16x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_f32(__p0) __extension__ ({ \ - float32x4x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 41); \ - __ret; \ -}) -#else -#define vld2q_dup_f32(__p0) __extension__ ({ \ - float32x4x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_s32(__p0) __extension__ ({ \ - int32x4x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 34); \ - __ret; \ -}) -#else -#define vld2q_dup_s32(__p0) __extension__ ({ \ - int32x4x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_s64(__p0) __extension__ ({ \ - int64x2x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 35); \ - __ret; \ -}) -#else -#define vld2q_dup_s64(__p0) __extension__ ({ \ - int64x2x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_s16(__p0) __extension__ ({ \ - int16x8x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 33); \ - __ret; \ -}) -#else -#define vld2q_dup_s16(__p0) __extension__ ({ \ - int16x8x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_u8(__p0) __extension__ ({ \ - uint8x8x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 16); \ - __ret; \ -}) -#else -#define vld2_dup_u8(__p0) __extension__ ({ \ - uint8x8x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_u32(__p0) __extension__ ({ \ - uint32x2x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 18); \ - __ret; \ -}) -#else -#define vld2_dup_u32(__p0) __extension__ ({ \ - uint32x2x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_u64(__p0) __extension__ ({ \ - uint64x1x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 19); \ - __ret; \ -}) -#else -#define vld2_dup_u64(__p0) __extension__ ({ \ - uint64x1x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_u16(__p0) __extension__ ({ \ - uint16x4x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 17); \ - __ret; \ -}) -#else -#define vld2_dup_u16(__p0) __extension__ ({ \ - uint16x4x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_s8(__p0) __extension__ ({ \ - int8x8x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 0); \ - __ret; \ -}) -#else -#define vld2_dup_s8(__p0) __extension__ ({ \ - int8x8x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_f32(__p0) __extension__ ({ \ - float32x2x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 9); \ - __ret; \ -}) -#else -#define vld2_dup_f32(__p0) __extension__ ({ \ - float32x2x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_s32(__p0) __extension__ ({ \ - int32x2x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 2); \ - __ret; \ -}) -#else -#define vld2_dup_s32(__p0) __extension__ ({ \ - int32x2x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_s64(__p0) __extension__ ({ \ - int64x1x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 3); \ - __ret; \ -}) -#else -#define vld2_dup_s64(__p0) __extension__ ({ \ - int64x1x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_s16(__p0) __extension__ ({ \ - int16x4x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 1); \ - __ret; \ -}) -#else -#define vld2_dup_s16(__p0) __extension__ ({ \ - int16x4x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x2_t __s1 = __p1; \ - poly8x8x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 4); \ - __ret; \ -}) -#else -#define vld2_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x2_t __s1 = __p1; \ - poly8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x2_t __s1 = __p1; \ - poly16x4x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 5); \ - __ret; \ -}) -#else -#define vld2_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x2_t __s1 = __p1; \ - poly16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - poly16x4x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x2_t __s1 = __p1; \ - poly16x8x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 37); \ - __ret; \ -}) -#else -#define vld2q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x2_t __s1 = __p1; \ - poly16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x2_t __s1 = __p1; \ - uint32x4x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 50); \ - __ret; \ -}) -#else -#define vld2q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x2_t __s1 = __p1; \ - uint32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - uint32x4x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x2_t __s1 = __p1; \ - uint16x8x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 49); \ - __ret; \ -}) -#else -#define vld2q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x2_t __s1 = __p1; \ - uint16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x2_t __s1 = __p1; \ - float32x4x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 41); \ - __ret; \ -}) -#else -#define vld2q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x2_t __s1 = __p1; \ - float32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - float32x4x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x2_t __s1 = __p1; \ - int32x4x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 34); \ - __ret; \ -}) -#else -#define vld2q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x2_t __s1 = __p1; \ - int32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - int32x4x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x2_t __s1 = __p1; \ - int16x8x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 33); \ - __ret; \ -}) -#else -#define vld2q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x2_t __s1 = __p1; \ - int16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x2_t __s1 = __p1; \ - uint8x8x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 16); \ - __ret; \ -}) -#else -#define vld2_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x2_t __s1 = __p1; \ - uint8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x2_t __s1 = __p1; \ - uint32x2x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 18); \ - __ret; \ -}) -#else -#define vld2_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x2_t __s1 = __p1; \ - uint32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - uint32x2x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x2_t __s1 = __p1; \ - uint16x4x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 17); \ - __ret; \ -}) -#else -#define vld2_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x2_t __s1 = __p1; \ - uint16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - uint16x4x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x2_t __s1 = __p1; \ - int8x8x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 0); \ - __ret; \ -}) -#else -#define vld2_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x2_t __s1 = __p1; \ - int8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x2_t __s1 = __p1; \ - float32x2x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 9); \ - __ret; \ -}) -#else -#define vld2_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x2_t __s1 = __p1; \ - float32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - float32x2x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x2_t __s1 = __p1; \ - int32x2x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 2); \ - __ret; \ -}) -#else -#define vld2_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x2_t __s1 = __p1; \ - int32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - int32x2x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x2_t __s1 = __p1; \ - int16x4x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 1); \ - __ret; \ -}) -#else -#define vld2_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x2_t __s1 = __p1; \ - int16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - int16x4x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_p8(__p0) __extension__ ({ \ - poly8x8x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 4); \ - __ret; \ -}) -#else -#define vld3_p8(__p0) __extension__ ({ \ - poly8x8x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_p16(__p0) __extension__ ({ \ - poly16x4x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 5); \ - __ret; \ -}) -#else -#define vld3_p16(__p0) __extension__ ({ \ - poly16x4x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_p8(__p0) __extension__ ({ \ - poly8x16x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 36); \ - __ret; \ -}) -#else -#define vld3q_p8(__p0) __extension__ ({ \ - poly8x16x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_p16(__p0) __extension__ ({ \ - poly16x8x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 37); \ - __ret; \ -}) -#else -#define vld3q_p16(__p0) __extension__ ({ \ - poly16x8x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_u8(__p0) __extension__ ({ \ - uint8x16x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 48); \ - __ret; \ -}) -#else -#define vld3q_u8(__p0) __extension__ ({ \ - uint8x16x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_u32(__p0) __extension__ ({ \ - uint32x4x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 50); \ - __ret; \ -}) -#else -#define vld3q_u32(__p0) __extension__ ({ \ - uint32x4x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_u16(__p0) __extension__ ({ \ - uint16x8x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 49); \ - __ret; \ -}) -#else -#define vld3q_u16(__p0) __extension__ ({ \ - uint16x8x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_s8(__p0) __extension__ ({ \ - int8x16x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 32); \ - __ret; \ -}) -#else -#define vld3q_s8(__p0) __extension__ ({ \ - int8x16x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_f32(__p0) __extension__ ({ \ - float32x4x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 41); \ - __ret; \ -}) -#else -#define vld3q_f32(__p0) __extension__ ({ \ - float32x4x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_s32(__p0) __extension__ ({ \ - int32x4x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 34); \ - __ret; \ -}) -#else -#define vld3q_s32(__p0) __extension__ ({ \ - int32x4x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_s16(__p0) __extension__ ({ \ - int16x8x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 33); \ - __ret; \ -}) -#else -#define vld3q_s16(__p0) __extension__ ({ \ - int16x8x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_u8(__p0) __extension__ ({ \ - uint8x8x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 16); \ - __ret; \ -}) -#else -#define vld3_u8(__p0) __extension__ ({ \ - uint8x8x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_u32(__p0) __extension__ ({ \ - uint32x2x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 18); \ - __ret; \ -}) -#else -#define vld3_u32(__p0) __extension__ ({ \ - uint32x2x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_u64(__p0) __extension__ ({ \ - uint64x1x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 19); \ - __ret; \ -}) -#else -#define vld3_u64(__p0) __extension__ ({ \ - uint64x1x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_u16(__p0) __extension__ ({ \ - uint16x4x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 17); \ - __ret; \ -}) -#else -#define vld3_u16(__p0) __extension__ ({ \ - uint16x4x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_s8(__p0) __extension__ ({ \ - int8x8x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 0); \ - __ret; \ -}) -#else -#define vld3_s8(__p0) __extension__ ({ \ - int8x8x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_f32(__p0) __extension__ ({ \ - float32x2x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 9); \ - __ret; \ -}) -#else -#define vld3_f32(__p0) __extension__ ({ \ - float32x2x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_s32(__p0) __extension__ ({ \ - int32x2x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 2); \ - __ret; \ -}) -#else -#define vld3_s32(__p0) __extension__ ({ \ - int32x2x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_s64(__p0) __extension__ ({ \ - int64x1x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 3); \ - __ret; \ -}) -#else -#define vld3_s64(__p0) __extension__ ({ \ - int64x1x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_s16(__p0) __extension__ ({ \ - int16x4x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 1); \ - __ret; \ -}) -#else -#define vld3_s16(__p0) __extension__ ({ \ - int16x4x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_p8(__p0) __extension__ ({ \ - poly8x8x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 4); \ - __ret; \ -}) -#else -#define vld3_dup_p8(__p0) __extension__ ({ \ - poly8x8x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_p16(__p0) __extension__ ({ \ - poly16x4x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 5); \ - __ret; \ -}) -#else -#define vld3_dup_p16(__p0) __extension__ ({ \ - poly16x4x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_p8(__p0) __extension__ ({ \ - poly8x16x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 36); \ - __ret; \ -}) -#else -#define vld3q_dup_p8(__p0) __extension__ ({ \ - poly8x16x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_p16(__p0) __extension__ ({ \ - poly16x8x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 37); \ - __ret; \ -}) -#else -#define vld3q_dup_p16(__p0) __extension__ ({ \ - poly16x8x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_u8(__p0) __extension__ ({ \ - uint8x16x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 48); \ - __ret; \ -}) -#else -#define vld3q_dup_u8(__p0) __extension__ ({ \ - uint8x16x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_u32(__p0) __extension__ ({ \ - uint32x4x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 50); \ - __ret; \ -}) -#else -#define vld3q_dup_u32(__p0) __extension__ ({ \ - uint32x4x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_u64(__p0) __extension__ ({ \ - uint64x2x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 51); \ - __ret; \ -}) -#else -#define vld3q_dup_u64(__p0) __extension__ ({ \ - uint64x2x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_u16(__p0) __extension__ ({ \ - uint16x8x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 49); \ - __ret; \ -}) -#else -#define vld3q_dup_u16(__p0) __extension__ ({ \ - uint16x8x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_s8(__p0) __extension__ ({ \ - int8x16x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 32); \ - __ret; \ -}) -#else -#define vld3q_dup_s8(__p0) __extension__ ({ \ - int8x16x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_f32(__p0) __extension__ ({ \ - float32x4x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 41); \ - __ret; \ -}) -#else -#define vld3q_dup_f32(__p0) __extension__ ({ \ - float32x4x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_s32(__p0) __extension__ ({ \ - int32x4x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 34); \ - __ret; \ -}) -#else -#define vld3q_dup_s32(__p0) __extension__ ({ \ - int32x4x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_s64(__p0) __extension__ ({ \ - int64x2x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 35); \ - __ret; \ -}) -#else -#define vld3q_dup_s64(__p0) __extension__ ({ \ - int64x2x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_s16(__p0) __extension__ ({ \ - int16x8x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 33); \ - __ret; \ -}) -#else -#define vld3q_dup_s16(__p0) __extension__ ({ \ - int16x8x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_u8(__p0) __extension__ ({ \ - uint8x8x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 16); \ - __ret; \ -}) -#else -#define vld3_dup_u8(__p0) __extension__ ({ \ - uint8x8x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_u32(__p0) __extension__ ({ \ - uint32x2x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 18); \ - __ret; \ -}) -#else -#define vld3_dup_u32(__p0) __extension__ ({ \ - uint32x2x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_u64(__p0) __extension__ ({ \ - uint64x1x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 19); \ - __ret; \ -}) -#else -#define vld3_dup_u64(__p0) __extension__ ({ \ - uint64x1x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_u16(__p0) __extension__ ({ \ - uint16x4x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 17); \ - __ret; \ -}) -#else -#define vld3_dup_u16(__p0) __extension__ ({ \ - uint16x4x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_s8(__p0) __extension__ ({ \ - int8x8x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 0); \ - __ret; \ -}) -#else -#define vld3_dup_s8(__p0) __extension__ ({ \ - int8x8x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_f32(__p0) __extension__ ({ \ - float32x2x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 9); \ - __ret; \ -}) -#else -#define vld3_dup_f32(__p0) __extension__ ({ \ - float32x2x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_s32(__p0) __extension__ ({ \ - int32x2x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 2); \ - __ret; \ -}) -#else -#define vld3_dup_s32(__p0) __extension__ ({ \ - int32x2x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_s64(__p0) __extension__ ({ \ - int64x1x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 3); \ - __ret; \ -}) -#else -#define vld3_dup_s64(__p0) __extension__ ({ \ - int64x1x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_s16(__p0) __extension__ ({ \ - int16x4x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 1); \ - __ret; \ -}) -#else -#define vld3_dup_s16(__p0) __extension__ ({ \ - int16x4x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x3_t __s1 = __p1; \ - poly8x8x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 4); \ - __ret; \ -}) -#else -#define vld3_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x3_t __s1 = __p1; \ - poly8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x3_t __s1 = __p1; \ - poly16x4x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 5); \ - __ret; \ -}) -#else -#define vld3_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x3_t __s1 = __p1; \ - poly16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - poly16x4x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x3_t __s1 = __p1; \ - poly16x8x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 37); \ - __ret; \ -}) -#else -#define vld3q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x3_t __s1 = __p1; \ - poly16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x3_t __s1 = __p1; \ - uint32x4x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 50); \ - __ret; \ -}) -#else -#define vld3q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x3_t __s1 = __p1; \ - uint32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - uint32x4x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x3_t __s1 = __p1; \ - uint16x8x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 49); \ - __ret; \ -}) -#else -#define vld3q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x3_t __s1 = __p1; \ - uint16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x3_t __s1 = __p1; \ - float32x4x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 41); \ - __ret; \ -}) -#else -#define vld3q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x3_t __s1 = __p1; \ - float32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - float32x4x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x3_t __s1 = __p1; \ - int32x4x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 34); \ - __ret; \ -}) -#else -#define vld3q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x3_t __s1 = __p1; \ - int32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - int32x4x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x3_t __s1 = __p1; \ - int16x8x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 33); \ - __ret; \ -}) -#else -#define vld3q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x3_t __s1 = __p1; \ - int16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x3_t __s1 = __p1; \ - uint8x8x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 16); \ - __ret; \ -}) -#else -#define vld3_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x3_t __s1 = __p1; \ - uint8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x3_t __s1 = __p1; \ - uint32x2x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 18); \ - __ret; \ -}) -#else -#define vld3_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x3_t __s1 = __p1; \ - uint32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - uint32x2x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x3_t __s1 = __p1; \ - uint16x4x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 17); \ - __ret; \ -}) -#else -#define vld3_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x3_t __s1 = __p1; \ - uint16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - uint16x4x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x3_t __s1 = __p1; \ - int8x8x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 0); \ - __ret; \ -}) -#else -#define vld3_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x3_t __s1 = __p1; \ - int8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x3_t __s1 = __p1; \ - float32x2x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 9); \ - __ret; \ -}) -#else -#define vld3_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x3_t __s1 = __p1; \ - float32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - float32x2x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x3_t __s1 = __p1; \ - int32x2x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 2); \ - __ret; \ -}) -#else -#define vld3_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x3_t __s1 = __p1; \ - int32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - int32x2x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x3_t __s1 = __p1; \ - int16x4x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 1); \ - __ret; \ -}) -#else -#define vld3_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x3_t __s1 = __p1; \ - int16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - int16x4x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_p8(__p0) __extension__ ({ \ - poly8x8x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 4); \ - __ret; \ -}) -#else -#define vld4_p8(__p0) __extension__ ({ \ - poly8x8x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_p16(__p0) __extension__ ({ \ - poly16x4x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 5); \ - __ret; \ -}) -#else -#define vld4_p16(__p0) __extension__ ({ \ - poly16x4x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_p8(__p0) __extension__ ({ \ - poly8x16x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 36); \ - __ret; \ -}) -#else -#define vld4q_p8(__p0) __extension__ ({ \ - poly8x16x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_p16(__p0) __extension__ ({ \ - poly16x8x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 37); \ - __ret; \ -}) -#else -#define vld4q_p16(__p0) __extension__ ({ \ - poly16x8x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_u8(__p0) __extension__ ({ \ - uint8x16x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 48); \ - __ret; \ -}) -#else -#define vld4q_u8(__p0) __extension__ ({ \ - uint8x16x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_u32(__p0) __extension__ ({ \ - uint32x4x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 50); \ - __ret; \ -}) -#else -#define vld4q_u32(__p0) __extension__ ({ \ - uint32x4x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_u16(__p0) __extension__ ({ \ - uint16x8x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 49); \ - __ret; \ -}) -#else -#define vld4q_u16(__p0) __extension__ ({ \ - uint16x8x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_s8(__p0) __extension__ ({ \ - int8x16x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 32); \ - __ret; \ -}) -#else -#define vld4q_s8(__p0) __extension__ ({ \ - int8x16x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_f32(__p0) __extension__ ({ \ - float32x4x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 41); \ - __ret; \ -}) -#else -#define vld4q_f32(__p0) __extension__ ({ \ - float32x4x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_s32(__p0) __extension__ ({ \ - int32x4x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 34); \ - __ret; \ -}) -#else -#define vld4q_s32(__p0) __extension__ ({ \ - int32x4x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_s16(__p0) __extension__ ({ \ - int16x8x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 33); \ - __ret; \ -}) -#else -#define vld4q_s16(__p0) __extension__ ({ \ - int16x8x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_u8(__p0) __extension__ ({ \ - uint8x8x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 16); \ - __ret; \ -}) -#else -#define vld4_u8(__p0) __extension__ ({ \ - uint8x8x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_u32(__p0) __extension__ ({ \ - uint32x2x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 18); \ - __ret; \ -}) -#else -#define vld4_u32(__p0) __extension__ ({ \ - uint32x2x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_u64(__p0) __extension__ ({ \ - uint64x1x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 19); \ - __ret; \ -}) -#else -#define vld4_u64(__p0) __extension__ ({ \ - uint64x1x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_u16(__p0) __extension__ ({ \ - uint16x4x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 17); \ - __ret; \ -}) -#else -#define vld4_u16(__p0) __extension__ ({ \ - uint16x4x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_s8(__p0) __extension__ ({ \ - int8x8x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 0); \ - __ret; \ -}) -#else -#define vld4_s8(__p0) __extension__ ({ \ - int8x8x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_f32(__p0) __extension__ ({ \ - float32x2x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 9); \ - __ret; \ -}) -#else -#define vld4_f32(__p0) __extension__ ({ \ - float32x2x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_s32(__p0) __extension__ ({ \ - int32x2x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 2); \ - __ret; \ -}) -#else -#define vld4_s32(__p0) __extension__ ({ \ - int32x2x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_s64(__p0) __extension__ ({ \ - int64x1x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 3); \ - __ret; \ -}) -#else -#define vld4_s64(__p0) __extension__ ({ \ - int64x1x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_s16(__p0) __extension__ ({ \ - int16x4x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 1); \ - __ret; \ -}) -#else -#define vld4_s16(__p0) __extension__ ({ \ - int16x4x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_p8(__p0) __extension__ ({ \ - poly8x8x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 4); \ - __ret; \ -}) -#else -#define vld4_dup_p8(__p0) __extension__ ({ \ - poly8x8x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_p16(__p0) __extension__ ({ \ - poly16x4x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 5); \ - __ret; \ -}) -#else -#define vld4_dup_p16(__p0) __extension__ ({ \ - poly16x4x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_p8(__p0) __extension__ ({ \ - poly8x16x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 36); \ - __ret; \ -}) -#else -#define vld4q_dup_p8(__p0) __extension__ ({ \ - poly8x16x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_p16(__p0) __extension__ ({ \ - poly16x8x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 37); \ - __ret; \ -}) -#else -#define vld4q_dup_p16(__p0) __extension__ ({ \ - poly16x8x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_u8(__p0) __extension__ ({ \ - uint8x16x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 48); \ - __ret; \ -}) -#else -#define vld4q_dup_u8(__p0) __extension__ ({ \ - uint8x16x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_u32(__p0) __extension__ ({ \ - uint32x4x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 50); \ - __ret; \ -}) -#else -#define vld4q_dup_u32(__p0) __extension__ ({ \ - uint32x4x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_u64(__p0) __extension__ ({ \ - uint64x2x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 51); \ - __ret; \ -}) -#else -#define vld4q_dup_u64(__p0) __extension__ ({ \ - uint64x2x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_u16(__p0) __extension__ ({ \ - uint16x8x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 49); \ - __ret; \ -}) -#else -#define vld4q_dup_u16(__p0) __extension__ ({ \ - uint16x8x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_s8(__p0) __extension__ ({ \ - int8x16x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 32); \ - __ret; \ -}) -#else -#define vld4q_dup_s8(__p0) __extension__ ({ \ - int8x16x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_f32(__p0) __extension__ ({ \ - float32x4x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 41); \ - __ret; \ -}) -#else -#define vld4q_dup_f32(__p0) __extension__ ({ \ - float32x4x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_s32(__p0) __extension__ ({ \ - int32x4x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 34); \ - __ret; \ -}) -#else -#define vld4q_dup_s32(__p0) __extension__ ({ \ - int32x4x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_s64(__p0) __extension__ ({ \ - int64x2x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 35); \ - __ret; \ -}) -#else -#define vld4q_dup_s64(__p0) __extension__ ({ \ - int64x2x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_s16(__p0) __extension__ ({ \ - int16x8x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 33); \ - __ret; \ -}) -#else -#define vld4q_dup_s16(__p0) __extension__ ({ \ - int16x8x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_u8(__p0) __extension__ ({ \ - uint8x8x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 16); \ - __ret; \ -}) -#else -#define vld4_dup_u8(__p0) __extension__ ({ \ - uint8x8x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_u32(__p0) __extension__ ({ \ - uint32x2x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 18); \ - __ret; \ -}) -#else -#define vld4_dup_u32(__p0) __extension__ ({ \ - uint32x2x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_u64(__p0) __extension__ ({ \ - uint64x1x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 19); \ - __ret; \ -}) -#else -#define vld4_dup_u64(__p0) __extension__ ({ \ - uint64x1x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_u16(__p0) __extension__ ({ \ - uint16x4x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 17); \ - __ret; \ -}) -#else -#define vld4_dup_u16(__p0) __extension__ ({ \ - uint16x4x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_s8(__p0) __extension__ ({ \ - int8x8x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 0); \ - __ret; \ -}) -#else -#define vld4_dup_s8(__p0) __extension__ ({ \ - int8x8x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_f32(__p0) __extension__ ({ \ - float32x2x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 9); \ - __ret; \ -}) -#else -#define vld4_dup_f32(__p0) __extension__ ({ \ - float32x2x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_s32(__p0) __extension__ ({ \ - int32x2x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 2); \ - __ret; \ -}) -#else -#define vld4_dup_s32(__p0) __extension__ ({ \ - int32x2x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_s64(__p0) __extension__ ({ \ - int64x1x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 3); \ - __ret; \ -}) -#else -#define vld4_dup_s64(__p0) __extension__ ({ \ - int64x1x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_s16(__p0) __extension__ ({ \ - int16x4x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 1); \ - __ret; \ -}) -#else -#define vld4_dup_s16(__p0) __extension__ ({ \ - int16x4x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x4_t __s1 = __p1; \ - poly8x8x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 4); \ - __ret; \ -}) -#else -#define vld4_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x4_t __s1 = __p1; \ - poly8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 4); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x4_t __s1 = __p1; \ - poly16x4x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 5); \ - __ret; \ -}) -#else -#define vld4_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x4_t __s1 = __p1; \ - poly16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - poly16x4x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 5); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x4_t __s1 = __p1; \ - poly16x8x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 37); \ - __ret; \ -}) -#else -#define vld4q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x4_t __s1 = __p1; \ - poly16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 37); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x4_t __s1 = __p1; \ - uint32x4x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 50); \ - __ret; \ -}) -#else -#define vld4q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x4_t __s1 = __p1; \ - uint32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - uint32x4x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 50); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x4_t __s1 = __p1; \ - uint16x8x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 49); \ - __ret; \ -}) -#else -#define vld4q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x4_t __s1 = __p1; \ - uint16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 49); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x4_t __s1 = __p1; \ - float32x4x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 41); \ - __ret; \ -}) -#else -#define vld4q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x4_t __s1 = __p1; \ - float32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - float32x4x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 41); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x4_t __s1 = __p1; \ - int32x4x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 34); \ - __ret; \ -}) -#else -#define vld4q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x4_t __s1 = __p1; \ - int32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - int32x4x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 34); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x4_t __s1 = __p1; \ - int16x8x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 33); \ - __ret; \ -}) -#else -#define vld4q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x4_t __s1 = __p1; \ - int16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 33); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x4_t __s1 = __p1; \ - uint8x8x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 16); \ - __ret; \ -}) -#else -#define vld4_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x4_t __s1 = __p1; \ - uint8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 16); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x4_t __s1 = __p1; \ - uint32x2x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 18); \ - __ret; \ -}) -#else -#define vld4_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x4_t __s1 = __p1; \ - uint32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - uint32x2x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 18); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x4_t __s1 = __p1; \ - uint16x4x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 17); \ - __ret; \ -}) -#else -#define vld4_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x4_t __s1 = __p1; \ - uint16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - uint16x4x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 17); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x4_t __s1 = __p1; \ - int8x8x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 0); \ - __ret; \ -}) -#else -#define vld4_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x4_t __s1 = __p1; \ - int8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 0); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x4_t __s1 = __p1; \ - float32x2x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 9); \ - __ret; \ -}) -#else -#define vld4_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x4_t __s1 = __p1; \ - float32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - float32x2x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 9); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x4_t __s1 = __p1; \ - int32x2x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 2); \ - __ret; \ -}) -#else -#define vld4_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x4_t __s1 = __p1; \ - int32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - int32x2x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 2); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x4_t __s1 = __p1; \ - int16x4x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 1); \ - __ret; \ -}) -#else -#define vld4_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x4_t __s1 = __p1; \ - int16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - int16x4x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 1); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vmaxq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vmaxq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmaxq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vmaxq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmaxq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vmaxq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vmaxq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vmaxq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vmaxq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vmaxq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmaxq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vmaxq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmaxq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vmaxq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vmax_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vmax_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmax_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vmax_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmax_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vmax_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vmax_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vmax_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmax_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vmax_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmax_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vmax_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmax_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vmax_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vminq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vminq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vminq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vminq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vminq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vminq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vminq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vminq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vminq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vminq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vminq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vminq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vminq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vminq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vmin_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vmin_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmin_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vmin_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmin_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vmin_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vmin_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vmin_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmin_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vmin_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmin_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vmin_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmin_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vmin_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vmlaq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint8x16_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai uint8x16_t vmlaq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlaq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai uint32x4_t vmlaq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmlaq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint16x8_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai uint16x8_t vmlaq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vmlaq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) { - int8x16_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai int8x16_t vmlaq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vmlaq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - float32x4_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai float32x4_t vmlaq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlaq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai int32x4_t vmlaq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmlaq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai int16x8_t vmlaq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vmla_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai uint8x8_t vmla_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmla_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint32x2_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai uint32x2_t vmla_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint32x2_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmla_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint16x4_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai uint16x4_t vmla_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vmla_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai int8x8_t vmla_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmla_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - float32x2_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai float32x2_t vmla_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - float32x2_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmla_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai int32x2_t vmla_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int32x2_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmla_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai int16x4_t vmla_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlaq_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlaq_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlaq_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint16x8_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlaq_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlaq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x4_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlaq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - float32x4_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlaq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlaq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlaq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x8_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlaq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmla_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint32x2_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmla_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - uint32x2_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmla_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint16x4_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmla_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmla_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x2_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmla_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - float32x2_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmla_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x2_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmla_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int32x2_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmla_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x4_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmla_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlaq_n_u32(uint32x4_t __p0, uint32x4_t __p1, uint32_t __p2) { - uint32x4_t __ret; - __ret = __p0 + __p1 * (uint32x4_t) {__p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai uint32x4_t vmlaq_n_u32(uint32x4_t __p0, uint32x4_t __p1, uint32_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 + __rev1 * (uint32x4_t) {__p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmlaq_n_u16(uint16x8_t __p0, uint16x8_t __p1, uint16_t __p2) { - uint16x8_t __ret; - __ret = __p0 + __p1 * (uint16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai uint16x8_t vmlaq_n_u16(uint16x8_t __p0, uint16x8_t __p1, uint16_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 + __rev1 * (uint16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vmlaq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) { - float32x4_t __ret; - __ret = __p0 + __p1 * (float32x4_t) {__p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai float32x4_t vmlaq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __rev0 + __rev1 * (float32x4_t) {__p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlaq_n_s32(int32x4_t __p0, int32x4_t __p1, int32_t __p2) { - int32x4_t __ret; - __ret = __p0 + __p1 * (int32x4_t) {__p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai int32x4_t vmlaq_n_s32(int32x4_t __p0, int32x4_t __p1, int32_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 + __rev1 * (int32x4_t) {__p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmlaq_n_s16(int16x8_t __p0, int16x8_t __p1, int16_t __p2) { - int16x8_t __ret; - __ret = __p0 + __p1 * (int16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai int16x8_t vmlaq_n_s16(int16x8_t __p0, int16x8_t __p1, int16_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 + __rev1 * (int16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmla_n_u32(uint32x2_t __p0, uint32x2_t __p1, uint32_t __p2) { - uint32x2_t __ret; - __ret = __p0 + __p1 * (uint32x2_t) {__p2, __p2}; - return __ret; -} -#else -__ai uint32x2_t vmla_n_u32(uint32x2_t __p0, uint32x2_t __p1, uint32_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __rev0 + __rev1 * (uint32x2_t) {__p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmla_n_u16(uint16x4_t __p0, uint16x4_t __p1, uint16_t __p2) { - uint16x4_t __ret; - __ret = __p0 + __p1 * (uint16x4_t) {__p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai uint16x4_t vmla_n_u16(uint16x4_t __p0, uint16x4_t __p1, uint16_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 + __rev1 * (uint16x4_t) {__p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmla_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) { - float32x2_t __ret; - __ret = __p0 + __p1 * (float32x2_t) {__p2, __p2}; - return __ret; -} -#else -__ai float32x2_t vmla_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __rev0 + __rev1 * (float32x2_t) {__p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmla_n_s32(int32x2_t __p0, int32x2_t __p1, int32_t __p2) { - int32x2_t __ret; - __ret = __p0 + __p1 * (int32x2_t) {__p2, __p2}; - return __ret; -} -#else -__ai int32x2_t vmla_n_s32(int32x2_t __p0, int32x2_t __p1, int32_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __rev0 + __rev1 * (int32x2_t) {__p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmla_n_s16(int16x4_t __p0, int16x4_t __p1, int16_t __p2) { - int16x4_t __ret; - __ret = __p0 + __p1 * (int16x4_t) {__p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai int16x4_t vmla_n_s16(int16x4_t __p0, int16x4_t __p1, int16_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 + __rev1 * (int16x4_t) {__p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vmlsq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint8x16_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai uint8x16_t vmlsq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlsq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai uint32x4_t vmlsq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmlsq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint16x8_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai uint16x8_t vmlsq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vmlsq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) { - int8x16_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai int8x16_t vmlsq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vmlsq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - float32x4_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai float32x4_t vmlsq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlsq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai int32x4_t vmlsq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmlsq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai int16x8_t vmlsq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vmls_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai uint8x8_t vmls_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmls_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint32x2_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai uint32x2_t vmls_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint32x2_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmls_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint16x4_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai uint16x4_t vmls_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vmls_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai int8x8_t vmls_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmls_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - float32x2_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai float32x2_t vmls_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - float32x2_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmls_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai int32x2_t vmls_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int32x2_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmls_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai int16x4_t vmls_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsq_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlsq_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsq_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint16x8_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlsq_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x4_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlsq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - float32x4_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlsq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x8_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlsq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmls_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint32x2_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmls_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - uint32x2_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmls_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint16x4_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmls_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmls_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x2_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmls_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - float32x2_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmls_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x2_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmls_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int32x2_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmls_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x4_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmls_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlsq_n_u32(uint32x4_t __p0, uint32x4_t __p1, uint32_t __p2) { - uint32x4_t __ret; - __ret = __p0 - __p1 * (uint32x4_t) {__p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai uint32x4_t vmlsq_n_u32(uint32x4_t __p0, uint32x4_t __p1, uint32_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 - __rev1 * (uint32x4_t) {__p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmlsq_n_u16(uint16x8_t __p0, uint16x8_t __p1, uint16_t __p2) { - uint16x8_t __ret; - __ret = __p0 - __p1 * (uint16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai uint16x8_t vmlsq_n_u16(uint16x8_t __p0, uint16x8_t __p1, uint16_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 - __rev1 * (uint16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vmlsq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) { - float32x4_t __ret; - __ret = __p0 - __p1 * (float32x4_t) {__p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai float32x4_t vmlsq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __rev0 - __rev1 * (float32x4_t) {__p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlsq_n_s32(int32x4_t __p0, int32x4_t __p1, int32_t __p2) { - int32x4_t __ret; - __ret = __p0 - __p1 * (int32x4_t) {__p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai int32x4_t vmlsq_n_s32(int32x4_t __p0, int32x4_t __p1, int32_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 - __rev1 * (int32x4_t) {__p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmlsq_n_s16(int16x8_t __p0, int16x8_t __p1, int16_t __p2) { - int16x8_t __ret; - __ret = __p0 - __p1 * (int16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai int16x8_t vmlsq_n_s16(int16x8_t __p0, int16x8_t __p1, int16_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 - __rev1 * (int16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmls_n_u32(uint32x2_t __p0, uint32x2_t __p1, uint32_t __p2) { - uint32x2_t __ret; - __ret = __p0 - __p1 * (uint32x2_t) {__p2, __p2}; - return __ret; -} -#else -__ai uint32x2_t vmls_n_u32(uint32x2_t __p0, uint32x2_t __p1, uint32_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __rev0 - __rev1 * (uint32x2_t) {__p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmls_n_u16(uint16x4_t __p0, uint16x4_t __p1, uint16_t __p2) { - uint16x4_t __ret; - __ret = __p0 - __p1 * (uint16x4_t) {__p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai uint16x4_t vmls_n_u16(uint16x4_t __p0, uint16x4_t __p1, uint16_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 - __rev1 * (uint16x4_t) {__p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmls_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) { - float32x2_t __ret; - __ret = __p0 - __p1 * (float32x2_t) {__p2, __p2}; - return __ret; -} -#else -__ai float32x2_t vmls_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __rev0 - __rev1 * (float32x2_t) {__p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmls_n_s32(int32x2_t __p0, int32x2_t __p1, int32_t __p2) { - int32x2_t __ret; - __ret = __p0 - __p1 * (int32x2_t) {__p2, __p2}; - return __ret; -} -#else -__ai int32x2_t vmls_n_s32(int32x2_t __p0, int32x2_t __p1, int32_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __rev0 - __rev1 * (int32x2_t) {__p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmls_n_s16(int16x4_t __p0, int16x4_t __p1, int16_t __p2) { - int16x4_t __ret; - __ret = __p0 - __p1 * (int16x4_t) {__p2, __p2, __p2, __p2}; - return __ret; -} -#else -__ai int16x4_t vmls_n_s16(int16x4_t __p0, int16x4_t __p1, int16_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 - __rev1 * (int16x4_t) {__p2, __p2, __p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vmov_n_p8(poly8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai poly8x8_t vmov_n_p8(poly8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vmov_n_p16(poly16_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai poly16x4_t vmov_n_p16(poly16_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vmovq_n_p8(poly8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai poly8x16_t vmovq_n_p8(poly8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vmovq_n_p16(poly16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai poly16x8_t vmovq_n_p16(poly16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vmovq_n_u8(uint8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai uint8x16_t vmovq_n_u8(uint8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmovq_n_u32(uint32_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai uint32x4_t vmovq_n_u32(uint32_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmovq_n_u64(uint64_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai uint64x2_t vmovq_n_u64(uint64_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmovq_n_u16(uint16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai uint16x8_t vmovq_n_u16(uint16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vmovq_n_s8(int8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai int8x16_t vmovq_n_s8(int8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vmovq_n_f32(float32_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai float32x4_t vmovq_n_f32(float32_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmovq_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \ - __ret; \ -}) -#else -#define vmovq_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmovq_n_s32(int32_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai int32x4_t vmovq_n_s32(int32_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmovq_n_s64(int64_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai int64x2_t vmovq_n_s64(int64_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmovq_n_s16(int16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai int16x8_t vmovq_n_s16(int16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vmov_n_u8(uint8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai uint8x8_t vmov_n_u8(uint8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmov_n_u32(uint32_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai uint32x2_t vmov_n_u32(uint32_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vmov_n_u64(uint64_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) {__p0}; - return __ret; -} -#else -__ai uint64x1_t vmov_n_u64(uint64_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) {__p0}; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmov_n_u16(uint16_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai uint16x4_t vmov_n_u16(uint16_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vmov_n_s8(int8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai int8x8_t vmov_n_s8(int8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmov_n_f32(float32_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai float32x2_t vmov_n_f32(float32_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmov_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \ - __ret; \ -}) -#else -#define vmov_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmov_n_s32(int32_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai int32x2_t vmov_n_s32(int32_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vmov_n_s64(int64_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) {__p0}; - return __ret; -} -#else -__ai int64x1_t vmov_n_s64(int64_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) {__p0}; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmov_n_s16(int16_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) {__p0, __p0, __p0, __p0}; - return __ret; -} -#else -__ai int16x4_t vmov_n_s16(int16_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) {__p0, __p0, __p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmovl_u8(uint8x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vmovl_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint16x8_t __noswap_vmovl_u8(uint8x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 49); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmovl_u32(uint32x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vmovl_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint64x2_t __noswap_vmovl_u32(uint32x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 51); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmovl_u16(uint16x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vmovl_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vmovl_u16(uint16x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 50); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmovl_s8(int8x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vmovl_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vmovl_s8(int8x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 33); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmovl_s32(int32x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 35); - return __ret; -} -#else -__ai int64x2_t vmovl_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vmovl_s32(int32x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 35); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmovl_s16(int16x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vmovl_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vmovl_s16(int16x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmovn_u32(uint32x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vmovn_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint16x4_t __noswap_vmovn_u32(uint32x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 17); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmovn_u64(uint64x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vmovn_u64(uint64x2_t __p0) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint32x2_t __noswap_vmovn_u64(uint64x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 18); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vmovn_u16(uint16x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vmovn_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x8_t __noswap_vmovn_u16(uint16x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 16); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmovn_s32(int32x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vmovn_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vmovn_s32(int32x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmovn_s64(int64x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vmovn_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vmovn_s64(int64x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vmovn_s16(int16x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 0); - return __ret; -} -#else -__ai int8x8_t vmovn_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int8x8_t __noswap_vmovn_s16(int16x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vmulq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai uint8x16_t vmulq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmulq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai uint32x4_t vmulq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmulq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai uint16x8_t vmulq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vmulq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai int8x16_t vmulq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vmulq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai float32x4_t vmulq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmulq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai int32x4_t vmulq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmulq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai int16x8_t vmulq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vmul_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai uint8x8_t vmul_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmul_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai uint32x2_t vmul_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmul_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai uint16x4_t vmul_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vmul_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai int8x8_t vmul_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmul_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai float32x2_t vmul_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmul_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai int32x2_t vmul_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmul_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai int16x4_t vmul_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vmul_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vmul_v((int8x8_t)__p0, (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8_t vmul_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vmul_v((int8x8_t)__rev0, (int8x8_t)__rev1, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vmulq_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vmulq_v((int8x16_t)__p0, (int8x16_t)__p1, 36); - return __ret; -} -#else -__ai poly8x16_t vmulq_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vmulq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x2_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmulq_n_u32(uint32x4_t __p0, uint32_t __p1) { - uint32x4_t __ret; - __ret = __p0 * (uint32x4_t) {__p1, __p1, __p1, __p1}; - return __ret; -} -#else -__ai uint32x4_t vmulq_n_u32(uint32x4_t __p0, uint32_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 * (uint32x4_t) {__p1, __p1, __p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmulq_n_u16(uint16x8_t __p0, uint16_t __p1) { - uint16x8_t __ret; - __ret = __p0 * (uint16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}; - return __ret; -} -#else -__ai uint16x8_t vmulq_n_u16(uint16x8_t __p0, uint16_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 * (uint16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vmulq_n_f32(float32x4_t __p0, float32_t __p1) { - float32x4_t __ret; - __ret = __p0 * (float32x4_t) {__p1, __p1, __p1, __p1}; - return __ret; -} -#else -__ai float32x4_t vmulq_n_f32(float32x4_t __p0, float32_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __rev0 * (float32x4_t) {__p1, __p1, __p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmulq_n_s32(int32x4_t __p0, int32_t __p1) { - int32x4_t __ret; - __ret = __p0 * (int32x4_t) {__p1, __p1, __p1, __p1}; - return __ret; -} -#else -__ai int32x4_t vmulq_n_s32(int32x4_t __p0, int32_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 * (int32x4_t) {__p1, __p1, __p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmulq_n_s16(int16x8_t __p0, int16_t __p1) { - int16x8_t __ret; - __ret = __p0 * (int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}; - return __ret; -} -#else -__ai int16x8_t vmulq_n_s16(int16x8_t __p0, int16_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 * (int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmul_n_u32(uint32x2_t __p0, uint32_t __p1) { - uint32x2_t __ret; - __ret = __p0 * (uint32x2_t) {__p1, __p1}; - return __ret; -} -#else -__ai uint32x2_t vmul_n_u32(uint32x2_t __p0, uint32_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = __rev0 * (uint32x2_t) {__p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmul_n_u16(uint16x4_t __p0, uint16_t __p1) { - uint16x4_t __ret; - __ret = __p0 * (uint16x4_t) {__p1, __p1, __p1, __p1}; - return __ret; -} -#else -__ai uint16x4_t vmul_n_u16(uint16x4_t __p0, uint16_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 * (uint16x4_t) {__p1, __p1, __p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmul_n_f32(float32x2_t __p0, float32_t __p1) { - float32x2_t __ret; - __ret = __p0 * (float32x2_t) {__p1, __p1}; - return __ret; -} -#else -__ai float32x2_t vmul_n_f32(float32x2_t __p0, float32_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = __rev0 * (float32x2_t) {__p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmul_n_s32(int32x2_t __p0, int32_t __p1) { - int32x2_t __ret; - __ret = __p0 * (int32x2_t) {__p1, __p1}; - return __ret; -} -#else -__ai int32x2_t vmul_n_s32(int32x2_t __p0, int32_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = __rev0 * (int32x2_t) {__p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmul_n_s16(int16x4_t __p0, int16_t __p1) { - int16x4_t __ret; - __ret = __p0 * (int16x4_t) {__p1, __p1, __p1, __p1}; - return __ret; -} -#else -__ai int16x4_t vmul_n_s16(int16x4_t __p0, int16_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 * (int16x4_t) {__p1, __p1, __p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vmull_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly16x8_t __ret; - __ret = (poly16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 37); - return __ret; -} -#else -__ai poly16x8_t vmull_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = (poly16x8_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 37); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai poly16x8_t __noswap_vmull_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly16x8_t __ret; - __ret = (poly16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 37); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmull_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vmull_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint16x8_t __noswap_vmull_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 49); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmull_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vmull_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint64x2_t __noswap_vmull_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 51); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmull_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vmull_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vmull_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 50); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmull_s8(int8x8_t __p0, int8x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vmull_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vmull_s8(int8x8_t __p0, int8x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 33); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmull_s32(int32x2_t __p0, int32x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vmull_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vmull_s32(int32x2_t __p0, int32x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 35); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmull_s16(int16x4_t __p0, int16x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vmull_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vmull_s16(int16x4_t __p0, int16x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = vmull_u32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint64x2_t __ret; \ - __ret = __noswap_vmull_u32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = vmull_u16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __noswap_vmull_u16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = vmull_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vmull_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vmull_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vmull_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmull_n_u32(uint32x2_t __p0, uint32_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(uint32x2_t) {__p1, __p1}, 51); - return __ret; -} -#else -__ai uint64x2_t vmull_n_u32(uint32x2_t __p0, uint32_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)(uint32x2_t) {__p1, __p1}, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint64x2_t __noswap_vmull_n_u32(uint32x2_t __p0, uint32_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(uint32x2_t) {__p1, __p1}, 51); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmull_n_u16(uint16x4_t __p0, uint16_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(uint16x4_t) {__p1, __p1, __p1, __p1}, 50); - return __ret; -} -#else -__ai uint32x4_t vmull_n_u16(uint16x4_t __p0, uint16_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)(uint16x4_t) {__p1, __p1, __p1, __p1}, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vmull_n_u16(uint16x4_t __p0, uint16_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(uint16x4_t) {__p1, __p1, __p1, __p1}, 50); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmull_n_s32(int32x2_t __p0, int32_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35); - return __ret; -} -#else -__ai int64x2_t vmull_n_s32(int32x2_t __p0, int32_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vmull_n_s32(int32x2_t __p0, int32_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmull_n_s16(int16x4_t __p0, int16_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34); - return __ret; -} -#else -__ai int32x4_t vmull_n_s16(int16x4_t __p0, int16_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vmull_n_s16(int16x4_t __p0, int16_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vmvn_p8(poly8x8_t __p0) { - poly8x8_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai poly8x8_t vmvn_p8(poly8x8_t __p0) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vmvnq_p8(poly8x16_t __p0) { - poly8x16_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai poly8x16_t vmvnq_p8(poly8x16_t __p0) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vmvnq_u8(uint8x16_t __p0) { - uint8x16_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai uint8x16_t vmvnq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmvnq_u32(uint32x4_t __p0) { - uint32x4_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai uint32x4_t vmvnq_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmvnq_u16(uint16x8_t __p0) { - uint16x8_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai uint16x8_t vmvnq_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vmvnq_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai int8x16_t vmvnq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmvnq_s32(int32x4_t __p0) { - int32x4_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai int32x4_t vmvnq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmvnq_s16(int16x8_t __p0) { - int16x8_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai int16x8_t vmvnq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vmvn_u8(uint8x8_t __p0) { - uint8x8_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai uint8x8_t vmvn_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vmvn_u32(uint32x2_t __p0) { - uint32x2_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai uint32x2_t vmvn_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vmvn_u16(uint16x4_t __p0) { - uint16x4_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai uint16x4_t vmvn_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vmvn_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai int8x8_t vmvn_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vmvn_s32(int32x2_t __p0) { - int32x2_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai int32x2_t vmvn_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vmvn_s16(int16x4_t __p0) { - int16x4_t __ret; - __ret = ~__p0; - return __ret; -} -#else -__ai int16x4_t vmvn_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = ~__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vnegq_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai int8x16_t vnegq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vnegq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai float32x4_t vnegq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vnegq_s32(int32x4_t __p0) { - int32x4_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai int32x4_t vnegq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vnegq_s16(int16x8_t __p0) { - int16x8_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai int16x8_t vnegq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vneg_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai int8x8_t vneg_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vneg_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai float32x2_t vneg_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vneg_s32(int32x2_t __p0) { - int32x2_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai int32x2_t vneg_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vneg_s16(int16x4_t __p0) { - int16x4_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai int16x4_t vneg_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vornq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai uint8x16_t vornq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vornq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai uint32x4_t vornq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vornq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai uint64x2_t vornq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vornq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai uint16x8_t vornq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vornq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai int8x16_t vornq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vornq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai int32x4_t vornq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vornq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai int64x2_t vornq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vornq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai int16x8_t vornq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vorn_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai uint8x8_t vorn_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vorn_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai uint32x2_t vorn_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vorn_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai uint64x1_t vorn_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vorn_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai uint16x4_t vorn_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vorn_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai int8x8_t vorn_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vorn_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai int32x2_t vorn_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vorn_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai int64x1_t vorn_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vorn_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __p0 | ~__p1; - return __ret; -} -#else -__ai int16x4_t vorn_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 | ~__rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vorrq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai uint8x16_t vorrq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vorrq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai uint32x4_t vorrq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vorrq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai uint64x2_t vorrq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vorrq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai uint16x8_t vorrq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vorrq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai int8x16_t vorrq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vorrq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai int32x4_t vorrq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vorrq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai int64x2_t vorrq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vorrq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai int16x8_t vorrq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vorr_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai uint8x8_t vorr_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vorr_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai uint32x2_t vorr_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vorr_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai uint64x1_t vorr_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vorr_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai uint16x4_t vorr_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vorr_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai int8x8_t vorr_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vorr_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai int32x2_t vorr_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vorr_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai int64x1_t vorr_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vorr_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __p0 | __p1; - return __ret; -} -#else -__ai int16x4_t vorr_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 | __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vpadalq_u8(uint16x8_t __p0, uint8x16_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vpadalq_u8(uint16x8_t __p0, uint8x16_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vpadalq_u32(uint64x2_t __p0, uint32x4_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vpadalq_u32(uint64x2_t __p0, uint32x4_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vpadalq_u16(uint32x4_t __p0, uint16x8_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vpadalq_u16(uint32x4_t __p0, uint16x8_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vpadalq_s8(int16x8_t __p0, int8x16_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vpadalq_s8(int16x8_t __p0, int8x16_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vpadalq_s32(int64x2_t __p0, int32x4_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vpadalq_s32(int64x2_t __p0, int32x4_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vpadalq_s16(int32x4_t __p0, int16x8_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vpadalq_s16(int32x4_t __p0, int16x8_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vpadal_u8(uint16x4_t __p0, uint8x8_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vpadal_u8(uint16x4_t __p0, uint8x8_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vpadal_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vpadal_u32(uint64x1_t __p0, uint32x2_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vpadal_u32(uint64x1_t __p0, uint32x2_t __p1) { - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__rev1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vpadal_u16(uint32x2_t __p0, uint16x4_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vpadal_u16(uint32x2_t __p0, uint16x4_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vpadal_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vpadal_s8(int16x4_t __p0, int8x8_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vpadal_s8(int16x4_t __p0, int8x8_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vpadal_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vpadal_s32(int64x1_t __p0, int32x2_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#else -__ai int64x1_t vpadal_s32(int64x1_t __p0, int32x2_t __p1) { - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__rev1, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vpadal_s16(int32x2_t __p0, int16x4_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vpadal_s16(int32x2_t __p0, int16x4_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vpadal_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vpadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vpadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vpadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vpadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vpadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vpadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vpadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vpadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vpadd_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vpadd_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vpadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vpadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vpadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vpadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vpaddlq_u8(uint8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vpaddlq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vpaddlq_u32(uint32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vpaddlq_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vpaddlq_u16(uint16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vpaddlq_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vpaddlq_s8(int8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vpaddlq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vpaddlq_s32(int32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 35); - return __ret; -} -#else -__ai int64x2_t vpaddlq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vpaddlq_s16(int16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vpaddlq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vpaddl_u8(uint8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vpaddl_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vpaddl_u32(uint32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vpaddl_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vpaddl_u16(uint16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vpaddl_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vpaddl_s8(int8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vpaddl_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vpaddl_s32(int32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 3); - return __ret; -} -#else -__ai int64x1_t vpaddl_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vpaddl_s16(int16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vpaddl_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vpmax_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vpmax_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vpmax_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vpmax_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vpmax_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vpmax_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vpmax_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vpmax_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vpmax_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vpmax_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vpmax_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vpmax_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vpmax_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vpmax_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vpmin_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vpmin_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vpmin_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vpmin_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vpmin_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vpmin_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vpmin_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vpmin_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vpmin_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vpmin_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vpmin_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vpmin_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vpmin_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vpmin_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqabsq_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqabsq_v((int8x16_t)__p0, 32); - return __ret; -} -#else -__ai int8x16_t vqabsq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqabsq_v((int8x16_t)__rev0, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqabsq_s32(int32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqabsq_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vqabsq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqabsq_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqabsq_s16(int16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqabsq_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vqabsq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqabsq_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqabs_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqabs_v((int8x8_t)__p0, 0); - return __ret; -} -#else -__ai int8x8_t vqabs_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqabs_v((int8x8_t)__rev0, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqabs_s32(int32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqabs_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vqabs_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqabs_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqabs_s16(int16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqabs_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vqabs_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqabs_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vqaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vqaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vqaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vqaddq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vqaddq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vqaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vqaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vqaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vqaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vqaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqaddq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vqaddq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vqaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vqaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vqadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vqadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vqadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vqadd_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vqadd_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vqadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vqadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vqadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vqadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vqadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vqadd_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#else -__ai int64x1_t vqadd_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vqadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vqadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 35); - return __ret; -} -#else -__ai int64x2_t vqdmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vqdmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 35); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 34); - return __ret; -} -#else -__ai int32x4_t vqdmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vqdmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlal_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = vqdmlal_s32(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlal_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmlal_s32(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlal_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqdmlal_s16(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlal_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmlal_s16(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35); - return __ret; -} -#else -__ai int64x2_t vqdmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vqdmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34); - return __ret; -} -#else -__ai int32x4_t vqdmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vqdmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 35); - return __ret; -} -#else -__ai int64x2_t vqdmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vqdmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 35); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 34); - return __ret; -} -#else -__ai int32x4_t vqdmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vqdmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlsl_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = vqdmlsl_s32(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlsl_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmlsl_s32(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlsl_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqdmlsl_s16(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlsl_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmlsl_s16(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35); - return __ret; -} -#else -__ai int64x2_t vqdmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vqdmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34); - return __ret; -} -#else -__ai int32x4_t vqdmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vqdmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmulhq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vqdmulhq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmulhq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vqdmulhq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqdmulhq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vqdmulhq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqdmulhq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vqdmulhq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqdmulh_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vqdmulh_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqdmulh_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vqdmulh_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqdmulh_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vqdmulh_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqdmulh_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vqdmulh_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulhq_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vqdmulhq_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmulhq_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmulhq_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulhq_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = vqdmulhq_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmulhq_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __noswap_vqdmulhq_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulh_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = vqdmulh_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmulh_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __ret; \ - __ret = __noswap_vqdmulh_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulh_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = vqdmulh_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmulh_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __noswap_vqdmulh_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmulhq_n_s32(int32x4_t __p0, int32_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)(int32x4_t) {__p1, __p1, __p1, __p1}, 34); - return __ret; -} -#else -__ai int32x4_t vqdmulhq_n_s32(int32x4_t __p0, int32_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmulhq_v((int8x16_t)__rev0, (int8x16_t)(int32x4_t) {__p1, __p1, __p1, __p1}, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqdmulhq_n_s16(int16x8_t __p0, int16_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)(int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}, 33); - return __ret; -} -#else -__ai int16x8_t vqdmulhq_n_s16(int16x8_t __p0, int16_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqdmulhq_v((int8x16_t)__rev0, (int8x16_t)(int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqdmulh_n_s32(int32x2_t __p0, int32_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 2); - return __ret; -} -#else -__ai int32x2_t vqdmulh_n_s32(int32x2_t __p0, int32_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqdmulh_v((int8x8_t)__rev0, (int8x8_t)(int32x2_t) {__p1, __p1}, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqdmulh_n_s16(int16x4_t __p0, int16_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 1); - return __ret; -} -#else -__ai int16x4_t vqdmulh_n_s16(int16x4_t __p0, int16_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqdmulh_v((int8x8_t)__rev0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmull_s32(int32x2_t __p0, int32x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vqdmull_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vqdmull_s32(int32x2_t __p0, int32x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)__p1, 35); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmull_s16(int16x4_t __p0, int16x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vqdmull_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vqdmull_s16(int16x4_t __p0, int16x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)__p1, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmull_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = vqdmull_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmull_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmull_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmull_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vqdmull_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmull_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmull_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmull_n_s32(int32x2_t __p0, int32_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35); - return __ret; -} -#else -__ai int64x2_t vqdmull_n_s32(int32x2_t __p0, int32_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__rev0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vqdmull_n_s32(int32x2_t __p0, int32_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmull_n_s16(int16x4_t __p0, int16_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34); - return __ret; -} -#else -__ai int32x4_t vqdmull_n_s16(int16x4_t __p0, int16_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__rev0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vqdmull_n_s16(int16x4_t __p0, int16_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vqmovn_u32(uint32x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vqmovn_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint16x4_t __noswap_vqmovn_u32(uint32x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 17); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vqmovn_u64(uint64x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vqmovn_u64(uint64x2_t __p0) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint32x2_t __noswap_vqmovn_u64(uint64x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 18); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqmovn_u16(uint16x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vqmovn_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x8_t __noswap_vqmovn_u16(uint16x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 16); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqmovn_s32(int32x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vqmovn_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vqmovn_s32(int32x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqmovn_s64(int64x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vqmovn_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vqmovn_s64(int64x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqmovn_s16(int16x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 0); - return __ret; -} -#else -__ai int8x8_t vqmovn_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int8x8_t __noswap_vqmovn_s16(int16x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vqmovun_s32(int32x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vqmovun_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqmovun_v((int8x16_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint16x4_t __noswap_vqmovun_s32(int32x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 17); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vqmovun_s64(int64x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vqmovun_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqmovun_v((int8x16_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint32x2_t __noswap_vqmovun_s64(int64x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 18); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqmovun_s16(int16x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vqmovun_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqmovun_v((int8x16_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x8_t __noswap_vqmovun_s16(int16x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 16); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqnegq_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqnegq_v((int8x16_t)__p0, 32); - return __ret; -} -#else -__ai int8x16_t vqnegq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqnegq_v((int8x16_t)__rev0, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqnegq_s32(int32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqnegq_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vqnegq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqnegq_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqnegq_s16(int16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqnegq_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vqnegq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqnegq_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqneg_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqneg_v((int8x8_t)__p0, 0); - return __ret; -} -#else -__ai int8x8_t vqneg_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqneg_v((int8x8_t)__rev0, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqneg_s32(int32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqneg_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vqneg_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqneg_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqneg_s16(int16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqneg_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vqneg_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqneg_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqrdmulhq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vqrdmulhq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vqrdmulhq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqrdmulhq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vqrdmulhq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vqrdmulhq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqrdmulh_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vqrdmulh_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqrdmulh_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vqrdmulh_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqrdmulh_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vqrdmulh_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqrdmulh_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vqrdmulh_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulhq_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vqrdmulhq_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqrdmulhq_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqrdmulhq_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulhq_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = vqrdmulhq_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqrdmulhq_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __noswap_vqrdmulhq_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulh_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = vqrdmulh_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqrdmulh_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __ret; \ - __ret = __noswap_vqrdmulh_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulh_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = vqrdmulh_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqrdmulh_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __noswap_vqrdmulh_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqrdmulhq_n_s32(int32x4_t __p0, int32_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)(int32x4_t) {__p1, __p1, __p1, __p1}, 34); - return __ret; -} -#else -__ai int32x4_t vqrdmulhq_n_s32(int32x4_t __p0, int32_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__rev0, (int8x16_t)(int32x4_t) {__p1, __p1, __p1, __p1}, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqrdmulhq_n_s16(int16x8_t __p0, int16_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)(int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}, 33); - return __ret; -} -#else -__ai int16x8_t vqrdmulhq_n_s16(int16x8_t __p0, int16_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__rev0, (int8x16_t)(int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqrdmulh_n_s32(int32x2_t __p0, int32_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 2); - return __ret; -} -#else -__ai int32x2_t vqrdmulh_n_s32(int32x2_t __p0, int32_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqrdmulh_v((int8x8_t)__rev0, (int8x8_t)(int32x2_t) {__p1, __p1}, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqrdmulh_n_s16(int16x4_t __p0, int16_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 1); - return __ret; -} -#else -__ai int16x4_t vqrdmulh_n_s16(int16x4_t __p0, int16_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqrdmulh_v((int8x8_t)__rev0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqrshlq_u8(uint8x16_t __p0, int8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vqrshlq_u8(uint8x16_t __p0, int8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vqrshlq_u32(uint32x4_t __p0, int32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vqrshlq_u32(uint32x4_t __p0, int32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vqrshlq_u64(uint64x2_t __p0, int64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vqrshlq_u64(uint64x2_t __p0, int64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vqrshlq_u16(uint16x8_t __p0, int16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vqrshlq_u16(uint16x8_t __p0, int16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqrshlq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vqrshlq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqrshlq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vqrshlq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqrshlq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vqrshlq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqrshlq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vqrshlq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqrshl_u8(uint8x8_t __p0, int8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vqrshl_u8(uint8x8_t __p0, int8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vqrshl_u32(uint32x2_t __p0, int32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vqrshl_u32(uint32x2_t __p0, int32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vqrshl_u64(uint64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vqrshl_u64(uint64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vqrshl_u16(uint16x4_t __p0, int16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vqrshl_u16(uint16x4_t __p0, int16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqrshl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vqrshl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqrshl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vqrshl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vqrshl_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#else -__ai int64x1_t vqrshl_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqrshl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vqrshl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vqrshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqrshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vqrshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vqrshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vqrshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqrshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 1); \ - __ret; \ -}) -#else -#define vqrshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqrshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 2); \ - __ret; \ -}) -#else -#define vqrshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vqrshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 0); \ - __ret; \ -}) -#else -#define vqrshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqrshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrun_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vqrshrun_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqrshrun_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrun_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vqrshrun_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vqrshrun_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrun_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vqrshrun_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqrshrun_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqshlq_u8(uint8x16_t __p0, int8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vqshlq_u8(uint8x16_t __p0, int8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vqshlq_u32(uint32x4_t __p0, int32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vqshlq_u32(uint32x4_t __p0, int32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vqshlq_u64(uint64x2_t __p0, int64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vqshlq_u64(uint64x2_t __p0, int64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vqshlq_u16(uint16x8_t __p0, int16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vqshlq_u16(uint16x8_t __p0, int16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqshlq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vqshlq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqshlq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vqshlq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqshlq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vqshlq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqshlq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vqshlq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqshl_u8(uint8x8_t __p0, int8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vqshl_u8(uint8x8_t __p0, int8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vqshl_u32(uint32x2_t __p0, int32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vqshl_u32(uint32x2_t __p0, int32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vqshl_u64(uint64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vqshl_u64(uint64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vqshl_u16(uint16x4_t __p0, int16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vqshl_u16(uint16x4_t __p0, int16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqshl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vqshl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqshl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vqshl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vqshl_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#else -__ai int64x1_t vqshl_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqshl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vqshl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlq_n_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 48); \ - __ret; \ -}) -#else -#define vqshlq_n_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlq_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 50); \ - __ret; \ -}) -#else -#define vqshlq_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlq_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 51); \ - __ret; \ -}) -#else -#define vqshlq_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlq_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 49); \ - __ret; \ -}) -#else -#define vqshlq_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlq_n_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 32); \ - __ret; \ -}) -#else -#define vqshlq_n_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlq_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 34); \ - __ret; \ -}) -#else -#define vqshlq_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlq_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 35); \ - __ret; \ -}) -#else -#define vqshlq_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlq_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 33); \ - __ret; \ -}) -#else -#define vqshlq_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshl_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vqshl_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshl_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vqshl_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshl_n_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#else -#define vqshl_n_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshl_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vqshl_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshl_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 0); \ - __ret; \ -}) -#else -#define vqshl_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshl_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 2); \ - __ret; \ -}) -#else -#define vqshl_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshl_n_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#else -#define vqshl_n_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshl_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 1); \ - __ret; \ -}) -#else -#define vqshl_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshluq_n_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vqshluq_n_v((int8x16_t)__s0, __p1, 48); \ - __ret; \ -}) -#else -#define vqshluq_n_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vqshluq_n_v((int8x16_t)__rev0, __p1, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshluq_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vqshluq_n_v((int8x16_t)__s0, __p1, 50); \ - __ret; \ -}) -#else -#define vqshluq_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vqshluq_n_v((int8x16_t)__rev0, __p1, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshluq_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vqshluq_n_v((int8x16_t)__s0, __p1, 51); \ - __ret; \ -}) -#else -#define vqshluq_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vqshluq_n_v((int8x16_t)__rev0, __p1, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshluq_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vqshluq_n_v((int8x16_t)__s0, __p1, 49); \ - __ret; \ -}) -#else -#define vqshluq_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vqshluq_n_v((int8x16_t)__rev0, __p1, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlu_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqshlu_n_v((int8x8_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vqshlu_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqshlu_n_v((int8x8_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlu_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqshlu_n_v((int8x8_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vqshlu_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqshlu_n_v((int8x8_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlu_n_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vqshlu_n_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#else -#define vqshlu_n_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vqshlu_n_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlu_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqshlu_n_v((int8x8_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vqshlu_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqshlu_n_v((int8x8_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vqshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vqshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vqshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vqshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 1); \ - __ret; \ -}) -#else -#define vqshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 2); \ - __ret; \ -}) -#else -#define vqshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vqshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 0); \ - __ret; \ -}) -#else -#define vqshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrun_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vqshrun_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqshrun_n_v((int8x16_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqshrun_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrun_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vqshrun_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqshrun_n_v((int8x16_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vqshrun_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrun_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vqshrun_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqshrun_n_v((int8x16_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vqshrun_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqsubq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vqsubq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vqsubq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vqsubq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vqsubq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vqsubq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vqsubq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vqsubq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqsubq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vqsubq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqsubq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vqsubq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vqsubq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqsubq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vqsubq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqsubq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vqsubq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vqsubq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqsub_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vqsub_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vqsub_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vqsub_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vqsub_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vqsub_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vqsub_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vqsub_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqsub_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vqsub_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqsub_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vqsub_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vqsub_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vqsub_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#else -__ai int64x1_t vqsub_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqsub_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vqsub_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vqsub_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vraddhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vraddhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint16x4_t __noswap_vraddhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vraddhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vraddhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint32x2_t __noswap_vraddhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vraddhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vraddhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x8_t __noswap_vraddhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vraddhn_s32(int32x4_t __p0, int32x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vraddhn_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vraddhn_s32(int32x4_t __p0, int32x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vraddhn_s64(int64x2_t __p0, int64x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vraddhn_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vraddhn_s64(int64x2_t __p0, int64x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vraddhn_s16(int16x8_t __p0, int16x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vraddhn_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int8x8_t __noswap_vraddhn_s16(int16x8_t __p0, int16x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vrecpeq_u32(uint32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vrecpeq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vrecpeq_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vrecpeq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrecpeq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrecpeq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vrecpeq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrecpeq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vrecpe_u32(uint32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrecpe_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vrecpe_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrecpe_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrecpe_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrecpe_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vrecpe_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrecpe_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrecpsq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrecpsq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vrecpsq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrecpsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrecps_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrecps_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vrecps_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrecps_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vrev16_p8(poly8x8_t __p0) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6); - return __ret; -} -#else -__ai poly8x8_t vrev16_p8(poly8x8_t __p0) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vrev16q_p8(poly8x16_t __p0) { - poly8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); - return __ret; -} -#else -__ai poly8x16_t vrev16q_p8(poly8x16_t __p0) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vrev16q_u8(uint8x16_t __p0) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); - return __ret; -} -#else -__ai uint8x16_t vrev16q_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vrev16q_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); - return __ret; -} -#else -__ai int8x16_t vrev16q_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vrev16_u8(uint8x8_t __p0) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6); - return __ret; -} -#else -__ai uint8x8_t vrev16_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vrev16_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6); - return __ret; -} -#else -__ai int8x8_t vrev16_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vrev32_p8(poly8x8_t __p0) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4); - return __ret; -} -#else -__ai poly8x8_t vrev32_p8(poly8x8_t __p0) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vrev32_p16(poly16x4_t __p0) { - poly16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2); - return __ret; -} -#else -__ai poly16x4_t vrev32_p16(poly16x4_t __p0) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vrev32q_p8(poly8x16_t __p0) { - poly8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); - return __ret; -} -#else -__ai poly8x16_t vrev32q_p8(poly8x16_t __p0) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vrev32q_p16(poly16x8_t __p0) { - poly16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6); - return __ret; -} -#else -__ai poly16x8_t vrev32q_p16(poly16x8_t __p0) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vrev32q_u8(uint8x16_t __p0) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); - return __ret; -} -#else -__ai uint8x16_t vrev32q_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vrev32q_u16(uint16x8_t __p0) { - uint16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6); - return __ret; -} -#else -__ai uint16x8_t vrev32q_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vrev32q_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); - return __ret; -} -#else -__ai int8x16_t vrev32q_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vrev32q_s16(int16x8_t __p0) { - int16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6); - return __ret; -} -#else -__ai int16x8_t vrev32q_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vrev32_u8(uint8x8_t __p0) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4); - return __ret; -} -#else -__ai uint8x8_t vrev32_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vrev32_u16(uint16x4_t __p0) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2); - return __ret; -} -#else -__ai uint16x4_t vrev32_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vrev32_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4); - return __ret; -} -#else -__ai int8x8_t vrev32_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vrev32_s16(int16x4_t __p0) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2); - return __ret; -} -#else -__ai int16x4_t vrev32_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vrev64_p8(poly8x8_t __p0) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#else -__ai poly8x8_t vrev64_p8(poly8x8_t __p0) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vrev64_p16(poly16x4_t __p0) { - poly16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - return __ret; -} -#else -__ai poly16x4_t vrev64_p16(poly16x4_t __p0) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vrev64q_p8(poly8x16_t __p0) { - poly8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); - return __ret; -} -#else -__ai poly8x16_t vrev64q_p8(poly8x16_t __p0) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vrev64q_p16(poly16x8_t __p0) { - poly16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4); - return __ret; -} -#else -__ai poly16x8_t vrev64q_p16(poly16x8_t __p0) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vrev64q_u8(uint8x16_t __p0) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); - return __ret; -} -#else -__ai uint8x16_t vrev64q_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vrev64q_u32(uint32x4_t __p0) { - uint32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2); - return __ret; -} -#else -__ai uint32x4_t vrev64q_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vrev64q_u16(uint16x8_t __p0) { - uint16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4); - return __ret; -} -#else -__ai uint16x8_t vrev64q_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vrev64q_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); - return __ret; -} -#else -__ai int8x16_t vrev64q_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrev64q_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2); - return __ret; -} -#else -__ai float32x4_t vrev64q_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vrev64q_s32(int32x4_t __p0) { - int32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2); - return __ret; -} -#else -__ai int32x4_t vrev64q_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vrev64q_s16(int16x8_t __p0) { - int16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4); - return __ret; -} -#else -__ai int16x8_t vrev64q_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vrev64_u8(uint8x8_t __p0) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#else -__ai uint8x8_t vrev64_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vrev64_u32(uint32x2_t __p0) { - uint32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0); - return __ret; -} -#else -__ai uint32x2_t vrev64_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vrev64_u16(uint16x4_t __p0) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - return __ret; -} -#else -__ai uint16x4_t vrev64_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vrev64_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#else -__ai int8x8_t vrev64_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrev64_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0); - return __ret; -} -#else -__ai float32x2_t vrev64_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vrev64_s32(int32x2_t __p0) { - int32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1, 0); - return __ret; -} -#else -__ai int32x2_t vrev64_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vrev64_s16(int16x4_t __p0) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - return __ret; -} -#else -__ai int16x4_t vrev64_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vrhaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vrhaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vrhaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vrhaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vrhaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vrhaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vrhaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vrhaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vrhaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vrhaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vrhaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vrhaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vrhadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vrhadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vrhadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vrhadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vrhadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vrhadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vrhadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vrhadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vrhadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vrhadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vrhadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vrhadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vrshlq_u8(uint8x16_t __p0, int8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vrshlq_u8(uint8x16_t __p0, int8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vrshlq_u32(uint32x4_t __p0, int32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vrshlq_u32(uint32x4_t __p0, int32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vrshlq_u64(uint64x2_t __p0, int64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vrshlq_u64(uint64x2_t __p0, int64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vrshlq_u16(uint16x8_t __p0, int16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vrshlq_u16(uint16x8_t __p0, int16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vrshlq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vrshlq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vrshlq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vrshlq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vrshlq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vrshlq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vrshlq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vrshlq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vrshl_u8(uint8x8_t __p0, int8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vrshl_u8(uint8x8_t __p0, int8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vrshl_u32(uint32x2_t __p0, int32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vrshl_u32(uint32x2_t __p0, int32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vrshl_u64(uint64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vrshl_u64(uint64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vrshl_u16(uint16x4_t __p0, int16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vrshl_u16(uint16x4_t __p0, int16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vrshl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vrshl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vrshl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vrshl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vrshl_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#else -__ai int64x1_t vrshl_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vrshl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vrshl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrq_n_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 48); \ - __ret; \ -}) -#else -#define vrshrq_n_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrq_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 50); \ - __ret; \ -}) -#else -#define vrshrq_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrq_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 51); \ - __ret; \ -}) -#else -#define vrshrq_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrq_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 49); \ - __ret; \ -}) -#else -#define vrshrq_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrq_n_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 32); \ - __ret; \ -}) -#else -#define vrshrq_n_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrq_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 34); \ - __ret; \ -}) -#else -#define vrshrq_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrq_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 35); \ - __ret; \ -}) -#else -#define vrshrq_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrq_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 33); \ - __ret; \ -}) -#else -#define vrshrq_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshr_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vrshr_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshr_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vrshr_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshr_n_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#else -#define vrshr_n_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshr_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vrshr_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshr_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 0); \ - __ret; \ -}) -#else -#define vrshr_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshr_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 2); \ - __ret; \ -}) -#else -#define vrshr_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshr_n_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#else -#define vrshr_n_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshr_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 1); \ - __ret; \ -}) -#else -#define vrshr_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vrshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vrshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vrshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vrshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vrshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vrshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 1); \ - __ret; \ -}) -#else -#define vrshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vrshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 2); \ - __ret; \ -}) -#else -#define vrshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vrshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 0); \ - __ret; \ -}) -#else -#define vrshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vrshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vrsqrteq_u32(uint32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vrsqrteq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vrsqrteq_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vrsqrteq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrsqrteq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrsqrteq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vrsqrteq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrsqrteq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vrsqrte_u32(uint32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrsqrte_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vrsqrte_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrsqrte_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrsqrte_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrsqrte_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vrsqrte_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrsqrte_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrsqrtsq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrsqrtsq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vrsqrtsq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrsqrtsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrsqrts_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrsqrts_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vrsqrts_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrsqrts_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsraq_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 48); \ - __ret; \ -}) -#else -#define vrsraq_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsraq_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 50); \ - __ret; \ -}) -#else -#define vrsraq_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsraq_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \ - __ret; \ -}) -#else -#define vrsraq_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsraq_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 49); \ - __ret; \ -}) -#else -#define vrsraq_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsraq_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 32); \ - __ret; \ -}) -#else -#define vrsraq_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsraq_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 34); \ - __ret; \ -}) -#else -#define vrsraq_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsraq_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 35); \ - __ret; \ -}) -#else -#define vrsraq_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsraq_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 33); \ - __ret; \ -}) -#else -#define vrsraq_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsra_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 16); \ - __ret; \ -}) -#else -#define vrsra_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsra_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 18); \ - __ret; \ -}) -#else -#define vrsra_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsra_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#else -#define vrsra_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsra_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 17); \ - __ret; \ -}) -#else -#define vrsra_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsra_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 0); \ - __ret; \ -}) -#else -#define vrsra_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsra_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 2); \ - __ret; \ -}) -#else -#define vrsra_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsra_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#else -#define vrsra_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsra_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 1); \ - __ret; \ -}) -#else -#define vrsra_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vrsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vrsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint16x4_t __noswap_vrsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vrsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vrsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint32x2_t __noswap_vrsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vrsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vrsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x8_t __noswap_vrsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vrsubhn_s32(int32x4_t __p0, int32x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vrsubhn_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vrsubhn_s32(int32x4_t __p0, int32x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vrsubhn_s64(int64x2_t __p0, int64x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vrsubhn_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vrsubhn_s64(int64x2_t __p0, int64x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vrsubhn_s16(int16x8_t __p0, int16x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vrsubhn_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int8x8_t __noswap_vrsubhn_s16(int16x8_t __p0, int16x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8_t __s0 = __p0; \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8_t __s0 = __p0; \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vset_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8_t __s0 = __p0; \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16_t __s0 = __p0; \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16_t __s0 = __p0; \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vset_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16_t __s0 = __p0; \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8_t __s0 = __p0; \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8_t __s0 = __p0; \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8_t __s0 = __p0; \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16_t __s0 = __p0; \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16_t __s0 = __p0; \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16_t __s0 = __p0; \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vsetq_lane_f32(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vsetq_lane_f32(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vsetq_lane_f32(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vset_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vset_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#define __noswap_vset_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vset_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vset_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vset_lane_f32(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vset_lane_f32(__s0, (int8x8_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vset_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vset_lane_f32(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vset_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#define __noswap_vset_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vset_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vshlq_u8(uint8x16_t __p0, int8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vshlq_u8(uint8x16_t __p0, int8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vshlq_u32(uint32x4_t __p0, int32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vshlq_u32(uint32x4_t __p0, int32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vshlq_u64(uint64x2_t __p0, int64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vshlq_u64(uint64x2_t __p0, int64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vshlq_u16(uint16x8_t __p0, int16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vshlq_u16(uint16x8_t __p0, int16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vshlq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vshlq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vshlq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vshlq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vshlq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vshlq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vshlq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vshlq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vshl_u8(uint8x8_t __p0, int8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vshl_u8(uint8x8_t __p0, int8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vshl_u32(uint32x2_t __p0, int32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vshl_u32(uint32x2_t __p0, int32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vshl_u64(uint64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vshl_u64(uint64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vshl_u16(uint16x4_t __p0, int16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vshl_u16(uint16x4_t __p0, int16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vshl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vshl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vshl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vshl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vshl_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#else -__ai int64x1_t vshl_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshlq_n_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 48); \ - __ret; \ -}) -#else -#define vshlq_n_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshlq_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 50); \ - __ret; \ -}) -#else -#define vshlq_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshlq_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 51); \ - __ret; \ -}) -#else -#define vshlq_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshlq_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 49); \ - __ret; \ -}) -#else -#define vshlq_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshlq_n_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 32); \ - __ret; \ -}) -#else -#define vshlq_n_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshlq_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 34); \ - __ret; \ -}) -#else -#define vshlq_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshlq_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 35); \ - __ret; \ -}) -#else -#define vshlq_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshlq_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 33); \ - __ret; \ -}) -#else -#define vshlq_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshl_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vshl_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshl_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vshl_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshl_n_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#else -#define vshl_n_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshl_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vshl_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshl_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 0); \ - __ret; \ -}) -#else -#define vshl_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshl_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 2); \ - __ret; \ -}) -#else -#define vshl_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshl_n_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#else -#define vshl_n_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshl_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 1); \ - __ret; \ -}) -#else -#define vshl_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 49); \ - __ret; \ -}) -#else -#define vshll_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vshll_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 49); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 51); \ - __ret; \ -}) -#else -#define vshll_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vshll_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 51); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 50); \ - __ret; \ -}) -#else -#define vshll_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vshll_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 50); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 33); \ - __ret; \ -}) -#else -#define vshll_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vshll_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 33); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 35); \ - __ret; \ -}) -#else -#define vshll_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vshll_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 35); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 34); \ - __ret; \ -}) -#else -#define vshll_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vshll_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 34); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrq_n_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 48); \ - __ret; \ -}) -#else -#define vshrq_n_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrq_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 50); \ - __ret; \ -}) -#else -#define vshrq_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrq_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 51); \ - __ret; \ -}) -#else -#define vshrq_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrq_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 49); \ - __ret; \ -}) -#else -#define vshrq_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrq_n_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 32); \ - __ret; \ -}) -#else -#define vshrq_n_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrq_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 34); \ - __ret; \ -}) -#else -#define vshrq_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrq_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 35); \ - __ret; \ -}) -#else -#define vshrq_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrq_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 33); \ - __ret; \ -}) -#else -#define vshrq_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshr_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vshr_n_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshr_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vshr_n_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshr_n_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#else -#define vshr_n_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshr_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vshr_n_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshr_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 0); \ - __ret; \ -}) -#else -#define vshr_n_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshr_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 2); \ - __ret; \ -}) -#else -#define vshr_n_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshr_n_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#else -#define vshr_n_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshr_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 1); \ - __ret; \ -}) -#else -#define vshr_n_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vshrn_n_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 17); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#else -#define vshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vshrn_n_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 18); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#else -#define vshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vshrn_n_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 16); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 1); \ - __ret; \ -}) -#else -#define vshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vshrn_n_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 2); \ - __ret; \ -}) -#else -#define vshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vshrn_n_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 0); \ - __ret; \ -}) -#else -#define vshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vshrn_n_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 4); \ - __ret; \ -}) -#else -#define vsli_n_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 4); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 5); \ - __ret; \ -}) -#else -#define vsli_n_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 5); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 36); \ - __ret; \ -}) -#else -#define vsliq_n_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 36); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 37); \ - __ret; \ -}) -#else -#define vsliq_n_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 37); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 48); \ - __ret; \ -}) -#else -#define vsliq_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 50); \ - __ret; \ -}) -#else -#define vsliq_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \ - __ret; \ -}) -#else -#define vsliq_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 49); \ - __ret; \ -}) -#else -#define vsliq_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 32); \ - __ret; \ -}) -#else -#define vsliq_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 34); \ - __ret; \ -}) -#else -#define vsliq_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 35); \ - __ret; \ -}) -#else -#define vsliq_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 33); \ - __ret; \ -}) -#else -#define vsliq_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 16); \ - __ret; \ -}) -#else -#define vsli_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 18); \ - __ret; \ -}) -#else -#define vsli_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#else -#define vsli_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 17); \ - __ret; \ -}) -#else -#define vsli_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 0); \ - __ret; \ -}) -#else -#define vsli_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 2); \ - __ret; \ -}) -#else -#define vsli_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#else -#define vsli_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 1); \ - __ret; \ -}) -#else -#define vsli_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsraq_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 48); \ - __ret; \ -}) -#else -#define vsraq_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsraq_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 50); \ - __ret; \ -}) -#else -#define vsraq_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsraq_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \ - __ret; \ -}) -#else -#define vsraq_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsraq_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 49); \ - __ret; \ -}) -#else -#define vsraq_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsraq_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 32); \ - __ret; \ -}) -#else -#define vsraq_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsraq_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 34); \ - __ret; \ -}) -#else -#define vsraq_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsraq_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 35); \ - __ret; \ -}) -#else -#define vsraq_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsraq_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 33); \ - __ret; \ -}) -#else -#define vsraq_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsra_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 16); \ - __ret; \ -}) -#else -#define vsra_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsra_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 18); \ - __ret; \ -}) -#else -#define vsra_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsra_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#else -#define vsra_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsra_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 17); \ - __ret; \ -}) -#else -#define vsra_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsra_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 0); \ - __ret; \ -}) -#else -#define vsra_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsra_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 2); \ - __ret; \ -}) -#else -#define vsra_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsra_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#else -#define vsra_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsra_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 1); \ - __ret; \ -}) -#else -#define vsra_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 4); \ - __ret; \ -}) -#else -#define vsri_n_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __ret; \ - __ret = (poly8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 4); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 5); \ - __ret; \ -}) -#else -#define vsri_n_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - poly16x4_t __ret; \ - __ret = (poly16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 5); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 36); \ - __ret; \ -}) -#else -#define vsriq_n_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __ret; \ - __ret = (poly8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 36); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 37); \ - __ret; \ -}) -#else -#define vsriq_n_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __ret; \ - __ret = (poly16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 37); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 48); \ - __ret; \ -}) -#else -#define vsriq_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = (uint8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 48); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 50); \ - __ret; \ -}) -#else -#define vsriq_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = (uint32x4_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 50); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \ - __ret; \ -}) -#else -#define vsriq_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 49); \ - __ret; \ -}) -#else -#define vsriq_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 32); \ - __ret; \ -}) -#else -#define vsriq_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = (int8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 32); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 34); \ - __ret; \ -}) -#else -#define vsriq_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = (int32x4_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 34); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 35); \ - __ret; \ -}) -#else -#define vsriq_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __s1 = __p1; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 33); \ - __ret; \ -}) -#else -#define vsriq_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 16); \ - __ret; \ -}) -#else -#define vsri_n_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = (uint8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 16); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 18); \ - __ret; \ -}) -#else -#define vsri_n_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __ret; \ - __ret = (uint32x2_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 18); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#else -#define vsri_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64x1_t __s1 = __p1; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 17); \ - __ret; \ -}) -#else -#define vsri_n_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 0); \ - __ret; \ -}) -#else -#define vsri_n_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = (int8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 0); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 2); \ - __ret; \ -}) -#else -#define vsri_n_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __ret; \ - __ret = (int32x2_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#else -#define vsri_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64x1_t __s1 = __p1; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 1); \ - __ret; \ -}) -#else -#define vsri_n_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 4); \ -}) -#else -#define vst1_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 5); \ -}) -#else -#define vst1_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 36); \ -}) -#else -#define vst1q_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 37); \ -}) -#else -#define vst1q_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 48); \ -}) -#else -#define vst1q_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 50); \ -}) -#else -#define vst1q_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 51); \ -}) -#else -#define vst1q_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 49); \ -}) -#else -#define vst1q_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 32); \ -}) -#else -#define vst1q_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s1 = __p1; \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 41); \ -}) -#else -#define vst1q_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s1 = __p1; \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 34); \ -}) -#else -#define vst1q_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 35); \ -}) -#else -#define vst1q_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s1 = __p1; \ - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 33); \ -}) -#else -#define vst1q_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 16); \ -}) -#else -#define vst1_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 18); \ -}) -#else -#define vst1_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 19); \ -}) -#else -#define vst1_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 17); \ -}) -#else -#define vst1_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 0); \ -}) -#else -#define vst1_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s1 = __p1; \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 9); \ -}) -#else -#define vst1_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s1 = __p1; \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 2); \ -}) -#else -#define vst1_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 3); \ -}) -#else -#define vst1_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 1); \ -}) -#else -#define vst1_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 4); \ -}) -#else -#define vst1_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8_t __s1 = __p1; \ - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 5); \ -}) -#else -#define vst1_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4_t __s1 = __p1; \ - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 36); \ -}) -#else -#define vst1q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16_t __s1 = __p1; \ - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 37); \ -}) -#else -#define vst1q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8_t __s1 = __p1; \ - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 48); \ -}) -#else -#define vst1q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 50); \ -}) -#else -#define vst1q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 51); \ -}) -#else -#define vst1q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2_t __s1 = __p1; \ - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 49); \ -}) -#else -#define vst1q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 32); \ -}) -#else -#define vst1q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16_t __s1 = __p1; \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 41); \ -}) -#else -#define vst1q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s1 = __p1; \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 34); \ -}) -#else -#define vst1q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 35); \ -}) -#else -#define vst1q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2_t __s1 = __p1; \ - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 33); \ -}) -#else -#define vst1q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 16); \ -}) -#else -#define vst1_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 18); \ -}) -#else -#define vst1_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 19); \ -}) -#else -#define vst1_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 17); \ -}) -#else -#define vst1_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 0); \ -}) -#else -#define vst1_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8_t __s1 = __p1; \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 9); \ -}) -#else -#define vst1_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s1 = __p1; \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 2); \ -}) -#else -#define vst1_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s1 = __p1; \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 3); \ -}) -#else -#define vst1_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 1); \ -}) -#else -#define vst1_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s1 = __p1; \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p8_x2(__p0, __p1) __extension__ ({ \ - poly8x8x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 4); \ -}) -#else -#define vst1_p8_x2(__p0, __p1) __extension__ ({ \ - poly8x8x2_t __s1 = __p1; \ - poly8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p16_x2(__p0, __p1) __extension__ ({ \ - poly16x4x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 5); \ -}) -#else -#define vst1_p16_x2(__p0, __p1) __extension__ ({ \ - poly16x4x2_t __s1 = __p1; \ - poly16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p8_x2(__p0, __p1) __extension__ ({ \ - poly8x16x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 36); \ -}) -#else -#define vst1q_p8_x2(__p0, __p1) __extension__ ({ \ - poly8x16x2_t __s1 = __p1; \ - poly8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p16_x2(__p0, __p1) __extension__ ({ \ - poly16x8x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 37); \ -}) -#else -#define vst1q_p16_x2(__p0, __p1) __extension__ ({ \ - poly16x8x2_t __s1 = __p1; \ - poly16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u8_x2(__p0, __p1) __extension__ ({ \ - uint8x16x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 48); \ -}) -#else -#define vst1q_u8_x2(__p0, __p1) __extension__ ({ \ - uint8x16x2_t __s1 = __p1; \ - uint8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u32_x2(__p0, __p1) __extension__ ({ \ - uint32x4x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 50); \ -}) -#else -#define vst1q_u32_x2(__p0, __p1) __extension__ ({ \ - uint32x4x2_t __s1 = __p1; \ - uint32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u64_x2(__p0, __p1) __extension__ ({ \ - uint64x2x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 51); \ -}) -#else -#define vst1q_u64_x2(__p0, __p1) __extension__ ({ \ - uint64x2x2_t __s1 = __p1; \ - uint64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u16_x2(__p0, __p1) __extension__ ({ \ - uint16x8x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 49); \ -}) -#else -#define vst1q_u16_x2(__p0, __p1) __extension__ ({ \ - uint16x8x2_t __s1 = __p1; \ - uint16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s8_x2(__p0, __p1) __extension__ ({ \ - int8x16x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 32); \ -}) -#else -#define vst1q_s8_x2(__p0, __p1) __extension__ ({ \ - int8x16x2_t __s1 = __p1; \ - int8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f32_x2(__p0, __p1) __extension__ ({ \ - float32x4x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 41); \ -}) -#else -#define vst1q_f32_x2(__p0, __p1) __extension__ ({ \ - float32x4x2_t __s1 = __p1; \ - float32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s32_x2(__p0, __p1) __extension__ ({ \ - int32x4x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 34); \ -}) -#else -#define vst1q_s32_x2(__p0, __p1) __extension__ ({ \ - int32x4x2_t __s1 = __p1; \ - int32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s64_x2(__p0, __p1) __extension__ ({ \ - int64x2x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 35); \ -}) -#else -#define vst1q_s64_x2(__p0, __p1) __extension__ ({ \ - int64x2x2_t __s1 = __p1; \ - int64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s16_x2(__p0, __p1) __extension__ ({ \ - int16x8x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 33); \ -}) -#else -#define vst1q_s16_x2(__p0, __p1) __extension__ ({ \ - int16x8x2_t __s1 = __p1; \ - int16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u8_x2(__p0, __p1) __extension__ ({ \ - uint8x8x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 16); \ -}) -#else -#define vst1_u8_x2(__p0, __p1) __extension__ ({ \ - uint8x8x2_t __s1 = __p1; \ - uint8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u32_x2(__p0, __p1) __extension__ ({ \ - uint32x2x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 18); \ -}) -#else -#define vst1_u32_x2(__p0, __p1) __extension__ ({ \ - uint32x2x2_t __s1 = __p1; \ - uint32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u64_x2(__p0, __p1) __extension__ ({ \ - uint64x1x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 19); \ -}) -#else -#define vst1_u64_x2(__p0, __p1) __extension__ ({ \ - uint64x1x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u16_x2(__p0, __p1) __extension__ ({ \ - uint16x4x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 17); \ -}) -#else -#define vst1_u16_x2(__p0, __p1) __extension__ ({ \ - uint16x4x2_t __s1 = __p1; \ - uint16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s8_x2(__p0, __p1) __extension__ ({ \ - int8x8x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 0); \ -}) -#else -#define vst1_s8_x2(__p0, __p1) __extension__ ({ \ - int8x8x2_t __s1 = __p1; \ - int8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f32_x2(__p0, __p1) __extension__ ({ \ - float32x2x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 9); \ -}) -#else -#define vst1_f32_x2(__p0, __p1) __extension__ ({ \ - float32x2x2_t __s1 = __p1; \ - float32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst1_x2_v(__p0, __rev1.val[0], __rev1.val[1], 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s32_x2(__p0, __p1) __extension__ ({ \ - int32x2x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 2); \ -}) -#else -#define vst1_s32_x2(__p0, __p1) __extension__ ({ \ - int32x2x2_t __s1 = __p1; \ - int32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst1_x2_v(__p0, __rev1.val[0], __rev1.val[1], 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s64_x2(__p0, __p1) __extension__ ({ \ - int64x1x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 3); \ -}) -#else -#define vst1_s64_x2(__p0, __p1) __extension__ ({ \ - int64x1x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s16_x2(__p0, __p1) __extension__ ({ \ - int16x4x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 1); \ -}) -#else -#define vst1_s16_x2(__p0, __p1) __extension__ ({ \ - int16x4x2_t __s1 = __p1; \ - int16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst1_x2_v(__p0, __rev1.val[0], __rev1.val[1], 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p8_x3(__p0, __p1) __extension__ ({ \ - poly8x8x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 4); \ -}) -#else -#define vst1_p8_x3(__p0, __p1) __extension__ ({ \ - poly8x8x3_t __s1 = __p1; \ - poly8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p16_x3(__p0, __p1) __extension__ ({ \ - poly16x4x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 5); \ -}) -#else -#define vst1_p16_x3(__p0, __p1) __extension__ ({ \ - poly16x4x3_t __s1 = __p1; \ - poly16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p8_x3(__p0, __p1) __extension__ ({ \ - poly8x16x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 36); \ -}) -#else -#define vst1q_p8_x3(__p0, __p1) __extension__ ({ \ - poly8x16x3_t __s1 = __p1; \ - poly8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p16_x3(__p0, __p1) __extension__ ({ \ - poly16x8x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 37); \ -}) -#else -#define vst1q_p16_x3(__p0, __p1) __extension__ ({ \ - poly16x8x3_t __s1 = __p1; \ - poly16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u8_x3(__p0, __p1) __extension__ ({ \ - uint8x16x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 48); \ -}) -#else -#define vst1q_u8_x3(__p0, __p1) __extension__ ({ \ - uint8x16x3_t __s1 = __p1; \ - uint8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u32_x3(__p0, __p1) __extension__ ({ \ - uint32x4x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 50); \ -}) -#else -#define vst1q_u32_x3(__p0, __p1) __extension__ ({ \ - uint32x4x3_t __s1 = __p1; \ - uint32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u64_x3(__p0, __p1) __extension__ ({ \ - uint64x2x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 51); \ -}) -#else -#define vst1q_u64_x3(__p0, __p1) __extension__ ({ \ - uint64x2x3_t __s1 = __p1; \ - uint64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u16_x3(__p0, __p1) __extension__ ({ \ - uint16x8x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 49); \ -}) -#else -#define vst1q_u16_x3(__p0, __p1) __extension__ ({ \ - uint16x8x3_t __s1 = __p1; \ - uint16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s8_x3(__p0, __p1) __extension__ ({ \ - int8x16x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 32); \ -}) -#else -#define vst1q_s8_x3(__p0, __p1) __extension__ ({ \ - int8x16x3_t __s1 = __p1; \ - int8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f32_x3(__p0, __p1) __extension__ ({ \ - float32x4x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 41); \ -}) -#else -#define vst1q_f32_x3(__p0, __p1) __extension__ ({ \ - float32x4x3_t __s1 = __p1; \ - float32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s32_x3(__p0, __p1) __extension__ ({ \ - int32x4x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 34); \ -}) -#else -#define vst1q_s32_x3(__p0, __p1) __extension__ ({ \ - int32x4x3_t __s1 = __p1; \ - int32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s64_x3(__p0, __p1) __extension__ ({ \ - int64x2x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 35); \ -}) -#else -#define vst1q_s64_x3(__p0, __p1) __extension__ ({ \ - int64x2x3_t __s1 = __p1; \ - int64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s16_x3(__p0, __p1) __extension__ ({ \ - int16x8x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 33); \ -}) -#else -#define vst1q_s16_x3(__p0, __p1) __extension__ ({ \ - int16x8x3_t __s1 = __p1; \ - int16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u8_x3(__p0, __p1) __extension__ ({ \ - uint8x8x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 16); \ -}) -#else -#define vst1_u8_x3(__p0, __p1) __extension__ ({ \ - uint8x8x3_t __s1 = __p1; \ - uint8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u32_x3(__p0, __p1) __extension__ ({ \ - uint32x2x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 18); \ -}) -#else -#define vst1_u32_x3(__p0, __p1) __extension__ ({ \ - uint32x2x3_t __s1 = __p1; \ - uint32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u64_x3(__p0, __p1) __extension__ ({ \ - uint64x1x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 19); \ -}) -#else -#define vst1_u64_x3(__p0, __p1) __extension__ ({ \ - uint64x1x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u16_x3(__p0, __p1) __extension__ ({ \ - uint16x4x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 17); \ -}) -#else -#define vst1_u16_x3(__p0, __p1) __extension__ ({ \ - uint16x4x3_t __s1 = __p1; \ - uint16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s8_x3(__p0, __p1) __extension__ ({ \ - int8x8x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 0); \ -}) -#else -#define vst1_s8_x3(__p0, __p1) __extension__ ({ \ - int8x8x3_t __s1 = __p1; \ - int8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f32_x3(__p0, __p1) __extension__ ({ \ - float32x2x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 9); \ -}) -#else -#define vst1_f32_x3(__p0, __p1) __extension__ ({ \ - float32x2x3_t __s1 = __p1; \ - float32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst1_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s32_x3(__p0, __p1) __extension__ ({ \ - int32x2x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 2); \ -}) -#else -#define vst1_s32_x3(__p0, __p1) __extension__ ({ \ - int32x2x3_t __s1 = __p1; \ - int32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst1_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s64_x3(__p0, __p1) __extension__ ({ \ - int64x1x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 3); \ -}) -#else -#define vst1_s64_x3(__p0, __p1) __extension__ ({ \ - int64x1x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s16_x3(__p0, __p1) __extension__ ({ \ - int16x4x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 1); \ -}) -#else -#define vst1_s16_x3(__p0, __p1) __extension__ ({ \ - int16x4x3_t __s1 = __p1; \ - int16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst1_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p8_x4(__p0, __p1) __extension__ ({ \ - poly8x8x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 4); \ -}) -#else -#define vst1_p8_x4(__p0, __p1) __extension__ ({ \ - poly8x8x4_t __s1 = __p1; \ - poly8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p16_x4(__p0, __p1) __extension__ ({ \ - poly16x4x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 5); \ -}) -#else -#define vst1_p16_x4(__p0, __p1) __extension__ ({ \ - poly16x4x4_t __s1 = __p1; \ - poly16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p8_x4(__p0, __p1) __extension__ ({ \ - poly8x16x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 36); \ -}) -#else -#define vst1q_p8_x4(__p0, __p1) __extension__ ({ \ - poly8x16x4_t __s1 = __p1; \ - poly8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p16_x4(__p0, __p1) __extension__ ({ \ - poly16x8x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 37); \ -}) -#else -#define vst1q_p16_x4(__p0, __p1) __extension__ ({ \ - poly16x8x4_t __s1 = __p1; \ - poly16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u8_x4(__p0, __p1) __extension__ ({ \ - uint8x16x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 48); \ -}) -#else -#define vst1q_u8_x4(__p0, __p1) __extension__ ({ \ - uint8x16x4_t __s1 = __p1; \ - uint8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u32_x4(__p0, __p1) __extension__ ({ \ - uint32x4x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 50); \ -}) -#else -#define vst1q_u32_x4(__p0, __p1) __extension__ ({ \ - uint32x4x4_t __s1 = __p1; \ - uint32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u64_x4(__p0, __p1) __extension__ ({ \ - uint64x2x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 51); \ -}) -#else -#define vst1q_u64_x4(__p0, __p1) __extension__ ({ \ - uint64x2x4_t __s1 = __p1; \ - uint64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_u16_x4(__p0, __p1) __extension__ ({ \ - uint16x8x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 49); \ -}) -#else -#define vst1q_u16_x4(__p0, __p1) __extension__ ({ \ - uint16x8x4_t __s1 = __p1; \ - uint16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s8_x4(__p0, __p1) __extension__ ({ \ - int8x16x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 32); \ -}) -#else -#define vst1q_s8_x4(__p0, __p1) __extension__ ({ \ - int8x16x4_t __s1 = __p1; \ - int8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f32_x4(__p0, __p1) __extension__ ({ \ - float32x4x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 41); \ -}) -#else -#define vst1q_f32_x4(__p0, __p1) __extension__ ({ \ - float32x4x4_t __s1 = __p1; \ - float32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s32_x4(__p0, __p1) __extension__ ({ \ - int32x4x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 34); \ -}) -#else -#define vst1q_s32_x4(__p0, __p1) __extension__ ({ \ - int32x4x4_t __s1 = __p1; \ - int32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s64_x4(__p0, __p1) __extension__ ({ \ - int64x2x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 35); \ -}) -#else -#define vst1q_s64_x4(__p0, __p1) __extension__ ({ \ - int64x2x4_t __s1 = __p1; \ - int64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_s16_x4(__p0, __p1) __extension__ ({ \ - int16x8x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 33); \ -}) -#else -#define vst1q_s16_x4(__p0, __p1) __extension__ ({ \ - int16x8x4_t __s1 = __p1; \ - int16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u8_x4(__p0, __p1) __extension__ ({ \ - uint8x8x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 16); \ -}) -#else -#define vst1_u8_x4(__p0, __p1) __extension__ ({ \ - uint8x8x4_t __s1 = __p1; \ - uint8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u32_x4(__p0, __p1) __extension__ ({ \ - uint32x2x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 18); \ -}) -#else -#define vst1_u32_x4(__p0, __p1) __extension__ ({ \ - uint32x2x4_t __s1 = __p1; \ - uint32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u64_x4(__p0, __p1) __extension__ ({ \ - uint64x1x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 19); \ -}) -#else -#define vst1_u64_x4(__p0, __p1) __extension__ ({ \ - uint64x1x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_u16_x4(__p0, __p1) __extension__ ({ \ - uint16x4x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 17); \ -}) -#else -#define vst1_u16_x4(__p0, __p1) __extension__ ({ \ - uint16x4x4_t __s1 = __p1; \ - uint16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s8_x4(__p0, __p1) __extension__ ({ \ - int8x8x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 0); \ -}) -#else -#define vst1_s8_x4(__p0, __p1) __extension__ ({ \ - int8x8x4_t __s1 = __p1; \ - int8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f32_x4(__p0, __p1) __extension__ ({ \ - float32x2x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 9); \ -}) -#else -#define vst1_f32_x4(__p0, __p1) __extension__ ({ \ - float32x2x4_t __s1 = __p1; \ - float32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst1_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s32_x4(__p0, __p1) __extension__ ({ \ - int32x2x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 2); \ -}) -#else -#define vst1_s32_x4(__p0, __p1) __extension__ ({ \ - int32x2x4_t __s1 = __p1; \ - int32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst1_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s64_x4(__p0, __p1) __extension__ ({ \ - int64x1x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 3); \ -}) -#else -#define vst1_s64_x4(__p0, __p1) __extension__ ({ \ - int64x1x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_s16_x4(__p0, __p1) __extension__ ({ \ - int16x4x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 1); \ -}) -#else -#define vst1_s16_x4(__p0, __p1) __extension__ ({ \ - int16x4x4_t __s1 = __p1; \ - int16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst1_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_p8(__p0, __p1) __extension__ ({ \ - poly8x8x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 4); \ -}) -#else -#define vst2_p8(__p0, __p1) __extension__ ({ \ - poly8x8x2_t __s1 = __p1; \ - poly8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_p16(__p0, __p1) __extension__ ({ \ - poly16x4x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 5); \ -}) -#else -#define vst2_p16(__p0, __p1) __extension__ ({ \ - poly16x4x2_t __s1 = __p1; \ - poly16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_p8(__p0, __p1) __extension__ ({ \ - poly8x16x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 36); \ -}) -#else -#define vst2q_p8(__p0, __p1) __extension__ ({ \ - poly8x16x2_t __s1 = __p1; \ - poly8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_p16(__p0, __p1) __extension__ ({ \ - poly16x8x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 37); \ -}) -#else -#define vst2q_p16(__p0, __p1) __extension__ ({ \ - poly16x8x2_t __s1 = __p1; \ - poly16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_u8(__p0, __p1) __extension__ ({ \ - uint8x16x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 48); \ -}) -#else -#define vst2q_u8(__p0, __p1) __extension__ ({ \ - uint8x16x2_t __s1 = __p1; \ - uint8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_u32(__p0, __p1) __extension__ ({ \ - uint32x4x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 50); \ -}) -#else -#define vst2q_u32(__p0, __p1) __extension__ ({ \ - uint32x4x2_t __s1 = __p1; \ - uint32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_u16(__p0, __p1) __extension__ ({ \ - uint16x8x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 49); \ -}) -#else -#define vst2q_u16(__p0, __p1) __extension__ ({ \ - uint16x8x2_t __s1 = __p1; \ - uint16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_s8(__p0, __p1) __extension__ ({ \ - int8x16x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 32); \ -}) -#else -#define vst2q_s8(__p0, __p1) __extension__ ({ \ - int8x16x2_t __s1 = __p1; \ - int8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_f32(__p0, __p1) __extension__ ({ \ - float32x4x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 41); \ -}) -#else -#define vst2q_f32(__p0, __p1) __extension__ ({ \ - float32x4x2_t __s1 = __p1; \ - float32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_s32(__p0, __p1) __extension__ ({ \ - int32x4x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 34); \ -}) -#else -#define vst2q_s32(__p0, __p1) __extension__ ({ \ - int32x4x2_t __s1 = __p1; \ - int32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_s16(__p0, __p1) __extension__ ({ \ - int16x8x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 33); \ -}) -#else -#define vst2q_s16(__p0, __p1) __extension__ ({ \ - int16x8x2_t __s1 = __p1; \ - int16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_u8(__p0, __p1) __extension__ ({ \ - uint8x8x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 16); \ -}) -#else -#define vst2_u8(__p0, __p1) __extension__ ({ \ - uint8x8x2_t __s1 = __p1; \ - uint8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_u32(__p0, __p1) __extension__ ({ \ - uint32x2x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 18); \ -}) -#else -#define vst2_u32(__p0, __p1) __extension__ ({ \ - uint32x2x2_t __s1 = __p1; \ - uint32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_u64(__p0, __p1) __extension__ ({ \ - uint64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 19); \ -}) -#else -#define vst2_u64(__p0, __p1) __extension__ ({ \ - uint64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_u16(__p0, __p1) __extension__ ({ \ - uint16x4x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 17); \ -}) -#else -#define vst2_u16(__p0, __p1) __extension__ ({ \ - uint16x4x2_t __s1 = __p1; \ - uint16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_s8(__p0, __p1) __extension__ ({ \ - int8x8x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 0); \ -}) -#else -#define vst2_s8(__p0, __p1) __extension__ ({ \ - int8x8x2_t __s1 = __p1; \ - int8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_f32(__p0, __p1) __extension__ ({ \ - float32x2x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 9); \ -}) -#else -#define vst2_f32(__p0, __p1) __extension__ ({ \ - float32x2x2_t __s1 = __p1; \ - float32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2_v(__p0, __rev1.val[0], __rev1.val[1], 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_s32(__p0, __p1) __extension__ ({ \ - int32x2x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 2); \ -}) -#else -#define vst2_s32(__p0, __p1) __extension__ ({ \ - int32x2x2_t __s1 = __p1; \ - int32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2_v(__p0, __rev1.val[0], __rev1.val[1], 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_s64(__p0, __p1) __extension__ ({ \ - int64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 3); \ -}) -#else -#define vst2_s64(__p0, __p1) __extension__ ({ \ - int64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_s16(__p0, __p1) __extension__ ({ \ - int16x4x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 1); \ -}) -#else -#define vst2_s16(__p0, __p1) __extension__ ({ \ - int16x4x2_t __s1 = __p1; \ - int16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2_v(__p0, __rev1.val[0], __rev1.val[1], 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 4); \ -}) -#else -#define vst2_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x2_t __s1 = __p1; \ - poly8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 5); \ -}) -#else -#define vst2_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x2_t __s1 = __p1; \ - poly16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 37); \ -}) -#else -#define vst2q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x2_t __s1 = __p1; \ - poly16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 50); \ -}) -#else -#define vst2q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x2_t __s1 = __p1; \ - uint32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 49); \ -}) -#else -#define vst2q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x2_t __s1 = __p1; \ - uint16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 41); \ -}) -#else -#define vst2q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x2_t __s1 = __p1; \ - float32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 34); \ -}) -#else -#define vst2q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x2_t __s1 = __p1; \ - int32x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 33); \ -}) -#else -#define vst2q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x2_t __s1 = __p1; \ - int16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 16); \ -}) -#else -#define vst2_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x2_t __s1 = __p1; \ - uint8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 18); \ -}) -#else -#define vst2_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x2_t __s1 = __p1; \ - uint32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 17); \ -}) -#else -#define vst2_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x2_t __s1 = __p1; \ - uint16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 0); \ -}) -#else -#define vst2_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x2_t __s1 = __p1; \ - int8x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 9); \ -}) -#else -#define vst2_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x2_t __s1 = __p1; \ - float32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 2); \ -}) -#else -#define vst2_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x2_t __s1 = __p1; \ - int32x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 1); \ -}) -#else -#define vst2_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x2_t __s1 = __p1; \ - int16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_p8(__p0, __p1) __extension__ ({ \ - poly8x8x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 4); \ -}) -#else -#define vst3_p8(__p0, __p1) __extension__ ({ \ - poly8x8x3_t __s1 = __p1; \ - poly8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_p16(__p0, __p1) __extension__ ({ \ - poly16x4x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 5); \ -}) -#else -#define vst3_p16(__p0, __p1) __extension__ ({ \ - poly16x4x3_t __s1 = __p1; \ - poly16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_p8(__p0, __p1) __extension__ ({ \ - poly8x16x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 36); \ -}) -#else -#define vst3q_p8(__p0, __p1) __extension__ ({ \ - poly8x16x3_t __s1 = __p1; \ - poly8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_p16(__p0, __p1) __extension__ ({ \ - poly16x8x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 37); \ -}) -#else -#define vst3q_p16(__p0, __p1) __extension__ ({ \ - poly16x8x3_t __s1 = __p1; \ - poly16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_u8(__p0, __p1) __extension__ ({ \ - uint8x16x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 48); \ -}) -#else -#define vst3q_u8(__p0, __p1) __extension__ ({ \ - uint8x16x3_t __s1 = __p1; \ - uint8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_u32(__p0, __p1) __extension__ ({ \ - uint32x4x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 50); \ -}) -#else -#define vst3q_u32(__p0, __p1) __extension__ ({ \ - uint32x4x3_t __s1 = __p1; \ - uint32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_u16(__p0, __p1) __extension__ ({ \ - uint16x8x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 49); \ -}) -#else -#define vst3q_u16(__p0, __p1) __extension__ ({ \ - uint16x8x3_t __s1 = __p1; \ - uint16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_s8(__p0, __p1) __extension__ ({ \ - int8x16x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 32); \ -}) -#else -#define vst3q_s8(__p0, __p1) __extension__ ({ \ - int8x16x3_t __s1 = __p1; \ - int8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_f32(__p0, __p1) __extension__ ({ \ - float32x4x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 41); \ -}) -#else -#define vst3q_f32(__p0, __p1) __extension__ ({ \ - float32x4x3_t __s1 = __p1; \ - float32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_s32(__p0, __p1) __extension__ ({ \ - int32x4x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 34); \ -}) -#else -#define vst3q_s32(__p0, __p1) __extension__ ({ \ - int32x4x3_t __s1 = __p1; \ - int32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_s16(__p0, __p1) __extension__ ({ \ - int16x8x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 33); \ -}) -#else -#define vst3q_s16(__p0, __p1) __extension__ ({ \ - int16x8x3_t __s1 = __p1; \ - int16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_u8(__p0, __p1) __extension__ ({ \ - uint8x8x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 16); \ -}) -#else -#define vst3_u8(__p0, __p1) __extension__ ({ \ - uint8x8x3_t __s1 = __p1; \ - uint8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_u32(__p0, __p1) __extension__ ({ \ - uint32x2x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 18); \ -}) -#else -#define vst3_u32(__p0, __p1) __extension__ ({ \ - uint32x2x3_t __s1 = __p1; \ - uint32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_u64(__p0, __p1) __extension__ ({ \ - uint64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 19); \ -}) -#else -#define vst3_u64(__p0, __p1) __extension__ ({ \ - uint64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_u16(__p0, __p1) __extension__ ({ \ - uint16x4x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 17); \ -}) -#else -#define vst3_u16(__p0, __p1) __extension__ ({ \ - uint16x4x3_t __s1 = __p1; \ - uint16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_s8(__p0, __p1) __extension__ ({ \ - int8x8x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 0); \ -}) -#else -#define vst3_s8(__p0, __p1) __extension__ ({ \ - int8x8x3_t __s1 = __p1; \ - int8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_f32(__p0, __p1) __extension__ ({ \ - float32x2x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 9); \ -}) -#else -#define vst3_f32(__p0, __p1) __extension__ ({ \ - float32x2x3_t __s1 = __p1; \ - float32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_s32(__p0, __p1) __extension__ ({ \ - int32x2x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 2); \ -}) -#else -#define vst3_s32(__p0, __p1) __extension__ ({ \ - int32x2x3_t __s1 = __p1; \ - int32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_s64(__p0, __p1) __extension__ ({ \ - int64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 3); \ -}) -#else -#define vst3_s64(__p0, __p1) __extension__ ({ \ - int64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_s16(__p0, __p1) __extension__ ({ \ - int16x4x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 1); \ -}) -#else -#define vst3_s16(__p0, __p1) __extension__ ({ \ - int16x4x3_t __s1 = __p1; \ - int16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 4); \ -}) -#else -#define vst3_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x3_t __s1 = __p1; \ - poly8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 5); \ -}) -#else -#define vst3_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x3_t __s1 = __p1; \ - poly16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 37); \ -}) -#else -#define vst3q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x3_t __s1 = __p1; \ - poly16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 50); \ -}) -#else -#define vst3q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x3_t __s1 = __p1; \ - uint32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 49); \ -}) -#else -#define vst3q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x3_t __s1 = __p1; \ - uint16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 41); \ -}) -#else -#define vst3q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x3_t __s1 = __p1; \ - float32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 34); \ -}) -#else -#define vst3q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x3_t __s1 = __p1; \ - int32x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 33); \ -}) -#else -#define vst3q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x3_t __s1 = __p1; \ - int16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 16); \ -}) -#else -#define vst3_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x3_t __s1 = __p1; \ - uint8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 18); \ -}) -#else -#define vst3_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x3_t __s1 = __p1; \ - uint32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 17); \ -}) -#else -#define vst3_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x3_t __s1 = __p1; \ - uint16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 0); \ -}) -#else -#define vst3_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x3_t __s1 = __p1; \ - int8x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 9); \ -}) -#else -#define vst3_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x3_t __s1 = __p1; \ - float32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 2); \ -}) -#else -#define vst3_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x3_t __s1 = __p1; \ - int32x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 1); \ -}) -#else -#define vst3_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x3_t __s1 = __p1; \ - int16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_p8(__p0, __p1) __extension__ ({ \ - poly8x8x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 4); \ -}) -#else -#define vst4_p8(__p0, __p1) __extension__ ({ \ - poly8x8x4_t __s1 = __p1; \ - poly8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_p16(__p0, __p1) __extension__ ({ \ - poly16x4x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 5); \ -}) -#else -#define vst4_p16(__p0, __p1) __extension__ ({ \ - poly16x4x4_t __s1 = __p1; \ - poly16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_p8(__p0, __p1) __extension__ ({ \ - poly8x16x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 36); \ -}) -#else -#define vst4q_p8(__p0, __p1) __extension__ ({ \ - poly8x16x4_t __s1 = __p1; \ - poly8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_p16(__p0, __p1) __extension__ ({ \ - poly16x8x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 37); \ -}) -#else -#define vst4q_p16(__p0, __p1) __extension__ ({ \ - poly16x8x4_t __s1 = __p1; \ - poly16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_u8(__p0, __p1) __extension__ ({ \ - uint8x16x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 48); \ -}) -#else -#define vst4q_u8(__p0, __p1) __extension__ ({ \ - uint8x16x4_t __s1 = __p1; \ - uint8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_u32(__p0, __p1) __extension__ ({ \ - uint32x4x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 50); \ -}) -#else -#define vst4q_u32(__p0, __p1) __extension__ ({ \ - uint32x4x4_t __s1 = __p1; \ - uint32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_u16(__p0, __p1) __extension__ ({ \ - uint16x8x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 49); \ -}) -#else -#define vst4q_u16(__p0, __p1) __extension__ ({ \ - uint16x8x4_t __s1 = __p1; \ - uint16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_s8(__p0, __p1) __extension__ ({ \ - int8x16x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 32); \ -}) -#else -#define vst4q_s8(__p0, __p1) __extension__ ({ \ - int8x16x4_t __s1 = __p1; \ - int8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_f32(__p0, __p1) __extension__ ({ \ - float32x4x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 41); \ -}) -#else -#define vst4q_f32(__p0, __p1) __extension__ ({ \ - float32x4x4_t __s1 = __p1; \ - float32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_s32(__p0, __p1) __extension__ ({ \ - int32x4x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 34); \ -}) -#else -#define vst4q_s32(__p0, __p1) __extension__ ({ \ - int32x4x4_t __s1 = __p1; \ - int32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_s16(__p0, __p1) __extension__ ({ \ - int16x8x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 33); \ -}) -#else -#define vst4q_s16(__p0, __p1) __extension__ ({ \ - int16x8x4_t __s1 = __p1; \ - int16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_u8(__p0, __p1) __extension__ ({ \ - uint8x8x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 16); \ -}) -#else -#define vst4_u8(__p0, __p1) __extension__ ({ \ - uint8x8x4_t __s1 = __p1; \ - uint8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_u32(__p0, __p1) __extension__ ({ \ - uint32x2x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 18); \ -}) -#else -#define vst4_u32(__p0, __p1) __extension__ ({ \ - uint32x2x4_t __s1 = __p1; \ - uint32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_u64(__p0, __p1) __extension__ ({ \ - uint64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 19); \ -}) -#else -#define vst4_u64(__p0, __p1) __extension__ ({ \ - uint64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_u16(__p0, __p1) __extension__ ({ \ - uint16x4x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 17); \ -}) -#else -#define vst4_u16(__p0, __p1) __extension__ ({ \ - uint16x4x4_t __s1 = __p1; \ - uint16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_s8(__p0, __p1) __extension__ ({ \ - int8x8x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 0); \ -}) -#else -#define vst4_s8(__p0, __p1) __extension__ ({ \ - int8x8x4_t __s1 = __p1; \ - int8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_f32(__p0, __p1) __extension__ ({ \ - float32x2x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 9); \ -}) -#else -#define vst4_f32(__p0, __p1) __extension__ ({ \ - float32x2x4_t __s1 = __p1; \ - float32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_s32(__p0, __p1) __extension__ ({ \ - int32x2x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 2); \ -}) -#else -#define vst4_s32(__p0, __p1) __extension__ ({ \ - int32x2x4_t __s1 = __p1; \ - int32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_s64(__p0, __p1) __extension__ ({ \ - int64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 3); \ -}) -#else -#define vst4_s64(__p0, __p1) __extension__ ({ \ - int64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_s16(__p0, __p1) __extension__ ({ \ - int16x4x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 1); \ -}) -#else -#define vst4_s16(__p0, __p1) __extension__ ({ \ - int16x4x4_t __s1 = __p1; \ - int16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 4); \ -}) -#else -#define vst4_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x8x4_t __s1 = __p1; \ - poly8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 4); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 5); \ -}) -#else -#define vst4_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x4x4_t __s1 = __p1; \ - poly16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 5); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 37); \ -}) -#else -#define vst4q_lane_p16(__p0, __p1, __p2) __extension__ ({ \ - poly16x8x4_t __s1 = __p1; \ - poly16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 37); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 50); \ -}) -#else -#define vst4q_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4x4_t __s1 = __p1; \ - uint32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 50); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 49); \ -}) -#else -#define vst4q_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8x4_t __s1 = __p1; \ - uint16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 49); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 41); \ -}) -#else -#define vst4q_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4x4_t __s1 = __p1; \ - float32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 41); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 34); \ -}) -#else -#define vst4q_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4x4_t __s1 = __p1; \ - int32x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 34); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 33); \ -}) -#else -#define vst4q_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8x4_t __s1 = __p1; \ - int16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 33); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 16); \ -}) -#else -#define vst4_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x8x4_t __s1 = __p1; \ - uint8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 16); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 18); \ -}) -#else -#define vst4_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2x4_t __s1 = __p1; \ - uint32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 18); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 17); \ -}) -#else -#define vst4_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4x4_t __s1 = __p1; \ - uint16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 17); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 0); \ -}) -#else -#define vst4_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x8x4_t __s1 = __p1; \ - int8x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 0); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 9); \ -}) -#else -#define vst4_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2x4_t __s1 = __p1; \ - float32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 9); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 2); \ -}) -#else -#define vst4_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2x4_t __s1 = __p1; \ - int32x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 2); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 1); \ -}) -#else -#define vst4_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4x4_t __s1 = __p1; \ - int16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vsubq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai uint8x16_t vsubq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsubq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai uint32x4_t vsubq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vsubq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai uint64x2_t vsubq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vsubq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai uint16x8_t vsubq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vsubq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai int8x16_t vsubq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vsubq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai float32x4_t vsubq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vsubq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai int32x4_t vsubq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vsubq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai int64x2_t vsubq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vsubq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai int16x8_t vsubq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vsub_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai uint8x8_t vsub_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vsub_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai uint32x2_t vsub_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vsub_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai uint64x1_t vsub_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vsub_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai uint16x4_t vsub_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vsub_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai int8x8_t vsub_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vsub_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai float32x2_t vsub_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vsub_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai int32x2_t vsub_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vsub_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai int64x1_t vsub_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vsub_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai int16x4_t vsub_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint16x4_t __noswap_vsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint32x2_t __noswap_vsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint8x8_t __noswap_vsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vsubhn_s32(int32x4_t __p0, int32x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vsubhn_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int16x4_t __noswap_vsubhn_s32(int32x4_t __p0, int32x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vsubhn_s64(int64x2_t __p0, int64x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vsubhn_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vsubhn_s64(int64x2_t __p0, int64x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vsubhn_s16(int16x8_t __p0, int16x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vsubhn_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int8x8_t __noswap_vsubhn_s16(int16x8_t __p0, int16x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vsubl_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint16x8_t __ret; - __ret = vmovl_u8(__p0) - vmovl_u8(__p1); - return __ret; -} -#else -__ai uint16x8_t vsubl_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vmovl_u8(__rev0) - __noswap_vmovl_u8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vsubl_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint64x2_t __ret; - __ret = vmovl_u32(__p0) - vmovl_u32(__p1); - return __ret; -} -#else -__ai uint64x2_t vsubl_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vmovl_u32(__rev0) - __noswap_vmovl_u32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsubl_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint32x4_t __ret; - __ret = vmovl_u16(__p0) - vmovl_u16(__p1); - return __ret; -} -#else -__ai uint32x4_t vsubl_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vmovl_u16(__rev0) - __noswap_vmovl_u16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vsubl_s8(int8x8_t __p0, int8x8_t __p1) { - int16x8_t __ret; - __ret = vmovl_s8(__p0) - vmovl_s8(__p1); - return __ret; -} -#else -__ai int16x8_t vsubl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vmovl_s8(__rev0) - __noswap_vmovl_s8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vsubl_s32(int32x2_t __p0, int32x2_t __p1) { - int64x2_t __ret; - __ret = vmovl_s32(__p0) - vmovl_s32(__p1); - return __ret; -} -#else -__ai int64x2_t vsubl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __noswap_vmovl_s32(__rev0) - __noswap_vmovl_s32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vsubl_s16(int16x4_t __p0, int16x4_t __p1) { - int32x4_t __ret; - __ret = vmovl_s16(__p0) - vmovl_s16(__p1); - return __ret; -} -#else -__ai int32x4_t vsubl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vmovl_s16(__rev0) - __noswap_vmovl_s16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vsubw_u8(uint16x8_t __p0, uint8x8_t __p1) { - uint16x8_t __ret; - __ret = __p0 - vmovl_u8(__p1); - return __ret; -} -#else -__ai uint16x8_t vsubw_u8(uint16x8_t __p0, uint8x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 - __noswap_vmovl_u8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vsubw_u32(uint64x2_t __p0, uint32x2_t __p1) { - uint64x2_t __ret; - __ret = __p0 - vmovl_u32(__p1); - return __ret; -} -#else -__ai uint64x2_t vsubw_u32(uint64x2_t __p0, uint32x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 - __noswap_vmovl_u32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsubw_u16(uint32x4_t __p0, uint16x4_t __p1) { - uint32x4_t __ret; - __ret = __p0 - vmovl_u16(__p1); - return __ret; -} -#else -__ai uint32x4_t vsubw_u16(uint32x4_t __p0, uint16x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 - __noswap_vmovl_u16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vsubw_s8(int16x8_t __p0, int8x8_t __p1) { - int16x8_t __ret; - __ret = __p0 - vmovl_s8(__p1); - return __ret; -} -#else -__ai int16x8_t vsubw_s8(int16x8_t __p0, int8x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 - __noswap_vmovl_s8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vsubw_s32(int64x2_t __p0, int32x2_t __p1) { - int64x2_t __ret; - __ret = __p0 - vmovl_s32(__p1); - return __ret; -} -#else -__ai int64x2_t vsubw_s32(int64x2_t __p0, int32x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 - __noswap_vmovl_s32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vsubw_s16(int32x4_t __p0, int16x4_t __p1) { - int32x4_t __ret; - __ret = __p0 - vmovl_s16(__p1); - return __ret; -} -#else -__ai int32x4_t vsubw_s16(int32x4_t __p0, int16x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 - __noswap_vmovl_s16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vtbl1_p8(poly8x8_t __p0, uint8x8_t __p1) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__p0, (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8_t vtbl1_p8(poly8x8_t __p0, uint8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__rev0, (int8x8_t)__rev1, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtbl1_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vtbl1_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vtbl1_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vtbl1_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vtbl2_p8(poly8x8x2_t __p0, uint8x8_t __p1) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8_t vtbl2_p8(poly8x8x2_t __p0, uint8x8_t __p1) { - poly8x8x2_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev1, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtbl2_u8(uint8x8x2_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vtbl2_u8(uint8x8x2_t __p0, uint8x8_t __p1) { - uint8x8x2_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vtbl2_s8(int8x8x2_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vtbl2_s8(int8x8x2_t __p0, int8x8_t __p1) { - int8x8x2_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vtbl3_p8(poly8x8x3_t __p0, uint8x8_t __p1) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8_t vtbl3_p8(poly8x8x3_t __p0, uint8x8_t __p1) { - poly8x8x3_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev1, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtbl3_u8(uint8x8x3_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vtbl3_u8(uint8x8x3_t __p0, uint8x8_t __p1) { - uint8x8x3_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vtbl3_s8(int8x8x3_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vtbl3_s8(int8x8x3_t __p0, int8x8_t __p1) { - int8x8x3_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vtbl4_p8(poly8x8x4_t __p0, uint8x8_t __p1) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p0.val[3], (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8_t vtbl4_p8(poly8x8x4_t __p0, uint8x8_t __p1) { - poly8x8x4_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev0.val[3], (int8x8_t)__rev1, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtbl4_u8(uint8x8x4_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p0.val[3], (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vtbl4_u8(uint8x8x4_t __p0, uint8x8_t __p1) { - uint8x8x4_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev0.val[3], (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vtbl4_s8(int8x8x4_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p0.val[3], (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vtbl4_s8(int8x8x4_t __p0, int8x8_t __p1) { - int8x8x4_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev0.val[3], (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vtbx1_p8(poly8x8_t __p0, poly8x8_t __p1, uint8x8_t __p2) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 4); - return __ret; -} -#else -__ai poly8x8_t vtbx1_p8(poly8x8_t __p0, poly8x8_t __p1, uint8x8_t __p2) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtbx1_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 16); - return __ret; -} -#else -__ai uint8x8_t vtbx1_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vtbx1_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 0); - return __ret; -} -#else -__ai int8x8_t vtbx1_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vtbx2_p8(poly8x8_t __p0, poly8x8x2_t __p1, uint8x8_t __p2) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p2, 4); - return __ret; -} -#else -__ai poly8x8_t vtbx2_p8(poly8x8_t __p0, poly8x8x2_t __p1, uint8x8_t __p2) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8x2_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev2, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtbx2_u8(uint8x8_t __p0, uint8x8x2_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p2, 16); - return __ret; -} -#else -__ai uint8x8_t vtbx2_u8(uint8x8_t __p0, uint8x8x2_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8x2_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev2, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vtbx2_s8(int8x8_t __p0, int8x8x2_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p2, 0); - return __ret; -} -#else -__ai int8x8_t vtbx2_s8(int8x8_t __p0, int8x8x2_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8x2_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev2, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vtbx3_p8(poly8x8_t __p0, poly8x8x3_t __p1, uint8x8_t __p2) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p2, 4); - return __ret; -} -#else -__ai poly8x8_t vtbx3_p8(poly8x8_t __p0, poly8x8x3_t __p1, uint8x8_t __p2) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8x3_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev2, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtbx3_u8(uint8x8_t __p0, uint8x8x3_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p2, 16); - return __ret; -} -#else -__ai uint8x8_t vtbx3_u8(uint8x8_t __p0, uint8x8x3_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8x3_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev2, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vtbx3_s8(int8x8_t __p0, int8x8x3_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p2, 0); - return __ret; -} -#else -__ai int8x8_t vtbx3_s8(int8x8_t __p0, int8x8x3_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8x3_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev2, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vtbx4_p8(poly8x8_t __p0, poly8x8x4_t __p1, uint8x8_t __p2) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p1.val[3], (int8x8_t)__p2, 4); - return __ret; -} -#else -__ai poly8x8_t vtbx4_p8(poly8x8_t __p0, poly8x8x4_t __p1, uint8x8_t __p2) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8x4_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], (int8x8_t)__rev2, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtbx4_u8(uint8x8_t __p0, uint8x8x4_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p1.val[3], (int8x8_t)__p2, 16); - return __ret; -} -#else -__ai uint8x8_t vtbx4_u8(uint8x8_t __p0, uint8x8x4_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8x4_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], (int8x8_t)__rev2, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vtbx4_s8(int8x8_t __p0, int8x8x4_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p1.val[3], (int8x8_t)__p2, 0); - return __ret; -} -#else -__ai int8x8_t vtbx4_s8(int8x8_t __p0, int8x8x4_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8x4_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], (int8x8_t)__rev2, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8x2_t vtrn_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8x2_t vtrn_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 4); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4x2_t vtrn_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 5); - return __ret; -} -#else -__ai poly16x4x2_t vtrn_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x4x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 5); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16x2_t vtrnq_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 36); - return __ret; -} -#else -__ai poly8x16x2_t vtrnq_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 36); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8x2_t vtrnq_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 37); - return __ret; -} -#else -__ai poly16x8x2_t vtrnq_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 37); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16x2_t vtrnq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16x2_t vtrnq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 48); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4x2_t vtrnq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4x2_t vtrnq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 50); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8x2_t vtrnq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8x2_t vtrnq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 49); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16x2_t vtrnq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16x2_t vtrnq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 32); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4x2_t vtrnq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4x2_t vtrnq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 41); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4x2_t vtrnq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4x2_t vtrnq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 34); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8x2_t vtrnq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8x2_t vtrnq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 33); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8x2_t vtrn_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8x2_t vtrn_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 16); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2x2_t vtrn_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2x2_t vtrn_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 18); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4x2_t vtrn_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4x2_t vtrn_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 17); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8x2_t vtrn_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8x2_t vtrn_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 0); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2x2_t vtrn_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2x2_t vtrn_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 9); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2x2_t vtrn_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2x2_t vtrn_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 2); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4x2_t vtrn_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4x2_t vtrn_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 1); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtst_p8(poly8x8_t __p0, poly8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vtst_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vtst_p16(poly16x4_t __p0, poly16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vtst_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vtstq_p8(poly8x16_t __p0, poly8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vtstq_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vtstq_p16(poly16x8_t __p0, poly16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vtstq_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vtstq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vtstq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vtstq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vtstq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vtstq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vtstq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vtstq_s8(int8x16_t __p0, int8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vtstq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vtstq_s32(int32x4_t __p0, int32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vtstq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vtstq_s16(int16x8_t __p0, int16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vtstq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtst_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vtst_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vtst_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vtst_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vtst_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vtst_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtst_s8(int8x8_t __p0, int8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vtst_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vtst_s32(int32x2_t __p0, int32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vtst_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vtst_s16(int16x4_t __p0, int16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vtst_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8x2_t vuzp_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8x2_t vuzp_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 4); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4x2_t vuzp_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 5); - return __ret; -} -#else -__ai poly16x4x2_t vuzp_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x4x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 5); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16x2_t vuzpq_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 36); - return __ret; -} -#else -__ai poly8x16x2_t vuzpq_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 36); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8x2_t vuzpq_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 37); - return __ret; -} -#else -__ai poly16x8x2_t vuzpq_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 37); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16x2_t vuzpq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16x2_t vuzpq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 48); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4x2_t vuzpq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4x2_t vuzpq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 50); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8x2_t vuzpq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8x2_t vuzpq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 49); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16x2_t vuzpq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16x2_t vuzpq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 32); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4x2_t vuzpq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4x2_t vuzpq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 41); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4x2_t vuzpq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4x2_t vuzpq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 34); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8x2_t vuzpq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8x2_t vuzpq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 33); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8x2_t vuzp_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8x2_t vuzp_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 16); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2x2_t vuzp_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2x2_t vuzp_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 18); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4x2_t vuzp_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4x2_t vuzp_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 17); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8x2_t vuzp_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8x2_t vuzp_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 0); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2x2_t vuzp_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2x2_t vuzp_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 9); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2x2_t vuzp_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2x2_t vuzp_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 2); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4x2_t vuzp_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4x2_t vuzp_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 1); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8x2_t vzip_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8x2_t vzip_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 4); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4x2_t vzip_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 5); - return __ret; -} -#else -__ai poly16x4x2_t vzip_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x4x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 5); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16x2_t vzipq_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 36); - return __ret; -} -#else -__ai poly8x16x2_t vzipq_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 36); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8x2_t vzipq_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 37); - return __ret; -} -#else -__ai poly16x8x2_t vzipq_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 37); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16x2_t vzipq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16x2_t vzipq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 48); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4x2_t vzipq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4x2_t vzipq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 50); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8x2_t vzipq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8x2_t vzipq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 49); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16x2_t vzipq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16x2_t vzipq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 32); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4x2_t vzipq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4x2_t vzipq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 41); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4x2_t vzipq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4x2_t vzipq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 34); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8x2_t vzipq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8x2_t vzipq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 33); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8x2_t vzip_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8x2_t vzip_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 16); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2x2_t vzip_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2x2_t vzip_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 18); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4x2_t vzip_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4x2_t vzip_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 17); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8x2_t vzip_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8x2_t vzip_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 0); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2x2_t vzip_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2x2_t vzip_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 9); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2x2_t vzip_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2x2_t vzip_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 2); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4x2_t vzip_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4x2_t vzip_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 1); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#if !defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \ - __ret; \ -}) -#else -#define vdupq_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \ - __ret; \ -}) -#else -#define vdup_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmovq_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \ - __ret; \ -}) -#else -#define vmovq_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmov_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \ - __ret; \ -}) -#else -#define vmov_n_f16(__p0) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_p16(poly16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_p16(poly16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_u8(uint8x8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_u8(uint8x8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_u32(uint32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_u32(uint32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_u64(uint64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_u64(uint64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_u16(uint16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_u16(uint16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_s8(int8x8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_s8(int8x8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_f32(float32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_f32(float32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_f16(float16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_f16(float16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_s32(int32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_s32(int32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_s64(int64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_s64(int64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_s16(int16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_s16(int16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_p8(poly8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_p8(poly8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_u8(uint8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_u8(uint8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_u32(uint32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_u32(uint32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_u64(uint64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_u64(uint64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_u16(uint16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_u16(uint16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_s8(int8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_s8(int8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_f32(float32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_f32(float32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_f16(float16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_f16(float16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_s32(int32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_s32(int32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_s64(int64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_s64(int64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_s16(int16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_s16(int16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_p16(poly16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_p16(poly16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_u8(uint8x16_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_u8(uint8x16_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_u32(uint32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_u32(uint32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_u64(uint64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_u64(uint64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_u16(uint16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_u16(uint16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_s8(int8x16_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_s8(int8x16_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_f32(float32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_f32(float32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_f16(float16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_f16(float16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_s32(int32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_s32(int32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_s64(int64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_s64(int64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_s16(int16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_s16(int16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_p8(poly8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_p8(poly8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_u8(uint8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_u8(uint8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_u32(uint32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_u32(uint32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_u64(uint64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_u64(uint64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_u16(uint16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_u16(uint16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_s8(int8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_s8(int8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_f32(float32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_f32(float32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_f16(float16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_f16(float16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_s32(int32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_s32(int32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_s64(int64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_s64(int64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_s16(int16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_s16(int16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_p8(poly8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_p8(poly8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_p16(poly16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_p16(poly16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_u32(uint32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_u32(uint32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_u64(uint64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_u64(uint64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_u16(uint16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_u16(uint16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_s8(int8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_s8(int8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_f32(float32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_f32(float32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_f16(float16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_f16(float16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_s32(int32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_s32(int32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_s64(int64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_s64(int64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_s16(int16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_s16(int16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_p8(poly8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_p8(poly8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_p16(poly16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_p16(poly16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_u8(uint8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_u8(uint8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_u64(uint64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_u64(uint64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_u16(uint16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_u16(uint16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_s8(int8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_s8(int8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_f16(float16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_f16(float16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_s32(int32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_s32(int32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_s64(int64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_s64(int64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_s16(int16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_s16(int16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_p8(poly8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_p8(poly8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_p16(poly16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_p16(poly16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_u8(uint8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_u8(uint8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_u32(uint32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_u32(uint32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_u16(uint16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_u16(uint16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_s8(int8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_s8(int8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_f32(float32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_f32(float32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_f16(float16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_f16(float16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_s32(int32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_s32(int32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_s64(int64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_s64(int64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_s16(int16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_s16(int16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_p8(poly8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_p8(poly8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_p16(poly16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_p16(poly16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_u8(uint8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_u8(uint8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_u32(uint32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_u32(uint32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_u64(uint64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_u64(uint64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_s8(int8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_s8(int8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_f32(float32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_f32(float32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_s32(int32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_s32(int32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_s64(int64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_s64(int64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_s16(int16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_s16(int16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_p8(poly8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_p8(poly8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_p16(poly16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_p16(poly16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_u8(uint8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_u8(uint8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_u32(uint32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_u32(uint32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_u64(uint64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_u64(uint64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_u16(uint16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_u16(uint16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_f32(float32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_f32(float32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_f16(float16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_f16(float16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_s32(int32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_s32(int32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_s64(int64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_s64(int64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_s16(int16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_s16(int16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_p8(poly8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_p8(poly8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_p16(poly16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_p16(poly16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_u8(uint8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_u8(uint8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_u32(uint32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_u32(uint32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_u64(uint64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_u64(uint64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_u16(uint16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_u16(uint16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_s8(int8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_s8(int8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_f16(float16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_f16(float16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_s32(int32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_s32(int32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_s64(int64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_s64(int64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_s16(int16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_s16(int16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_p8(poly8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_p8(poly8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_p16(poly16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_p16(poly16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_u8(uint8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_u8(uint8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_u32(uint32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_u32(uint32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_u64(uint64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_u64(uint64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_u16(uint16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_u16(uint16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_s8(int8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_s8(int8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_f32(float32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_f32(float32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_s32(int32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_s32(int32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_s64(int64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_s64(int64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_s16(int16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_s16(int16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_p8(poly8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_p8(poly8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_p16(poly16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_p16(poly16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_u8(uint8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_u8(uint8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_u32(uint32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_u32(uint32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_u64(uint64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_u64(uint64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_u16(uint16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_u16(uint16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_s8(int8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_s8(int8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_f32(float32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_f32(float32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_f16(float16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_f16(float16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_s64(int64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_s64(int64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_s16(int16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_s16(int16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_p8(poly8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_p8(poly8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_p16(poly16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_p16(poly16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_u8(uint8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_u8(uint8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_u32(uint32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_u32(uint32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_u64(uint64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_u64(uint64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_u16(uint16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_u16(uint16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_s8(int8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_s8(int8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_f32(float32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_f32(float32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_f16(float16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_f16(float16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_s32(int32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_s32(int32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_s16(int16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_s16(int16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_p8(poly8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_p8(poly8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_p16(poly16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_p16(poly16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_u8(uint8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_u8(uint8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_u32(uint32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_u32(uint32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_u64(uint64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_u64(uint64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_u16(uint16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_u16(uint16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_s8(int8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_s8(int8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_f32(float32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_f32(float32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_f16(float16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_f16(float16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_s32(int32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_s32(int32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_s64(int64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_s64(int64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_p8(poly8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_p8(poly8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_p16(poly16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_p16(poly16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_u32(uint32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_u32(uint32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_u64(uint64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_u64(uint64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_u16(uint16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_u16(uint16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_s8(int8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_s8(int8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_f32(float32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_f32(float32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_f16(float16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_f16(float16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_s32(int32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_s32(int32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_s64(int64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_s64(int64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_s16(int16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_s16(int16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_p8(poly8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_p8(poly8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_p16(poly16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_p16(poly16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_u8(uint8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_u8(uint8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_u64(uint64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_u64(uint64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_u16(uint16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_u16(uint16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_s8(int8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_s8(int8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_f16(float16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_f16(float16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_s32(int32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_s32(int32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_s64(int64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_s64(int64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_s16(int16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_s16(int16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_p8(poly8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_p8(poly8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_p16(poly16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_p16(poly16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_u8(uint8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_u8(uint8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_u32(uint32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_u32(uint32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_u16(uint16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_u16(uint16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_s8(int8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_s8(int8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_f32(float32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_f32(float32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_f16(float16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_f16(float16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_s32(int32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_s32(int32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_s16(int16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_s16(int16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_p8(poly8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_p8(poly8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_p16(poly16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_p16(poly16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_u8(uint8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_u8(uint8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_u32(uint32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_u32(uint32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_u64(uint64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_u64(uint64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_s8(int8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_s8(int8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_f32(float32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_f32(float32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_s32(int32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_s32(int32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_s64(int64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_s64(int64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_s16(int16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_s16(int16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_p8(poly8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_p8(poly8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_p16(poly16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_p16(poly16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_u8(uint8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_u8(uint8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_u32(uint32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_u32(uint32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_u64(uint64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_u64(uint64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_u16(uint16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_u16(uint16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_f32(float32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_f32(float32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_f16(float16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_f16(float16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_s32(int32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_s32(int32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_s64(int64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_s64(int64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_s16(int16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_s16(int16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_p8(poly8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_p8(poly8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_p16(poly16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_p16(poly16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_u8(uint8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_u8(uint8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_u32(uint32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_u32(uint32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_u64(uint64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_u64(uint64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_u16(uint16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_u16(uint16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_s8(int8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_s8(int8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_f16(float16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_f16(float16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_s32(int32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_s32(int32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_s64(int64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_s64(int64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_s16(int16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_s16(int16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_p8(poly8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_p8(poly8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_p16(poly16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_p16(poly16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_u8(uint8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_u8(uint8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_u32(uint32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_u32(uint32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_u64(uint64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_u64(uint64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_u16(uint16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_u16(uint16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_s8(int8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_s8(int8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_f32(float32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_f32(float32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_s32(int32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_s32(int32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_s64(int64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_s64(int64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_s16(int16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_s16(int16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_p8(poly8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_p8(poly8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_p16(poly16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_p16(poly16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_u8(uint8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_u8(uint8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_u32(uint32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_u32(uint32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_u64(uint64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_u64(uint64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_u16(uint16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_u16(uint16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_s8(int8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_s8(int8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_f32(float32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_f32(float32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_f16(float16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_f16(float16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_s64(int64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_s64(int64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_s16(int16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_s16(int16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_p8(poly8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_p8(poly8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_p16(poly16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_p16(poly16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_u8(uint8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_u8(uint8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_u32(uint32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_u32(uint32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_u64(uint64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_u64(uint64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_u16(uint16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_u16(uint16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_s8(int8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_s8(int8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_f32(float32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_f32(float32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_f16(float16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_f16(float16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_s32(int32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_s32(int32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_s16(int16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_s16(int16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_p8(poly8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_p8(poly8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_p16(poly16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_p16(poly16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_u8(uint8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_u8(uint8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_u32(uint32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_u32(uint32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_u64(uint64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_u64(uint64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_u16(uint16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_u16(uint16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_s8(int8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_s8(int8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_f32(float32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_f32(float32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_f16(float16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_f16(float16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_s32(int32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_s32(int32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_s64(int64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_s64(int64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#endif -#if (__ARM_FP & 2) -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vcvt_f16_f32(float32x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vcvt_f16_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float16x4_t __noswap_vcvt_f16_f32(float32x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__p0, 8); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vcvt_f32_f16(float16x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vcvt_f32_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float32x4_t __noswap_vcvt_f32_f16(float16x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__p0, 41); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f16(__p0) __extension__ ({ \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vld1q_v(__p0, 40); \ - __ret; \ -}) -#else -#define vld1q_f16(__p0) __extension__ ({ \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vld1q_v(__p0, 40); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f16(__p0) __extension__ ({ \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vld1_v(__p0, 8); \ - __ret; \ -}) -#else -#define vld1_f16(__p0) __extension__ ({ \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vld1_v(__p0, 8); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_f16(__p0) __extension__ ({ \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vld1q_dup_v(__p0, 40); \ - __ret; \ -}) -#else -#define vld1q_dup_f16(__p0) __extension__ ({ \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vld1q_dup_v(__p0, 40); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_f16(__p0) __extension__ ({ \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vld1_dup_v(__p0, 8); \ - __ret; \ -}) -#else -#define vld1_dup_f16(__p0) __extension__ ({ \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vld1_dup_v(__p0, 8); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s1 = __p1; \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 40); \ - __ret; \ -}) -#else -#define vld1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s1 = __p1; \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 40); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s1 = __p1; \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 8); \ - __ret; \ -}) -#else -#define vld1_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s1 = __p1; \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 8); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f16_x2(__p0) __extension__ ({ \ - float16x8x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 40); \ - __ret; \ -}) -#else -#define vld1q_f16_x2(__p0) __extension__ ({ \ - float16x8x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f16_x2(__p0) __extension__ ({ \ - float16x4x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 8); \ - __ret; \ -}) -#else -#define vld1_f16_x2(__p0) __extension__ ({ \ - float16x4x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f16_x3(__p0) __extension__ ({ \ - float16x8x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 40); \ - __ret; \ -}) -#else -#define vld1q_f16_x3(__p0) __extension__ ({ \ - float16x8x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f16_x3(__p0) __extension__ ({ \ - float16x4x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 8); \ - __ret; \ -}) -#else -#define vld1_f16_x3(__p0) __extension__ ({ \ - float16x4x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f16_x4(__p0) __extension__ ({ \ - float16x8x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 40); \ - __ret; \ -}) -#else -#define vld1q_f16_x4(__p0) __extension__ ({ \ - float16x8x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f16_x4(__p0) __extension__ ({ \ - float16x4x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 8); \ - __ret; \ -}) -#else -#define vld1_f16_x4(__p0) __extension__ ({ \ - float16x4x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_f16(__p0) __extension__ ({ \ - float16x8x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 40); \ - __ret; \ -}) -#else -#define vld2q_f16(__p0) __extension__ ({ \ - float16x8x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_f16(__p0) __extension__ ({ \ - float16x4x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 8); \ - __ret; \ -}) -#else -#define vld2_f16(__p0) __extension__ ({ \ - float16x4x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_f16(__p0) __extension__ ({ \ - float16x8x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 40); \ - __ret; \ -}) -#else -#define vld2q_dup_f16(__p0) __extension__ ({ \ - float16x8x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_f16(__p0) __extension__ ({ \ - float16x4x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 8); \ - __ret; \ -}) -#else -#define vld2_dup_f16(__p0) __extension__ ({ \ - float16x4x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x2_t __s1 = __p1; \ - float16x8x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 40); \ - __ret; \ -}) -#else -#define vld2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x2_t __s1 = __p1; \ - float16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x2_t __s1 = __p1; \ - float16x4x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 8); \ - __ret; \ -}) -#else -#define vld2_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x2_t __s1 = __p1; \ - float16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - float16x4x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_f16(__p0) __extension__ ({ \ - float16x8x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 40); \ - __ret; \ -}) -#else -#define vld3q_f16(__p0) __extension__ ({ \ - float16x8x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_f16(__p0) __extension__ ({ \ - float16x4x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 8); \ - __ret; \ -}) -#else -#define vld3_f16(__p0) __extension__ ({ \ - float16x4x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_f16(__p0) __extension__ ({ \ - float16x8x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 40); \ - __ret; \ -}) -#else -#define vld3q_dup_f16(__p0) __extension__ ({ \ - float16x8x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_f16(__p0) __extension__ ({ \ - float16x4x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 8); \ - __ret; \ -}) -#else -#define vld3_dup_f16(__p0) __extension__ ({ \ - float16x4x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x3_t __s1 = __p1; \ - float16x8x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 40); \ - __ret; \ -}) -#else -#define vld3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x3_t __s1 = __p1; \ - float16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x3_t __s1 = __p1; \ - float16x4x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 8); \ - __ret; \ -}) -#else -#define vld3_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x3_t __s1 = __p1; \ - float16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - float16x4x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_f16(__p0) __extension__ ({ \ - float16x8x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 40); \ - __ret; \ -}) -#else -#define vld4q_f16(__p0) __extension__ ({ \ - float16x8x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_f16(__p0) __extension__ ({ \ - float16x4x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 8); \ - __ret; \ -}) -#else -#define vld4_f16(__p0) __extension__ ({ \ - float16x4x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_f16(__p0) __extension__ ({ \ - float16x8x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 40); \ - __ret; \ -}) -#else -#define vld4q_dup_f16(__p0) __extension__ ({ \ - float16x8x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_f16(__p0) __extension__ ({ \ - float16x4x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 8); \ - __ret; \ -}) -#else -#define vld4_dup_f16(__p0) __extension__ ({ \ - float16x4x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x4_t __s1 = __p1; \ - float16x8x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 40); \ - __ret; \ -}) -#else -#define vld4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x4_t __s1 = __p1; \ - float16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 40); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x4_t __s1 = __p1; \ - float16x4x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 8); \ - __ret; \ -}) -#else -#define vld4_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x4_t __s1 = __p1; \ - float16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - float16x4x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 8); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 40); \ -}) -#else -#define vst1q_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s1 = __p1; \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 8); \ -}) -#else -#define vst1_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s1 = __p1; \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 8); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 40); \ -}) -#else -#define vst1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s1 = __p1; \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 8); \ -}) -#else -#define vst1_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s1 = __p1; \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 8); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f16_x2(__p0, __p1) __extension__ ({ \ - float16x8x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 40); \ -}) -#else -#define vst1q_f16_x2(__p0, __p1) __extension__ ({ \ - float16x8x2_t __s1 = __p1; \ - float16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f16_x2(__p0, __p1) __extension__ ({ \ - float16x4x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 8); \ -}) -#else -#define vst1_f16_x2(__p0, __p1) __extension__ ({ \ - float16x4x2_t __s1 = __p1; \ - float16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst1_x2_v(__p0, __rev1.val[0], __rev1.val[1], 8); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f16_x3(__p0, __p1) __extension__ ({ \ - float16x8x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 40); \ -}) -#else -#define vst1q_f16_x3(__p0, __p1) __extension__ ({ \ - float16x8x3_t __s1 = __p1; \ - float16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f16_x3(__p0, __p1) __extension__ ({ \ - float16x4x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 8); \ -}) -#else -#define vst1_f16_x3(__p0, __p1) __extension__ ({ \ - float16x4x3_t __s1 = __p1; \ - float16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst1_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 8); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f16_x4(__p0, __p1) __extension__ ({ \ - float16x8x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 40); \ -}) -#else -#define vst1q_f16_x4(__p0, __p1) __extension__ ({ \ - float16x8x4_t __s1 = __p1; \ - float16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f16_x4(__p0, __p1) __extension__ ({ \ - float16x4x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 8); \ -}) -#else -#define vst1_f16_x4(__p0, __p1) __extension__ ({ \ - float16x4x4_t __s1 = __p1; \ - float16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst1_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 8); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_f16(__p0, __p1) __extension__ ({ \ - float16x8x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 40); \ -}) -#else -#define vst2q_f16(__p0, __p1) __extension__ ({ \ - float16x8x2_t __s1 = __p1; \ - float16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_f16(__p0, __p1) __extension__ ({ \ - float16x4x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 8); \ -}) -#else -#define vst2_f16(__p0, __p1) __extension__ ({ \ - float16x4x2_t __s1 = __p1; \ - float16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2_v(__p0, __rev1.val[0], __rev1.val[1], 8); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 40); \ -}) -#else -#define vst2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x2_t __s1 = __p1; \ - float16x8x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 8); \ -}) -#else -#define vst2_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x2_t __s1 = __p1; \ - float16x4x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __builtin_neon_vst2_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 8); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_f16(__p0, __p1) __extension__ ({ \ - float16x8x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 40); \ -}) -#else -#define vst3q_f16(__p0, __p1) __extension__ ({ \ - float16x8x3_t __s1 = __p1; \ - float16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_f16(__p0, __p1) __extension__ ({ \ - float16x4x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 8); \ -}) -#else -#define vst3_f16(__p0, __p1) __extension__ ({ \ - float16x4x3_t __s1 = __p1; \ - float16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 8); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 40); \ -}) -#else -#define vst3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x3_t __s1 = __p1; \ - float16x8x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 8); \ -}) -#else -#define vst3_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x3_t __s1 = __p1; \ - float16x4x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __builtin_neon_vst3_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 8); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_f16(__p0, __p1) __extension__ ({ \ - float16x8x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 40); \ -}) -#else -#define vst4q_f16(__p0, __p1) __extension__ ({ \ - float16x8x4_t __s1 = __p1; \ - float16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_f16(__p0, __p1) __extension__ ({ \ - float16x4x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 8); \ -}) -#else -#define vst4_f16(__p0, __p1) __extension__ ({ \ - float16x4x4_t __s1 = __p1; \ - float16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 8); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 40); \ -}) -#else -#define vst4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8x4_t __s1 = __p1; \ - float16x8x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 40); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 8); \ -}) -#else -#define vst4_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4x4_t __s1 = __p1; \ - float16x4x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \ - __builtin_neon_vst4_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 8); \ -}) -#endif - -#endif -#if __ARM_ARCH >= 8 -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vcvtaq_s32_f32(float32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vcvtaq_s32_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vcvtaq_s32_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vcvtaq_s32_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vcvta_s32_f32(float32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcvta_s32_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vcvta_s32_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcvta_s32_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcvtaq_u32_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcvtaq_u32_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcvtaq_u32_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcvtaq_u32_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcvta_u32_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcvta_u32_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcvta_u32_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcvta_u32_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vcvtmq_s32_f32(float32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vcvtmq_s32_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vcvtmq_s32_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vcvtmq_s32_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vcvtm_s32_f32(float32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcvtm_s32_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vcvtm_s32_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcvtm_s32_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcvtmq_u32_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcvtmq_u32_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcvtmq_u32_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcvtmq_u32_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcvtm_u32_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcvtm_u32_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcvtm_u32_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcvtm_u32_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vcvtnq_s32_f32(float32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vcvtnq_s32_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vcvtnq_s32_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vcvtnq_s32_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vcvtn_s32_f32(float32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcvtn_s32_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vcvtn_s32_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcvtn_s32_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcvtnq_u32_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcvtnq_u32_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcvtnq_u32_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcvtnq_u32_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcvtn_u32_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcvtn_u32_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcvtn_u32_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcvtn_u32_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vcvtpq_s32_f32(float32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vcvtpq_s32_v((int8x16_t)__p0, 34); - return __ret; -} -#else -__ai int32x4_t vcvtpq_s32_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vcvtpq_s32_v((int8x16_t)__rev0, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vcvtp_s32_f32(float32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcvtp_s32_v((int8x8_t)__p0, 2); - return __ret; -} -#else -__ai int32x2_t vcvtp_s32_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vcvtp_s32_v((int8x8_t)__rev0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcvtpq_u32_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcvtpq_u32_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcvtpq_u32_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcvtpq_u32_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcvtp_u32_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcvtp_u32_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcvtp_u32_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcvtp_u32_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#endif -#if __ARM_ARCH >= 8 && defined(__ARM_FEATURE_CRYPTO) -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vaesdq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vaesdq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vaesdq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vaesdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vaeseq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vaeseq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vaeseq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vaeseq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vaesimcq_u8(uint8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vaesimcq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vaesimcq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vaesimcq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vaesmcq_u8(uint8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vaesmcq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vaesmcq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vaesmcq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsha1cq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha1cq_u32((int8x16_t)__p0, __p1, (int8x16_t)__p2); - return __ret; -} -#else -__ai uint32x4_t vsha1cq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha1cq_u32((int8x16_t)__rev0, __p1, (int8x16_t)__rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vsha1h_u32(uint32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vsha1h_u32(__p0); - return __ret; -} -#else -__ai uint32_t vsha1h_u32(uint32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vsha1h_u32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsha1mq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha1mq_u32((int8x16_t)__p0, __p1, (int8x16_t)__p2); - return __ret; -} -#else -__ai uint32x4_t vsha1mq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha1mq_u32((int8x16_t)__rev0, __p1, (int8x16_t)__rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsha1pq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha1pq_u32((int8x16_t)__p0, __p1, (int8x16_t)__p2); - return __ret; -} -#else -__ai uint32x4_t vsha1pq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha1pq_u32((int8x16_t)__rev0, __p1, (int8x16_t)__rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsha1su0q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha1su0q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50); - return __ret; -} -#else -__ai uint32x4_t vsha1su0q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha1su0q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsha1su1q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha1su1q_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vsha1su1q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha1su1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsha256hq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha256hq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50); - return __ret; -} -#else -__ai uint32x4_t vsha256hq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha256hq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsha256h2q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha256h2q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50); - return __ret; -} -#else -__ai uint32x4_t vsha256h2q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha256h2q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsha256su0q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha256su0q_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vsha256su0q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha256su0q_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsha256su1q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha256su1q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50); - return __ret; -} -#else -__ai uint32x4_t vsha256su1q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsha256su1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#endif -#if __ARM_ARCH >= 8 && defined(__ARM_FEATURE_DIRECTED_ROUNDING) -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrndq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vrndq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrnd_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrnd_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vrnd_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrnd_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrndaq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndaq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vrndaq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndaq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrnda_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrnda_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vrnda_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrnda_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrndiq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndiq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vrndiq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndiq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrndi_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrndi_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vrndi_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrndi_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrndmq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndmq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vrndmq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndmq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrndm_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrndm_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vrndm_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrndm_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrndnq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndnq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vrndnq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndnq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrndn_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrndn_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vrndn_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrndn_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vrndns_f32(float32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrndns_f32(__p0); - return __ret; -} -#else -__ai float32_t vrndns_f32(float32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrndns_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrndpq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndpq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vrndpq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndpq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrndp_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrndp_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vrndp_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrndp_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vrndxq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndxq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vrndxq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vrndxq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vrndx_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrndx_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vrndx_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vrndx_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#endif -#if __ARM_ARCH >= 8 && defined(__ARM_FEATURE_DIRECTED_ROUNDING) && defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrndq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vrndq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrnd_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrnd_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vrnd_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrnd_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrndaq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndaq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vrndaq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndaq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrnda_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrnda_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vrnda_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrnda_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrndmq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndmq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vrndmq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndmq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrndm_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrndm_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vrndm_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrndm_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrndnq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndnq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vrndnq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndnq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrndn_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrndn_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vrndn_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrndn_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrndpq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndpq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vrndpq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndpq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrndp_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrndp_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vrndp_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrndp_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrndxq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndxq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vrndxq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndxq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrndx_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrndx_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vrndx_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrndx_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#endif -#if __ARM_ARCH >= 8 && defined(__ARM_FEATURE_NUMERIC_MAXMIN) -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vmaxnmq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vmaxnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vmaxnmq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vmaxnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmaxnm_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vmaxnm_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vmaxnm_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vmaxnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vminnmq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vminnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vminnmq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vminnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vminnm_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vminnm_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vminnm_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vminnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#endif -#if __ARM_ARCH >= 8 && defined(__ARM_FEATURE_NUMERIC_MAXMIN) && defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vmaxnmq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vmaxnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vmaxnmq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vmaxnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vmaxnm_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vmaxnm_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vmaxnm_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vmaxnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vminnmq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vminnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vminnmq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vminnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vminnm_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vminnm_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vminnm_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vminnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#endif -#if __ARM_ARCH >= 8 && defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vcvtaq_s64_f64(float64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vcvtaq_s64_v((int8x16_t)__p0, 35); - return __ret; -} -#else -__ai int64x2_t vcvtaq_s64_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vcvtaq_s64_v((int8x16_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vcvta_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vcvta_s64_v((int8x8_t)__p0, 3); - return __ret; -} -#else -__ai int64x1_t vcvta_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vcvta_s64_v((int8x8_t)__p0, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcvtaq_u64_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcvtaq_u64_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcvtaq_u64_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcvtaq_u64_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcvta_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcvta_u64_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcvta_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcvta_u64_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vcvtmq_s64_f64(float64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vcvtmq_s64_v((int8x16_t)__p0, 35); - return __ret; -} -#else -__ai int64x2_t vcvtmq_s64_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vcvtmq_s64_v((int8x16_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vcvtm_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vcvtm_s64_v((int8x8_t)__p0, 3); - return __ret; -} -#else -__ai int64x1_t vcvtm_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vcvtm_s64_v((int8x8_t)__p0, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcvtmq_u64_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcvtmq_u64_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcvtmq_u64_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcvtmq_u64_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcvtm_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcvtm_u64_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcvtm_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcvtm_u64_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vcvtnq_s64_f64(float64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vcvtnq_s64_v((int8x16_t)__p0, 35); - return __ret; -} -#else -__ai int64x2_t vcvtnq_s64_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vcvtnq_s64_v((int8x16_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vcvtn_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vcvtn_s64_v((int8x8_t)__p0, 3); - return __ret; -} -#else -__ai int64x1_t vcvtn_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vcvtn_s64_v((int8x8_t)__p0, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcvtnq_u64_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcvtnq_u64_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcvtnq_u64_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcvtnq_u64_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcvtn_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcvtn_u64_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcvtn_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcvtn_u64_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vcvtpq_s64_f64(float64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vcvtpq_s64_v((int8x16_t)__p0, 35); - return __ret; -} -#else -__ai int64x2_t vcvtpq_s64_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vcvtpq_s64_v((int8x16_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vcvtp_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vcvtp_s64_v((int8x8_t)__p0, 3); - return __ret; -} -#else -__ai int64x1_t vcvtp_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vcvtp_s64_v((int8x8_t)__p0, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcvtpq_u64_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcvtpq_u64_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcvtpq_u64_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcvtpq_u64_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcvtp_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcvtp_u64_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcvtp_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcvtp_u64_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_p64(poly64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_p64(poly64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_p16(poly16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_p16(poly16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_u8(uint8x8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_u8(uint8x8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_u32(uint32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_u32(uint32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_u64(uint64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_u64(uint64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_u16(uint16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_u16(uint16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_s8(int8x8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_s8(int8x8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_f64(float64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_f64(float64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_f32(float32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_f32(float32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_f16(float16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_f16(float16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_s32(int32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_s32(int32x2_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_s64(int64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_s64(int64x1_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vreinterpret_p8_s16(int16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#else -__ai poly8x8_t vreinterpret_p8_s16(int16x4_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_p8(poly8x8_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_p8(poly8x8_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_p16(poly16x4_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_p16(poly16x4_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_u8(uint8x8_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_u8(uint8x8_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_u32(uint32x2_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_u32(uint32x2_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_u64(uint64x1_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_u64(uint64x1_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_u16(uint16x4_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_u16(uint16x4_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_s8(int8x8_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_s8(int8x8_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_f64(float64x1_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_f64(float64x1_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_f32(float32x2_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_f32(float32x2_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_f16(float16x4_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_f16(float16x4_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_s32(int32x2_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_s32(int32x2_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_s64(int64x1_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_s64(int64x1_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vreinterpret_p64_s16(int16x4_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vreinterpret_p64_s16(int16x4_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_p8(poly8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_p8(poly8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_p64(poly64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_p64(poly64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_u8(uint8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_u8(uint8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_u32(uint32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_u32(uint32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_u64(uint64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_u64(uint64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_u16(uint16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_u16(uint16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_s8(int8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_s8(int8x8_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_f64(float64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_f64(float64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_f32(float32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_f32(float32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_f16(float16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_f16(float16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_s32(int32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_s32(int32x2_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_s64(int64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_s64(int64x1_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vreinterpret_p16_s16(int16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#else -__ai poly16x4_t vreinterpret_p16_s16(int16x4_t __p0) { - poly16x4_t __ret; - __ret = (poly16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_p128(poly128_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_p128(poly128_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_p64(poly64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_p64(poly64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_p16(poly16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_p16(poly16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_u8(uint8x16_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_u8(uint8x16_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_u32(uint32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_u32(uint32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_u64(uint64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_u64(uint64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_u16(uint16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_u16(uint16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_s8(int8x16_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_s8(int8x16_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_f64(float64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_f64(float64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_f32(float32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_f32(float32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_f16(float16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_f16(float16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_s32(int32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_s32(int32x4_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_s64(int64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_s64(int64x2_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vreinterpretq_p8_s16(int16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#else -__ai poly8x16_t vreinterpretq_p8_s16(int16x8_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_p8(poly8x16_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_p8(poly8x16_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_p64(poly64x2_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_p64(poly64x2_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_p16(poly16x8_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_p16(poly16x8_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_u8(uint8x16_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_u8(uint8x16_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_u32(uint32x4_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_u32(uint32x4_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_u64(uint64x2_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_u64(uint64x2_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_u16(uint16x8_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_u16(uint16x8_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_s8(int8x16_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_s8(int8x16_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_f64(float64x2_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_f64(float64x2_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_f32(float32x4_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_f32(float32x4_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_f16(float16x8_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_f16(float16x8_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_s32(int32x4_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_s32(int32x4_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_s64(int64x2_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_s64(int64x2_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vreinterpretq_p128_s16(int16x8_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#else -__ai poly128_t vreinterpretq_p128_s16(int16x8_t __p0) { - poly128_t __ret; - __ret = (poly128_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_p8(poly8x16_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_p8(poly8x16_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_p128(poly128_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_p128(poly128_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_p16(poly16x8_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_p16(poly16x8_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_u8(uint8x16_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_u8(uint8x16_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_u32(uint32x4_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_u32(uint32x4_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_u64(uint64x2_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_u64(uint64x2_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_u16(uint16x8_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_u16(uint16x8_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_s8(int8x16_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_s8(int8x16_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_f64(float64x2_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_f64(float64x2_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_f32(float32x4_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_f32(float32x4_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_f16(float16x8_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_f16(float16x8_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_s32(int32x4_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_s32(int32x4_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_s64(int64x2_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_s64(int64x2_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vreinterpretq_p64_s16(int16x8_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#else -__ai poly64x2_t vreinterpretq_p64_s16(int16x8_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_p8(poly8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_p8(poly8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_p128(poly128_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_p128(poly128_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_p64(poly64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_p64(poly64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_u8(uint8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_u8(uint8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_u32(uint32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_u32(uint32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_u64(uint64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_u64(uint64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_u16(uint16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_u16(uint16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_s8(int8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_s8(int8x16_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_f64(float64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_f64(float64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_f32(float32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_f32(float32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_f16(float16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_f16(float16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_s32(int32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_s32(int32x4_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_s64(int64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_s64(int64x2_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vreinterpretq_p16_s16(int16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#else -__ai poly16x8_t vreinterpretq_p16_s16(int16x8_t __p0) { - poly16x8_t __ret; - __ret = (poly16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_p8(poly8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_p8(poly8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_p128(poly128_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_p128(poly128_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_p64(poly64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_p64(poly64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_p16(poly16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_p16(poly16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_u32(uint32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_u32(uint32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_u64(uint64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_u64(uint64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_u16(uint16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_u16(uint16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_s8(int8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_s8(int8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_f64(float64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_f64(float64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_f32(float32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_f32(float32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_f16(float16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_f16(float16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_s32(int32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_s32(int32x4_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_s64(int64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_s64(int64x2_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vreinterpretq_u8_s16(int16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#else -__ai uint8x16_t vreinterpretq_u8_s16(int16x8_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_p8(poly8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_p8(poly8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_p128(poly128_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_p128(poly128_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_p64(poly64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_p64(poly64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_p16(poly16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_p16(poly16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_u8(uint8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_u8(uint8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_u64(uint64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_u64(uint64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_u16(uint16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_u16(uint16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_s8(int8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_s8(int8x16_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_f64(float64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_f64(float64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_f16(float16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_f16(float16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_s32(int32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_s32(int32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_s64(int64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_s64(int64x2_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vreinterpretq_u32_s16(int16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#else -__ai uint32x4_t vreinterpretq_u32_s16(int16x8_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_p8(poly8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_p8(poly8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_p128(poly128_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_p128(poly128_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_p64(poly64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_p64(poly64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_p16(poly16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_p16(poly16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_u8(uint8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_u8(uint8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_u32(uint32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_u32(uint32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_u16(uint16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_u16(uint16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_s8(int8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_s8(int8x16_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_f32(float32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_f32(float32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_f16(float16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_f16(float16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_s32(int32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_s32(int32x4_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_s64(int64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_s64(int64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vreinterpretq_u64_s16(int16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#else -__ai uint64x2_t vreinterpretq_u64_s16(int16x8_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_p8(poly8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_p8(poly8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_p128(poly128_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_p128(poly128_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_p64(poly64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_p64(poly64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_p16(poly16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_p16(poly16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_u8(uint8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_u8(uint8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_u32(uint32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_u32(uint32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_u64(uint64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_u64(uint64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_s8(int8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_s8(int8x16_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_f64(float64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_f64(float64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_f32(float32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_f32(float32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_s32(int32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_s32(int32x4_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_s64(int64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_s64(int64x2_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vreinterpretq_u16_s16(int16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#else -__ai uint16x8_t vreinterpretq_u16_s16(int16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_p8(poly8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_p8(poly8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_p128(poly128_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_p128(poly128_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_p64(poly64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_p64(poly64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_p16(poly16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_p16(poly16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_u8(uint8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_u8(uint8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_u32(uint32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_u32(uint32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_u64(uint64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_u64(uint64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_u16(uint16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_u16(uint16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_f64(float64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_f64(float64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_f32(float32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_f32(float32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_f16(float16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_f16(float16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_s32(int32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_s32(int32x4_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_s64(int64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_s64(int64x2_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vreinterpretq_s8_s16(int16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#else -__ai int8x16_t vreinterpretq_s8_s16(int16x8_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_p8(poly8x16_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_p8(poly8x16_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_p128(poly128_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_p128(poly128_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_p64(poly64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_p64(poly64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_p16(poly16x8_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_p16(poly16x8_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_u8(uint8x16_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_u8(uint8x16_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_u32(uint32x4_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_u32(uint32x4_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_u64(uint64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_u64(uint64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_u16(uint16x8_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_u16(uint16x8_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_s8(int8x16_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_s8(int8x16_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_f32(float32x4_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_f32(float32x4_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_f16(float16x8_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_f16(float16x8_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_s32(int32x4_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_s32(int32x4_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_s64(int64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_s64(int64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vreinterpretq_f64_s16(int16x8_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#else -__ai float64x2_t vreinterpretq_f64_s16(int16x8_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_p8(poly8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_p8(poly8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_p128(poly128_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_p128(poly128_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_p64(poly64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_p64(poly64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_p16(poly16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_p16(poly16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_u8(uint8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_u8(uint8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_u32(uint32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_u32(uint32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_u64(uint64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_u64(uint64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_u16(uint16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_u16(uint16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_s8(int8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_s8(int8x16_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_f64(float64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_f64(float64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_f16(float16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_f16(float16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_s32(int32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_s32(int32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_s64(int64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_s64(int64x2_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vreinterpretq_f32_s16(int16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#else -__ai float32x4_t vreinterpretq_f32_s16(int16x8_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_p8(poly8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_p8(poly8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_p128(poly128_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_p128(poly128_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_p64(poly64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_p64(poly64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_p16(poly16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_p16(poly16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_u8(uint8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_u8(uint8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_u32(uint32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_u32(uint32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_u64(uint64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_u64(uint64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_u16(uint16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_u16(uint16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_s8(int8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_s8(int8x16_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_f64(float64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_f64(float64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_f32(float32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_f32(float32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_s32(int32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_s32(int32x4_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_s64(int64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_s64(int64x2_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vreinterpretq_f16_s16(int16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#else -__ai float16x8_t vreinterpretq_f16_s16(int16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_p8(poly8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_p8(poly8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_p128(poly128_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_p128(poly128_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_p64(poly64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_p64(poly64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_p16(poly16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_p16(poly16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_u8(uint8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_u8(uint8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_u32(uint32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_u32(uint32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_u64(uint64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_u64(uint64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_u16(uint16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_u16(uint16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_s8(int8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_s8(int8x16_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_f64(float64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_f64(float64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_f32(float32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_f32(float32x4_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_f16(float16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_f16(float16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_s64(int64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_s64(int64x2_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vreinterpretq_s32_s16(int16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#else -__ai int32x4_t vreinterpretq_s32_s16(int16x8_t __p0) { - int32x4_t __ret; - __ret = (int32x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_p8(poly8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_p8(poly8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_p128(poly128_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_p128(poly128_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_p64(poly64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_p64(poly64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_p16(poly16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_p16(poly16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_u8(uint8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_u8(uint8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_u32(uint32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_u32(uint32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_u64(uint64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_u64(uint64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_u16(uint16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_u16(uint16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_s8(int8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_s8(int8x16_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_f64(float64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_f64(float64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_f32(float32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_f32(float32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_f16(float16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_f16(float16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_s32(int32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_s32(int32x4_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vreinterpretq_s64_s16(int16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#else -__ai int64x2_t vreinterpretq_s64_s16(int16x8_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_p8(poly8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_p8(poly8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_p128(poly128_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_p128(poly128_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_p64(poly64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_p64(poly64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_p16(poly16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_p16(poly16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_u8(uint8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_u8(uint8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_u32(uint32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_u32(uint32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_u64(uint64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_u64(uint64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_u16(uint16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_u16(uint16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_s8(int8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_s8(int8x16_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_f64(float64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_f64(float64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_f32(float32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_f32(float32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_f16(float16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_f16(float16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_s32(int32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_s32(int32x4_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vreinterpretq_s16_s64(int64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#else -__ai int16x8_t vreinterpretq_s16_s64(int64x2_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_p8(poly8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_p8(poly8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_p64(poly64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_p64(poly64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_p16(poly16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_p16(poly16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_u32(uint32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_u32(uint32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_u64(uint64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_u64(uint64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_u16(uint16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_u16(uint16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_s8(int8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_s8(int8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_f64(float64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_f64(float64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_f32(float32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_f32(float32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_f16(float16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_f16(float16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_s32(int32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_s32(int32x2_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_s64(int64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_s64(int64x1_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vreinterpret_u8_s16(int16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#else -__ai uint8x8_t vreinterpret_u8_s16(int16x4_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_p8(poly8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_p8(poly8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_p64(poly64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_p64(poly64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_p16(poly16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_p16(poly16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_u8(uint8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_u8(uint8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_u64(uint64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_u64(uint64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_u16(uint16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_u16(uint16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_s8(int8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_s8(int8x8_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_f64(float64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_f64(float64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_f16(float16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_f16(float16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_s32(int32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_s32(int32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_s64(int64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_s64(int64x1_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vreinterpret_u32_s16(int16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#else -__ai uint32x2_t vreinterpret_u32_s16(int16x4_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_p8(poly8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_p8(poly8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_p64(poly64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_p64(poly64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_p16(poly16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_p16(poly16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_u8(uint8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_u8(uint8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_u32(uint32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_u32(uint32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_u16(uint16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_u16(uint16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_s8(int8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_s8(int8x8_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_f32(float32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_f32(float32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_f16(float16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_f16(float16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_s32(int32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_s32(int32x2_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vreinterpret_u64_s16(int16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#else -__ai uint64x1_t vreinterpret_u64_s16(int16x4_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_p8(poly8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_p8(poly8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_p64(poly64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_p64(poly64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_p16(poly16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_p16(poly16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_u8(uint8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_u8(uint8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_u32(uint32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_u32(uint32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_u64(uint64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_u64(uint64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_s8(int8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_s8(int8x8_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_f64(float64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_f64(float64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_f32(float32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_f32(float32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_s32(int32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_s32(int32x2_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_s64(int64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_s64(int64x1_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vreinterpret_u16_s16(int16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#else -__ai uint16x4_t vreinterpret_u16_s16(int16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_p8(poly8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_p8(poly8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_p64(poly64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_p64(poly64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_p16(poly16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_p16(poly16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_u8(uint8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_u8(uint8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_u32(uint32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_u32(uint32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_u64(uint64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_u64(uint64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_u16(uint16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_u16(uint16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_f64(float64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_f64(float64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_f32(float32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_f32(float32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_f16(float16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_f16(float16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_s32(int32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_s32(int32x2_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_s64(int64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_s64(int64x1_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vreinterpret_s8_s16(int16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#else -__ai int8x8_t vreinterpret_s8_s16(int16x4_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_p8(poly8x8_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_p8(poly8x8_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_p64(poly64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_p64(poly64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_p16(poly16x4_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_p16(poly16x4_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_u8(uint8x8_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_u8(uint8x8_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_u32(uint32x2_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_u32(uint32x2_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_u64(uint64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_u64(uint64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_u16(uint16x4_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_u16(uint16x4_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_s8(int8x8_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_s8(int8x8_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_f32(float32x2_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_f32(float32x2_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_f16(float16x4_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_f16(float16x4_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_s32(int32x2_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_s32(int32x2_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_s64(int64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_s64(int64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vreinterpret_f64_s16(int16x4_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vreinterpret_f64_s16(int16x4_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_p8(poly8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_p8(poly8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_p64(poly64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_p64(poly64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_p16(poly16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_p16(poly16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_u8(uint8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_u8(uint8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_u32(uint32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_u32(uint32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_u64(uint64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_u64(uint64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_u16(uint16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_u16(uint16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_s8(int8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_s8(int8x8_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_f64(float64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_f64(float64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_f16(float16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_f16(float16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_s32(int32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_s32(int32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_s64(int64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_s64(int64x1_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vreinterpret_f32_s16(int16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#else -__ai float32x2_t vreinterpret_f32_s16(int16x4_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_p8(poly8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_p8(poly8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_p64(poly64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_p64(poly64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_p16(poly16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_p16(poly16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_u8(uint8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_u8(uint8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_u32(uint32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_u32(uint32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_u64(uint64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_u64(uint64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_u16(uint16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_u16(uint16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_s8(int8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_s8(int8x8_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_f64(float64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_f64(float64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_f32(float32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_f32(float32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_s32(int32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_s32(int32x2_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_s64(int64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_s64(int64x1_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vreinterpret_f16_s16(int16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#else -__ai float16x4_t vreinterpret_f16_s16(int16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_p8(poly8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_p8(poly8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_p64(poly64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_p64(poly64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_p16(poly16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_p16(poly16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_u8(uint8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_u8(uint8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_u32(uint32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_u32(uint32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_u64(uint64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_u64(uint64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_u16(uint16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_u16(uint16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_s8(int8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_s8(int8x8_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_f64(float64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_f64(float64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_f32(float32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_f32(float32x2_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_f16(float16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_f16(float16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_s64(int64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_s64(int64x1_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vreinterpret_s32_s16(int16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#else -__ai int32x2_t vreinterpret_s32_s16(int16x4_t __p0) { - int32x2_t __ret; - __ret = (int32x2_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_p8(poly8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_p8(poly8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_p64(poly64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_p64(poly64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_p16(poly16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_p16(poly16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_u8(uint8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_u8(uint8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_u32(uint32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_u32(uint32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_u64(uint64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_u64(uint64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_u16(uint16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_u16(uint16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_s8(int8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_s8(int8x8_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_f32(float32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_f32(float32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_f16(float16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_f16(float16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_s32(int32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_s32(int32x2_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vreinterpret_s64_s16(int16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#else -__ai int64x1_t vreinterpret_s64_s16(int16x4_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_p8(poly8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_p8(poly8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_p64(poly64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_p64(poly64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_p16(poly16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_p16(poly16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_u8(uint8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_u8(uint8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_u32(uint32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_u32(uint32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_u64(uint64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_u64(uint64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_u16(uint16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_u16(uint16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_s8(int8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_s8(int8x8_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_f64(float64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_f64(float64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_f32(float32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_f32(float32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_f16(float16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_f16(float16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_s32(int32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_s32(int32x2_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vreinterpret_s16_s64(int64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#else -__ai int16x4_t vreinterpret_s16_s64(int64x1_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t)(__p0); - return __ret; -} -#endif - -#endif -#if __ARM_ARCH >= 8 && defined(__aarch64__) && defined(__ARM_FEATURE_DIRECTED_ROUNDING) -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrndq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vrndq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrnd_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrnd_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vrnd_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrnd_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrndaq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndaq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vrndaq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndaq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrnda_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrnda_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vrnda_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrnda_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrndiq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndiq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vrndiq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndiq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrndi_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrndi_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vrndi_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrndi_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrndmq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndmq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vrndmq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndmq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrndm_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrndm_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vrndm_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrndm_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrndnq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndnq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vrndnq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndnq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrndn_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrndn_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vrndn_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrndn_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrndpq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndpq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vrndpq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndpq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrndp_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrndp_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vrndp_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrndp_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrndxq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndxq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vrndxq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrndxq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrndx_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrndx_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vrndx_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrndx_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#endif -#if __ARM_ARCH >= 8 && defined(__aarch64__) && defined(__ARM_FEATURE_NUMERIC_MAXMIN) -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vmaxnmq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vmaxnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vmaxnmq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vmaxnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vmaxnm_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vmaxnm_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#else -__ai float64x1_t vmaxnm_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vmaxnm_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vminnmq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vminnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vminnmq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vminnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vminnm_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vminnm_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#else -__ai float64x1_t vminnm_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vminnm_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#endif - -#endif -#if defined(__ARM_FEATURE_DOTPROD) -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vdotq_u32(uint32x4_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vdotq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50); - return __ret; -} -#else -__ai uint32x4_t vdotq_u32(uint32x4_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vdotq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vdotq_u32(uint32x4_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vdotq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vdotq_s32(int32x4_t __p0, int8x16_t __p1, int8x16_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vdotq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 34); - return __ret; -} -#else -__ai int32x4_t vdotq_s32(int32x4_t __p0, int8x16_t __p1, int8x16_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vdotq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vdotq_s32(int32x4_t __p0, int8x16_t __p1, int8x16_t __p2) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vdotq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 34); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vdot_u32(uint32x2_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vdot_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 18); - return __ret; -} -#else -__ai uint32x2_t vdot_u32(uint32x2_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vdot_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint32x2_t __noswap_vdot_u32(uint32x2_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vdot_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 18); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vdot_s32(int32x2_t __p0, int8x8_t __p1, int8x8_t __p2) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vdot_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 2); - return __ret; -} -#else -__ai int32x2_t vdot_s32(int32x2_t __p0, int8x8_t __p1, int8x8_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vdot_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int32x2_t __noswap_vdot_s32(int32x2_t __p0, int8x8_t __p1, int8x8_t __p2) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vdot_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdotq_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x8_t __s2 = __p2; \ - uint32x4_t __ret; \ -uint8x8_t __reint = __s2; \ -uint32x4_t __reint1 = __builtin_shufflevector(*(uint32x2_t *) &__reint, *(uint32x2_t *) &__reint, __p3, __p3, __p3, __p3); \ - __ret = vdotq_u32(__s0, __s1, *(uint8x16_t *) &__reint1); \ - __ret; \ -}) -#else -#define vdotq_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x8_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x4_t __ret; \ -uint8x8_t __reint = __rev2; \ -uint32x4_t __reint1 = __builtin_shufflevector(*(uint32x2_t *) &__reint, *(uint32x2_t *) &__reint, __p3, __p3, __p3, __p3); \ - __ret = __noswap_vdotq_u32(__rev0, __rev1, *(uint8x16_t *) &__reint1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdotq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x8_t __s2 = __p2; \ - int32x4_t __ret; \ -int8x8_t __reint = __s2; \ -int32x4_t __reint1 = __builtin_shufflevector(*(uint32x2_t *) &__reint, *(uint32x2_t *) &__reint, __p3, __p3, __p3, __p3); \ - __ret = vdotq_s32(__s0, __s1, *(int8x16_t *) &__reint1); \ - __ret; \ -}) -#else -#define vdotq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x8_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ -int8x8_t __reint = __rev2; \ -int32x4_t __reint1 = __builtin_shufflevector(*(uint32x2_t *) &__reint, *(uint32x2_t *) &__reint, __p3, __p3, __p3, __p3); \ - __ret = __noswap_vdotq_s32(__rev0, __rev1, *(int8x16_t *) &__reint1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdot_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __s2 = __p2; \ - uint32x2_t __ret; \ -uint8x8_t __reint = __s2; \ -uint32x2_t __reint1 = __builtin_shufflevector(*(uint32x2_t *) &__reint, *(uint32x2_t *) &__reint, __p3, __p3); \ - __ret = vdot_u32(__s0, __s1, *(uint8x8_t *) &__reint1); \ - __ret; \ -}) -#else -#define vdot_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x8_t __s2 = __p2; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x2_t __ret; \ -uint8x8_t __reint = __rev2; \ -uint32x2_t __reint1 = __builtin_shufflevector(*(uint32x2_t *) &__reint, *(uint32x2_t *) &__reint, __p3, __p3); \ - __ret = __noswap_vdot_u32(__rev0, __rev1, *(uint8x8_t *) &__reint1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdot_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __s2 = __p2; \ - int32x2_t __ret; \ -int8x8_t __reint = __s2; \ -int32x2_t __reint1 = __builtin_shufflevector(*(uint32x2_t *) &__reint, *(uint32x2_t *) &__reint, __p3, __p3); \ - __ret = vdot_s32(__s0, __s1, *(int8x8_t *) &__reint1); \ - __ret; \ -}) -#else -#define vdot_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x8_t __s2 = __p2; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x2_t __ret; \ -int8x8_t __reint = __rev2; \ -int32x2_t __reint1 = __builtin_shufflevector(*(uint32x2_t *) &__reint, *(uint32x2_t *) &__reint, __p3, __p3); \ - __ret = __noswap_vdot_s32(__rev0, __rev1, *(int8x8_t *) &__reint1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#endif -#if defined(__ARM_FEATURE_DOTPROD) && defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -#define vdotq_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __s2 = __p2; \ - uint32x4_t __ret; \ -uint8x16_t __reint = __s2; \ -uint32x4_t __reint1 = __builtin_shufflevector(*(uint32x4_t *) &__reint, *(uint32x4_t *) &__reint, __p3, __p3, __p3, __p3); \ - __ret = vdotq_u32(__s0, __s1, *(uint8x16_t *) &__reint1); \ - __ret; \ -}) -#else -#define vdotq_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint8x16_t __s1 = __p1; \ - uint8x16_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x4_t __ret; \ -uint8x16_t __reint = __rev2; \ -uint32x4_t __reint1 = __builtin_shufflevector(*(uint32x4_t *) &__reint, *(uint32x4_t *) &__reint, __p3, __p3, __p3, __p3); \ - __ret = __noswap_vdotq_u32(__rev0, __rev1, *(uint8x16_t *) &__reint1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdotq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __s2 = __p2; \ - int32x4_t __ret; \ -int8x16_t __reint = __s2; \ -int32x4_t __reint1 = __builtin_shufflevector(*(uint32x4_t *) &__reint, *(uint32x4_t *) &__reint, __p3, __p3, __p3, __p3); \ - __ret = vdotq_s32(__s0, __s1, *(int8x16_t *) &__reint1); \ - __ret; \ -}) -#else -#define vdotq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int8x16_t __s1 = __p1; \ - int8x16_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ -int8x16_t __reint = __rev2; \ -int32x4_t __reint1 = __builtin_shufflevector(*(uint32x4_t *) &__reint, *(uint32x4_t *) &__reint, __p3, __p3, __p3, __p3); \ - __ret = __noswap_vdotq_s32(__rev0, __rev1, *(int8x16_t *) &__reint1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdot_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x16_t __s2 = __p2; \ - uint32x2_t __ret; \ -uint8x16_t __reint = __s2; \ -uint32x2_t __reint1 = __builtin_shufflevector(*(uint32x4_t *) &__reint, *(uint32x4_t *) &__reint, __p3, __p3); \ - __ret = vdot_u32(__s0, __s1, *(uint8x8_t *) &__reint1); \ - __ret; \ -}) -#else -#define vdot_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint8x8_t __s1 = __p1; \ - uint8x16_t __s2 = __p2; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x2_t __ret; \ -uint8x16_t __reint = __rev2; \ -uint32x2_t __reint1 = __builtin_shufflevector(*(uint32x4_t *) &__reint, *(uint32x4_t *) &__reint, __p3, __p3); \ - __ret = __noswap_vdot_u32(__rev0, __rev1, *(uint8x8_t *) &__reint1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdot_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x16_t __s2 = __p2; \ - int32x2_t __ret; \ -int8x16_t __reint = __s2; \ -int32x2_t __reint1 = __builtin_shufflevector(*(uint32x4_t *) &__reint, *(uint32x4_t *) &__reint, __p3, __p3); \ - __ret = vdot_s32(__s0, __s1, *(int8x8_t *) &__reint1); \ - __ret; \ -}) -#else -#define vdot_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int8x8_t __s1 = __p1; \ - int8x16_t __s2 = __p2; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x2_t __ret; \ -int8x16_t __reint = __rev2; \ -int32x2_t __reint1 = __builtin_shufflevector(*(uint32x4_t *) &__reint, *(uint32x4_t *) &__reint, __p3, __p3); \ - __ret = __noswap_vdot_s32(__rev0, __rev1, *(int8x8_t *) &__reint1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#endif -#if defined(__ARM_FEATURE_FMA) -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vfmaq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmaq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#else -__ai float32x4_t vfmaq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmaq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float32x4_t __noswap_vfmaq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmaq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vfma_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#else -__ai float32x2_t vfma_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfma_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float32x2_t __noswap_vfma_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vfmaq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) { - float32x4_t __ret; - __ret = vfmaq_f32(__p0, __p1, (float32x4_t) {__p2, __p2, __p2, __p2}); - return __ret; -} -#else -__ai float32x4_t vfmaq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __noswap_vfmaq_f32(__rev0, __rev1, (float32x4_t) {__p2, __p2, __p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vfma_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) { - float32x2_t __ret; - __ret = vfma_f32(__p0, __p1, (float32x2_t) {__p2, __p2}); - return __ret; -} -#else -__ai float32x2_t vfma_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __noswap_vfma_f32(__rev0, __rev1, (float32x2_t) {__p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vfmsq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - float32x4_t __ret; - __ret = vfmaq_f32(__p0, -__p1, __p2); - return __ret; -} -#else -__ai float32x4_t vfmsq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __noswap_vfmaq_f32(__rev0, -__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vfms_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - float32x2_t __ret; - __ret = vfma_f32(__p0, -__p1, __p2); - return __ret; -} -#else -__ai float32x2_t vfms_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - float32x2_t __ret; - __ret = __noswap_vfma_f32(__rev0, -__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#endif -#if defined(__ARM_FEATURE_FP16FML) && defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vfmlalq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlalq_high_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#else -__ai float32x4_t vfmlalq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlalq_high_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float32x4_t __noswap_vfmlalq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlalq_high_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vfmlal_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlal_high_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#else -__ai float32x2_t vfmlal_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlal_high_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float32x2_t __noswap_vfmlal_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlal_high_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vfmlalq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlalq_low_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#else -__ai float32x4_t vfmlalq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlalq_low_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float32x4_t __noswap_vfmlalq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlalq_low_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vfmlal_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlal_low_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#else -__ai float32x2_t vfmlal_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlal_low_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float32x2_t __noswap_vfmlal_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlal_low_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vfmlslq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlslq_high_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#else -__ai float32x4_t vfmlslq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlslq_high_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float32x4_t __noswap_vfmlslq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlslq_high_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vfmlsl_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlsl_high_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#else -__ai float32x2_t vfmlsl_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlsl_high_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float32x2_t __noswap_vfmlsl_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlsl_high_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vfmlslq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlslq_low_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#else -__ai float32x4_t vfmlslq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlslq_low_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float32x4_t __noswap_vfmlslq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vfmlslq_low_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vfmlsl_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlsl_low_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#else -__ai float32x2_t vfmlsl_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlsl_low_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float32x2_t __noswap_vfmlsl_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vfmlsl_low_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9); - return __ret; -} -#endif - -#endif -#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vabdq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vabdq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vabd_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vabd_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vabsq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vabsq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vabs_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vabs_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vabs_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vabs_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vaddq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai float16x8_t vaddq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vadd_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai float16x4_t vadd_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vbslq_f16(uint16x8_t __p0, float16x8_t __p1, float16x8_t __p2) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 40); - return __ret; -} -#else -__ai float16x8_t vbslq_f16(uint16x8_t __p0, float16x8_t __p1, float16x8_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vbsl_f16(uint16x4_t __p0, float16x4_t __p1, float16x4_t __p2) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 8); - return __ret; -} -#else -__ai float16x4_t vbsl_f16(uint16x4_t __p0, float16x4_t __p1, float16x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcageq_f16(float16x8_t __p0, float16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcageq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vcageq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcageq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcage_f16(float16x4_t __p0, float16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcage_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vcage_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcage_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcagtq_f16(float16x8_t __p0, float16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcagtq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vcagtq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcagtq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcagt_f16(float16x4_t __p0, float16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcagt_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vcagt_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcagt_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcaleq_f16(float16x8_t __p0, float16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcaleq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vcaleq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcaleq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcale_f16(float16x4_t __p0, float16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcale_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vcale_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcale_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcaltq_f16(float16x8_t __p0, float16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcaltq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vcaltq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcaltq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcalt_f16(float16x4_t __p0, float16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcalt_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vcalt_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcalt_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vceqq_f16(float16x8_t __p0, float16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint16x8_t vceqq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vceq_f16(float16x4_t __p0, float16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint16x4_t vceq_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vceqzq_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vceqzq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vceqz_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vceqz_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcgeq_f16(float16x8_t __p0, float16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint16x8_t vcgeq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcge_f16(float16x4_t __p0, float16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint16x4_t vcge_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcgezq_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcgezq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcgez_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcgez_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcgez_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcgtq_f16(float16x8_t __p0, float16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint16x8_t vcgtq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcgt_f16(float16x4_t __p0, float16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint16x4_t vcgt_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcgtzq_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcgtzq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcgtz_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcgtz_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcgtz_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcleq_f16(float16x8_t __p0, float16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint16x8_t vcleq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcle_f16(float16x4_t __p0, float16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint16x4_t vcle_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vclezq_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vclezq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vclez_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vclez_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vclez_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vclez_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcltq_f16(float16x8_t __p0, float16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint16x8_t vcltq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vclt_f16(float16x4_t __p0, float16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint16x4_t vclt_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcltzq_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcltzq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcltz_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcltz_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcltz_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vcvtq_f16_u16(uint16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vcvtq_f16_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai float16x8_t vcvtq_f16_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vcvtq_f16_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vcvtq_f16_s16(int16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vcvtq_f16_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai float16x8_t vcvtq_f16_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vcvtq_f16_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vcvt_f16_u16(uint16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vcvt_f16_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai float16x4_t vcvt_f16_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vcvt_f16_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vcvt_f16_s16(int16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vcvt_f16_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai float16x4_t vcvt_f16_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vcvt_f16_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_f16_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vcvtq_n_f16_v((int8x16_t)__s0, __p1, 49); \ - __ret; \ -}) -#else -#define vcvtq_n_f16_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vcvtq_n_f16_v((int8x16_t)__rev0, __p1, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_f16_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vcvtq_n_f16_v((int8x16_t)__s0, __p1, 33); \ - __ret; \ -}) -#else -#define vcvtq_n_f16_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vcvtq_n_f16_v((int8x16_t)__rev0, __p1, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_f16_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vcvt_n_f16_v((int8x8_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vcvt_n_f16_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vcvt_n_f16_v((int8x8_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_f16_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vcvt_n_f16_v((int8x8_t)__s0, __p1, 1); \ - __ret; \ -}) -#else -#define vcvt_n_f16_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vcvt_n_f16_v((int8x8_t)__rev0, __p1, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_s16_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vcvtq_n_s16_v((int8x16_t)__s0, __p1, 33); \ - __ret; \ -}) -#else -#define vcvtq_n_s16_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = (int16x8_t) __builtin_neon_vcvtq_n_s16_v((int8x16_t)__rev0, __p1, 33); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_s16_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vcvt_n_s16_v((int8x8_t)__s0, __p1, 1); \ - __ret; \ -}) -#else -#define vcvt_n_s16_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = (int16x4_t) __builtin_neon_vcvt_n_s16_v((int8x8_t)__rev0, __p1, 1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_u16_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vcvtq_n_u16_v((int8x16_t)__s0, __p1, 49); \ - __ret; \ -}) -#else -#define vcvtq_n_u16_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = (uint16x8_t) __builtin_neon_vcvtq_n_u16_v((int8x16_t)__rev0, __p1, 49); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_u16_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vcvt_n_u16_v((int8x8_t)__s0, __p1, 17); \ - __ret; \ -}) -#else -#define vcvt_n_u16_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = (uint16x4_t) __builtin_neon_vcvt_n_u16_v((int8x8_t)__rev0, __p1, 17); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vcvtq_s16_f16(float16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vcvtq_s16_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vcvtq_s16_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vcvtq_s16_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vcvt_s16_f16(float16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcvt_s16_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vcvt_s16_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcvt_s16_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcvtq_u16_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcvtq_u16_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcvtq_u16_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcvtq_u16_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcvt_u16_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcvt_u16_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcvt_u16_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcvt_u16_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vcvtaq_s16_f16(float16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vcvtaq_s16_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vcvtaq_s16_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vcvtaq_s16_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vcvta_s16_f16(float16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcvta_s16_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vcvta_s16_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcvta_s16_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcvtaq_u16_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcvtaq_u16_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcvtaq_u16_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcvtaq_u16_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcvta_u16_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcvta_u16_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcvta_u16_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcvta_u16_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vcvtmq_s16_f16(float16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vcvtmq_s16_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vcvtmq_s16_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vcvtmq_s16_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vcvtm_s16_f16(float16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcvtm_s16_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vcvtm_s16_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcvtm_s16_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcvtmq_u16_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcvtmq_u16_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcvtmq_u16_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcvtmq_u16_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcvtm_u16_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcvtm_u16_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcvtm_u16_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcvtm_u16_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vcvtnq_s16_f16(float16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vcvtnq_s16_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vcvtnq_s16_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vcvtnq_s16_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vcvtn_s16_f16(float16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcvtn_s16_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vcvtn_s16_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcvtn_s16_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcvtnq_u16_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcvtnq_u16_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcvtnq_u16_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcvtnq_u16_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcvtn_u16_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcvtn_u16_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcvtn_u16_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcvtn_u16_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vcvtpq_s16_f16(float16x8_t __p0) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vcvtpq_s16_v((int8x16_t)__p0, 33); - return __ret; -} -#else -__ai int16x8_t vcvtpq_s16_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vcvtpq_s16_v((int8x16_t)__rev0, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vcvtp_s16_f16(float16x4_t __p0) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcvtp_s16_v((int8x8_t)__p0, 1); - return __ret; -} -#else -__ai int16x4_t vcvtp_s16_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vcvtp_s16_v((int8x8_t)__rev0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcvtpq_u16_f16(float16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcvtpq_u16_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcvtpq_u16_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcvtpq_u16_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcvtp_u16_f16(float16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcvtp_u16_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcvtp_u16_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcvtp_u16_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 40); \ - __ret; \ -}) -#else -#define vextq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 40); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 8); \ - __ret; \ -}) -#else -#define vext_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 8); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vfmaq_f16(float16x8_t __p0, float16x8_t __p1, float16x8_t __p2) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vfmaq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 40); - return __ret; -} -#else -__ai float16x8_t vfmaq_f16(float16x8_t __p0, float16x8_t __p1, float16x8_t __p2) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vfmaq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai float16x8_t __noswap_vfmaq_f16(float16x8_t __p0, float16x8_t __p1, float16x8_t __p2) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vfmaq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 40); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vfma_f16(float16x4_t __p0, float16x4_t __p1, float16x4_t __p2) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 8); - return __ret; -} -#else -__ai float16x4_t vfma_f16(float16x4_t __p0, float16x4_t __p1, float16x4_t __p2) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vfma_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float16x4_t __noswap_vfma_f16(float16x4_t __p0, float16x4_t __p1, float16x4_t __p2) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 8); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vfmsq_f16(float16x8_t __p0, float16x8_t __p1, float16x8_t __p2) { - float16x8_t __ret; - __ret = vfmaq_f16(__p0, -__p1, __p2); - return __ret; -} -#else -__ai float16x8_t vfmsq_f16(float16x8_t __p0, float16x8_t __p1, float16x8_t __p2) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __noswap_vfmaq_f16(__rev0, -__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vfms_f16(float16x4_t __p0, float16x4_t __p1, float16x4_t __p2) { - float16x4_t __ret; - __ret = vfma_f16(__p0, -__p1, __p2); - return __ret; -} -#else -__ai float16x4_t vfms_f16(float16x4_t __p0, float16x4_t __p1, float16x4_t __p2) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __noswap_vfma_f16(__rev0, -__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vmaxq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vmaxq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vmax_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vmax_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vminq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vminq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vmin_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vmin_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vmulq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai float16x8_t vmulq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vmul_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai float16x4_t vmul_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x8_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_n_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x8_t __ret; \ - __ret = __s0 * (float16x8_t) {__s1, __s1, __s1, __s1, __s1, __s1, __s1, __s1}; \ - __ret; \ -}) -#else -#define vmulq_n_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __rev0 * (float16x8_t) {__s1, __s1, __s1, __s1, __s1, __s1, __s1, __s1}; \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_n_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x4_t __ret; \ - __ret = __s0 * (float16x4_t) {__s1, __s1, __s1, __s1}; \ - __ret; \ -}) -#else -#define vmul_n_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __rev0 * (float16x4_t) {__s1, __s1, __s1, __s1}; \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vnegq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai float16x8_t vnegq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vneg_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai float16x4_t vneg_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vpadd_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vpadd_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vpmax_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vpmax_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vpmin_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vpmin_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrecpeq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrecpeq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vrecpeq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrecpeq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrecpe_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrecpe_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vrecpe_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrecpe_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrecpsq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrecpsq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vrecpsq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrecpsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrecps_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrecps_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vrecps_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrecps_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrev64q_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4); - return __ret; -} -#else -__ai float16x8_t vrev64q_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrev64_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - return __ret; -} -#else -__ai float16x4_t vrev64_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrsqrteq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrsqrteq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vrsqrteq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrsqrteq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrsqrte_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrsqrte_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vrsqrte_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrsqrte_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrsqrtsq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrsqrtsq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vrsqrtsq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrsqrtsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrsqrts_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrsqrts_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vrsqrts_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrsqrts_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vsubq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai float16x8_t vsubq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vsub_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai float16x4_t vsub_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8x2_t vtrnq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8x2_t vtrnq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8x2_t __ret; - __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 40); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4x2_t vtrn_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4x2_t vtrn_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4x2_t __ret; - __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 8); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8x2_t vuzpq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8x2_t vuzpq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8x2_t __ret; - __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 40); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4x2_t vuzp_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4x2_t vuzp_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4x2_t __ret; - __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 8); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8x2_t vzipq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8x2_t vzipq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8x2_t __ret; - __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 40); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4x2_t vzip_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4x2_t vzip_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4x2_t __ret; - __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 8); - - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); - return __ret; -} -#endif - -#endif -#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vdivq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = __p0 / __p1; - return __ret; -} -#else -__ai float16x8_t vdivq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __rev0 / __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vdiv_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = __p0 / __p1; - return __ret; -} -#else -__ai float16x4_t vdiv_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __rev0 / __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vduph_lane_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vduph_lane_f16((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vduph_lane_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vduph_lane_f16((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vduph_laneq_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vduph_laneq_f16((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vduph_laneq_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vduph_laneq_f16((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmah_lane_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x4_t __s2 = __p2; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vfmah_lane_f16(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vfmah_lane_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x4_t __s2 = __p2; \ - float16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vfmah_lane_f16(__s0, __s1, (int8x8_t)__rev2, __p3); \ - __ret; \ -}) -#define __noswap_vfmah_lane_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x4_t __s2 = __p2; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vfmah_lane_f16(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmaq_lane_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x4_t __s2 = __p2; \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x8_t)__s2, __p3, 40); \ - __ret; \ -}) -#else -#define vfmaq_lane_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x4_t __s2 = __p2; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__rev2, __p3, 40); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vfmaq_lane_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x4_t __s2 = __p2; \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x8_t)__s2, __p3, 40); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfma_lane_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x4_t __s2 = __p2; \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 8); \ - __ret; \ -}) -#else -#define vfma_lane_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x4_t __s2 = __p2; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vfma_lane_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, __p3, 8); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vfma_lane_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x4_t __s2 = __p2; \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 8); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmah_laneq_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x8_t __s2 = __p2; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vfmah_laneq_f16(__s0, __s1, (int8x16_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vfmah_laneq_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x8_t __s2 = __p2; \ - float16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vfmah_laneq_f16(__s0, __s1, (int8x16_t)__rev2, __p3); \ - __ret; \ -}) -#define __noswap_vfmah_laneq_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x8_t __s2 = __p2; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vfmah_laneq_f16(__s0, __s1, (int8x16_t)__s2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmaq_laneq_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x8_t __s2 = __p2; \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x16_t)__s2, __p3, 40); \ - __ret; \ -}) -#else -#define vfmaq_laneq_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x8_t __s2 = __p2; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, __p3, 40); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vfmaq_laneq_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x8_t __s2 = __p2; \ - float16x8_t __ret; \ - __ret = (float16x8_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x16_t)__s2, __p3, 40); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfma_laneq_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x8_t __s2 = __p2; \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__s2, __p3, 8); \ - __ret; \ -}) -#else -#define vfma_laneq_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x8_t __s2 = __p2; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vfma_laneq_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x16_t)__rev2, __p3, 8); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vfma_laneq_f16(__p0, __p1, __p2, __p3) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x8_t __s2 = __p2; \ - float16x4_t __ret; \ - __ret = (float16x4_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__s2, __p3, 8); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmaq_n_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16x8_t __ret; \ - __ret = vfmaq_f16(__s0, __s1, (float16x8_t) {__s2, __s2, __s2, __s2, __s2, __s2, __s2, __s2}); \ - __ret; \ -}) -#else -#define vfmaq_n_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __noswap_vfmaq_f16(__rev0, __rev1, (float16x8_t) {__s2, __s2, __s2, __s2, __s2, __s2, __s2, __s2}); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfma_n_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16x4_t __ret; \ - __ret = vfma_f16(__s0, __s1, (float16x4_t) {__s2, __s2, __s2, __s2}); \ - __ret; \ -}) -#else -#define vfma_n_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __noswap_vfma_f16(__rev0, __rev1, (float16x4_t) {__s2, __s2, __s2, __s2}); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsh_lane_f16(__p0_0, __p1_0, __p2_0, __p3_0) __extension__ ({ \ - float16_t __s0_0 = __p0_0; \ - float16_t __s1_0 = __p1_0; \ - float16x4_t __s2_0 = __p2_0; \ - float16_t __ret_0; \ - __ret_0 = vfmah_lane_f16(__s0_0, -__s1_0, __s2_0, __p3_0); \ - __ret_0; \ -}) -#else -#define vfmsh_lane_f16(__p0_1, __p1_1, __p2_1, __p3_1) __extension__ ({ \ - float16_t __s0_1 = __p0_1; \ - float16_t __s1_1 = __p1_1; \ - float16x4_t __s2_1 = __p2_1; \ - float16x4_t __rev2_1; __rev2_1 = __builtin_shufflevector(__s2_1, __s2_1, 3, 2, 1, 0); \ - float16_t __ret_1; \ - __ret_1 = __noswap_vfmah_lane_f16(__s0_1, -__s1_1, __rev2_1, __p3_1); \ - __ret_1; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsq_lane_f16(__p0_2, __p1_2, __p2_2, __p3_2) __extension__ ({ \ - float16x8_t __s0_2 = __p0_2; \ - float16x8_t __s1_2 = __p1_2; \ - float16x4_t __s2_2 = __p2_2; \ - float16x8_t __ret_2; \ - __ret_2 = vfmaq_lane_f16(__s0_2, -__s1_2, __s2_2, __p3_2); \ - __ret_2; \ -}) -#else -#define vfmsq_lane_f16(__p0_3, __p1_3, __p2_3, __p3_3) __extension__ ({ \ - float16x8_t __s0_3 = __p0_3; \ - float16x8_t __s1_3 = __p1_3; \ - float16x4_t __s2_3 = __p2_3; \ - float16x8_t __rev0_3; __rev0_3 = __builtin_shufflevector(__s0_3, __s0_3, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev1_3; __rev1_3 = __builtin_shufflevector(__s1_3, __s1_3, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __rev2_3; __rev2_3 = __builtin_shufflevector(__s2_3, __s2_3, 3, 2, 1, 0); \ - float16x8_t __ret_3; \ - __ret_3 = __noswap_vfmaq_lane_f16(__rev0_3, -__rev1_3, __rev2_3, __p3_3); \ - __ret_3 = __builtin_shufflevector(__ret_3, __ret_3, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_3; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfms_lane_f16(__p0_4, __p1_4, __p2_4, __p3_4) __extension__ ({ \ - float16x4_t __s0_4 = __p0_4; \ - float16x4_t __s1_4 = __p1_4; \ - float16x4_t __s2_4 = __p2_4; \ - float16x4_t __ret_4; \ - __ret_4 = vfma_lane_f16(__s0_4, -__s1_4, __s2_4, __p3_4); \ - __ret_4; \ -}) -#else -#define vfms_lane_f16(__p0_5, __p1_5, __p2_5, __p3_5) __extension__ ({ \ - float16x4_t __s0_5 = __p0_5; \ - float16x4_t __s1_5 = __p1_5; \ - float16x4_t __s2_5 = __p2_5; \ - float16x4_t __rev0_5; __rev0_5 = __builtin_shufflevector(__s0_5, __s0_5, 3, 2, 1, 0); \ - float16x4_t __rev1_5; __rev1_5 = __builtin_shufflevector(__s1_5, __s1_5, 3, 2, 1, 0); \ - float16x4_t __rev2_5; __rev2_5 = __builtin_shufflevector(__s2_5, __s2_5, 3, 2, 1, 0); \ - float16x4_t __ret_5; \ - __ret_5 = __noswap_vfma_lane_f16(__rev0_5, -__rev1_5, __rev2_5, __p3_5); \ - __ret_5 = __builtin_shufflevector(__ret_5, __ret_5, 3, 2, 1, 0); \ - __ret_5; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsh_laneq_f16(__p0_6, __p1_6, __p2_6, __p3_6) __extension__ ({ \ - float16_t __s0_6 = __p0_6; \ - float16_t __s1_6 = __p1_6; \ - float16x8_t __s2_6 = __p2_6; \ - float16_t __ret_6; \ - __ret_6 = vfmah_laneq_f16(__s0_6, -__s1_6, __s2_6, __p3_6); \ - __ret_6; \ -}) -#else -#define vfmsh_laneq_f16(__p0_7, __p1_7, __p2_7, __p3_7) __extension__ ({ \ - float16_t __s0_7 = __p0_7; \ - float16_t __s1_7 = __p1_7; \ - float16x8_t __s2_7 = __p2_7; \ - float16x8_t __rev2_7; __rev2_7 = __builtin_shufflevector(__s2_7, __s2_7, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16_t __ret_7; \ - __ret_7 = __noswap_vfmah_laneq_f16(__s0_7, -__s1_7, __rev2_7, __p3_7); \ - __ret_7; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsq_laneq_f16(__p0_8, __p1_8, __p2_8, __p3_8) __extension__ ({ \ - float16x8_t __s0_8 = __p0_8; \ - float16x8_t __s1_8 = __p1_8; \ - float16x8_t __s2_8 = __p2_8; \ - float16x8_t __ret_8; \ - __ret_8 = vfmaq_laneq_f16(__s0_8, -__s1_8, __s2_8, __p3_8); \ - __ret_8; \ -}) -#else -#define vfmsq_laneq_f16(__p0_9, __p1_9, __p2_9, __p3_9) __extension__ ({ \ - float16x8_t __s0_9 = __p0_9; \ - float16x8_t __s1_9 = __p1_9; \ - float16x8_t __s2_9 = __p2_9; \ - float16x8_t __rev0_9; __rev0_9 = __builtin_shufflevector(__s0_9, __s0_9, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev1_9; __rev1_9 = __builtin_shufflevector(__s1_9, __s1_9, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev2_9; __rev2_9 = __builtin_shufflevector(__s2_9, __s2_9, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret_9; \ - __ret_9 = __noswap_vfmaq_laneq_f16(__rev0_9, -__rev1_9, __rev2_9, __p3_9); \ - __ret_9 = __builtin_shufflevector(__ret_9, __ret_9, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_9; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfms_laneq_f16(__p0_10, __p1_10, __p2_10, __p3_10) __extension__ ({ \ - float16x4_t __s0_10 = __p0_10; \ - float16x4_t __s1_10 = __p1_10; \ - float16x8_t __s2_10 = __p2_10; \ - float16x4_t __ret_10; \ - __ret_10 = vfma_laneq_f16(__s0_10, -__s1_10, __s2_10, __p3_10); \ - __ret_10; \ -}) -#else -#define vfms_laneq_f16(__p0_11, __p1_11, __p2_11, __p3_11) __extension__ ({ \ - float16x4_t __s0_11 = __p0_11; \ - float16x4_t __s1_11 = __p1_11; \ - float16x8_t __s2_11 = __p2_11; \ - float16x4_t __rev0_11; __rev0_11 = __builtin_shufflevector(__s0_11, __s0_11, 3, 2, 1, 0); \ - float16x4_t __rev1_11; __rev1_11 = __builtin_shufflevector(__s1_11, __s1_11, 3, 2, 1, 0); \ - float16x8_t __rev2_11; __rev2_11 = __builtin_shufflevector(__s2_11, __s2_11, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __ret_11; \ - __ret_11 = __noswap_vfma_laneq_f16(__rev0_11, -__rev1_11, __rev2_11, __p3_11); \ - __ret_11 = __builtin_shufflevector(__ret_11, __ret_11, 3, 2, 1, 0); \ - __ret_11; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsq_n_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16x8_t __ret; \ - __ret = vfmaq_f16(__s0, -__s1, (float16x8_t) {__s2, __s2, __s2, __s2, __s2, __s2, __s2, __s2}); \ - __ret; \ -}) -#else -#define vfmsq_n_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __noswap_vfmaq_f16(__rev0, -__rev1, (float16x8_t) {__s2, __s2, __s2, __s2, __s2, __s2, __s2, __s2}); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfms_n_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16x4_t __ret; \ - __ret = vfma_f16(__s0, -__s1, (float16x4_t) {__s2, __s2, __s2, __s2}); \ - __ret; \ -}) -#else -#define vfms_n_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16_t __s2 = __p2; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __noswap_vfma_f16(__rev0, -__rev1, (float16x4_t) {__s2, __s2, __s2, __s2}); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmaxnmvq_f16(__p0) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxnmvq_f16((int8x16_t)__s0); \ - __ret; \ -}) -#else -#define vmaxnmvq_f16(__p0) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxnmvq_f16((int8x16_t)__rev0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmaxnmv_f16(__p0) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxnmv_f16((int8x8_t)__s0); \ - __ret; \ -}) -#else -#define vmaxnmv_f16(__p0) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxnmv_f16((int8x8_t)__rev0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmaxvq_f16(__p0) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxvq_f16((int8x16_t)__s0); \ - __ret; \ -}) -#else -#define vmaxvq_f16(__p0) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxvq_f16((int8x16_t)__rev0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmaxv_f16(__p0) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxv_f16((int8x8_t)__s0); \ - __ret; \ -}) -#else -#define vmaxv_f16(__p0) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmaxv_f16((int8x8_t)__rev0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vminnmvq_f16(__p0) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminnmvq_f16((int8x16_t)__s0); \ - __ret; \ -}) -#else -#define vminnmvq_f16(__p0) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminnmvq_f16((int8x16_t)__rev0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vminnmv_f16(__p0) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminnmv_f16((int8x8_t)__s0); \ - __ret; \ -}) -#else -#define vminnmv_f16(__p0) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminnmv_f16((int8x8_t)__rev0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vminvq_f16(__p0) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminvq_f16((int8x16_t)__s0); \ - __ret; \ -}) -#else -#define vminvq_f16(__p0) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminvq_f16((int8x16_t)__rev0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vminv_f16(__p0) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminv_f16((int8x8_t)__s0); \ - __ret; \ -}) -#else -#define vminv_f16(__p0) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vminv_f16((int8x8_t)__rev0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_laneq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x8_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_laneq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_laneq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_laneq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vmulxq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vmulxq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vmulxq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vmulxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai float16x8_t __noswap_vmulxq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vmulxq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vmulx_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vmulx_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vmulx_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vmulx_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float16x4_t __noswap_vmulx_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vmulx_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxh_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmulxh_lane_f16(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vmulxh_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmulxh_lane_f16(__s0, (int8x8_t)__rev1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxq_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x8_t __ret; \ - __ret = vmulxq_f16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmulxq_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __noswap_vmulxq_f16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulx_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x4_t __ret; \ - __ret = vmulx_f16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmulx_lane_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __s1 = __p1; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __noswap_vmulx_f16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxh_laneq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmulxh_laneq_f16(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vmulxh_laneq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16_t __ret; \ - __ret = (float16_t) __builtin_neon_vmulxh_laneq_f16(__s0, (int8x16_t)__rev1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxq_laneq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x8_t __ret; \ - __ret = vmulxq_f16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmulxq_laneq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __noswap_vmulxq_f16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulx_laneq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x4_t __ret; \ - __ret = vmulx_f16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmulx_laneq_f16(__p0, __p1, __p2) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x8_t __s1 = __p1; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __noswap_vmulx_f16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxq_n_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x8_t __ret; \ - __ret = vmulxq_f16(__s0, (float16x8_t) {__s1, __s1, __s1, __s1, __s1, __s1, __s1, __s1}); \ - __ret; \ -}) -#else -#define vmulxq_n_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __noswap_vmulxq_f16(__rev0, (float16x8_t) {__s1, __s1, __s1, __s1, __s1, __s1, __s1, __s1}); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulx_n_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x4_t __ret; \ - __ret = vmulx_f16(__s0, (float16x4_t) {__s1, __s1, __s1, __s1}); \ - __ret; \ -}) -#else -#define vmulx_n_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16_t __s1 = __p1; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __noswap_vmulx_f16(__rev0, (float16x4_t) {__s1, __s1, __s1, __s1}); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vpaddq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vpaddq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vpmaxq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vpmaxq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vpmaxnmq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vpmaxnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vpmaxnmq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vpmaxnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vpmaxnm_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vpmaxnm_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vpmaxnm_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vpmaxnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vpminq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vpminq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vpminnmq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vpminnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 40); - return __ret; -} -#else -__ai float16x8_t vpminnmq_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vpminnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vpminnm_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vpminnm_v((int8x8_t)__p0, (int8x8_t)__p1, 8); - return __ret; -} -#else -__ai float16x4_t vpminnm_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vpminnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vrndiq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndiq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vrndiq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vrndiq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vrndi_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrndi_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vrndi_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vrndi_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vsqrtq_f16(float16x8_t __p0) { - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vsqrtq_v((int8x16_t)__p0, 40); - return __ret; -} -#else -__ai float16x8_t vsqrtq_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = (float16x8_t) __builtin_neon_vsqrtq_v((int8x16_t)__rev0, 40); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vsqrt_f16(float16x4_t __p0) { - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vsqrt_v((int8x8_t)__p0, 8); - return __ret; -} -#else -__ai float16x4_t vsqrt_f16(float16x4_t __p0) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __ret; - __ret = (float16x4_t) __builtin_neon_vsqrt_v((int8x8_t)__rev0, 8); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vtrn1q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14); - return __ret; -} -#else -__ai float16x8_t vtrn1q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vtrn1_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6); - return __ret; -} -#else -__ai float16x4_t vtrn1_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vtrn2q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15); - return __ret; -} -#else -__ai float16x8_t vtrn2q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vtrn2_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7); - return __ret; -} -#else -__ai float16x4_t vtrn2_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vuzp1q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14); - return __ret; -} -#else -__ai float16x8_t vuzp1q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vuzp1_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6); - return __ret; -} -#else -__ai float16x4_t vuzp1_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vuzp2q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15); - return __ret; -} -#else -__ai float16x8_t vuzp2q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vuzp2_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7); - return __ret; -} -#else -__ai float16x4_t vuzp2_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vzip1q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11); - return __ret; -} -#else -__ai float16x8_t vzip1q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vzip1_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5); - return __ret; -} -#else -__ai float16x4_t vzip1_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vzip2q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15); - return __ret; -} -#else -__ai float16x8_t vzip2q_f16(float16x8_t __p0, float16x8_t __p1) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x4_t vzip2_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7); - return __ret; -} -#else -__ai float16x4_t vzip2_f16(float16x4_t __p0, float16x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#endif -#if defined(__ARM_FEATURE_QRDMX) -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqrdmlahq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __ret; - __ret = vqaddq_s32(__p0, vqrdmulhq_s32(__p1, __p2)); - return __ret; -} -#else -__ai int32x4_t vqrdmlahq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vqaddq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqrdmlahq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __ret; - __ret = vqaddq_s16(__p0, vqrdmulhq_s16(__p1, __p2)); - return __ret; -} -#else -__ai int16x8_t vqrdmlahq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vqaddq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqrdmlah_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __ret; - __ret = vqadd_s32(__p0, vqrdmulh_s32(__p1, __p2)); - return __ret; -} -#else -__ai int32x2_t vqrdmlah_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int32x2_t __ret; - __ret = __noswap_vqadd_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqrdmlah_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __ret; - __ret = vqadd_s16(__p0, vqrdmulh_s16(__p1, __p2)); - return __ret; -} -#else -__ai int16x4_t vqrdmlah_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __noswap_vqadd_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlahq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqaddq_s32(__s0, vqrdmulhq_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlahq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqaddq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlahq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x8_t __ret; \ - __ret = vqaddq_s16(__s0, vqrdmulhq_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlahq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __noswap_vqaddq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlah_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x2_t __ret; \ - __ret = vqadd_s32(__s0, vqrdmulh_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlah_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int32x2_t __ret; \ - __ret = __noswap_vqadd_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlah_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x4_t __ret; \ - __ret = vqadd_s16(__s0, vqrdmulh_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlah_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __noswap_vqadd_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqrdmlshq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __ret; - __ret = vqsubq_s32(__p0, vqrdmulhq_s32(__p1, __p2)); - return __ret; -} -#else -__ai int32x4_t vqrdmlshq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vqsubq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqrdmlshq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __ret; - __ret = vqsubq_s16(__p0, vqrdmulhq_s16(__p1, __p2)); - return __ret; -} -#else -__ai int16x8_t vqrdmlshq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vqsubq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vqrdmlsh_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __ret; - __ret = vqsub_s32(__p0, vqrdmulh_s32(__p1, __p2)); - return __ret; -} -#else -__ai int32x2_t vqrdmlsh_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int32x2_t __ret; - __ret = __noswap_vqsub_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vqrdmlsh_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __ret; - __ret = vqsub_s16(__p0, vqrdmulh_s16(__p1, __p2)); - return __ret; -} -#else -__ai int16x4_t vqrdmlsh_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __noswap_vqsub_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlshq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqsubq_s32(__s0, vqrdmulhq_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlshq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqsubq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlshq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x8_t __ret; \ - __ret = vqsubq_s16(__s0, vqrdmulhq_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlshq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __noswap_vqsubq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlsh_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x2_t __ret; \ - __ret = vqsub_s32(__s0, vqrdmulh_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlsh_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int32x2_t __ret; \ - __ret = __noswap_vqsub_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlsh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x4_t __ret; \ - __ret = vqsub_s16(__s0, vqrdmulh_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlsh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __noswap_vqsub_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#endif -#if defined(__ARM_FEATURE_QRDMX) && defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlahq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqaddq_s32(__s0, vqrdmulhq_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlahq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqaddq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlahq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x8_t __ret; \ - __ret = vqaddq_s16(__s0, vqrdmulhq_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlahq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __noswap_vqaddq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlah_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x2_t __ret; \ - __ret = vqadd_s32(__s0, vqrdmulh_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlah_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x2_t __ret; \ - __ret = __noswap_vqadd_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlah_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x4_t __ret; \ - __ret = vqadd_s16(__s0, vqrdmulh_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlah_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __noswap_vqadd_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlshq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqsubq_s32(__s0, vqrdmulhq_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlshq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqsubq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlshq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x8_t __ret; \ - __ret = vqsubq_s16(__s0, vqrdmulhq_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlshq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __noswap_vqsubq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlsh_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x2_t __ret; \ - __ret = vqsub_s32(__s0, vqrdmulh_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlsh_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x2_t __ret; \ - __ret = __noswap_vqsub_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlsh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x4_t __ret; \ - __ret = vqsub_s16(__s0, vqrdmulh_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \ - __ret; \ -}) -#else -#define vqrdmlsh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __noswap_vqsub_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#endif -#if defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vabdq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vabdq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vabd_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#else -__ai float64x1_t vabd_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vabdd_f64(float64_t __p0, float64_t __p1) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vabdd_f64(__p0, __p1); - return __ret; -} -#else -__ai float64_t vabdd_f64(float64_t __p0, float64_t __p1) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vabdd_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vabds_f32(float32_t __p0, float32_t __p1) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vabds_f32(__p0, __p1); - return __ret; -} -#else -__ai float32_t vabds_f32(float32_t __p0, float32_t __p1) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vabds_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vabsq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vabsq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vabsq_s64(int64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 35); - return __ret; -} -#else -__ai int64x2_t vabsq_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vabs_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vabs_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vabs_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vabs_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vabs_s64(int64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vabs_v((int8x8_t)__p0, 3); - return __ret; -} -#else -__ai int64x1_t vabs_s64(int64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vabs_v((int8x8_t)__p0, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vabsd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vabsd_s64(__p0); - return __ret; -} -#else -__ai int64_t vabsd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vabsd_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vaddq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai float64x2_t vaddq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __rev0 + __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vadd_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#else -__ai float64x1_t vadd_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = __p0 + __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vaddd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vaddd_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vaddd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vaddd_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vaddd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vaddd_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vaddd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vaddd_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vaddhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint16x8_t __ret; - __ret = vcombine_u16(__p0, vaddhn_u32(__p1, __p2)); - return __ret; -} -#else -__ai uint16x8_t vaddhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vcombine_u16(__rev0, __noswap_vaddhn_u32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vaddhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) { - uint32x4_t __ret; - __ret = vcombine_u32(__p0, vaddhn_u64(__p1, __p2)); - return __ret; -} -#else -__ai uint32x4_t vaddhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vcombine_u32(__rev0, __noswap_vaddhn_u64(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vaddhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint8x16_t __ret; - __ret = vcombine_u8(__p0, vaddhn_u16(__p1, __p2)); - return __ret; -} -#else -__ai uint8x16_t vaddhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __noswap_vcombine_u8(__rev0, __noswap_vaddhn_u16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vaddhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int16x8_t __ret; - __ret = vcombine_s16(__p0, vaddhn_s32(__p1, __p2)); - return __ret; -} -#else -__ai int16x8_t vaddhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vcombine_s16(__rev0, __noswap_vaddhn_s32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vaddhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) { - int32x4_t __ret; - __ret = vcombine_s32(__p0, vaddhn_s64(__p1, __p2)); - return __ret; -} -#else -__ai int32x4_t vaddhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vcombine_s32(__rev0, __noswap_vaddhn_s64(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vaddhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int8x16_t __ret; - __ret = vcombine_s8(__p0, vaddhn_s16(__p1, __p2)); - return __ret; -} -#else -__ai int8x16_t vaddhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __noswap_vcombine_s8(__rev0, __noswap_vaddhn_s16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vaddlvq_u8(uint8x16_t __p0) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vaddlvq_u8((int8x16_t)__p0); - return __ret; -} -#else -__ai uint16_t vaddlvq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vaddlvq_u8((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vaddlvq_u32(uint32x4_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vaddlvq_u32((int8x16_t)__p0); - return __ret; -} -#else -__ai uint64_t vaddlvq_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vaddlvq_u32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vaddlvq_u16(uint16x8_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vaddlvq_u16((int8x16_t)__p0); - return __ret; -} -#else -__ai uint32_t vaddlvq_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vaddlvq_u16((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vaddlvq_s8(int8x16_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vaddlvq_s8((int8x16_t)__p0); - return __ret; -} -#else -__ai int16_t vaddlvq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16_t __ret; - __ret = (int16_t) __builtin_neon_vaddlvq_s8((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vaddlvq_s32(int32x4_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vaddlvq_s32((int8x16_t)__p0); - return __ret; -} -#else -__ai int64_t vaddlvq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int64_t __ret; - __ret = (int64_t) __builtin_neon_vaddlvq_s32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vaddlvq_s16(int16x8_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vaddlvq_s16((int8x16_t)__p0); - return __ret; -} -#else -__ai int32_t vaddlvq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int32_t __ret; - __ret = (int32_t) __builtin_neon_vaddlvq_s16((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vaddlv_u8(uint8x8_t __p0) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vaddlv_u8((int8x8_t)__p0); - return __ret; -} -#else -__ai uint16_t vaddlv_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vaddlv_u8((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vaddlv_u32(uint32x2_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vaddlv_u32((int8x8_t)__p0); - return __ret; -} -#else -__ai uint64_t vaddlv_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vaddlv_u32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vaddlv_u16(uint16x4_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vaddlv_u16((int8x8_t)__p0); - return __ret; -} -#else -__ai uint32_t vaddlv_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vaddlv_u16((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vaddlv_s8(int8x8_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vaddlv_s8((int8x8_t)__p0); - return __ret; -} -#else -__ai int16_t vaddlv_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16_t __ret; - __ret = (int16_t) __builtin_neon_vaddlv_s8((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vaddlv_s32(int32x2_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vaddlv_s32((int8x8_t)__p0); - return __ret; -} -#else -__ai int64_t vaddlv_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64_t __ret; - __ret = (int64_t) __builtin_neon_vaddlv_s32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vaddlv_s16(int16x4_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vaddlv_s16((int8x8_t)__p0); - return __ret; -} -#else -__ai int32_t vaddlv_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32_t __ret; - __ret = (int32_t) __builtin_neon_vaddlv_s16((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vaddvq_u8(uint8x16_t __p0) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vaddvq_u8((int8x16_t)__p0); - return __ret; -} -#else -__ai uint8_t vaddvq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vaddvq_u8((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vaddvq_u32(uint32x4_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vaddvq_u32((int8x16_t)__p0); - return __ret; -} -#else -__ai uint32_t vaddvq_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vaddvq_u32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vaddvq_u64(uint64x2_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vaddvq_u64((int8x16_t)__p0); - return __ret; -} -#else -__ai uint64_t vaddvq_u64(uint64x2_t __p0) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vaddvq_u64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vaddvq_u16(uint16x8_t __p0) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vaddvq_u16((int8x16_t)__p0); - return __ret; -} -#else -__ai uint16_t vaddvq_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vaddvq_u16((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vaddvq_s8(int8x16_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vaddvq_s8((int8x16_t)__p0); - return __ret; -} -#else -__ai int8_t vaddvq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8_t __ret; - __ret = (int8_t) __builtin_neon_vaddvq_s8((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vaddvq_f64(float64x2_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vaddvq_f64((int8x16_t)__p0); - return __ret; -} -#else -__ai float64_t vaddvq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64_t __ret; - __ret = (float64_t) __builtin_neon_vaddvq_f64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vaddvq_f32(float32x4_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vaddvq_f32((int8x16_t)__p0); - return __ret; -} -#else -__ai float32_t vaddvq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vaddvq_f32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vaddvq_s32(int32x4_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vaddvq_s32((int8x16_t)__p0); - return __ret; -} -#else -__ai int32_t vaddvq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32_t __ret; - __ret = (int32_t) __builtin_neon_vaddvq_s32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vaddvq_s64(int64x2_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vaddvq_s64((int8x16_t)__p0); - return __ret; -} -#else -__ai int64_t vaddvq_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64_t __ret; - __ret = (int64_t) __builtin_neon_vaddvq_s64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vaddvq_s16(int16x8_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vaddvq_s16((int8x16_t)__p0); - return __ret; -} -#else -__ai int16_t vaddvq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16_t __ret; - __ret = (int16_t) __builtin_neon_vaddvq_s16((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vaddv_u8(uint8x8_t __p0) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vaddv_u8((int8x8_t)__p0); - return __ret; -} -#else -__ai uint8_t vaddv_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vaddv_u8((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vaddv_u32(uint32x2_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vaddv_u32((int8x8_t)__p0); - return __ret; -} -#else -__ai uint32_t vaddv_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vaddv_u32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vaddv_u16(uint16x4_t __p0) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vaddv_u16((int8x8_t)__p0); - return __ret; -} -#else -__ai uint16_t vaddv_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vaddv_u16((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vaddv_s8(int8x8_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vaddv_s8((int8x8_t)__p0); - return __ret; -} -#else -__ai int8_t vaddv_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8_t __ret; - __ret = (int8_t) __builtin_neon_vaddv_s8((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vaddv_f32(float32x2_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vaddv_f32((int8x8_t)__p0); - return __ret; -} -#else -__ai float32_t vaddv_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vaddv_f32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vaddv_s32(int32x2_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vaddv_s32((int8x8_t)__p0); - return __ret; -} -#else -__ai int32_t vaddv_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32_t __ret; - __ret = (int32_t) __builtin_neon_vaddv_s32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vaddv_s16(int16x4_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vaddv_s16((int8x8_t)__p0); - return __ret; -} -#else -__ai int16_t vaddv_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16_t __ret; - __ret = (int16_t) __builtin_neon_vaddv_s16((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vbsl_p64(uint64x1_t __p0, poly64x1_t __p1, poly64x1_t __p2) { - poly64x1_t __ret; - __ret = (poly64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 6); - return __ret; -} -#else -__ai poly64x1_t vbsl_p64(uint64x1_t __p0, poly64x1_t __p1, poly64x1_t __p2) { - poly64x1_t __ret; - __ret = (poly64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 6); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vbslq_p64(uint64x2_t __p0, poly64x2_t __p1, poly64x2_t __p2) { - poly64x2_t __ret; - __ret = (poly64x2_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 38); - return __ret; -} -#else -__ai poly64x2_t vbslq_p64(uint64x2_t __p0, poly64x2_t __p1, poly64x2_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - poly64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - poly64x2_t __ret; - __ret = (poly64x2_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 38); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vbslq_f64(uint64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 42); - return __ret; -} -#else -__ai float64x2_t vbslq_f64(uint64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vbsl_f64(uint64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10); - return __ret; -} -#else -__ai float64x1_t vbsl_f64(uint64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcageq_f64(float64x2_t __p0, float64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcageq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vcageq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcageq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcage_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcage_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vcage_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcage_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcaged_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcaged_f64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcaged_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcaged_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcages_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcages_f32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vcages_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcages_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcagtq_f64(float64x2_t __p0, float64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcagtq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vcagtq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcagtq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcagt_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcagt_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vcagt_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcagt_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcagtd_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcagtd_f64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcagtd_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcagtd_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcagts_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcagts_f32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vcagts_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcagts_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcaleq_f64(float64x2_t __p0, float64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcaleq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vcaleq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcaleq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcale_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcale_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vcale_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcale_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcaled_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcaled_f64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcaled_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcaled_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcales_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcales_f32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vcales_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcales_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcaltq_f64(float64x2_t __p0, float64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcaltq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vcaltq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcaltq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcalt_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcalt_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vcalt_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcalt_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcaltd_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcaltd_f64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcaltd_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcaltd_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcalts_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcalts_f32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vcalts_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcalts_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vceq_p64(poly64x1_t __p0, poly64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint64x1_t vceq_p64(poly64x1_t __p0, poly64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 == __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vceqq_p64(poly64x2_t __p0, poly64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint64x2_t vceqq_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vceqq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint64x2_t vceqq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vceqq_f64(float64x2_t __p0, float64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint64x2_t vceqq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vceqq_s64(int64x2_t __p0, int64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint64x2_t vceqq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 == __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vceq_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint64x1_t vceq_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 == __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vceq_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint64x1_t vceq_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 == __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vceq_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 == __p1); - return __ret; -} -#else -__ai uint64x1_t vceq_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 == __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vceqd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vceqd_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vceqd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vceqd_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vceqd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vceqd_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vceqd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vceqd_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vceqd_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vceqd_f64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vceqd_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vceqd_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vceqs_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vceqs_f32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vceqs_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vceqs_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vceqz_p8(poly8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vceqz_p8(poly8x8_t __p0) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vceqz_p64(poly64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vceqz_p64(poly64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vceqz_p16(poly16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vceqz_p16(poly16x4_t __p0) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vceqzq_p8(poly8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vceqzq_p8(poly8x16_t __p0) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vceqzq_p64(poly64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vceqzq_p64(poly64x2_t __p0) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vceqzq_p16(poly16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vceqzq_p16(poly16x8_t __p0) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vceqzq_u8(uint8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vceqzq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vceqzq_u32(uint32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vceqzq_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vceqzq_u64(uint64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vceqzq_u64(uint64x2_t __p0) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vceqzq_u16(uint16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vceqzq_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vceqzq_s8(int8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vceqzq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vceqzq_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vceqzq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vceqzq_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vceqzq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vceqzq_s32(int32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vceqzq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vceqzq_s64(int64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vceqzq_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vceqzq_s16(int16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vceqzq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vceqz_u8(uint8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vceqz_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vceqz_u32(uint32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vceqz_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vceqz_u64(uint64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vceqz_u64(uint64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vceqz_u16(uint16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vceqz_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vceqz_s8(int8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vceqz_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vceqz_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vceqz_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vceqz_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vceqz_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vceqz_s32(int32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vceqz_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vceqz_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vceqz_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vceqz_s16(int16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vceqz_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vceqzd_u64(uint64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vceqzd_u64(__p0); - return __ret; -} -#else -__ai uint64_t vceqzd_u64(uint64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vceqzd_u64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vceqzd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vceqzd_s64(__p0); - return __ret; -} -#else -__ai int64_t vceqzd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vceqzd_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vceqzd_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vceqzd_f64(__p0); - return __ret; -} -#else -__ai uint64_t vceqzd_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vceqzd_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vceqzs_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vceqzs_f32(__p0); - return __ret; -} -#else -__ai uint32_t vceqzs_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vceqzs_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcgeq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint64x2_t vcgeq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcgeq_f64(float64x2_t __p0, float64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint64x2_t vcgeq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcgeq_s64(int64x2_t __p0, int64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint64x2_t vcgeq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 >= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcge_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint64x1_t vcge_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 >= __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcge_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint64x1_t vcge_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 >= __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcge_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 >= __p1); - return __ret; -} -#else -__ai uint64x1_t vcge_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 >= __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcged_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcged_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vcged_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcged_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcged_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcged_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcged_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcged_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcged_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcged_f64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcged_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcged_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcges_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcges_f32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vcges_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcges_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcgezq_s8(int8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vcgezq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcgezq_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcgezq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcgezq_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcgezq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcgezq_s32(int32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcgezq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcgezq_s64(int64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcgezq_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcgezq_s16(int16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcgezq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcgez_s8(int8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vcgez_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vcgez_v((int8x8_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcgez_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcgez_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcgez_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcgez_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcgez_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcgez_s32(int32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcgez_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcgez_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcgez_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcgez_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcgez_s16(int16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcgez_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcgez_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcgezd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcgezd_s64(__p0); - return __ret; -} -#else -__ai int64_t vcgezd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcgezd_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcgezd_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcgezd_f64(__p0); - return __ret; -} -#else -__ai uint64_t vcgezd_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcgezd_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcgezs_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcgezs_f32(__p0); - return __ret; -} -#else -__ai uint32_t vcgezs_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcgezs_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcgtq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint64x2_t vcgtq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcgtq_f64(float64x2_t __p0, float64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint64x2_t vcgtq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcgtq_s64(int64x2_t __p0, int64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint64x2_t vcgtq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 > __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcgt_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint64x1_t vcgt_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 > __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcgt_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint64x1_t vcgt_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 > __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcgt_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 > __p1); - return __ret; -} -#else -__ai uint64x1_t vcgt_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 > __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcgtd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcgtd_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vcgtd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcgtd_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcgtd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcgtd_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcgtd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcgtd_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcgtd_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcgtd_f64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcgtd_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcgtd_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcgts_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcgts_f32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vcgts_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcgts_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcgtzq_s8(int8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vcgtzq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcgtzq_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcgtzq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcgtzq_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcgtzq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcgtzq_s32(int32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcgtzq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcgtzq_s64(int64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcgtzq_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcgtzq_s16(int16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcgtzq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcgtz_s8(int8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vcgtz_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vcgtz_v((int8x8_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcgtz_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcgtz_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcgtz_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcgtz_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcgtz_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcgtz_s32(int32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcgtz_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcgtz_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcgtz_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcgtz_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcgtz_s16(int16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcgtz_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcgtz_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcgtzd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcgtzd_s64(__p0); - return __ret; -} -#else -__ai int64_t vcgtzd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcgtzd_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcgtzd_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcgtzd_f64(__p0); - return __ret; -} -#else -__ai uint64_t vcgtzd_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcgtzd_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcgtzs_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcgtzs_f32(__p0); - return __ret; -} -#else -__ai uint32_t vcgtzs_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcgtzs_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcleq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint64x2_t vcleq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcleq_f64(float64x2_t __p0, float64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint64x2_t vcleq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcleq_s64(int64x2_t __p0, int64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint64x2_t vcleq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 <= __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcle_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint64x1_t vcle_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 <= __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcle_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint64x1_t vcle_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 <= __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcle_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 <= __p1); - return __ret; -} -#else -__ai uint64x1_t vcle_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 <= __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcled_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcled_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcled_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcled_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcled_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcled_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vcled_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcled_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcled_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcled_f64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcled_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcled_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcles_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcles_f32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vcles_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcles_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vclezq_s8(int8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vclezq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vclezq_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vclezq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vclezq_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vclezq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vclezq_s32(int32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vclezq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vclezq_s64(int64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vclezq_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vclezq_s16(int16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vclezq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vclez_s8(int8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vclez_v((int8x8_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vclez_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vclez_v((int8x8_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vclez_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vclez_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vclez_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vclez_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vclez_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vclez_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vclez_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vclez_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vclez_s32(int32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vclez_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vclez_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vclez_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vclez_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vclez_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vclez_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vclez_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vclez_s16(int16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vclez_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vclez_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vclez_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vclezd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vclezd_s64(__p0); - return __ret; -} -#else -__ai int64_t vclezd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vclezd_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vclezd_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vclezd_f64(__p0); - return __ret; -} -#else -__ai uint64_t vclezd_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vclezd_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vclezs_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vclezs_f32(__p0); - return __ret; -} -#else -__ai uint32_t vclezs_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vclezs_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcltq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint64x2_t vcltq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcltq_f64(float64x2_t __p0, float64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint64x2_t vcltq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcltq_s64(int64x2_t __p0, int64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint64x2_t vcltq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__rev0 < __rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vclt_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint64x1_t vclt_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 < __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vclt_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint64x1_t vclt_f64(float64x1_t __p0, float64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 < __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vclt_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 < __p1); - return __ret; -} -#else -__ai uint64x1_t vclt_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t)(__p0 < __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcltd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcltd_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcltd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcltd_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcltd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcltd_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vcltd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcltd_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcltd_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcltd_f64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vcltd_f64(float64_t __p0, float64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcltd_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vclts_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vclts_f32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vclts_f32(float32_t __p0, float32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vclts_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vcltzq_s8(int8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vcltzq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcltzq_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcltzq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcltzq_f32(float32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcltzq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vcltzq_s32(int32x4_t __p0) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 50); - return __ret; -} -#else -__ai uint32x4_t vcltzq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcltzq_s64(int64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcltzq_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vcltzq_s16(int16x8_t __p0) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 49); - return __ret; -} -#else -__ai uint16x8_t vcltzq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vcltz_s8(int8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vcltz_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vcltz_v((int8x8_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcltz_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcltz_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcltz_f32(float32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcltz_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcltz_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vcltz_s32(int32x2_t __p0) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 18); - return __ret; -} -#else -__ai uint32x2_t vcltz_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vcltz_v((int8x8_t)__rev0, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcltz_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcltz_s64(int64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vcltz_s16(int16x4_t __p0) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 17); - return __ret; -} -#else -__ai uint16x4_t vcltz_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vcltz_v((int8x8_t)__rev0, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcltzd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcltzd_s64(__p0); - return __ret; -} -#else -__ai int64_t vcltzd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcltzd_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcltzd_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcltzd_f64(__p0); - return __ret; -} -#else -__ai uint64_t vcltzd_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcltzd_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcltzs_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcltzs_f32(__p0); - return __ret; -} -#else -__ai uint32_t vcltzs_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcltzs_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vcombine_p64(poly64x1_t __p0, poly64x1_t __p1) { - poly64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1); - return __ret; -} -#else -__ai poly64x2_t vcombine_p64(poly64x1_t __p0, poly64x1_t __p1) { - poly64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vcombine_f64(float64x1_t __p0, float64x1_t __p1) { - float64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1); - return __ret; -} -#else -__ai float64x2_t vcombine_f64(float64x1_t __p0, float64x1_t __p1) { - float64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_p8(__p0_12, __p1_12, __p2_12, __p3_12) __extension__ ({ \ - poly8x16_t __s0_12 = __p0_12; \ - poly8x8_t __s2_12 = __p2_12; \ - poly8x16_t __ret_12; \ - __ret_12 = vsetq_lane_p8(vget_lane_p8(__s2_12, __p3_12), __s0_12, __p1_12); \ - __ret_12; \ -}) -#else -#define vcopyq_lane_p8(__p0_13, __p1_13, __p2_13, __p3_13) __extension__ ({ \ - poly8x16_t __s0_13 = __p0_13; \ - poly8x8_t __s2_13 = __p2_13; \ - poly8x16_t __rev0_13; __rev0_13 = __builtin_shufflevector(__s0_13, __s0_13, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __rev2_13; __rev2_13 = __builtin_shufflevector(__s2_13, __s2_13, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __ret_13; \ - __ret_13 = __noswap_vsetq_lane_p8(__noswap_vget_lane_p8(__rev2_13, __p3_13), __rev0_13, __p1_13); \ - __ret_13 = __builtin_shufflevector(__ret_13, __ret_13, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_13; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_p16(__p0_14, __p1_14, __p2_14, __p3_14) __extension__ ({ \ - poly16x8_t __s0_14 = __p0_14; \ - poly16x4_t __s2_14 = __p2_14; \ - poly16x8_t __ret_14; \ - __ret_14 = vsetq_lane_p16(vget_lane_p16(__s2_14, __p3_14), __s0_14, __p1_14); \ - __ret_14; \ -}) -#else -#define vcopyq_lane_p16(__p0_15, __p1_15, __p2_15, __p3_15) __extension__ ({ \ - poly16x8_t __s0_15 = __p0_15; \ - poly16x4_t __s2_15 = __p2_15; \ - poly16x8_t __rev0_15; __rev0_15 = __builtin_shufflevector(__s0_15, __s0_15, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x4_t __rev2_15; __rev2_15 = __builtin_shufflevector(__s2_15, __s2_15, 3, 2, 1, 0); \ - poly16x8_t __ret_15; \ - __ret_15 = __noswap_vsetq_lane_p16(__noswap_vget_lane_p16(__rev2_15, __p3_15), __rev0_15, __p1_15); \ - __ret_15 = __builtin_shufflevector(__ret_15, __ret_15, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_15; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_u8(__p0_16, __p1_16, __p2_16, __p3_16) __extension__ ({ \ - uint8x16_t __s0_16 = __p0_16; \ - uint8x8_t __s2_16 = __p2_16; \ - uint8x16_t __ret_16; \ - __ret_16 = vsetq_lane_u8(vget_lane_u8(__s2_16, __p3_16), __s0_16, __p1_16); \ - __ret_16; \ -}) -#else -#define vcopyq_lane_u8(__p0_17, __p1_17, __p2_17, __p3_17) __extension__ ({ \ - uint8x16_t __s0_17 = __p0_17; \ - uint8x8_t __s2_17 = __p2_17; \ - uint8x16_t __rev0_17; __rev0_17 = __builtin_shufflevector(__s0_17, __s0_17, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __rev2_17; __rev2_17 = __builtin_shufflevector(__s2_17, __s2_17, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret_17; \ - __ret_17 = __noswap_vsetq_lane_u8(__noswap_vget_lane_u8(__rev2_17, __p3_17), __rev0_17, __p1_17); \ - __ret_17 = __builtin_shufflevector(__ret_17, __ret_17, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_17; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_u32(__p0_18, __p1_18, __p2_18, __p3_18) __extension__ ({ \ - uint32x4_t __s0_18 = __p0_18; \ - uint32x2_t __s2_18 = __p2_18; \ - uint32x4_t __ret_18; \ - __ret_18 = vsetq_lane_u32(vget_lane_u32(__s2_18, __p3_18), __s0_18, __p1_18); \ - __ret_18; \ -}) -#else -#define vcopyq_lane_u32(__p0_19, __p1_19, __p2_19, __p3_19) __extension__ ({ \ - uint32x4_t __s0_19 = __p0_19; \ - uint32x2_t __s2_19 = __p2_19; \ - uint32x4_t __rev0_19; __rev0_19 = __builtin_shufflevector(__s0_19, __s0_19, 3, 2, 1, 0); \ - uint32x2_t __rev2_19; __rev2_19 = __builtin_shufflevector(__s2_19, __s2_19, 1, 0); \ - uint32x4_t __ret_19; \ - __ret_19 = __noswap_vsetq_lane_u32(__noswap_vget_lane_u32(__rev2_19, __p3_19), __rev0_19, __p1_19); \ - __ret_19 = __builtin_shufflevector(__ret_19, __ret_19, 3, 2, 1, 0); \ - __ret_19; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_u64(__p0_20, __p1_20, __p2_20, __p3_20) __extension__ ({ \ - uint64x2_t __s0_20 = __p0_20; \ - uint64x1_t __s2_20 = __p2_20; \ - uint64x2_t __ret_20; \ - __ret_20 = vsetq_lane_u64(vget_lane_u64(__s2_20, __p3_20), __s0_20, __p1_20); \ - __ret_20; \ -}) -#else -#define vcopyq_lane_u64(__p0_21, __p1_21, __p2_21, __p3_21) __extension__ ({ \ - uint64x2_t __s0_21 = __p0_21; \ - uint64x1_t __s2_21 = __p2_21; \ - uint64x2_t __rev0_21; __rev0_21 = __builtin_shufflevector(__s0_21, __s0_21, 1, 0); \ - uint64x2_t __ret_21; \ - __ret_21 = __noswap_vsetq_lane_u64(__noswap_vget_lane_u64(__s2_21, __p3_21), __rev0_21, __p1_21); \ - __ret_21 = __builtin_shufflevector(__ret_21, __ret_21, 1, 0); \ - __ret_21; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_u16(__p0_22, __p1_22, __p2_22, __p3_22) __extension__ ({ \ - uint16x8_t __s0_22 = __p0_22; \ - uint16x4_t __s2_22 = __p2_22; \ - uint16x8_t __ret_22; \ - __ret_22 = vsetq_lane_u16(vget_lane_u16(__s2_22, __p3_22), __s0_22, __p1_22); \ - __ret_22; \ -}) -#else -#define vcopyq_lane_u16(__p0_23, __p1_23, __p2_23, __p3_23) __extension__ ({ \ - uint16x8_t __s0_23 = __p0_23; \ - uint16x4_t __s2_23 = __p2_23; \ - uint16x8_t __rev0_23; __rev0_23 = __builtin_shufflevector(__s0_23, __s0_23, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __rev2_23; __rev2_23 = __builtin_shufflevector(__s2_23, __s2_23, 3, 2, 1, 0); \ - uint16x8_t __ret_23; \ - __ret_23 = __noswap_vsetq_lane_u16(__noswap_vget_lane_u16(__rev2_23, __p3_23), __rev0_23, __p1_23); \ - __ret_23 = __builtin_shufflevector(__ret_23, __ret_23, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_23; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_s8(__p0_24, __p1_24, __p2_24, __p3_24) __extension__ ({ \ - int8x16_t __s0_24 = __p0_24; \ - int8x8_t __s2_24 = __p2_24; \ - int8x16_t __ret_24; \ - __ret_24 = vsetq_lane_s8(vget_lane_s8(__s2_24, __p3_24), __s0_24, __p1_24); \ - __ret_24; \ -}) -#else -#define vcopyq_lane_s8(__p0_25, __p1_25, __p2_25, __p3_25) __extension__ ({ \ - int8x16_t __s0_25 = __p0_25; \ - int8x8_t __s2_25 = __p2_25; \ - int8x16_t __rev0_25; __rev0_25 = __builtin_shufflevector(__s0_25, __s0_25, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __rev2_25; __rev2_25 = __builtin_shufflevector(__s2_25, __s2_25, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret_25; \ - __ret_25 = __noswap_vsetq_lane_s8(__noswap_vget_lane_s8(__rev2_25, __p3_25), __rev0_25, __p1_25); \ - __ret_25 = __builtin_shufflevector(__ret_25, __ret_25, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_25; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_f32(__p0_26, __p1_26, __p2_26, __p3_26) __extension__ ({ \ - float32x4_t __s0_26 = __p0_26; \ - float32x2_t __s2_26 = __p2_26; \ - float32x4_t __ret_26; \ - __ret_26 = vsetq_lane_f32(vget_lane_f32(__s2_26, __p3_26), __s0_26, __p1_26); \ - __ret_26; \ -}) -#else -#define vcopyq_lane_f32(__p0_27, __p1_27, __p2_27, __p3_27) __extension__ ({ \ - float32x4_t __s0_27 = __p0_27; \ - float32x2_t __s2_27 = __p2_27; \ - float32x4_t __rev0_27; __rev0_27 = __builtin_shufflevector(__s0_27, __s0_27, 3, 2, 1, 0); \ - float32x2_t __rev2_27; __rev2_27 = __builtin_shufflevector(__s2_27, __s2_27, 1, 0); \ - float32x4_t __ret_27; \ - __ret_27 = __noswap_vsetq_lane_f32(__noswap_vget_lane_f32(__rev2_27, __p3_27), __rev0_27, __p1_27); \ - __ret_27 = __builtin_shufflevector(__ret_27, __ret_27, 3, 2, 1, 0); \ - __ret_27; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_s32(__p0_28, __p1_28, __p2_28, __p3_28) __extension__ ({ \ - int32x4_t __s0_28 = __p0_28; \ - int32x2_t __s2_28 = __p2_28; \ - int32x4_t __ret_28; \ - __ret_28 = vsetq_lane_s32(vget_lane_s32(__s2_28, __p3_28), __s0_28, __p1_28); \ - __ret_28; \ -}) -#else -#define vcopyq_lane_s32(__p0_29, __p1_29, __p2_29, __p3_29) __extension__ ({ \ - int32x4_t __s0_29 = __p0_29; \ - int32x2_t __s2_29 = __p2_29; \ - int32x4_t __rev0_29; __rev0_29 = __builtin_shufflevector(__s0_29, __s0_29, 3, 2, 1, 0); \ - int32x2_t __rev2_29; __rev2_29 = __builtin_shufflevector(__s2_29, __s2_29, 1, 0); \ - int32x4_t __ret_29; \ - __ret_29 = __noswap_vsetq_lane_s32(__noswap_vget_lane_s32(__rev2_29, __p3_29), __rev0_29, __p1_29); \ - __ret_29 = __builtin_shufflevector(__ret_29, __ret_29, 3, 2, 1, 0); \ - __ret_29; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_s64(__p0_30, __p1_30, __p2_30, __p3_30) __extension__ ({ \ - int64x2_t __s0_30 = __p0_30; \ - int64x1_t __s2_30 = __p2_30; \ - int64x2_t __ret_30; \ - __ret_30 = vsetq_lane_s64(vget_lane_s64(__s2_30, __p3_30), __s0_30, __p1_30); \ - __ret_30; \ -}) -#else -#define vcopyq_lane_s64(__p0_31, __p1_31, __p2_31, __p3_31) __extension__ ({ \ - int64x2_t __s0_31 = __p0_31; \ - int64x1_t __s2_31 = __p2_31; \ - int64x2_t __rev0_31; __rev0_31 = __builtin_shufflevector(__s0_31, __s0_31, 1, 0); \ - int64x2_t __ret_31; \ - __ret_31 = __noswap_vsetq_lane_s64(__noswap_vget_lane_s64(__s2_31, __p3_31), __rev0_31, __p1_31); \ - __ret_31 = __builtin_shufflevector(__ret_31, __ret_31, 1, 0); \ - __ret_31; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_s16(__p0_32, __p1_32, __p2_32, __p3_32) __extension__ ({ \ - int16x8_t __s0_32 = __p0_32; \ - int16x4_t __s2_32 = __p2_32; \ - int16x8_t __ret_32; \ - __ret_32 = vsetq_lane_s16(vget_lane_s16(__s2_32, __p3_32), __s0_32, __p1_32); \ - __ret_32; \ -}) -#else -#define vcopyq_lane_s16(__p0_33, __p1_33, __p2_33, __p3_33) __extension__ ({ \ - int16x8_t __s0_33 = __p0_33; \ - int16x4_t __s2_33 = __p2_33; \ - int16x8_t __rev0_33; __rev0_33 = __builtin_shufflevector(__s0_33, __s0_33, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev2_33; __rev2_33 = __builtin_shufflevector(__s2_33, __s2_33, 3, 2, 1, 0); \ - int16x8_t __ret_33; \ - __ret_33 = __noswap_vsetq_lane_s16(__noswap_vget_lane_s16(__rev2_33, __p3_33), __rev0_33, __p1_33); \ - __ret_33 = __builtin_shufflevector(__ret_33, __ret_33, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_33; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_p8(__p0_34, __p1_34, __p2_34, __p3_34) __extension__ ({ \ - poly8x8_t __s0_34 = __p0_34; \ - poly8x8_t __s2_34 = __p2_34; \ - poly8x8_t __ret_34; \ - __ret_34 = vset_lane_p8(vget_lane_p8(__s2_34, __p3_34), __s0_34, __p1_34); \ - __ret_34; \ -}) -#else -#define vcopy_lane_p8(__p0_35, __p1_35, __p2_35, __p3_35) __extension__ ({ \ - poly8x8_t __s0_35 = __p0_35; \ - poly8x8_t __s2_35 = __p2_35; \ - poly8x8_t __rev0_35; __rev0_35 = __builtin_shufflevector(__s0_35, __s0_35, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __rev2_35; __rev2_35 = __builtin_shufflevector(__s2_35, __s2_35, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __ret_35; \ - __ret_35 = __noswap_vset_lane_p8(__noswap_vget_lane_p8(__rev2_35, __p3_35), __rev0_35, __p1_35); \ - __ret_35 = __builtin_shufflevector(__ret_35, __ret_35, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_35; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_p16(__p0_36, __p1_36, __p2_36, __p3_36) __extension__ ({ \ - poly16x4_t __s0_36 = __p0_36; \ - poly16x4_t __s2_36 = __p2_36; \ - poly16x4_t __ret_36; \ - __ret_36 = vset_lane_p16(vget_lane_p16(__s2_36, __p3_36), __s0_36, __p1_36); \ - __ret_36; \ -}) -#else -#define vcopy_lane_p16(__p0_37, __p1_37, __p2_37, __p3_37) __extension__ ({ \ - poly16x4_t __s0_37 = __p0_37; \ - poly16x4_t __s2_37 = __p2_37; \ - poly16x4_t __rev0_37; __rev0_37 = __builtin_shufflevector(__s0_37, __s0_37, 3, 2, 1, 0); \ - poly16x4_t __rev2_37; __rev2_37 = __builtin_shufflevector(__s2_37, __s2_37, 3, 2, 1, 0); \ - poly16x4_t __ret_37; \ - __ret_37 = __noswap_vset_lane_p16(__noswap_vget_lane_p16(__rev2_37, __p3_37), __rev0_37, __p1_37); \ - __ret_37 = __builtin_shufflevector(__ret_37, __ret_37, 3, 2, 1, 0); \ - __ret_37; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_u8(__p0_38, __p1_38, __p2_38, __p3_38) __extension__ ({ \ - uint8x8_t __s0_38 = __p0_38; \ - uint8x8_t __s2_38 = __p2_38; \ - uint8x8_t __ret_38; \ - __ret_38 = vset_lane_u8(vget_lane_u8(__s2_38, __p3_38), __s0_38, __p1_38); \ - __ret_38; \ -}) -#else -#define vcopy_lane_u8(__p0_39, __p1_39, __p2_39, __p3_39) __extension__ ({ \ - uint8x8_t __s0_39 = __p0_39; \ - uint8x8_t __s2_39 = __p2_39; \ - uint8x8_t __rev0_39; __rev0_39 = __builtin_shufflevector(__s0_39, __s0_39, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __rev2_39; __rev2_39 = __builtin_shufflevector(__s2_39, __s2_39, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret_39; \ - __ret_39 = __noswap_vset_lane_u8(__noswap_vget_lane_u8(__rev2_39, __p3_39), __rev0_39, __p1_39); \ - __ret_39 = __builtin_shufflevector(__ret_39, __ret_39, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_39; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_u32(__p0_40, __p1_40, __p2_40, __p3_40) __extension__ ({ \ - uint32x2_t __s0_40 = __p0_40; \ - uint32x2_t __s2_40 = __p2_40; \ - uint32x2_t __ret_40; \ - __ret_40 = vset_lane_u32(vget_lane_u32(__s2_40, __p3_40), __s0_40, __p1_40); \ - __ret_40; \ -}) -#else -#define vcopy_lane_u32(__p0_41, __p1_41, __p2_41, __p3_41) __extension__ ({ \ - uint32x2_t __s0_41 = __p0_41; \ - uint32x2_t __s2_41 = __p2_41; \ - uint32x2_t __rev0_41; __rev0_41 = __builtin_shufflevector(__s0_41, __s0_41, 1, 0); \ - uint32x2_t __rev2_41; __rev2_41 = __builtin_shufflevector(__s2_41, __s2_41, 1, 0); \ - uint32x2_t __ret_41; \ - __ret_41 = __noswap_vset_lane_u32(__noswap_vget_lane_u32(__rev2_41, __p3_41), __rev0_41, __p1_41); \ - __ret_41 = __builtin_shufflevector(__ret_41, __ret_41, 1, 0); \ - __ret_41; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_u64(__p0_42, __p1_42, __p2_42, __p3_42) __extension__ ({ \ - uint64x1_t __s0_42 = __p0_42; \ - uint64x1_t __s2_42 = __p2_42; \ - uint64x1_t __ret_42; \ - __ret_42 = vset_lane_u64(vget_lane_u64(__s2_42, __p3_42), __s0_42, __p1_42); \ - __ret_42; \ -}) -#else -#define vcopy_lane_u64(__p0_43, __p1_43, __p2_43, __p3_43) __extension__ ({ \ - uint64x1_t __s0_43 = __p0_43; \ - uint64x1_t __s2_43 = __p2_43; \ - uint64x1_t __ret_43; \ - __ret_43 = __noswap_vset_lane_u64(__noswap_vget_lane_u64(__s2_43, __p3_43), __s0_43, __p1_43); \ - __ret_43; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_u16(__p0_44, __p1_44, __p2_44, __p3_44) __extension__ ({ \ - uint16x4_t __s0_44 = __p0_44; \ - uint16x4_t __s2_44 = __p2_44; \ - uint16x4_t __ret_44; \ - __ret_44 = vset_lane_u16(vget_lane_u16(__s2_44, __p3_44), __s0_44, __p1_44); \ - __ret_44; \ -}) -#else -#define vcopy_lane_u16(__p0_45, __p1_45, __p2_45, __p3_45) __extension__ ({ \ - uint16x4_t __s0_45 = __p0_45; \ - uint16x4_t __s2_45 = __p2_45; \ - uint16x4_t __rev0_45; __rev0_45 = __builtin_shufflevector(__s0_45, __s0_45, 3, 2, 1, 0); \ - uint16x4_t __rev2_45; __rev2_45 = __builtin_shufflevector(__s2_45, __s2_45, 3, 2, 1, 0); \ - uint16x4_t __ret_45; \ - __ret_45 = __noswap_vset_lane_u16(__noswap_vget_lane_u16(__rev2_45, __p3_45), __rev0_45, __p1_45); \ - __ret_45 = __builtin_shufflevector(__ret_45, __ret_45, 3, 2, 1, 0); \ - __ret_45; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_s8(__p0_46, __p1_46, __p2_46, __p3_46) __extension__ ({ \ - int8x8_t __s0_46 = __p0_46; \ - int8x8_t __s2_46 = __p2_46; \ - int8x8_t __ret_46; \ - __ret_46 = vset_lane_s8(vget_lane_s8(__s2_46, __p3_46), __s0_46, __p1_46); \ - __ret_46; \ -}) -#else -#define vcopy_lane_s8(__p0_47, __p1_47, __p2_47, __p3_47) __extension__ ({ \ - int8x8_t __s0_47 = __p0_47; \ - int8x8_t __s2_47 = __p2_47; \ - int8x8_t __rev0_47; __rev0_47 = __builtin_shufflevector(__s0_47, __s0_47, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __rev2_47; __rev2_47 = __builtin_shufflevector(__s2_47, __s2_47, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret_47; \ - __ret_47 = __noswap_vset_lane_s8(__noswap_vget_lane_s8(__rev2_47, __p3_47), __rev0_47, __p1_47); \ - __ret_47 = __builtin_shufflevector(__ret_47, __ret_47, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_47; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_f32(__p0_48, __p1_48, __p2_48, __p3_48) __extension__ ({ \ - float32x2_t __s0_48 = __p0_48; \ - float32x2_t __s2_48 = __p2_48; \ - float32x2_t __ret_48; \ - __ret_48 = vset_lane_f32(vget_lane_f32(__s2_48, __p3_48), __s0_48, __p1_48); \ - __ret_48; \ -}) -#else -#define vcopy_lane_f32(__p0_49, __p1_49, __p2_49, __p3_49) __extension__ ({ \ - float32x2_t __s0_49 = __p0_49; \ - float32x2_t __s2_49 = __p2_49; \ - float32x2_t __rev0_49; __rev0_49 = __builtin_shufflevector(__s0_49, __s0_49, 1, 0); \ - float32x2_t __rev2_49; __rev2_49 = __builtin_shufflevector(__s2_49, __s2_49, 1, 0); \ - float32x2_t __ret_49; \ - __ret_49 = __noswap_vset_lane_f32(__noswap_vget_lane_f32(__rev2_49, __p3_49), __rev0_49, __p1_49); \ - __ret_49 = __builtin_shufflevector(__ret_49, __ret_49, 1, 0); \ - __ret_49; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_s32(__p0_50, __p1_50, __p2_50, __p3_50) __extension__ ({ \ - int32x2_t __s0_50 = __p0_50; \ - int32x2_t __s2_50 = __p2_50; \ - int32x2_t __ret_50; \ - __ret_50 = vset_lane_s32(vget_lane_s32(__s2_50, __p3_50), __s0_50, __p1_50); \ - __ret_50; \ -}) -#else -#define vcopy_lane_s32(__p0_51, __p1_51, __p2_51, __p3_51) __extension__ ({ \ - int32x2_t __s0_51 = __p0_51; \ - int32x2_t __s2_51 = __p2_51; \ - int32x2_t __rev0_51; __rev0_51 = __builtin_shufflevector(__s0_51, __s0_51, 1, 0); \ - int32x2_t __rev2_51; __rev2_51 = __builtin_shufflevector(__s2_51, __s2_51, 1, 0); \ - int32x2_t __ret_51; \ - __ret_51 = __noswap_vset_lane_s32(__noswap_vget_lane_s32(__rev2_51, __p3_51), __rev0_51, __p1_51); \ - __ret_51 = __builtin_shufflevector(__ret_51, __ret_51, 1, 0); \ - __ret_51; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_s64(__p0_52, __p1_52, __p2_52, __p3_52) __extension__ ({ \ - int64x1_t __s0_52 = __p0_52; \ - int64x1_t __s2_52 = __p2_52; \ - int64x1_t __ret_52; \ - __ret_52 = vset_lane_s64(vget_lane_s64(__s2_52, __p3_52), __s0_52, __p1_52); \ - __ret_52; \ -}) -#else -#define vcopy_lane_s64(__p0_53, __p1_53, __p2_53, __p3_53) __extension__ ({ \ - int64x1_t __s0_53 = __p0_53; \ - int64x1_t __s2_53 = __p2_53; \ - int64x1_t __ret_53; \ - __ret_53 = __noswap_vset_lane_s64(__noswap_vget_lane_s64(__s2_53, __p3_53), __s0_53, __p1_53); \ - __ret_53; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_s16(__p0_54, __p1_54, __p2_54, __p3_54) __extension__ ({ \ - int16x4_t __s0_54 = __p0_54; \ - int16x4_t __s2_54 = __p2_54; \ - int16x4_t __ret_54; \ - __ret_54 = vset_lane_s16(vget_lane_s16(__s2_54, __p3_54), __s0_54, __p1_54); \ - __ret_54; \ -}) -#else -#define vcopy_lane_s16(__p0_55, __p1_55, __p2_55, __p3_55) __extension__ ({ \ - int16x4_t __s0_55 = __p0_55; \ - int16x4_t __s2_55 = __p2_55; \ - int16x4_t __rev0_55; __rev0_55 = __builtin_shufflevector(__s0_55, __s0_55, 3, 2, 1, 0); \ - int16x4_t __rev2_55; __rev2_55 = __builtin_shufflevector(__s2_55, __s2_55, 3, 2, 1, 0); \ - int16x4_t __ret_55; \ - __ret_55 = __noswap_vset_lane_s16(__noswap_vget_lane_s16(__rev2_55, __p3_55), __rev0_55, __p1_55); \ - __ret_55 = __builtin_shufflevector(__ret_55, __ret_55, 3, 2, 1, 0); \ - __ret_55; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_p8(__p0_56, __p1_56, __p2_56, __p3_56) __extension__ ({ \ - poly8x16_t __s0_56 = __p0_56; \ - poly8x16_t __s2_56 = __p2_56; \ - poly8x16_t __ret_56; \ - __ret_56 = vsetq_lane_p8(vgetq_lane_p8(__s2_56, __p3_56), __s0_56, __p1_56); \ - __ret_56; \ -}) -#else -#define vcopyq_laneq_p8(__p0_57, __p1_57, __p2_57, __p3_57) __extension__ ({ \ - poly8x16_t __s0_57 = __p0_57; \ - poly8x16_t __s2_57 = __p2_57; \ - poly8x16_t __rev0_57; __rev0_57 = __builtin_shufflevector(__s0_57, __s0_57, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __rev2_57; __rev2_57 = __builtin_shufflevector(__s2_57, __s2_57, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __ret_57; \ - __ret_57 = __noswap_vsetq_lane_p8(__noswap_vgetq_lane_p8(__rev2_57, __p3_57), __rev0_57, __p1_57); \ - __ret_57 = __builtin_shufflevector(__ret_57, __ret_57, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_57; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_p16(__p0_58, __p1_58, __p2_58, __p3_58) __extension__ ({ \ - poly16x8_t __s0_58 = __p0_58; \ - poly16x8_t __s2_58 = __p2_58; \ - poly16x8_t __ret_58; \ - __ret_58 = vsetq_lane_p16(vgetq_lane_p16(__s2_58, __p3_58), __s0_58, __p1_58); \ - __ret_58; \ -}) -#else -#define vcopyq_laneq_p16(__p0_59, __p1_59, __p2_59, __p3_59) __extension__ ({ \ - poly16x8_t __s0_59 = __p0_59; \ - poly16x8_t __s2_59 = __p2_59; \ - poly16x8_t __rev0_59; __rev0_59 = __builtin_shufflevector(__s0_59, __s0_59, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __rev2_59; __rev2_59 = __builtin_shufflevector(__s2_59, __s2_59, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __ret_59; \ - __ret_59 = __noswap_vsetq_lane_p16(__noswap_vgetq_lane_p16(__rev2_59, __p3_59), __rev0_59, __p1_59); \ - __ret_59 = __builtin_shufflevector(__ret_59, __ret_59, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_59; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_u8(__p0_60, __p1_60, __p2_60, __p3_60) __extension__ ({ \ - uint8x16_t __s0_60 = __p0_60; \ - uint8x16_t __s2_60 = __p2_60; \ - uint8x16_t __ret_60; \ - __ret_60 = vsetq_lane_u8(vgetq_lane_u8(__s2_60, __p3_60), __s0_60, __p1_60); \ - __ret_60; \ -}) -#else -#define vcopyq_laneq_u8(__p0_61, __p1_61, __p2_61, __p3_61) __extension__ ({ \ - uint8x16_t __s0_61 = __p0_61; \ - uint8x16_t __s2_61 = __p2_61; \ - uint8x16_t __rev0_61; __rev0_61 = __builtin_shufflevector(__s0_61, __s0_61, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __rev2_61; __rev2_61 = __builtin_shufflevector(__s2_61, __s2_61, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret_61; \ - __ret_61 = __noswap_vsetq_lane_u8(__noswap_vgetq_lane_u8(__rev2_61, __p3_61), __rev0_61, __p1_61); \ - __ret_61 = __builtin_shufflevector(__ret_61, __ret_61, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_61; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_u32(__p0_62, __p1_62, __p2_62, __p3_62) __extension__ ({ \ - uint32x4_t __s0_62 = __p0_62; \ - uint32x4_t __s2_62 = __p2_62; \ - uint32x4_t __ret_62; \ - __ret_62 = vsetq_lane_u32(vgetq_lane_u32(__s2_62, __p3_62), __s0_62, __p1_62); \ - __ret_62; \ -}) -#else -#define vcopyq_laneq_u32(__p0_63, __p1_63, __p2_63, __p3_63) __extension__ ({ \ - uint32x4_t __s0_63 = __p0_63; \ - uint32x4_t __s2_63 = __p2_63; \ - uint32x4_t __rev0_63; __rev0_63 = __builtin_shufflevector(__s0_63, __s0_63, 3, 2, 1, 0); \ - uint32x4_t __rev2_63; __rev2_63 = __builtin_shufflevector(__s2_63, __s2_63, 3, 2, 1, 0); \ - uint32x4_t __ret_63; \ - __ret_63 = __noswap_vsetq_lane_u32(__noswap_vgetq_lane_u32(__rev2_63, __p3_63), __rev0_63, __p1_63); \ - __ret_63 = __builtin_shufflevector(__ret_63, __ret_63, 3, 2, 1, 0); \ - __ret_63; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_u64(__p0_64, __p1_64, __p2_64, __p3_64) __extension__ ({ \ - uint64x2_t __s0_64 = __p0_64; \ - uint64x2_t __s2_64 = __p2_64; \ - uint64x2_t __ret_64; \ - __ret_64 = vsetq_lane_u64(vgetq_lane_u64(__s2_64, __p3_64), __s0_64, __p1_64); \ - __ret_64; \ -}) -#else -#define vcopyq_laneq_u64(__p0_65, __p1_65, __p2_65, __p3_65) __extension__ ({ \ - uint64x2_t __s0_65 = __p0_65; \ - uint64x2_t __s2_65 = __p2_65; \ - uint64x2_t __rev0_65; __rev0_65 = __builtin_shufflevector(__s0_65, __s0_65, 1, 0); \ - uint64x2_t __rev2_65; __rev2_65 = __builtin_shufflevector(__s2_65, __s2_65, 1, 0); \ - uint64x2_t __ret_65; \ - __ret_65 = __noswap_vsetq_lane_u64(__noswap_vgetq_lane_u64(__rev2_65, __p3_65), __rev0_65, __p1_65); \ - __ret_65 = __builtin_shufflevector(__ret_65, __ret_65, 1, 0); \ - __ret_65; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_u16(__p0_66, __p1_66, __p2_66, __p3_66) __extension__ ({ \ - uint16x8_t __s0_66 = __p0_66; \ - uint16x8_t __s2_66 = __p2_66; \ - uint16x8_t __ret_66; \ - __ret_66 = vsetq_lane_u16(vgetq_lane_u16(__s2_66, __p3_66), __s0_66, __p1_66); \ - __ret_66; \ -}) -#else -#define vcopyq_laneq_u16(__p0_67, __p1_67, __p2_67, __p3_67) __extension__ ({ \ - uint16x8_t __s0_67 = __p0_67; \ - uint16x8_t __s2_67 = __p2_67; \ - uint16x8_t __rev0_67; __rev0_67 = __builtin_shufflevector(__s0_67, __s0_67, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev2_67; __rev2_67 = __builtin_shufflevector(__s2_67, __s2_67, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret_67; \ - __ret_67 = __noswap_vsetq_lane_u16(__noswap_vgetq_lane_u16(__rev2_67, __p3_67), __rev0_67, __p1_67); \ - __ret_67 = __builtin_shufflevector(__ret_67, __ret_67, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_67; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_s8(__p0_68, __p1_68, __p2_68, __p3_68) __extension__ ({ \ - int8x16_t __s0_68 = __p0_68; \ - int8x16_t __s2_68 = __p2_68; \ - int8x16_t __ret_68; \ - __ret_68 = vsetq_lane_s8(vgetq_lane_s8(__s2_68, __p3_68), __s0_68, __p1_68); \ - __ret_68; \ -}) -#else -#define vcopyq_laneq_s8(__p0_69, __p1_69, __p2_69, __p3_69) __extension__ ({ \ - int8x16_t __s0_69 = __p0_69; \ - int8x16_t __s2_69 = __p2_69; \ - int8x16_t __rev0_69; __rev0_69 = __builtin_shufflevector(__s0_69, __s0_69, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __rev2_69; __rev2_69 = __builtin_shufflevector(__s2_69, __s2_69, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret_69; \ - __ret_69 = __noswap_vsetq_lane_s8(__noswap_vgetq_lane_s8(__rev2_69, __p3_69), __rev0_69, __p1_69); \ - __ret_69 = __builtin_shufflevector(__ret_69, __ret_69, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_69; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_f32(__p0_70, __p1_70, __p2_70, __p3_70) __extension__ ({ \ - float32x4_t __s0_70 = __p0_70; \ - float32x4_t __s2_70 = __p2_70; \ - float32x4_t __ret_70; \ - __ret_70 = vsetq_lane_f32(vgetq_lane_f32(__s2_70, __p3_70), __s0_70, __p1_70); \ - __ret_70; \ -}) -#else -#define vcopyq_laneq_f32(__p0_71, __p1_71, __p2_71, __p3_71) __extension__ ({ \ - float32x4_t __s0_71 = __p0_71; \ - float32x4_t __s2_71 = __p2_71; \ - float32x4_t __rev0_71; __rev0_71 = __builtin_shufflevector(__s0_71, __s0_71, 3, 2, 1, 0); \ - float32x4_t __rev2_71; __rev2_71 = __builtin_shufflevector(__s2_71, __s2_71, 3, 2, 1, 0); \ - float32x4_t __ret_71; \ - __ret_71 = __noswap_vsetq_lane_f32(__noswap_vgetq_lane_f32(__rev2_71, __p3_71), __rev0_71, __p1_71); \ - __ret_71 = __builtin_shufflevector(__ret_71, __ret_71, 3, 2, 1, 0); \ - __ret_71; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_s32(__p0_72, __p1_72, __p2_72, __p3_72) __extension__ ({ \ - int32x4_t __s0_72 = __p0_72; \ - int32x4_t __s2_72 = __p2_72; \ - int32x4_t __ret_72; \ - __ret_72 = vsetq_lane_s32(vgetq_lane_s32(__s2_72, __p3_72), __s0_72, __p1_72); \ - __ret_72; \ -}) -#else -#define vcopyq_laneq_s32(__p0_73, __p1_73, __p2_73, __p3_73) __extension__ ({ \ - int32x4_t __s0_73 = __p0_73; \ - int32x4_t __s2_73 = __p2_73; \ - int32x4_t __rev0_73; __rev0_73 = __builtin_shufflevector(__s0_73, __s0_73, 3, 2, 1, 0); \ - int32x4_t __rev2_73; __rev2_73 = __builtin_shufflevector(__s2_73, __s2_73, 3, 2, 1, 0); \ - int32x4_t __ret_73; \ - __ret_73 = __noswap_vsetq_lane_s32(__noswap_vgetq_lane_s32(__rev2_73, __p3_73), __rev0_73, __p1_73); \ - __ret_73 = __builtin_shufflevector(__ret_73, __ret_73, 3, 2, 1, 0); \ - __ret_73; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_s64(__p0_74, __p1_74, __p2_74, __p3_74) __extension__ ({ \ - int64x2_t __s0_74 = __p0_74; \ - int64x2_t __s2_74 = __p2_74; \ - int64x2_t __ret_74; \ - __ret_74 = vsetq_lane_s64(vgetq_lane_s64(__s2_74, __p3_74), __s0_74, __p1_74); \ - __ret_74; \ -}) -#else -#define vcopyq_laneq_s64(__p0_75, __p1_75, __p2_75, __p3_75) __extension__ ({ \ - int64x2_t __s0_75 = __p0_75; \ - int64x2_t __s2_75 = __p2_75; \ - int64x2_t __rev0_75; __rev0_75 = __builtin_shufflevector(__s0_75, __s0_75, 1, 0); \ - int64x2_t __rev2_75; __rev2_75 = __builtin_shufflevector(__s2_75, __s2_75, 1, 0); \ - int64x2_t __ret_75; \ - __ret_75 = __noswap_vsetq_lane_s64(__noswap_vgetq_lane_s64(__rev2_75, __p3_75), __rev0_75, __p1_75); \ - __ret_75 = __builtin_shufflevector(__ret_75, __ret_75, 1, 0); \ - __ret_75; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_s16(__p0_76, __p1_76, __p2_76, __p3_76) __extension__ ({ \ - int16x8_t __s0_76 = __p0_76; \ - int16x8_t __s2_76 = __p2_76; \ - int16x8_t __ret_76; \ - __ret_76 = vsetq_lane_s16(vgetq_lane_s16(__s2_76, __p3_76), __s0_76, __p1_76); \ - __ret_76; \ -}) -#else -#define vcopyq_laneq_s16(__p0_77, __p1_77, __p2_77, __p3_77) __extension__ ({ \ - int16x8_t __s0_77 = __p0_77; \ - int16x8_t __s2_77 = __p2_77; \ - int16x8_t __rev0_77; __rev0_77 = __builtin_shufflevector(__s0_77, __s0_77, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev2_77; __rev2_77 = __builtin_shufflevector(__s2_77, __s2_77, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret_77; \ - __ret_77 = __noswap_vsetq_lane_s16(__noswap_vgetq_lane_s16(__rev2_77, __p3_77), __rev0_77, __p1_77); \ - __ret_77 = __builtin_shufflevector(__ret_77, __ret_77, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_77; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_p8(__p0_78, __p1_78, __p2_78, __p3_78) __extension__ ({ \ - poly8x8_t __s0_78 = __p0_78; \ - poly8x16_t __s2_78 = __p2_78; \ - poly8x8_t __ret_78; \ - __ret_78 = vset_lane_p8(vgetq_lane_p8(__s2_78, __p3_78), __s0_78, __p1_78); \ - __ret_78; \ -}) -#else -#define vcopy_laneq_p8(__p0_79, __p1_79, __p2_79, __p3_79) __extension__ ({ \ - poly8x8_t __s0_79 = __p0_79; \ - poly8x16_t __s2_79 = __p2_79; \ - poly8x8_t __rev0_79; __rev0_79 = __builtin_shufflevector(__s0_79, __s0_79, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __rev2_79; __rev2_79 = __builtin_shufflevector(__s2_79, __s2_79, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __ret_79; \ - __ret_79 = __noswap_vset_lane_p8(__noswap_vgetq_lane_p8(__rev2_79, __p3_79), __rev0_79, __p1_79); \ - __ret_79 = __builtin_shufflevector(__ret_79, __ret_79, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_79; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_p16(__p0_80, __p1_80, __p2_80, __p3_80) __extension__ ({ \ - poly16x4_t __s0_80 = __p0_80; \ - poly16x8_t __s2_80 = __p2_80; \ - poly16x4_t __ret_80; \ - __ret_80 = vset_lane_p16(vgetq_lane_p16(__s2_80, __p3_80), __s0_80, __p1_80); \ - __ret_80; \ -}) -#else -#define vcopy_laneq_p16(__p0_81, __p1_81, __p2_81, __p3_81) __extension__ ({ \ - poly16x4_t __s0_81 = __p0_81; \ - poly16x8_t __s2_81 = __p2_81; \ - poly16x4_t __rev0_81; __rev0_81 = __builtin_shufflevector(__s0_81, __s0_81, 3, 2, 1, 0); \ - poly16x8_t __rev2_81; __rev2_81 = __builtin_shufflevector(__s2_81, __s2_81, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x4_t __ret_81; \ - __ret_81 = __noswap_vset_lane_p16(__noswap_vgetq_lane_p16(__rev2_81, __p3_81), __rev0_81, __p1_81); \ - __ret_81 = __builtin_shufflevector(__ret_81, __ret_81, 3, 2, 1, 0); \ - __ret_81; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_u8(__p0_82, __p1_82, __p2_82, __p3_82) __extension__ ({ \ - uint8x8_t __s0_82 = __p0_82; \ - uint8x16_t __s2_82 = __p2_82; \ - uint8x8_t __ret_82; \ - __ret_82 = vset_lane_u8(vgetq_lane_u8(__s2_82, __p3_82), __s0_82, __p1_82); \ - __ret_82; \ -}) -#else -#define vcopy_laneq_u8(__p0_83, __p1_83, __p2_83, __p3_83) __extension__ ({ \ - uint8x8_t __s0_83 = __p0_83; \ - uint8x16_t __s2_83 = __p2_83; \ - uint8x8_t __rev0_83; __rev0_83 = __builtin_shufflevector(__s0_83, __s0_83, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __rev2_83; __rev2_83 = __builtin_shufflevector(__s2_83, __s2_83, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret_83; \ - __ret_83 = __noswap_vset_lane_u8(__noswap_vgetq_lane_u8(__rev2_83, __p3_83), __rev0_83, __p1_83); \ - __ret_83 = __builtin_shufflevector(__ret_83, __ret_83, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_83; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_u32(__p0_84, __p1_84, __p2_84, __p3_84) __extension__ ({ \ - uint32x2_t __s0_84 = __p0_84; \ - uint32x4_t __s2_84 = __p2_84; \ - uint32x2_t __ret_84; \ - __ret_84 = vset_lane_u32(vgetq_lane_u32(__s2_84, __p3_84), __s0_84, __p1_84); \ - __ret_84; \ -}) -#else -#define vcopy_laneq_u32(__p0_85, __p1_85, __p2_85, __p3_85) __extension__ ({ \ - uint32x2_t __s0_85 = __p0_85; \ - uint32x4_t __s2_85 = __p2_85; \ - uint32x2_t __rev0_85; __rev0_85 = __builtin_shufflevector(__s0_85, __s0_85, 1, 0); \ - uint32x4_t __rev2_85; __rev2_85 = __builtin_shufflevector(__s2_85, __s2_85, 3, 2, 1, 0); \ - uint32x2_t __ret_85; \ - __ret_85 = __noswap_vset_lane_u32(__noswap_vgetq_lane_u32(__rev2_85, __p3_85), __rev0_85, __p1_85); \ - __ret_85 = __builtin_shufflevector(__ret_85, __ret_85, 1, 0); \ - __ret_85; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_u64(__p0_86, __p1_86, __p2_86, __p3_86) __extension__ ({ \ - uint64x1_t __s0_86 = __p0_86; \ - uint64x2_t __s2_86 = __p2_86; \ - uint64x1_t __ret_86; \ - __ret_86 = vset_lane_u64(vgetq_lane_u64(__s2_86, __p3_86), __s0_86, __p1_86); \ - __ret_86; \ -}) -#else -#define vcopy_laneq_u64(__p0_87, __p1_87, __p2_87, __p3_87) __extension__ ({ \ - uint64x1_t __s0_87 = __p0_87; \ - uint64x2_t __s2_87 = __p2_87; \ - uint64x2_t __rev2_87; __rev2_87 = __builtin_shufflevector(__s2_87, __s2_87, 1, 0); \ - uint64x1_t __ret_87; \ - __ret_87 = __noswap_vset_lane_u64(__noswap_vgetq_lane_u64(__rev2_87, __p3_87), __s0_87, __p1_87); \ - __ret_87; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_u16(__p0_88, __p1_88, __p2_88, __p3_88) __extension__ ({ \ - uint16x4_t __s0_88 = __p0_88; \ - uint16x8_t __s2_88 = __p2_88; \ - uint16x4_t __ret_88; \ - __ret_88 = vset_lane_u16(vgetq_lane_u16(__s2_88, __p3_88), __s0_88, __p1_88); \ - __ret_88; \ -}) -#else -#define vcopy_laneq_u16(__p0_89, __p1_89, __p2_89, __p3_89) __extension__ ({ \ - uint16x4_t __s0_89 = __p0_89; \ - uint16x8_t __s2_89 = __p2_89; \ - uint16x4_t __rev0_89; __rev0_89 = __builtin_shufflevector(__s0_89, __s0_89, 3, 2, 1, 0); \ - uint16x8_t __rev2_89; __rev2_89 = __builtin_shufflevector(__s2_89, __s2_89, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __ret_89; \ - __ret_89 = __noswap_vset_lane_u16(__noswap_vgetq_lane_u16(__rev2_89, __p3_89), __rev0_89, __p1_89); \ - __ret_89 = __builtin_shufflevector(__ret_89, __ret_89, 3, 2, 1, 0); \ - __ret_89; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_s8(__p0_90, __p1_90, __p2_90, __p3_90) __extension__ ({ \ - int8x8_t __s0_90 = __p0_90; \ - int8x16_t __s2_90 = __p2_90; \ - int8x8_t __ret_90; \ - __ret_90 = vset_lane_s8(vgetq_lane_s8(__s2_90, __p3_90), __s0_90, __p1_90); \ - __ret_90; \ -}) -#else -#define vcopy_laneq_s8(__p0_91, __p1_91, __p2_91, __p3_91) __extension__ ({ \ - int8x8_t __s0_91 = __p0_91; \ - int8x16_t __s2_91 = __p2_91; \ - int8x8_t __rev0_91; __rev0_91 = __builtin_shufflevector(__s0_91, __s0_91, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __rev2_91; __rev2_91 = __builtin_shufflevector(__s2_91, __s2_91, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret_91; \ - __ret_91 = __noswap_vset_lane_s8(__noswap_vgetq_lane_s8(__rev2_91, __p3_91), __rev0_91, __p1_91); \ - __ret_91 = __builtin_shufflevector(__ret_91, __ret_91, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_91; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_f32(__p0_92, __p1_92, __p2_92, __p3_92) __extension__ ({ \ - float32x2_t __s0_92 = __p0_92; \ - float32x4_t __s2_92 = __p2_92; \ - float32x2_t __ret_92; \ - __ret_92 = vset_lane_f32(vgetq_lane_f32(__s2_92, __p3_92), __s0_92, __p1_92); \ - __ret_92; \ -}) -#else -#define vcopy_laneq_f32(__p0_93, __p1_93, __p2_93, __p3_93) __extension__ ({ \ - float32x2_t __s0_93 = __p0_93; \ - float32x4_t __s2_93 = __p2_93; \ - float32x2_t __rev0_93; __rev0_93 = __builtin_shufflevector(__s0_93, __s0_93, 1, 0); \ - float32x4_t __rev2_93; __rev2_93 = __builtin_shufflevector(__s2_93, __s2_93, 3, 2, 1, 0); \ - float32x2_t __ret_93; \ - __ret_93 = __noswap_vset_lane_f32(__noswap_vgetq_lane_f32(__rev2_93, __p3_93), __rev0_93, __p1_93); \ - __ret_93 = __builtin_shufflevector(__ret_93, __ret_93, 1, 0); \ - __ret_93; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_s32(__p0_94, __p1_94, __p2_94, __p3_94) __extension__ ({ \ - int32x2_t __s0_94 = __p0_94; \ - int32x4_t __s2_94 = __p2_94; \ - int32x2_t __ret_94; \ - __ret_94 = vset_lane_s32(vgetq_lane_s32(__s2_94, __p3_94), __s0_94, __p1_94); \ - __ret_94; \ -}) -#else -#define vcopy_laneq_s32(__p0_95, __p1_95, __p2_95, __p3_95) __extension__ ({ \ - int32x2_t __s0_95 = __p0_95; \ - int32x4_t __s2_95 = __p2_95; \ - int32x2_t __rev0_95; __rev0_95 = __builtin_shufflevector(__s0_95, __s0_95, 1, 0); \ - int32x4_t __rev2_95; __rev2_95 = __builtin_shufflevector(__s2_95, __s2_95, 3, 2, 1, 0); \ - int32x2_t __ret_95; \ - __ret_95 = __noswap_vset_lane_s32(__noswap_vgetq_lane_s32(__rev2_95, __p3_95), __rev0_95, __p1_95); \ - __ret_95 = __builtin_shufflevector(__ret_95, __ret_95, 1, 0); \ - __ret_95; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_s64(__p0_96, __p1_96, __p2_96, __p3_96) __extension__ ({ \ - int64x1_t __s0_96 = __p0_96; \ - int64x2_t __s2_96 = __p2_96; \ - int64x1_t __ret_96; \ - __ret_96 = vset_lane_s64(vgetq_lane_s64(__s2_96, __p3_96), __s0_96, __p1_96); \ - __ret_96; \ -}) -#else -#define vcopy_laneq_s64(__p0_97, __p1_97, __p2_97, __p3_97) __extension__ ({ \ - int64x1_t __s0_97 = __p0_97; \ - int64x2_t __s2_97 = __p2_97; \ - int64x2_t __rev2_97; __rev2_97 = __builtin_shufflevector(__s2_97, __s2_97, 1, 0); \ - int64x1_t __ret_97; \ - __ret_97 = __noswap_vset_lane_s64(__noswap_vgetq_lane_s64(__rev2_97, __p3_97), __s0_97, __p1_97); \ - __ret_97; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_s16(__p0_98, __p1_98, __p2_98, __p3_98) __extension__ ({ \ - int16x4_t __s0_98 = __p0_98; \ - int16x8_t __s2_98 = __p2_98; \ - int16x4_t __ret_98; \ - __ret_98 = vset_lane_s16(vgetq_lane_s16(__s2_98, __p3_98), __s0_98, __p1_98); \ - __ret_98; \ -}) -#else -#define vcopy_laneq_s16(__p0_99, __p1_99, __p2_99, __p3_99) __extension__ ({ \ - int16x4_t __s0_99 = __p0_99; \ - int16x8_t __s2_99 = __p2_99; \ - int16x4_t __rev0_99; __rev0_99 = __builtin_shufflevector(__s0_99, __s0_99, 3, 2, 1, 0); \ - int16x8_t __rev2_99; __rev2_99 = __builtin_shufflevector(__s2_99, __s2_99, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __ret_99; \ - __ret_99 = __noswap_vset_lane_s16(__noswap_vgetq_lane_s16(__rev2_99, __p3_99), __rev0_99, __p1_99); \ - __ret_99 = __builtin_shufflevector(__ret_99, __ret_99, 3, 2, 1, 0); \ - __ret_99; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vcreate_p64(uint64_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#else -__ai poly64x1_t vcreate_p64(uint64_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vcreate_f64(uint64_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#else -__ai float64x1_t vcreate_f64(uint64_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t)(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vcvts_f32_s32(int32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vcvts_f32_s32(__p0); - return __ret; -} -#else -__ai float32_t vcvts_f32_s32(int32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vcvts_f32_s32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vcvts_f32_u32(uint32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vcvts_f32_u32(__p0); - return __ret; -} -#else -__ai float32_t vcvts_f32_u32(uint32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vcvts_f32_u32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vcvt_f32_f64(float64x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vcvt_f32_f64((int8x16_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vcvt_f32_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vcvt_f32_f64((int8x16_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float32x2_t __noswap_vcvt_f32_f64(float64x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vcvt_f32_f64((int8x16_t)__p0, 9); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vcvtd_f64_s64(int64_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vcvtd_f64_s64(__p0); - return __ret; -} -#else -__ai float64_t vcvtd_f64_s64(int64_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vcvtd_f64_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vcvtd_f64_u64(uint64_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vcvtd_f64_u64(__p0); - return __ret; -} -#else -__ai float64_t vcvtd_f64_u64(uint64_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vcvtd_f64_u64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vcvtq_f64_u64(uint64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vcvtq_f64_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai float64x2_t vcvtq_f64_u64(uint64x2_t __p0) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vcvtq_f64_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vcvtq_f64_s64(int64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vcvtq_f64_v((int8x16_t)__p0, 35); - return __ret; -} -#else -__ai float64x2_t vcvtq_f64_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vcvtq_f64_v((int8x16_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vcvt_f64_u64(uint64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vcvt_f64_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai float64x1_t vcvt_f64_u64(uint64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vcvt_f64_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vcvt_f64_s64(int64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vcvt_f64_v((int8x8_t)__p0, 3); - return __ret; -} -#else -__ai float64x1_t vcvt_f64_s64(int64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vcvt_f64_v((int8x8_t)__p0, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vcvt_f64_f32(float32x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vcvt_f64_f32((int8x8_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vcvt_f64_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vcvt_f64_f32((int8x8_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float64x2_t __noswap_vcvt_f64_f32(float32x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vcvt_f64_f32((int8x8_t)__p0, 42); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float16x8_t vcvt_high_f16_f32(float16x4_t __p0, float32x4_t __p1) { - float16x8_t __ret; - __ret = vcombine_f16(__p0, vcvt_f16_f32(__p1)); - return __ret; -} -#else -__ai float16x8_t vcvt_high_f16_f32(float16x4_t __p0, float32x4_t __p1) { - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float16x8_t __ret; - __ret = __noswap_vcombine_f16(__rev0, __noswap_vcvt_f16_f32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vcvt_high_f32_f16(float16x8_t __p0) { - float32x4_t __ret; - __ret = vcvt_f32_f16(vget_high_f16(__p0)); - return __ret; -} -#else -__ai float32x4_t vcvt_high_f32_f16(float16x8_t __p0) { - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __noswap_vcvt_f32_f16(__noswap_vget_high_f16(__rev0)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vcvt_high_f32_f64(float32x2_t __p0, float64x2_t __p1) { - float32x4_t __ret; - __ret = vcombine_f32(__p0, vcvt_f32_f64(__p1)); - return __ret; -} -#else -__ai float32x4_t vcvt_high_f32_f64(float32x2_t __p0, float64x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x4_t __ret; - __ret = __noswap_vcombine_f32(__rev0, __noswap_vcvt_f32_f64(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vcvt_high_f64_f32(float32x4_t __p0) { - float64x2_t __ret; - __ret = vcvt_f64_f32(vget_high_f32(__p0)); - return __ret; -} -#else -__ai float64x2_t vcvt_high_f64_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float64x2_t __ret; - __ret = __noswap_vcvt_f64_f32(__noswap_vget_high_f32(__rev0)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvts_n_f32_u32(__p0, __p1) __extension__ ({ \ - uint32_t __s0 = __p0; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vcvts_n_f32_u32(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvts_n_f32_u32(__p0, __p1) __extension__ ({ \ - uint32_t __s0 = __p0; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vcvts_n_f32_u32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvts_n_f32_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vcvts_n_f32_s32(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvts_n_f32_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vcvts_n_f32_s32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_f64_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vcvtq_n_f64_v((int8x16_t)__s0, __p1, 51); \ - __ret; \ -}) -#else -#define vcvtq_n_f64_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vcvtq_n_f64_v((int8x16_t)__rev0, __p1, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_f64_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vcvtq_n_f64_v((int8x16_t)__s0, __p1, 35); \ - __ret; \ -}) -#else -#define vcvtq_n_f64_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vcvtq_n_f64_v((int8x16_t)__rev0, __p1, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_f64_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vcvt_n_f64_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#else -#define vcvt_n_f64_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vcvt_n_f64_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_f64_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vcvt_n_f64_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#else -#define vcvt_n_f64_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vcvt_n_f64_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtd_n_f64_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vcvtd_n_f64_u64(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvtd_n_f64_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vcvtd_n_f64_u64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtd_n_f64_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vcvtd_n_f64_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvtd_n_f64_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vcvtd_n_f64_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvts_n_s32_f32(__p0, __p1) __extension__ ({ \ - float32_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvts_n_s32_f32(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvts_n_s32_f32(__p0, __p1) __extension__ ({ \ - float32_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vcvts_n_s32_f32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_s64_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vcvtq_n_s64_v((int8x16_t)__s0, __p1, 35); \ - __ret; \ -}) -#else -#define vcvtq_n_s64_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __ret; \ - __ret = (int64x2_t) __builtin_neon_vcvtq_n_s64_v((int8x16_t)__rev0, __p1, 35); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_s64_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vcvt_n_s64_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#else -#define vcvt_n_s64_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = (int64x1_t) __builtin_neon_vcvt_n_s64_v((int8x8_t)__s0, __p1, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtd_n_s64_f64(__p0, __p1) __extension__ ({ \ - float64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvtd_n_s64_f64(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvtd_n_s64_f64(__p0, __p1) __extension__ ({ \ - float64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vcvtd_n_s64_f64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvts_n_u32_f32(__p0, __p1) __extension__ ({ \ - float32_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvts_n_u32_f32(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvts_n_u32_f32(__p0, __p1) __extension__ ({ \ - float32_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vcvts_n_u32_f32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtq_n_u64_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vcvtq_n_u64_v((int8x16_t)__s0, __p1, 51); \ - __ret; \ -}) -#else -#define vcvtq_n_u64_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __ret; \ - __ret = (uint64x2_t) __builtin_neon_vcvtq_n_u64_v((int8x16_t)__rev0, __p1, 51); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvt_n_u64_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vcvt_n_u64_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#else -#define vcvt_n_u64_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = (uint64x1_t) __builtin_neon_vcvt_n_u64_v((int8x8_t)__s0, __p1, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcvtd_n_u64_f64(__p0, __p1) __extension__ ({ \ - float64_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvtd_n_u64_f64(__s0, __p1); \ - __ret; \ -}) -#else -#define vcvtd_n_u64_f64(__p0, __p1) __extension__ ({ \ - float64_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vcvtd_n_u64_f64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vcvts_s32_f32(float32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vcvts_s32_f32(__p0); - return __ret; -} -#else -__ai int32_t vcvts_s32_f32(float32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vcvts_s32_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcvtd_s64_f64(float64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcvtd_s64_f64(__p0); - return __ret; -} -#else -__ai int64_t vcvtd_s64_f64(float64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcvtd_s64_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vcvtq_s64_f64(float64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vcvtq_s64_v((int8x16_t)__p0, 35); - return __ret; -} -#else -__ai int64x2_t vcvtq_s64_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vcvtq_s64_v((int8x16_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vcvt_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vcvt_s64_v((int8x8_t)__p0, 3); - return __ret; -} -#else -__ai int64x1_t vcvt_s64_f64(float64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vcvt_s64_v((int8x8_t)__p0, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcvts_u32_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcvts_u32_f32(__p0); - return __ret; -} -#else -__ai uint32_t vcvts_u32_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcvts_u32_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcvtd_u64_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcvtd_u64_f64(__p0); - return __ret; -} -#else -__ai uint64_t vcvtd_u64_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcvtd_u64_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vcvtq_u64_f64(float64x2_t __p0) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcvtq_u64_v((int8x16_t)__p0, 51); - return __ret; -} -#else -__ai uint64x2_t vcvtq_u64_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vcvtq_u64_v((int8x16_t)__rev0, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vcvt_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcvt_u64_v((int8x8_t)__p0, 19); - return __ret; -} -#else -__ai uint64x1_t vcvt_u64_f64(float64x1_t __p0) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vcvt_u64_v((int8x8_t)__p0, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vcvtas_s32_f32(float32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vcvtas_s32_f32(__p0); - return __ret; -} -#else -__ai int32_t vcvtas_s32_f32(float32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vcvtas_s32_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcvtad_s64_f64(float64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcvtad_s64_f64(__p0); - return __ret; -} -#else -__ai int64_t vcvtad_s64_f64(float64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcvtad_s64_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcvtas_u32_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcvtas_u32_f32(__p0); - return __ret; -} -#else -__ai uint32_t vcvtas_u32_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcvtas_u32_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcvtad_u64_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcvtad_u64_f64(__p0); - return __ret; -} -#else -__ai uint64_t vcvtad_u64_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcvtad_u64_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vcvtms_s32_f32(float32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vcvtms_s32_f32(__p0); - return __ret; -} -#else -__ai int32_t vcvtms_s32_f32(float32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vcvtms_s32_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcvtmd_s64_f64(float64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcvtmd_s64_f64(__p0); - return __ret; -} -#else -__ai int64_t vcvtmd_s64_f64(float64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcvtmd_s64_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcvtms_u32_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcvtms_u32_f32(__p0); - return __ret; -} -#else -__ai uint32_t vcvtms_u32_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcvtms_u32_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcvtmd_u64_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcvtmd_u64_f64(__p0); - return __ret; -} -#else -__ai uint64_t vcvtmd_u64_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcvtmd_u64_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vcvtns_s32_f32(float32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vcvtns_s32_f32(__p0); - return __ret; -} -#else -__ai int32_t vcvtns_s32_f32(float32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vcvtns_s32_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcvtnd_s64_f64(float64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcvtnd_s64_f64(__p0); - return __ret; -} -#else -__ai int64_t vcvtnd_s64_f64(float64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcvtnd_s64_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcvtns_u32_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcvtns_u32_f32(__p0); - return __ret; -} -#else -__ai uint32_t vcvtns_u32_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcvtns_u32_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcvtnd_u64_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcvtnd_u64_f64(__p0); - return __ret; -} -#else -__ai uint64_t vcvtnd_u64_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcvtnd_u64_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vcvtps_s32_f32(float32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vcvtps_s32_f32(__p0); - return __ret; -} -#else -__ai int32_t vcvtps_s32_f32(float32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vcvtps_s32_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vcvtpd_s64_f64(float64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcvtpd_s64_f64(__p0); - return __ret; -} -#else -__ai int64_t vcvtpd_s64_f64(float64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vcvtpd_s64_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vcvtps_u32_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcvtps_u32_f32(__p0); - return __ret; -} -#else -__ai uint32_t vcvtps_u32_f32(float32_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vcvtps_u32_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vcvtpd_u64_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcvtpd_u64_f64(__p0); - return __ret; -} -#else -__ai uint64_t vcvtpd_u64_f64(float64_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vcvtpd_u64_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vcvtxd_f32_f64(float64_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vcvtxd_f32_f64(__p0); - return __ret; -} -#else -__ai float32_t vcvtxd_f32_f64(float64_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vcvtxd_f32_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vcvtx_f32_f64(float64x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vcvtx_f32_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float32x2_t vcvtx_f32_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vcvtx_f32_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float32x2_t __noswap_vcvtx_f32_f64(float64x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vcvtx_f32_v((int8x16_t)__p0, 42); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vcvtx_high_f32_f64(float32x2_t __p0, float64x2_t __p1) { - float32x4_t __ret; - __ret = vcombine_f32(__p0, vcvtx_f32_f64(__p1)); - return __ret; -} -#else -__ai float32x4_t vcvtx_high_f32_f64(float32x2_t __p0, float64x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x4_t __ret; - __ret = __noswap_vcombine_f32(__rev0, __noswap_vcvtx_f32_f64(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vdivq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = __p0 / __p1; - return __ret; -} -#else -__ai float64x2_t vdivq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __rev0 / __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vdivq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = __p0 / __p1; - return __ret; -} -#else -__ai float32x4_t vdivq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __rev0 / __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vdiv_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = __p0 / __p1; - return __ret; -} -#else -__ai float64x1_t vdiv_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = __p0 / __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vdiv_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = __p0 / __p1; - return __ret; -} -#else -__ai float32x2_t vdiv_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __rev0 / __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupb_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8_t __ret; \ - __ret = (poly8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupb_lane_p8(__p0, __p1) __extension__ ({ \ - poly8x8_t __s0 = __p0; \ - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8_t __ret; \ - __ret = (poly8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vduph_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16_t __ret; \ - __ret = (poly16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vduph_lane_p16(__p0, __p1) __extension__ ({ \ - poly16x4_t __s0 = __p0; \ - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - poly16_t __ret; \ - __ret = (poly16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupb_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupb_lane_u8(__p0, __p1) __extension__ ({ \ - uint8x8_t __s0 = __p0; \ - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdups_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vdups_lane_i32((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdups_lane_u32(__p0, __p1) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vdups_lane_i32((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupd_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vdupd_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupd_lane_u64(__p0, __p1) __extension__ ({ \ - uint64x1_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vdupd_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vduph_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vduph_lane_u16(__p0, __p1) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupb_lane_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupb_lane_s8(__p0, __p1) __extension__ ({ \ - int8x8_t __s0 = __p0; \ - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupd_lane_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vdupd_lane_f64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupd_lane_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vdupd_lane_f64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdups_lane_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vdups_lane_f32((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdups_lane_f32(__p0, __p1) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vdups_lane_f32((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdups_lane_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vdups_lane_i32((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdups_lane_s32(__p0, __p1) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vdups_lane_i32((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupd_lane_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vdupd_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupd_lane_s64(__p0, __p1) __extension__ ({ \ - int64x1_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vdupd_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vduph_lane_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vduph_lane_s16(__p0, __p1) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_p64(__p0, __p1) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_p64(__p0, __p1) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_p64(__p0, __p1) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_p64(__p0, __p1) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_lane_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_lane_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_lane_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_lane_f16(__p0, __p1) __extension__ ({ \ - float16x4_t __s0 = __p0; \ - float16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupb_laneq_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8_t __ret; \ - __ret = (poly8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupb_laneq_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8_t __ret; \ - __ret = (poly8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vduph_laneq_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16_t __ret; \ - __ret = (poly16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vduph_laneq_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16_t __ret; \ - __ret = (poly16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupb_laneq_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupb_laneq_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdups_laneq_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vdups_laneq_i32((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdups_laneq_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vdups_laneq_i32((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupd_laneq_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vdupd_laneq_i64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupd_laneq_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vdupd_laneq_i64((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vduph_laneq_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vduph_laneq_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupb_laneq_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupb_laneq_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupd_laneq_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vdupd_laneq_f64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupd_laneq_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vdupd_laneq_f64((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdups_laneq_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vdups_laneq_f32((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdups_laneq_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vdups_laneq_f32((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdups_laneq_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vdups_laneq_i32((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdups_laneq_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vdups_laneq_i32((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupd_laneq_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vdupd_laneq_i64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vdupd_laneq_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vdupd_laneq_i64((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vduph_laneq_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vduph_laneq_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_p64(__p0, __p1) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_p64(__p0, __p1) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - poly64x1_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_p8(__p0, __p1) __extension__ ({ \ - poly8x16_t __s0 = __p0; \ - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_p64(__p0, __p1) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_p64(__p0, __p1) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - poly64x2_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_p16(__p0, __p1) __extension__ ({ \ - poly16x8_t __s0 = __p0; \ - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly16x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x2_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x2_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x2_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdupq_laneq_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdupq_laneq_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_u8(__p0, __p1) __extension__ ({ \ - uint8x16_t __s0 = __p0; \ - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_u32(__p0, __p1) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x2_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_u64(__p0, __p1) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint64x1_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_u16(__p0, __p1) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x8_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_s8(__p0, __p1) __extension__ ({ \ - int8x16_t __s0 = __p0; \ - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x8_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x1_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_f32(__p0, __p1) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x2_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_f16(__p0, __p1) __extension__ ({ \ - float16x8_t __s0 = __p0; \ - float16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_s32(__p0, __p1) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x2_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x1_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_s64(__p0, __p1) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int64x1_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vdup_laneq_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __ret; \ - __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \ - __ret; \ -}) -#else -#define vdup_laneq_s16(__p0, __p1) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vdup_n_p64(poly64_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t) {__p0}; - return __ret; -} -#else -__ai poly64x1_t vdup_n_p64(poly64_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t) {__p0}; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vdupq_n_p64(poly64_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai poly64x2_t vdupq_n_p64(poly64_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vdupq_n_f64(float64_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai float64x2_t vdupq_n_f64(float64_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vdup_n_f64(float64_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) {__p0}; - return __ret; -} -#else -__ai float64x1_t vdup_n_f64(float64_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) {__p0}; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \ - __ret; \ -}) -#else -#define vext_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 38); \ - __ret; \ -}) -#else -#define vextq_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 38); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vextq_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 42); \ - __ret; \ -}) -#else -#define vextq_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 42); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vext_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 10); \ - __ret; \ -}) -#else -#define vext_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vfmaq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vfmaq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 42); - return __ret; -} -#else -__ai float64x2_t vfmaq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vfmaq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float64x2_t __noswap_vfmaq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vfmaq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 42); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vfma_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10); - return __ret; -} -#else -__ai float64x1_t vfma_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10); - return __ret; -} -__ai float64x1_t __noswap_vfma_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmad_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64_t __s1 = __p1; \ - float64x1_t __s2 = __p2; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vfmad_lane_f64(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vfmad_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64_t __s1 = __p1; \ - float64x1_t __s2 = __p2; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vfmad_lane_f64(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#define __noswap_vfmad_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64_t __s1 = __p1; \ - float64x1_t __s2 = __p2; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vfmad_lane_f64(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmas_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vfmas_lane_f32(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vfmas_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vfmas_lane_f32(__s0, __s1, (int8x8_t)__rev2, __p3); \ - __ret; \ -}) -#define __noswap_vfmas_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vfmas_lane_f32(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmaq_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x1_t __s2 = __p2; \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x8_t)__s2, __p3, 42); \ - __ret; \ -}) -#else -#define vfmaq_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x1_t __s2 = __p2; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__s2, __p3, 42); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vfmaq_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x1_t __s2 = __p2; \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x8_t)__s2, __p3, 42); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmaq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x8_t)__s2, __p3, 41); \ - __ret; \ -}) -#else -#define vfmaq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__rev2, __p3, 41); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vfmaq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x8_t)__s2, __p3, 41); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfma_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x1_t __s2 = __p2; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 10); \ - __ret; \ -}) -#else -#define vfma_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x1_t __s2 = __p2; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 10); \ - __ret; \ -}) -#define __noswap_vfma_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x1_t __s2 = __p2; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfma_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 9); \ - __ret; \ -}) -#else -#define vfma_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vfma_lane_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, __p3, 9); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vfma_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __s2 = __p2; \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 9); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmad_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64_t __s1 = __p1; \ - float64x2_t __s2 = __p2; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vfmad_laneq_f64(__s0, __s1, (int8x16_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vfmad_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64_t __s1 = __p1; \ - float64x2_t __s2 = __p2; \ - float64x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vfmad_laneq_f64(__s0, __s1, (int8x16_t)__rev2, __p3); \ - __ret; \ -}) -#define __noswap_vfmad_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64_t __s1 = __p1; \ - float64x2_t __s2 = __p2; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vfmad_laneq_f64(__s0, __s1, (int8x16_t)__s2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmas_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vfmas_laneq_f32(__s0, __s1, (int8x16_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vfmas_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vfmas_laneq_f32(__s0, __s1, (int8x16_t)__rev2, __p3); \ - __ret; \ -}) -#define __noswap_vfmas_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32_t __s0 = __p0; \ - float32_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32_t __ret; \ - __ret = (float32_t) __builtin_neon_vfmas_laneq_f32(__s0, __s1, (int8x16_t)__s2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmaq_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __s2 = __p2; \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x16_t)__s2, __p3, 42); \ - __ret; \ -}) -#else -#define vfmaq_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __s2 = __p2; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float64x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, __p3, 42); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vfmaq_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __s2 = __p2; \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x16_t)__s2, __p3, 42); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmaq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x16_t)__s2, __p3, 41); \ - __ret; \ -}) -#else -#define vfmaq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, __p3, 41); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#define __noswap_vfmaq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x4_t __ret; \ - __ret = (float32x4_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x16_t)__s2, __p3, 41); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfma_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x2_t __s2 = __p2; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__s2, __p3, 10); \ - __ret; \ -}) -#else -#define vfma_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x2_t __s2 = __p2; \ - float64x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__rev2, __p3, 10); \ - __ret; \ -}) -#define __noswap_vfma_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x2_t __s2 = __p2; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__s2, __p3, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfma_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__s2, __p3, 9); \ - __ret; \ -}) -#else -#define vfma_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vfma_laneq_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x16_t)__rev2, __p3, 9); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vfma_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x2_t __ret; \ - __ret = (float32x2_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__s2, __p3, 9); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vfmaq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) { - float64x2_t __ret; - __ret = vfmaq_f64(__p0, __p1, (float64x2_t) {__p2, __p2}); - return __ret; -} -#else -__ai float64x2_t vfmaq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __noswap_vfmaq_f64(__rev0, __rev1, (float64x2_t) {__p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vfma_n_f64(float64x1_t __p0, float64x1_t __p1, float64_t __p2) { - float64x1_t __ret; - __ret = vfma_f64(__p0, __p1, (float64x1_t) {__p2}); - return __ret; -} -#else -__ai float64x1_t vfma_n_f64(float64x1_t __p0, float64x1_t __p1, float64_t __p2) { - float64x1_t __ret; - __ret = __noswap_vfma_f64(__p0, __p1, (float64x1_t) {__p2}); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vfmsq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - float64x2_t __ret; - __ret = vfmaq_f64(__p0, -__p1, __p2); - return __ret; -} -#else -__ai float64x2_t vfmsq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - float64x2_t __ret; - __ret = __noswap_vfmaq_f64(__rev0, -__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vfms_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = vfma_f64(__p0, -__p1, __p2); - return __ret; -} -#else -__ai float64x1_t vfms_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = __noswap_vfma_f64(__p0, -__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsd_lane_f64(__p0_100, __p1_100, __p2_100, __p3_100) __extension__ ({ \ - float64_t __s0_100 = __p0_100; \ - float64_t __s1_100 = __p1_100; \ - float64x1_t __s2_100 = __p2_100; \ - float64_t __ret_100; \ - __ret_100 = vfmad_lane_f64(__s0_100, -__s1_100, __s2_100, __p3_100); \ - __ret_100; \ -}) -#else -#define vfmsd_lane_f64(__p0_101, __p1_101, __p2_101, __p3_101) __extension__ ({ \ - float64_t __s0_101 = __p0_101; \ - float64_t __s1_101 = __p1_101; \ - float64x1_t __s2_101 = __p2_101; \ - float64_t __ret_101; \ - __ret_101 = __noswap_vfmad_lane_f64(__s0_101, -__s1_101, __s2_101, __p3_101); \ - __ret_101; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmss_lane_f32(__p0_102, __p1_102, __p2_102, __p3_102) __extension__ ({ \ - float32_t __s0_102 = __p0_102; \ - float32_t __s1_102 = __p1_102; \ - float32x2_t __s2_102 = __p2_102; \ - float32_t __ret_102; \ - __ret_102 = vfmas_lane_f32(__s0_102, -__s1_102, __s2_102, __p3_102); \ - __ret_102; \ -}) -#else -#define vfmss_lane_f32(__p0_103, __p1_103, __p2_103, __p3_103) __extension__ ({ \ - float32_t __s0_103 = __p0_103; \ - float32_t __s1_103 = __p1_103; \ - float32x2_t __s2_103 = __p2_103; \ - float32x2_t __rev2_103; __rev2_103 = __builtin_shufflevector(__s2_103, __s2_103, 1, 0); \ - float32_t __ret_103; \ - __ret_103 = __noswap_vfmas_lane_f32(__s0_103, -__s1_103, __rev2_103, __p3_103); \ - __ret_103; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsq_lane_f64(__p0_104, __p1_104, __p2_104, __p3_104) __extension__ ({ \ - float64x2_t __s0_104 = __p0_104; \ - float64x2_t __s1_104 = __p1_104; \ - float64x1_t __s2_104 = __p2_104; \ - float64x2_t __ret_104; \ - __ret_104 = vfmaq_lane_f64(__s0_104, -__s1_104, __s2_104, __p3_104); \ - __ret_104; \ -}) -#else -#define vfmsq_lane_f64(__p0_105, __p1_105, __p2_105, __p3_105) __extension__ ({ \ - float64x2_t __s0_105 = __p0_105; \ - float64x2_t __s1_105 = __p1_105; \ - float64x1_t __s2_105 = __p2_105; \ - float64x2_t __rev0_105; __rev0_105 = __builtin_shufflevector(__s0_105, __s0_105, 1, 0); \ - float64x2_t __rev1_105; __rev1_105 = __builtin_shufflevector(__s1_105, __s1_105, 1, 0); \ - float64x2_t __ret_105; \ - __ret_105 = __noswap_vfmaq_lane_f64(__rev0_105, -__rev1_105, __s2_105, __p3_105); \ - __ret_105 = __builtin_shufflevector(__ret_105, __ret_105, 1, 0); \ - __ret_105; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsq_lane_f32(__p0_106, __p1_106, __p2_106, __p3_106) __extension__ ({ \ - float32x4_t __s0_106 = __p0_106; \ - float32x4_t __s1_106 = __p1_106; \ - float32x2_t __s2_106 = __p2_106; \ - float32x4_t __ret_106; \ - __ret_106 = vfmaq_lane_f32(__s0_106, -__s1_106, __s2_106, __p3_106); \ - __ret_106; \ -}) -#else -#define vfmsq_lane_f32(__p0_107, __p1_107, __p2_107, __p3_107) __extension__ ({ \ - float32x4_t __s0_107 = __p0_107; \ - float32x4_t __s1_107 = __p1_107; \ - float32x2_t __s2_107 = __p2_107; \ - float32x4_t __rev0_107; __rev0_107 = __builtin_shufflevector(__s0_107, __s0_107, 3, 2, 1, 0); \ - float32x4_t __rev1_107; __rev1_107 = __builtin_shufflevector(__s1_107, __s1_107, 3, 2, 1, 0); \ - float32x2_t __rev2_107; __rev2_107 = __builtin_shufflevector(__s2_107, __s2_107, 1, 0); \ - float32x4_t __ret_107; \ - __ret_107 = __noswap_vfmaq_lane_f32(__rev0_107, -__rev1_107, __rev2_107, __p3_107); \ - __ret_107 = __builtin_shufflevector(__ret_107, __ret_107, 3, 2, 1, 0); \ - __ret_107; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfms_lane_f64(__p0_108, __p1_108, __p2_108, __p3_108) __extension__ ({ \ - float64x1_t __s0_108 = __p0_108; \ - float64x1_t __s1_108 = __p1_108; \ - float64x1_t __s2_108 = __p2_108; \ - float64x1_t __ret_108; \ - __ret_108 = vfma_lane_f64(__s0_108, -__s1_108, __s2_108, __p3_108); \ - __ret_108; \ -}) -#else -#define vfms_lane_f64(__p0_109, __p1_109, __p2_109, __p3_109) __extension__ ({ \ - float64x1_t __s0_109 = __p0_109; \ - float64x1_t __s1_109 = __p1_109; \ - float64x1_t __s2_109 = __p2_109; \ - float64x1_t __ret_109; \ - __ret_109 = __noswap_vfma_lane_f64(__s0_109, -__s1_109, __s2_109, __p3_109); \ - __ret_109; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfms_lane_f32(__p0_110, __p1_110, __p2_110, __p3_110) __extension__ ({ \ - float32x2_t __s0_110 = __p0_110; \ - float32x2_t __s1_110 = __p1_110; \ - float32x2_t __s2_110 = __p2_110; \ - float32x2_t __ret_110; \ - __ret_110 = vfma_lane_f32(__s0_110, -__s1_110, __s2_110, __p3_110); \ - __ret_110; \ -}) -#else -#define vfms_lane_f32(__p0_111, __p1_111, __p2_111, __p3_111) __extension__ ({ \ - float32x2_t __s0_111 = __p0_111; \ - float32x2_t __s1_111 = __p1_111; \ - float32x2_t __s2_111 = __p2_111; \ - float32x2_t __rev0_111; __rev0_111 = __builtin_shufflevector(__s0_111, __s0_111, 1, 0); \ - float32x2_t __rev1_111; __rev1_111 = __builtin_shufflevector(__s1_111, __s1_111, 1, 0); \ - float32x2_t __rev2_111; __rev2_111 = __builtin_shufflevector(__s2_111, __s2_111, 1, 0); \ - float32x2_t __ret_111; \ - __ret_111 = __noswap_vfma_lane_f32(__rev0_111, -__rev1_111, __rev2_111, __p3_111); \ - __ret_111 = __builtin_shufflevector(__ret_111, __ret_111, 1, 0); \ - __ret_111; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsd_laneq_f64(__p0_112, __p1_112, __p2_112, __p3_112) __extension__ ({ \ - float64_t __s0_112 = __p0_112; \ - float64_t __s1_112 = __p1_112; \ - float64x2_t __s2_112 = __p2_112; \ - float64_t __ret_112; \ - __ret_112 = vfmad_laneq_f64(__s0_112, -__s1_112, __s2_112, __p3_112); \ - __ret_112; \ -}) -#else -#define vfmsd_laneq_f64(__p0_113, __p1_113, __p2_113, __p3_113) __extension__ ({ \ - float64_t __s0_113 = __p0_113; \ - float64_t __s1_113 = __p1_113; \ - float64x2_t __s2_113 = __p2_113; \ - float64x2_t __rev2_113; __rev2_113 = __builtin_shufflevector(__s2_113, __s2_113, 1, 0); \ - float64_t __ret_113; \ - __ret_113 = __noswap_vfmad_laneq_f64(__s0_113, -__s1_113, __rev2_113, __p3_113); \ - __ret_113; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmss_laneq_f32(__p0_114, __p1_114, __p2_114, __p3_114) __extension__ ({ \ - float32_t __s0_114 = __p0_114; \ - float32_t __s1_114 = __p1_114; \ - float32x4_t __s2_114 = __p2_114; \ - float32_t __ret_114; \ - __ret_114 = vfmas_laneq_f32(__s0_114, -__s1_114, __s2_114, __p3_114); \ - __ret_114; \ -}) -#else -#define vfmss_laneq_f32(__p0_115, __p1_115, __p2_115, __p3_115) __extension__ ({ \ - float32_t __s0_115 = __p0_115; \ - float32_t __s1_115 = __p1_115; \ - float32x4_t __s2_115 = __p2_115; \ - float32x4_t __rev2_115; __rev2_115 = __builtin_shufflevector(__s2_115, __s2_115, 3, 2, 1, 0); \ - float32_t __ret_115; \ - __ret_115 = __noswap_vfmas_laneq_f32(__s0_115, -__s1_115, __rev2_115, __p3_115); \ - __ret_115; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsq_laneq_f64(__p0_116, __p1_116, __p2_116, __p3_116) __extension__ ({ \ - float64x2_t __s0_116 = __p0_116; \ - float64x2_t __s1_116 = __p1_116; \ - float64x2_t __s2_116 = __p2_116; \ - float64x2_t __ret_116; \ - __ret_116 = vfmaq_laneq_f64(__s0_116, -__s1_116, __s2_116, __p3_116); \ - __ret_116; \ -}) -#else -#define vfmsq_laneq_f64(__p0_117, __p1_117, __p2_117, __p3_117) __extension__ ({ \ - float64x2_t __s0_117 = __p0_117; \ - float64x2_t __s1_117 = __p1_117; \ - float64x2_t __s2_117 = __p2_117; \ - float64x2_t __rev0_117; __rev0_117 = __builtin_shufflevector(__s0_117, __s0_117, 1, 0); \ - float64x2_t __rev1_117; __rev1_117 = __builtin_shufflevector(__s1_117, __s1_117, 1, 0); \ - float64x2_t __rev2_117; __rev2_117 = __builtin_shufflevector(__s2_117, __s2_117, 1, 0); \ - float64x2_t __ret_117; \ - __ret_117 = __noswap_vfmaq_laneq_f64(__rev0_117, -__rev1_117, __rev2_117, __p3_117); \ - __ret_117 = __builtin_shufflevector(__ret_117, __ret_117, 1, 0); \ - __ret_117; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmsq_laneq_f32(__p0_118, __p1_118, __p2_118, __p3_118) __extension__ ({ \ - float32x4_t __s0_118 = __p0_118; \ - float32x4_t __s1_118 = __p1_118; \ - float32x4_t __s2_118 = __p2_118; \ - float32x4_t __ret_118; \ - __ret_118 = vfmaq_laneq_f32(__s0_118, -__s1_118, __s2_118, __p3_118); \ - __ret_118; \ -}) -#else -#define vfmsq_laneq_f32(__p0_119, __p1_119, __p2_119, __p3_119) __extension__ ({ \ - float32x4_t __s0_119 = __p0_119; \ - float32x4_t __s1_119 = __p1_119; \ - float32x4_t __s2_119 = __p2_119; \ - float32x4_t __rev0_119; __rev0_119 = __builtin_shufflevector(__s0_119, __s0_119, 3, 2, 1, 0); \ - float32x4_t __rev1_119; __rev1_119 = __builtin_shufflevector(__s1_119, __s1_119, 3, 2, 1, 0); \ - float32x4_t __rev2_119; __rev2_119 = __builtin_shufflevector(__s2_119, __s2_119, 3, 2, 1, 0); \ - float32x4_t __ret_119; \ - __ret_119 = __noswap_vfmaq_laneq_f32(__rev0_119, -__rev1_119, __rev2_119, __p3_119); \ - __ret_119 = __builtin_shufflevector(__ret_119, __ret_119, 3, 2, 1, 0); \ - __ret_119; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfms_laneq_f64(__p0_120, __p1_120, __p2_120, __p3_120) __extension__ ({ \ - float64x1_t __s0_120 = __p0_120; \ - float64x1_t __s1_120 = __p1_120; \ - float64x2_t __s2_120 = __p2_120; \ - float64x1_t __ret_120; \ - __ret_120 = vfma_laneq_f64(__s0_120, -__s1_120, __s2_120, __p3_120); \ - __ret_120; \ -}) -#else -#define vfms_laneq_f64(__p0_121, __p1_121, __p2_121, __p3_121) __extension__ ({ \ - float64x1_t __s0_121 = __p0_121; \ - float64x1_t __s1_121 = __p1_121; \ - float64x2_t __s2_121 = __p2_121; \ - float64x2_t __rev2_121; __rev2_121 = __builtin_shufflevector(__s2_121, __s2_121, 1, 0); \ - float64x1_t __ret_121; \ - __ret_121 = __noswap_vfma_laneq_f64(__s0_121, -__s1_121, __rev2_121, __p3_121); \ - __ret_121; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfms_laneq_f32(__p0_122, __p1_122, __p2_122, __p3_122) __extension__ ({ \ - float32x2_t __s0_122 = __p0_122; \ - float32x2_t __s1_122 = __p1_122; \ - float32x4_t __s2_122 = __p2_122; \ - float32x2_t __ret_122; \ - __ret_122 = vfma_laneq_f32(__s0_122, -__s1_122, __s2_122, __p3_122); \ - __ret_122; \ -}) -#else -#define vfms_laneq_f32(__p0_123, __p1_123, __p2_123, __p3_123) __extension__ ({ \ - float32x2_t __s0_123 = __p0_123; \ - float32x2_t __s1_123 = __p1_123; \ - float32x4_t __s2_123 = __p2_123; \ - float32x2_t __rev0_123; __rev0_123 = __builtin_shufflevector(__s0_123, __s0_123, 1, 0); \ - float32x2_t __rev1_123; __rev1_123 = __builtin_shufflevector(__s1_123, __s1_123, 1, 0); \ - float32x4_t __rev2_123; __rev2_123 = __builtin_shufflevector(__s2_123, __s2_123, 3, 2, 1, 0); \ - float32x2_t __ret_123; \ - __ret_123 = __noswap_vfma_laneq_f32(__rev0_123, -__rev1_123, __rev2_123, __p3_123); \ - __ret_123 = __builtin_shufflevector(__ret_123, __ret_123, 1, 0); \ - __ret_123; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vfmsq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) { - float64x2_t __ret; - __ret = vfmaq_f64(__p0, -__p1, (float64x2_t) {__p2, __p2}); - return __ret; -} -#else -__ai float64x2_t vfmsq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __noswap_vfmaq_f64(__rev0, -__rev1, (float64x2_t) {__p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vfmsq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) { - float32x4_t __ret; - __ret = vfmaq_f32(__p0, -__p1, (float32x4_t) {__p2, __p2, __p2, __p2}); - return __ret; -} -#else -__ai float32x4_t vfmsq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __noswap_vfmaq_f32(__rev0, -__rev1, (float32x4_t) {__p2, __p2, __p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vfms_n_f64(float64x1_t __p0, float64x1_t __p1, float64_t __p2) { - float64x1_t __ret; - __ret = vfma_f64(__p0, -__p1, (float64x1_t) {__p2}); - return __ret; -} -#else -__ai float64x1_t vfms_n_f64(float64x1_t __p0, float64x1_t __p1, float64_t __p2) { - float64x1_t __ret; - __ret = __noswap_vfma_f64(__p0, -__p1, (float64x1_t) {__p2}); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vfms_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) { - float32x2_t __ret; - __ret = vfma_f32(__p0, -__p1, (float32x2_t) {__p2, __p2}); - return __ret; -} -#else -__ai float32x2_t vfms_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __noswap_vfma_f32(__rev0, -__rev1, (float32x2_t) {__p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vget_high_p64(poly64x2_t __p0) { - poly64x1_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1); - return __ret; -} -#else -__ai poly64x1_t vget_high_p64(poly64x2_t __p0) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x1_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1); - return __ret; -} -__ai poly64x1_t __noswap_vget_high_p64(poly64x2_t __p0) { - poly64x1_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vget_high_f64(float64x2_t __p0) { - float64x1_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 1); - return __ret; -} -#else -__ai float64x1_t vget_high_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x1_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_p64(__p0, __p1) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64_t __ret; \ - __ret = (poly64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_p64(__p0, __p1) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64_t __ret; \ - __ret = (poly64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_p64(__p0, __p1) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64_t __ret; \ - __ret = (poly64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_p64(__p0, __p1) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64_t __ret; \ - __ret = (poly64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_p64(__p0, __p1) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - poly64_t __ret; \ - __ret = (poly64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_p64(__p0, __p1) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64_t __ret; \ - __ret = (poly64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vgetq_lane_f64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vgetq_lane_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vgetq_lane_f64((int8x16_t)__rev0, __p1); \ - __ret; \ -}) -#define __noswap_vgetq_lane_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vgetq_lane_f64((int8x16_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vget_lane_f64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#else -#define vget_lane_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vget_lane_f64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#define __noswap_vget_lane_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64_t __ret; \ - __ret = (float64_t) __builtin_neon_vget_lane_f64((int8x8_t)__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vget_low_p64(poly64x2_t __p0) { - poly64x1_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0); - return __ret; -} -#else -__ai poly64x1_t vget_low_p64(poly64x2_t __p0) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x1_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vget_low_f64(float64x2_t __p0) { - float64x1_t __ret; - __ret = __builtin_shufflevector(__p0, __p0, 0); - return __ret; -} -#else -__ai float64x1_t vget_low_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x1_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev0, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p64(__p0) __extension__ ({ \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vld1_v(__p0, 6); \ - __ret; \ -}) -#else -#define vld1_p64(__p0) __extension__ ({ \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vld1_v(__p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p64(__p0) __extension__ ({ \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vld1q_v(__p0, 38); \ - __ret; \ -}) -#else -#define vld1q_p64(__p0) __extension__ ({ \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vld1q_v(__p0, 38); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f64(__p0) __extension__ ({ \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vld1q_v(__p0, 42); \ - __ret; \ -}) -#else -#define vld1q_f64(__p0) __extension__ ({ \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vld1q_v(__p0, 42); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f64(__p0) __extension__ ({ \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vld1_v(__p0, 10); \ - __ret; \ -}) -#else -#define vld1_f64(__p0) __extension__ ({ \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vld1_v(__p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_p64(__p0) __extension__ ({ \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vld1_dup_v(__p0, 6); \ - __ret; \ -}) -#else -#define vld1_dup_p64(__p0) __extension__ ({ \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vld1_dup_v(__p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_p64(__p0) __extension__ ({ \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vld1q_dup_v(__p0, 38); \ - __ret; \ -}) -#else -#define vld1q_dup_p64(__p0) __extension__ ({ \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vld1q_dup_v(__p0, 38); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_dup_f64(__p0) __extension__ ({ \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vld1q_dup_v(__p0, 42); \ - __ret; \ -}) -#else -#define vld1q_dup_f64(__p0) __extension__ ({ \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vld1q_dup_v(__p0, 42); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_dup_f64(__p0) __extension__ ({ \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vld1_dup_v(__p0, 10); \ - __ret; \ -}) -#else -#define vld1_dup_f64(__p0) __extension__ ({ \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vld1_dup_v(__p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 6); \ - __ret; \ -}) -#else -#define vld1_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 38); \ - __ret; \ -}) -#else -#define vld1q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 38); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s1 = __p1; \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 42); \ - __ret; \ -}) -#else -#define vld1q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s1 = __p1; \ - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 42); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1_t __s1 = __p1; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 10); \ - __ret; \ -}) -#else -#define vld1_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1_t __s1 = __p1; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p64_x2(__p0) __extension__ ({ \ - poly64x1x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 6); \ - __ret; \ -}) -#else -#define vld1_p64_x2(__p0) __extension__ ({ \ - poly64x1x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p64_x2(__p0) __extension__ ({ \ - poly64x2x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 38); \ - __ret; \ -}) -#else -#define vld1q_p64_x2(__p0) __extension__ ({ \ - poly64x2x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f64_x2(__p0) __extension__ ({ \ - float64x2x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 42); \ - __ret; \ -}) -#else -#define vld1q_f64_x2(__p0) __extension__ ({ \ - float64x2x2_t __ret; \ - __builtin_neon_vld1q_x2_v(&__ret, __p0, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f64_x2(__p0) __extension__ ({ \ - float64x1x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 10); \ - __ret; \ -}) -#else -#define vld1_f64_x2(__p0) __extension__ ({ \ - float64x1x2_t __ret; \ - __builtin_neon_vld1_x2_v(&__ret, __p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p64_x3(__p0) __extension__ ({ \ - poly64x1x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 6); \ - __ret; \ -}) -#else -#define vld1_p64_x3(__p0) __extension__ ({ \ - poly64x1x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p64_x3(__p0) __extension__ ({ \ - poly64x2x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 38); \ - __ret; \ -}) -#else -#define vld1q_p64_x3(__p0) __extension__ ({ \ - poly64x2x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f64_x3(__p0) __extension__ ({ \ - float64x2x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 42); \ - __ret; \ -}) -#else -#define vld1q_f64_x3(__p0) __extension__ ({ \ - float64x2x3_t __ret; \ - __builtin_neon_vld1q_x3_v(&__ret, __p0, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f64_x3(__p0) __extension__ ({ \ - float64x1x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 10); \ - __ret; \ -}) -#else -#define vld1_f64_x3(__p0) __extension__ ({ \ - float64x1x3_t __ret; \ - __builtin_neon_vld1_x3_v(&__ret, __p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_p64_x4(__p0) __extension__ ({ \ - poly64x1x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 6); \ - __ret; \ -}) -#else -#define vld1_p64_x4(__p0) __extension__ ({ \ - poly64x1x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_p64_x4(__p0) __extension__ ({ \ - poly64x2x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 38); \ - __ret; \ -}) -#else -#define vld1q_p64_x4(__p0) __extension__ ({ \ - poly64x2x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1q_f64_x4(__p0) __extension__ ({ \ - float64x2x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 42); \ - __ret; \ -}) -#else -#define vld1q_f64_x4(__p0) __extension__ ({ \ - float64x2x4_t __ret; \ - __builtin_neon_vld1q_x4_v(&__ret, __p0, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld1_f64_x4(__p0) __extension__ ({ \ - float64x1x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 10); \ - __ret; \ -}) -#else -#define vld1_f64_x4(__p0) __extension__ ({ \ - float64x1x4_t __ret; \ - __builtin_neon_vld1_x4_v(&__ret, __p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_p64(__p0) __extension__ ({ \ - poly64x1x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 6); \ - __ret; \ -}) -#else -#define vld2_p64(__p0) __extension__ ({ \ - poly64x1x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_p64(__p0) __extension__ ({ \ - poly64x2x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 38); \ - __ret; \ -}) -#else -#define vld2q_p64(__p0) __extension__ ({ \ - poly64x2x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_u64(__p0) __extension__ ({ \ - uint64x2x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 51); \ - __ret; \ -}) -#else -#define vld2q_u64(__p0) __extension__ ({ \ - uint64x2x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_f64(__p0) __extension__ ({ \ - float64x2x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 42); \ - __ret; \ -}) -#else -#define vld2q_f64(__p0) __extension__ ({ \ - float64x2x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_s64(__p0) __extension__ ({ \ - int64x2x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 35); \ - __ret; \ -}) -#else -#define vld2q_s64(__p0) __extension__ ({ \ - int64x2x2_t __ret; \ - __builtin_neon_vld2q_v(&__ret, __p0, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_f64(__p0) __extension__ ({ \ - float64x1x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 10); \ - __ret; \ -}) -#else -#define vld2_f64(__p0) __extension__ ({ \ - float64x1x2_t __ret; \ - __builtin_neon_vld2_v(&__ret, __p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_p64(__p0) __extension__ ({ \ - poly64x1x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 6); \ - __ret; \ -}) -#else -#define vld2_dup_p64(__p0) __extension__ ({ \ - poly64x1x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_p64(__p0) __extension__ ({ \ - poly64x2x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 38); \ - __ret; \ -}) -#else -#define vld2q_dup_p64(__p0) __extension__ ({ \ - poly64x2x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_dup_f64(__p0) __extension__ ({ \ - float64x2x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 42); \ - __ret; \ -}) -#else -#define vld2q_dup_f64(__p0) __extension__ ({ \ - float64x2x2_t __ret; \ - __builtin_neon_vld2q_dup_v(&__ret, __p0, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_dup_f64(__p0) __extension__ ({ \ - float64x1x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 10); \ - __ret; \ -}) -#else -#define vld2_dup_f64(__p0) __extension__ ({ \ - float64x1x2_t __ret; \ - __builtin_neon_vld2_dup_v(&__ret, __p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x2_t __s1 = __p1; \ - poly64x1x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 6); \ - __ret; \ -}) -#else -#define vld2_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x2_t __s1 = __p1; \ - poly64x1x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x2_t __s1 = __p1; \ - poly8x16x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 36); \ - __ret; \ -}) -#else -#define vld2q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x2_t __s1 = __p1; \ - poly8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x2_t __s1 = __p1; \ - poly64x2x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 38); \ - __ret; \ -}) -#else -#define vld2q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x2_t __s1 = __p1; \ - poly64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - poly64x2x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x2_t __s1 = __p1; \ - uint8x16x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 48); \ - __ret; \ -}) -#else -#define vld2q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x2_t __s1 = __p1; \ - uint8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x2_t __s1 = __p1; \ - uint64x2x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 51); \ - __ret; \ -}) -#else -#define vld2q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x2_t __s1 = __p1; \ - uint64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - uint64x2x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x2_t __s1 = __p1; \ - int8x16x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 32); \ - __ret; \ -}) -#else -#define vld2q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x2_t __s1 = __p1; \ - int8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x2_t __s1 = __p1; \ - float64x2x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 42); \ - __ret; \ -}) -#else -#define vld2q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x2_t __s1 = __p1; \ - float64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - float64x2x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x2_t __s1 = __p1; \ - int64x2x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 35); \ - __ret; \ -}) -#else -#define vld2q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x2_t __s1 = __p1; \ - int64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - int64x2x2_t __ret; \ - __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x2_t __s1 = __p1; \ - uint64x1x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 19); \ - __ret; \ -}) -#else -#define vld2_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x2_t __s1 = __p1; \ - uint64x1x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x2_t __s1 = __p1; \ - float64x1x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 10); \ - __ret; \ -}) -#else -#define vld2_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x2_t __s1 = __p1; \ - float64x1x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld2_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x2_t __s1 = __p1; \ - int64x1x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 3); \ - __ret; \ -}) -#else -#define vld2_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x2_t __s1 = __p1; \ - int64x1x2_t __ret; \ - __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_p64(__p0) __extension__ ({ \ - poly64x1x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 6); \ - __ret; \ -}) -#else -#define vld3_p64(__p0) __extension__ ({ \ - poly64x1x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_p64(__p0) __extension__ ({ \ - poly64x2x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 38); \ - __ret; \ -}) -#else -#define vld3q_p64(__p0) __extension__ ({ \ - poly64x2x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_u64(__p0) __extension__ ({ \ - uint64x2x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 51); \ - __ret; \ -}) -#else -#define vld3q_u64(__p0) __extension__ ({ \ - uint64x2x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_f64(__p0) __extension__ ({ \ - float64x2x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 42); \ - __ret; \ -}) -#else -#define vld3q_f64(__p0) __extension__ ({ \ - float64x2x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_s64(__p0) __extension__ ({ \ - int64x2x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 35); \ - __ret; \ -}) -#else -#define vld3q_s64(__p0) __extension__ ({ \ - int64x2x3_t __ret; \ - __builtin_neon_vld3q_v(&__ret, __p0, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_f64(__p0) __extension__ ({ \ - float64x1x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 10); \ - __ret; \ -}) -#else -#define vld3_f64(__p0) __extension__ ({ \ - float64x1x3_t __ret; \ - __builtin_neon_vld3_v(&__ret, __p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_p64(__p0) __extension__ ({ \ - poly64x1x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 6); \ - __ret; \ -}) -#else -#define vld3_dup_p64(__p0) __extension__ ({ \ - poly64x1x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_p64(__p0) __extension__ ({ \ - poly64x2x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 38); \ - __ret; \ -}) -#else -#define vld3q_dup_p64(__p0) __extension__ ({ \ - poly64x2x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_dup_f64(__p0) __extension__ ({ \ - float64x2x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 42); \ - __ret; \ -}) -#else -#define vld3q_dup_f64(__p0) __extension__ ({ \ - float64x2x3_t __ret; \ - __builtin_neon_vld3q_dup_v(&__ret, __p0, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_dup_f64(__p0) __extension__ ({ \ - float64x1x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 10); \ - __ret; \ -}) -#else -#define vld3_dup_f64(__p0) __extension__ ({ \ - float64x1x3_t __ret; \ - __builtin_neon_vld3_dup_v(&__ret, __p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x3_t __s1 = __p1; \ - poly64x1x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 6); \ - __ret; \ -}) -#else -#define vld3_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x3_t __s1 = __p1; \ - poly64x1x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x3_t __s1 = __p1; \ - poly8x16x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 36); \ - __ret; \ -}) -#else -#define vld3q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x3_t __s1 = __p1; \ - poly8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x3_t __s1 = __p1; \ - poly64x2x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 38); \ - __ret; \ -}) -#else -#define vld3q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x3_t __s1 = __p1; \ - poly64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - poly64x2x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x3_t __s1 = __p1; \ - uint8x16x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 48); \ - __ret; \ -}) -#else -#define vld3q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x3_t __s1 = __p1; \ - uint8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x3_t __s1 = __p1; \ - uint64x2x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 51); \ - __ret; \ -}) -#else -#define vld3q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x3_t __s1 = __p1; \ - uint64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - uint64x2x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x3_t __s1 = __p1; \ - int8x16x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 32); \ - __ret; \ -}) -#else -#define vld3q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x3_t __s1 = __p1; \ - int8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x3_t __s1 = __p1; \ - float64x2x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 42); \ - __ret; \ -}) -#else -#define vld3q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x3_t __s1 = __p1; \ - float64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - float64x2x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x3_t __s1 = __p1; \ - int64x2x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 35); \ - __ret; \ -}) -#else -#define vld3q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x3_t __s1 = __p1; \ - int64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - int64x2x3_t __ret; \ - __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x3_t __s1 = __p1; \ - uint64x1x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 19); \ - __ret; \ -}) -#else -#define vld3_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x3_t __s1 = __p1; \ - uint64x1x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x3_t __s1 = __p1; \ - float64x1x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 10); \ - __ret; \ -}) -#else -#define vld3_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x3_t __s1 = __p1; \ - float64x1x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld3_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x3_t __s1 = __p1; \ - int64x1x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 3); \ - __ret; \ -}) -#else -#define vld3_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x3_t __s1 = __p1; \ - int64x1x3_t __ret; \ - __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_p64(__p0) __extension__ ({ \ - poly64x1x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 6); \ - __ret; \ -}) -#else -#define vld4_p64(__p0) __extension__ ({ \ - poly64x1x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_p64(__p0) __extension__ ({ \ - poly64x2x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 38); \ - __ret; \ -}) -#else -#define vld4q_p64(__p0) __extension__ ({ \ - poly64x2x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_u64(__p0) __extension__ ({ \ - uint64x2x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 51); \ - __ret; \ -}) -#else -#define vld4q_u64(__p0) __extension__ ({ \ - uint64x2x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_f64(__p0) __extension__ ({ \ - float64x2x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 42); \ - __ret; \ -}) -#else -#define vld4q_f64(__p0) __extension__ ({ \ - float64x2x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_s64(__p0) __extension__ ({ \ - int64x2x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 35); \ - __ret; \ -}) -#else -#define vld4q_s64(__p0) __extension__ ({ \ - int64x2x4_t __ret; \ - __builtin_neon_vld4q_v(&__ret, __p0, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_f64(__p0) __extension__ ({ \ - float64x1x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 10); \ - __ret; \ -}) -#else -#define vld4_f64(__p0) __extension__ ({ \ - float64x1x4_t __ret; \ - __builtin_neon_vld4_v(&__ret, __p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_p64(__p0) __extension__ ({ \ - poly64x1x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 6); \ - __ret; \ -}) -#else -#define vld4_dup_p64(__p0) __extension__ ({ \ - poly64x1x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_p64(__p0) __extension__ ({ \ - poly64x2x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 38); \ - __ret; \ -}) -#else -#define vld4q_dup_p64(__p0) __extension__ ({ \ - poly64x2x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_dup_f64(__p0) __extension__ ({ \ - float64x2x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 42); \ - __ret; \ -}) -#else -#define vld4q_dup_f64(__p0) __extension__ ({ \ - float64x2x4_t __ret; \ - __builtin_neon_vld4q_dup_v(&__ret, __p0, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_dup_f64(__p0) __extension__ ({ \ - float64x1x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 10); \ - __ret; \ -}) -#else -#define vld4_dup_f64(__p0) __extension__ ({ \ - float64x1x4_t __ret; \ - __builtin_neon_vld4_dup_v(&__ret, __p0, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x4_t __s1 = __p1; \ - poly64x1x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 6); \ - __ret; \ -}) -#else -#define vld4_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x4_t __s1 = __p1; \ - poly64x1x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x4_t __s1 = __p1; \ - poly8x16x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 36); \ - __ret; \ -}) -#else -#define vld4q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x4_t __s1 = __p1; \ - poly8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - poly8x16x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 36); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x4_t __s1 = __p1; \ - poly64x2x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 38); \ - __ret; \ -}) -#else -#define vld4q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x4_t __s1 = __p1; \ - poly64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - poly64x2x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 38); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x4_t __s1 = __p1; \ - uint8x16x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 48); \ - __ret; \ -}) -#else -#define vld4q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x4_t __s1 = __p1; \ - uint8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 48); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x4_t __s1 = __p1; \ - uint64x2x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 51); \ - __ret; \ -}) -#else -#define vld4q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x4_t __s1 = __p1; \ - uint64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - uint64x2x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 51); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x4_t __s1 = __p1; \ - int8x16x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 32); \ - __ret; \ -}) -#else -#define vld4q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x4_t __s1 = __p1; \ - int8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 32); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x4_t __s1 = __p1; \ - float64x2x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 42); \ - __ret; \ -}) -#else -#define vld4q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x4_t __s1 = __p1; \ - float64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - float64x2x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 42); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x4_t __s1 = __p1; \ - int64x2x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 35); \ - __ret; \ -}) -#else -#define vld4q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x4_t __s1 = __p1; \ - int64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - int64x2x4_t __ret; \ - __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 35); \ - \ - __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \ - __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \ - __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \ - __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x4_t __s1 = __p1; \ - uint64x1x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 19); \ - __ret; \ -}) -#else -#define vld4_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x4_t __s1 = __p1; \ - uint64x1x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 19); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x4_t __s1 = __p1; \ - float64x1x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 10); \ - __ret; \ -}) -#else -#define vld4_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x4_t __s1 = __p1; \ - float64x1x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vld4_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x4_t __s1 = __p1; \ - int64x1x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 3); \ - __ret; \ -}) -#else -#define vld4_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x4_t __s1 = __p1; \ - int64x1x4_t __ret; \ - __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vldrq_p128(__p0) __extension__ ({ \ - poly128_t __ret; \ - __ret = (poly128_t) __builtin_neon_vldrq_p128(__p0); \ - __ret; \ -}) -#else -#define vldrq_p128(__p0) __extension__ ({ \ - poly128_t __ret; \ - __ret = (poly128_t) __builtin_neon_vldrq_p128(__p0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vmaxq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vmaxq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vmax_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#else -__ai float64x1_t vmax_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vmaxnmvq_f64(float64x2_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vmaxnmvq_f64((int8x16_t)__p0); - return __ret; -} -#else -__ai float64_t vmaxnmvq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64_t __ret; - __ret = (float64_t) __builtin_neon_vmaxnmvq_f64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vmaxnmvq_f32(float32x4_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmaxnmvq_f32((int8x16_t)__p0); - return __ret; -} -#else -__ai float32_t vmaxnmvq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmaxnmvq_f32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vmaxnmv_f32(float32x2_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmaxnmv_f32((int8x8_t)__p0); - return __ret; -} -#else -__ai float32_t vmaxnmv_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmaxnmv_f32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vmaxvq_u8(uint8x16_t __p0) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vmaxvq_u8((int8x16_t)__p0); - return __ret; -} -#else -__ai uint8_t vmaxvq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vmaxvq_u8((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vmaxvq_u32(uint32x4_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vmaxvq_u32((int8x16_t)__p0); - return __ret; -} -#else -__ai uint32_t vmaxvq_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vmaxvq_u32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vmaxvq_u16(uint16x8_t __p0) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vmaxvq_u16((int8x16_t)__p0); - return __ret; -} -#else -__ai uint16_t vmaxvq_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vmaxvq_u16((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vmaxvq_s8(int8x16_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vmaxvq_s8((int8x16_t)__p0); - return __ret; -} -#else -__ai int8_t vmaxvq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8_t __ret; - __ret = (int8_t) __builtin_neon_vmaxvq_s8((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vmaxvq_f64(float64x2_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vmaxvq_f64((int8x16_t)__p0); - return __ret; -} -#else -__ai float64_t vmaxvq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64_t __ret; - __ret = (float64_t) __builtin_neon_vmaxvq_f64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vmaxvq_f32(float32x4_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmaxvq_f32((int8x16_t)__p0); - return __ret; -} -#else -__ai float32_t vmaxvq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmaxvq_f32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vmaxvq_s32(int32x4_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vmaxvq_s32((int8x16_t)__p0); - return __ret; -} -#else -__ai int32_t vmaxvq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32_t __ret; - __ret = (int32_t) __builtin_neon_vmaxvq_s32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vmaxvq_s16(int16x8_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vmaxvq_s16((int8x16_t)__p0); - return __ret; -} -#else -__ai int16_t vmaxvq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16_t __ret; - __ret = (int16_t) __builtin_neon_vmaxvq_s16((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vmaxv_u8(uint8x8_t __p0) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vmaxv_u8((int8x8_t)__p0); - return __ret; -} -#else -__ai uint8_t vmaxv_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vmaxv_u8((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vmaxv_u32(uint32x2_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vmaxv_u32((int8x8_t)__p0); - return __ret; -} -#else -__ai uint32_t vmaxv_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vmaxv_u32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vmaxv_u16(uint16x4_t __p0) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vmaxv_u16((int8x8_t)__p0); - return __ret; -} -#else -__ai uint16_t vmaxv_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vmaxv_u16((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vmaxv_s8(int8x8_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vmaxv_s8((int8x8_t)__p0); - return __ret; -} -#else -__ai int8_t vmaxv_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8_t __ret; - __ret = (int8_t) __builtin_neon_vmaxv_s8((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vmaxv_f32(float32x2_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmaxv_f32((int8x8_t)__p0); - return __ret; -} -#else -__ai float32_t vmaxv_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmaxv_f32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vmaxv_s32(int32x2_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vmaxv_s32((int8x8_t)__p0); - return __ret; -} -#else -__ai int32_t vmaxv_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32_t __ret; - __ret = (int32_t) __builtin_neon_vmaxv_s32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vmaxv_s16(int16x4_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vmaxv_s16((int8x8_t)__p0); - return __ret; -} -#else -__ai int16_t vmaxv_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16_t __ret; - __ret = (int16_t) __builtin_neon_vmaxv_s16((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vminq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vminq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vmin_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#else -__ai float64x1_t vmin_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vminnmvq_f64(float64x2_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vminnmvq_f64((int8x16_t)__p0); - return __ret; -} -#else -__ai float64_t vminnmvq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64_t __ret; - __ret = (float64_t) __builtin_neon_vminnmvq_f64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vminnmvq_f32(float32x4_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vminnmvq_f32((int8x16_t)__p0); - return __ret; -} -#else -__ai float32_t vminnmvq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vminnmvq_f32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vminnmv_f32(float32x2_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vminnmv_f32((int8x8_t)__p0); - return __ret; -} -#else -__ai float32_t vminnmv_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vminnmv_f32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vminvq_u8(uint8x16_t __p0) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vminvq_u8((int8x16_t)__p0); - return __ret; -} -#else -__ai uint8_t vminvq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vminvq_u8((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vminvq_u32(uint32x4_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vminvq_u32((int8x16_t)__p0); - return __ret; -} -#else -__ai uint32_t vminvq_u32(uint32x4_t __p0) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vminvq_u32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vminvq_u16(uint16x8_t __p0) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vminvq_u16((int8x16_t)__p0); - return __ret; -} -#else -__ai uint16_t vminvq_u16(uint16x8_t __p0) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vminvq_u16((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vminvq_s8(int8x16_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vminvq_s8((int8x16_t)__p0); - return __ret; -} -#else -__ai int8_t vminvq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8_t __ret; - __ret = (int8_t) __builtin_neon_vminvq_s8((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vminvq_f64(float64x2_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vminvq_f64((int8x16_t)__p0); - return __ret; -} -#else -__ai float64_t vminvq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64_t __ret; - __ret = (float64_t) __builtin_neon_vminvq_f64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vminvq_f32(float32x4_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vminvq_f32((int8x16_t)__p0); - return __ret; -} -#else -__ai float32_t vminvq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vminvq_f32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vminvq_s32(int32x4_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vminvq_s32((int8x16_t)__p0); - return __ret; -} -#else -__ai int32_t vminvq_s32(int32x4_t __p0) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32_t __ret; - __ret = (int32_t) __builtin_neon_vminvq_s32((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vminvq_s16(int16x8_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vminvq_s16((int8x16_t)__p0); - return __ret; -} -#else -__ai int16_t vminvq_s16(int16x8_t __p0) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16_t __ret; - __ret = (int16_t) __builtin_neon_vminvq_s16((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vminv_u8(uint8x8_t __p0) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vminv_u8((int8x8_t)__p0); - return __ret; -} -#else -__ai uint8_t vminv_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vminv_u8((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vminv_u32(uint32x2_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vminv_u32((int8x8_t)__p0); - return __ret; -} -#else -__ai uint32_t vminv_u32(uint32x2_t __p0) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vminv_u32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vminv_u16(uint16x4_t __p0) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vminv_u16((int8x8_t)__p0); - return __ret; -} -#else -__ai uint16_t vminv_u16(uint16x4_t __p0) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vminv_u16((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vminv_s8(int8x8_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vminv_s8((int8x8_t)__p0); - return __ret; -} -#else -__ai int8_t vminv_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8_t __ret; - __ret = (int8_t) __builtin_neon_vminv_s8((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vminv_f32(float32x2_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vminv_f32((int8x8_t)__p0); - return __ret; -} -#else -__ai float32_t vminv_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vminv_f32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vminv_s32(int32x2_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vminv_s32((int8x8_t)__p0); - return __ret; -} -#else -__ai int32_t vminv_s32(int32x2_t __p0) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32_t __ret; - __ret = (int32_t) __builtin_neon_vminv_s32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vminv_s16(int16x4_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vminv_s16((int8x8_t)__p0); - return __ret; -} -#else -__ai int16_t vminv_s16(int16x4_t __p0) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16_t __ret; - __ret = (int16_t) __builtin_neon_vminv_s16((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vmlaq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - float64x2_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai float64x2_t vmlaq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - float64x2_t __ret; - __ret = __rev0 + __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vmla_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#else -__ai float64x1_t vmla_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = __p0 + __p1 * __p2; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlaq_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlaq_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlaq_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint16x8_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlaq_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlaq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x4_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlaq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlaq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlaq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlaq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x8_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlaq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmla_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint32x2_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmla_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint32x2_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmla_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint16x4_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmla_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmla_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x2_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmla_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - float32x2_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmla_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x2_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmla_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x2_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmla_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x4_t __ret; \ - __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmla_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vmlaq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) { - float64x2_t __ret; - __ret = __p0 + __p1 * (float64x2_t) {__p2, __p2}; - return __ret; -} -#else -__ai float64x2_t vmlaq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __rev0 + __rev1 * (float64x2_t) {__p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_high_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint64x2_t __ret; \ - __ret = __s0 + vmull_u32(vget_high_u32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_high_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - uint64x2_t __ret; \ - __ret = __rev0 + __noswap_vmull_u32(__noswap_vget_high_u32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_high_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 + vmull_u16(vget_high_u16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_high_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 + __noswap_vmull_u16(__noswap_vget_high_u16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = __s0 + vmull_s32(vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int64x2_t __ret; \ - __ret = __rev0 + __noswap_vmull_s32(__noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 + vmull_s16(vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 + __noswap_vmull_s16(__noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_high_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint64x2_t __ret; \ - __ret = __s0 + vmull_u32(vget_high_u32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_high_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint64x2_t __ret; \ - __ret = __rev0 + __noswap_vmull_u32(__noswap_vget_high_u32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_high_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 + vmull_u16(vget_high_u16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_high_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 + __noswap_vmull_u16(__noswap_vget_high_u16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = __s0 + vmull_s32(vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __rev0 + __noswap_vmull_s32(__noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 + vmull_s16(vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 + __noswap_vmull_s16(__noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint64x2_t __ret; \ - __ret = __s0 + vmull_u32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint64x2_t __ret; \ - __ret = __rev0 + __noswap_vmull_u32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 + vmull_u16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 + __noswap_vmull_u16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = __s0 + vmull_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __rev0 + __noswap_vmull_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 + vmull_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 + __noswap_vmull_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vmlsq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - float64x2_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai float64x2_t vmlsq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - float64x2_t __ret; - __ret = __rev0 - __rev1 * __rev2; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vmls_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#else -__ai float64x1_t vmls_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) { - float64x1_t __ret; - __ret = __p0 - __p1 * __p2; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsq_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlsq_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsq_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint16x8_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlsq_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x4_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlsq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlsq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x8_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmlsq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmls_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint32x2_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmls_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint32x2_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmls_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint16x4_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmls_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmls_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x2_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmls_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __s2 = __p2; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - float32x2_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmls_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x2_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \ - __ret; \ -}) -#else -#define vmls_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x2_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmls_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x4_t __ret; \ - __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \ - __ret; \ -}) -#else -#define vmls_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vmlsq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) { - float64x2_t __ret; - __ret = __p0 - __p1 * (float64x2_t) {__p2, __p2}; - return __ret; -} -#else -__ai float64x2_t vmlsq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __rev0 - __rev1 * (float64x2_t) {__p2, __p2}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_high_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint64x2_t __ret; \ - __ret = __s0 - vmull_u32(vget_high_u32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_high_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - uint64x2_t __ret; \ - __ret = __rev0 - __noswap_vmull_u32(__noswap_vget_high_u32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_high_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 - vmull_u16(vget_high_u16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_high_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 - __noswap_vmull_u16(__noswap_vget_high_u16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = __s0 - vmull_s32(vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int64x2_t __ret; \ - __ret = __rev0 - __noswap_vmull_s32(__noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 - vmull_s16(vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 - __noswap_vmull_s16(__noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_high_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint64x2_t __ret; \ - __ret = __s0 - vmull_u32(vget_high_u32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_high_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint64x2_t __ret; \ - __ret = __rev0 - __noswap_vmull_u32(__noswap_vget_high_u32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_high_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 - vmull_u16(vget_high_u16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_high_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 - __noswap_vmull_u16(__noswap_vget_high_u16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = __s0 - vmull_s32(vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __rev0 - __noswap_vmull_s32(__noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 - vmull_s16(vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 - __noswap_vmull_s16(__noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint64x2_t __ret; \ - __ret = __s0 - vmull_u32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __s2 = __p2; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint64x2_t __ret; \ - __ret = __rev0 - __noswap_vmull_u32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 - vmull_u16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 - __noswap_vmull_u16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = __s0 - vmull_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __rev0 - __noswap_vmull_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 - vmull_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 - __noswap_vmull_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x1_t vmov_n_p64(poly64_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t) {__p0}; - return __ret; -} -#else -__ai poly64x1_t vmov_n_p64(poly64_t __p0) { - poly64x1_t __ret; - __ret = (poly64x1_t) {__p0}; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vmovq_n_p64(poly64_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai poly64x2_t vmovq_n_p64(poly64_t __p0) { - poly64x2_t __ret; - __ret = (poly64x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vmovq_n_f64(float64_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) {__p0, __p0}; - return __ret; -} -#else -__ai float64x2_t vmovq_n_f64(float64_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) {__p0, __p0}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vmov_n_f64(float64_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) {__p0}; - return __ret; -} -#else -__ai float64x1_t vmov_n_f64(float64_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) {__p0}; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmovl_high_u8(uint8x16_t __p0_124) { - uint16x8_t __ret_124; - uint8x8_t __a1_124 = vget_high_u8(__p0_124); - __ret_124 = (uint16x8_t)(vshll_n_u8(__a1_124, 0)); - return __ret_124; -} -#else -__ai uint16x8_t vmovl_high_u8(uint8x16_t __p0_125) { - uint8x16_t __rev0_125; __rev0_125 = __builtin_shufflevector(__p0_125, __p0_125, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret_125; - uint8x8_t __a1_125 = __noswap_vget_high_u8(__rev0_125); - __ret_125 = (uint16x8_t)(__noswap_vshll_n_u8(__a1_125, 0)); - __ret_125 = __builtin_shufflevector(__ret_125, __ret_125, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret_125; -} -__ai uint16x8_t __noswap_vmovl_high_u8(uint8x16_t __p0_126) { - uint16x8_t __ret_126; - uint8x8_t __a1_126 = __noswap_vget_high_u8(__p0_126); - __ret_126 = (uint16x8_t)(__noswap_vshll_n_u8(__a1_126, 0)); - return __ret_126; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmovl_high_u32(uint32x4_t __p0_127) { - uint64x2_t __ret_127; - uint32x2_t __a1_127 = vget_high_u32(__p0_127); - __ret_127 = (uint64x2_t)(vshll_n_u32(__a1_127, 0)); - return __ret_127; -} -#else -__ai uint64x2_t vmovl_high_u32(uint32x4_t __p0_128) { - uint32x4_t __rev0_128; __rev0_128 = __builtin_shufflevector(__p0_128, __p0_128, 3, 2, 1, 0); - uint64x2_t __ret_128; - uint32x2_t __a1_128 = __noswap_vget_high_u32(__rev0_128); - __ret_128 = (uint64x2_t)(__noswap_vshll_n_u32(__a1_128, 0)); - __ret_128 = __builtin_shufflevector(__ret_128, __ret_128, 1, 0); - return __ret_128; -} -__ai uint64x2_t __noswap_vmovl_high_u32(uint32x4_t __p0_129) { - uint64x2_t __ret_129; - uint32x2_t __a1_129 = __noswap_vget_high_u32(__p0_129); - __ret_129 = (uint64x2_t)(__noswap_vshll_n_u32(__a1_129, 0)); - return __ret_129; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmovl_high_u16(uint16x8_t __p0_130) { - uint32x4_t __ret_130; - uint16x4_t __a1_130 = vget_high_u16(__p0_130); - __ret_130 = (uint32x4_t)(vshll_n_u16(__a1_130, 0)); - return __ret_130; -} -#else -__ai uint32x4_t vmovl_high_u16(uint16x8_t __p0_131) { - uint16x8_t __rev0_131; __rev0_131 = __builtin_shufflevector(__p0_131, __p0_131, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret_131; - uint16x4_t __a1_131 = __noswap_vget_high_u16(__rev0_131); - __ret_131 = (uint32x4_t)(__noswap_vshll_n_u16(__a1_131, 0)); - __ret_131 = __builtin_shufflevector(__ret_131, __ret_131, 3, 2, 1, 0); - return __ret_131; -} -__ai uint32x4_t __noswap_vmovl_high_u16(uint16x8_t __p0_132) { - uint32x4_t __ret_132; - uint16x4_t __a1_132 = __noswap_vget_high_u16(__p0_132); - __ret_132 = (uint32x4_t)(__noswap_vshll_n_u16(__a1_132, 0)); - return __ret_132; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmovl_high_s8(int8x16_t __p0_133) { - int16x8_t __ret_133; - int8x8_t __a1_133 = vget_high_s8(__p0_133); - __ret_133 = (int16x8_t)(vshll_n_s8(__a1_133, 0)); - return __ret_133; -} -#else -__ai int16x8_t vmovl_high_s8(int8x16_t __p0_134) { - int8x16_t __rev0_134; __rev0_134 = __builtin_shufflevector(__p0_134, __p0_134, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret_134; - int8x8_t __a1_134 = __noswap_vget_high_s8(__rev0_134); - __ret_134 = (int16x8_t)(__noswap_vshll_n_s8(__a1_134, 0)); - __ret_134 = __builtin_shufflevector(__ret_134, __ret_134, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret_134; -} -__ai int16x8_t __noswap_vmovl_high_s8(int8x16_t __p0_135) { - int16x8_t __ret_135; - int8x8_t __a1_135 = __noswap_vget_high_s8(__p0_135); - __ret_135 = (int16x8_t)(__noswap_vshll_n_s8(__a1_135, 0)); - return __ret_135; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmovl_high_s32(int32x4_t __p0_136) { - int64x2_t __ret_136; - int32x2_t __a1_136 = vget_high_s32(__p0_136); - __ret_136 = (int64x2_t)(vshll_n_s32(__a1_136, 0)); - return __ret_136; -} -#else -__ai int64x2_t vmovl_high_s32(int32x4_t __p0_137) { - int32x4_t __rev0_137; __rev0_137 = __builtin_shufflevector(__p0_137, __p0_137, 3, 2, 1, 0); - int64x2_t __ret_137; - int32x2_t __a1_137 = __noswap_vget_high_s32(__rev0_137); - __ret_137 = (int64x2_t)(__noswap_vshll_n_s32(__a1_137, 0)); - __ret_137 = __builtin_shufflevector(__ret_137, __ret_137, 1, 0); - return __ret_137; -} -__ai int64x2_t __noswap_vmovl_high_s32(int32x4_t __p0_138) { - int64x2_t __ret_138; - int32x2_t __a1_138 = __noswap_vget_high_s32(__p0_138); - __ret_138 = (int64x2_t)(__noswap_vshll_n_s32(__a1_138, 0)); - return __ret_138; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmovl_high_s16(int16x8_t __p0_139) { - int32x4_t __ret_139; - int16x4_t __a1_139 = vget_high_s16(__p0_139); - __ret_139 = (int32x4_t)(vshll_n_s16(__a1_139, 0)); - return __ret_139; -} -#else -__ai int32x4_t vmovl_high_s16(int16x8_t __p0_140) { - int16x8_t __rev0_140; __rev0_140 = __builtin_shufflevector(__p0_140, __p0_140, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret_140; - int16x4_t __a1_140 = __noswap_vget_high_s16(__rev0_140); - __ret_140 = (int32x4_t)(__noswap_vshll_n_s16(__a1_140, 0)); - __ret_140 = __builtin_shufflevector(__ret_140, __ret_140, 3, 2, 1, 0); - return __ret_140; -} -__ai int32x4_t __noswap_vmovl_high_s16(int16x8_t __p0_141) { - int32x4_t __ret_141; - int16x4_t __a1_141 = __noswap_vget_high_s16(__p0_141); - __ret_141 = (int32x4_t)(__noswap_vshll_n_s16(__a1_141, 0)); - return __ret_141; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmovn_high_u32(uint16x4_t __p0, uint32x4_t __p1) { - uint16x8_t __ret; - __ret = vcombine_u16(__p0, vmovn_u32(__p1)); - return __ret; -} -#else -__ai uint16x8_t vmovn_high_u32(uint16x4_t __p0, uint32x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vcombine_u16(__rev0, __noswap_vmovn_u32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmovn_high_u64(uint32x2_t __p0, uint64x2_t __p1) { - uint32x4_t __ret; - __ret = vcombine_u32(__p0, vmovn_u64(__p1)); - return __ret; -} -#else -__ai uint32x4_t vmovn_high_u64(uint32x2_t __p0, uint64x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vcombine_u32(__rev0, __noswap_vmovn_u64(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vmovn_high_u16(uint8x8_t __p0, uint16x8_t __p1) { - uint8x16_t __ret; - __ret = vcombine_u8(__p0, vmovn_u16(__p1)); - return __ret; -} -#else -__ai uint8x16_t vmovn_high_u16(uint8x8_t __p0, uint16x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __noswap_vcombine_u8(__rev0, __noswap_vmovn_u16(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmovn_high_s32(int16x4_t __p0, int32x4_t __p1) { - int16x8_t __ret; - __ret = vcombine_s16(__p0, vmovn_s32(__p1)); - return __ret; -} -#else -__ai int16x8_t vmovn_high_s32(int16x4_t __p0, int32x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vcombine_s16(__rev0, __noswap_vmovn_s32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmovn_high_s64(int32x2_t __p0, int64x2_t __p1) { - int32x4_t __ret; - __ret = vcombine_s32(__p0, vmovn_s64(__p1)); - return __ret; -} -#else -__ai int32x4_t vmovn_high_s64(int32x2_t __p0, int64x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x4_t __ret; - __ret = __noswap_vcombine_s32(__rev0, __noswap_vmovn_s64(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vmovn_high_s16(int8x8_t __p0, int16x8_t __p1) { - int8x16_t __ret; - __ret = vcombine_s8(__p0, vmovn_s16(__p1)); - return __ret; -} -#else -__ai int8x16_t vmovn_high_s16(int8x8_t __p0, int16x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __noswap_vcombine_s8(__rev0, __noswap_vmovn_s16(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vmulq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai float64x2_t vmulq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __rev0 * __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vmul_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#else -__ai float64x1_t vmul_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = __p0 * __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmuld_lane_f64(__p0_142, __p1_142, __p2_142) __extension__ ({ \ - float64_t __s0_142 = __p0_142; \ - float64x1_t __s1_142 = __p1_142; \ - float64_t __ret_142; \ - __ret_142 = __s0_142 * vget_lane_f64(__s1_142, __p2_142); \ - __ret_142; \ -}) -#else -#define vmuld_lane_f64(__p0_143, __p1_143, __p2_143) __extension__ ({ \ - float64_t __s0_143 = __p0_143; \ - float64x1_t __s1_143 = __p1_143; \ - float64_t __ret_143; \ - __ret_143 = __s0_143 * __noswap_vget_lane_f64(__s1_143, __p2_143); \ - __ret_143; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmuls_lane_f32(__p0_144, __p1_144, __p2_144) __extension__ ({ \ - float32_t __s0_144 = __p0_144; \ - float32x2_t __s1_144 = __p1_144; \ - float32_t __ret_144; \ - __ret_144 = __s0_144 * vget_lane_f32(__s1_144, __p2_144); \ - __ret_144; \ -}) -#else -#define vmuls_lane_f32(__p0_145, __p1_145, __p2_145) __extension__ ({ \ - float32_t __s0_145 = __p0_145; \ - float32x2_t __s1_145 = __p1_145; \ - float32x2_t __rev1_145; __rev1_145 = __builtin_shufflevector(__s1_145, __s1_145, 1, 0); \ - float32_t __ret_145; \ - __ret_145 = __s0_145 * __noswap_vget_lane_f32(__rev1_145, __p2_145); \ - __ret_145; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vmul_lane_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 10); \ - __ret; \ -}) -#else -#define vmul_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vmul_lane_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x2_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x2_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmuld_laneq_f64(__p0_146, __p1_146, __p2_146) __extension__ ({ \ - float64_t __s0_146 = __p0_146; \ - float64x2_t __s1_146 = __p1_146; \ - float64_t __ret_146; \ - __ret_146 = __s0_146 * vgetq_lane_f64(__s1_146, __p2_146); \ - __ret_146; \ -}) -#else -#define vmuld_laneq_f64(__p0_147, __p1_147, __p2_147) __extension__ ({ \ - float64_t __s0_147 = __p0_147; \ - float64x2_t __s1_147 = __p1_147; \ - float64x2_t __rev1_147; __rev1_147 = __builtin_shufflevector(__s1_147, __s1_147, 1, 0); \ - float64_t __ret_147; \ - __ret_147 = __s0_147 * __noswap_vgetq_lane_f64(__rev1_147, __p2_147); \ - __ret_147; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmuls_laneq_f32(__p0_148, __p1_148, __p2_148) __extension__ ({ \ - float32_t __s0_148 = __p0_148; \ - float32x4_t __s1_148 = __p1_148; \ - float32_t __ret_148; \ - __ret_148 = __s0_148 * vgetq_lane_f32(__s1_148, __p2_148); \ - __ret_148; \ -}) -#else -#define vmuls_laneq_f32(__p0_149, __p1_149, __p2_149) __extension__ ({ \ - float32_t __s0_149 = __p0_149; \ - float32x4_t __s1_149 = __p1_149; \ - float32x4_t __rev1_149; __rev1_149 = __builtin_shufflevector(__s1_149, __s1_149, 3, 2, 1, 0); \ - float32_t __ret_149; \ - __ret_149 = __s0_149 * __noswap_vgetq_lane_f32(__rev1_149, __p2_149); \ - __ret_149; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_laneq_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vmul_laneq_v((int8x8_t)__s0, (int8x16_t)__s1, __p2, 10); \ - __ret; \ -}) -#else -#define vmul_laneq_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vmul_laneq_v((int8x8_t)__s0, (int8x16_t)__rev1, __p2, 10); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_laneq_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_laneq_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_laneq_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_laneq_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_laneq_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_laneq_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float64x2_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_laneq_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_laneq_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmulq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_laneq_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_laneq_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x2_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_laneq_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_laneq_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_laneq_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_laneq_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x2_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmul_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \ - __ret; \ -}) -#else -#define vmul_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vmul_n_f64(float64x1_t __p0, float64_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vmul_n_f64((int8x8_t)__p0, __p1); - return __ret; -} -#else -__ai float64x1_t vmul_n_f64(float64x1_t __p0, float64_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vmul_n_f64((int8x8_t)__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vmulq_n_f64(float64x2_t __p0, float64_t __p1) { - float64x2_t __ret; - __ret = __p0 * (float64x2_t) {__p1, __p1}; - return __ret; -} -#else -__ai float64x2_t vmulq_n_f64(float64x2_t __p0, float64_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = __rev0 * (float64x2_t) {__p1, __p1}; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vmull_p64(poly64_t __p0, poly64_t __p1) { - poly128_t __ret; - __ret = (poly128_t) __builtin_neon_vmull_p64(__p0, __p1); - return __ret; -} -#else -__ai poly128_t vmull_p64(poly64_t __p0, poly64_t __p1) { - poly128_t __ret; - __ret = (poly128_t) __builtin_neon_vmull_p64(__p0, __p1); - return __ret; -} -__ai poly128_t __noswap_vmull_p64(poly64_t __p0, poly64_t __p1) { - poly128_t __ret; - __ret = (poly128_t) __builtin_neon_vmull_p64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vmull_high_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly16x8_t __ret; - __ret = vmull_p8(vget_high_p8(__p0), vget_high_p8(__p1)); - return __ret; -} -#else -__ai poly16x8_t vmull_high_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = __noswap_vmull_p8(__noswap_vget_high_p8(__rev0), __noswap_vget_high_p8(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmull_high_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint16x8_t __ret; - __ret = vmull_u8(vget_high_u8(__p0), vget_high_u8(__p1)); - return __ret; -} -#else -__ai uint16x8_t vmull_high_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vmull_u8(__noswap_vget_high_u8(__rev0), __noswap_vget_high_u8(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmull_high_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint64x2_t __ret; - __ret = vmull_u32(vget_high_u32(__p0), vget_high_u32(__p1)); - return __ret; -} -#else -__ai uint64x2_t vmull_high_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vmull_u32(__noswap_vget_high_u32(__rev0), __noswap_vget_high_u32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmull_high_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint32x4_t __ret; - __ret = vmull_u16(vget_high_u16(__p0), vget_high_u16(__p1)); - return __ret; -} -#else -__ai uint32x4_t vmull_high_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vmull_u16(__noswap_vget_high_u16(__rev0), __noswap_vget_high_u16(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmull_high_s8(int8x16_t __p0, int8x16_t __p1) { - int16x8_t __ret; - __ret = vmull_s8(vget_high_s8(__p0), vget_high_s8(__p1)); - return __ret; -} -#else -__ai int16x8_t vmull_high_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vmull_s8(__noswap_vget_high_s8(__rev0), __noswap_vget_high_s8(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmull_high_s32(int32x4_t __p0, int32x4_t __p1) { - int64x2_t __ret; - __ret = vmull_s32(vget_high_s32(__p0), vget_high_s32(__p1)); - return __ret; -} -#else -__ai int64x2_t vmull_high_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vmull_s32(__noswap_vget_high_s32(__rev0), __noswap_vget_high_s32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmull_high_s16(int16x8_t __p0, int16x8_t __p1) { - int32x4_t __ret; - __ret = vmull_s16(vget_high_s16(__p0), vget_high_s16(__p1)); - return __ret; -} -#else -__ai int32x4_t vmull_high_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vmull_s16(__noswap_vget_high_s16(__rev0), __noswap_vget_high_s16(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly128_t vmull_high_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly128_t __ret; - __ret = vmull_p64((poly64_t)(vget_high_p64(__p0)), (poly64_t)(vget_high_p64(__p1))); - return __ret; -} -#else -__ai poly128_t vmull_high_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - poly128_t __ret; - __ret = __noswap_vmull_p64((poly64_t)(__noswap_vget_high_p64(__rev0)), (poly64_t)(__noswap_vget_high_p64(__rev1))); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_high_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = vmull_u32(vget_high_u32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_high_lane_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint64x2_t __ret; \ - __ret = __noswap_vmull_u32(__noswap_vget_high_u32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_high_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = vmull_u16(vget_high_u16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_high_lane_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __noswap_vmull_u16(__noswap_vget_high_u16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_high_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = vmull_s32(vget_high_s32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_high_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vmull_s32(__noswap_vget_high_s32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_high_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vmull_s16(vget_high_s16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_high_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vmull_s16(__noswap_vget_high_s16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_high_laneq_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = vmull_u32(vget_high_u32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_high_laneq_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint64x2_t __ret; \ - __ret = __noswap_vmull_u32(__noswap_vget_high_u32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_high_laneq_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = vmull_u16(vget_high_u16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_high_laneq_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x8_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __noswap_vmull_u16(__noswap_vget_high_u16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_high_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = vmull_s32(vget_high_s32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_high_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vmull_s32(__noswap_vget_high_s32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_high_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vmull_s16(vget_high_s16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_high_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vmull_s16(__noswap_vget_high_s16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmull_high_n_u32(uint32x4_t __p0, uint32_t __p1) { - uint64x2_t __ret; - __ret = vmull_n_u32(vget_high_u32(__p0), __p1); - return __ret; -} -#else -__ai uint64x2_t vmull_high_n_u32(uint32x4_t __p0, uint32_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vmull_n_u32(__noswap_vget_high_u32(__rev0), __p1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmull_high_n_u16(uint16x8_t __p0, uint16_t __p1) { - uint32x4_t __ret; - __ret = vmull_n_u16(vget_high_u16(__p0), __p1); - return __ret; -} -#else -__ai uint32x4_t vmull_high_n_u16(uint16x8_t __p0, uint16_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vmull_n_u16(__noswap_vget_high_u16(__rev0), __p1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmull_high_n_s32(int32x4_t __p0, int32_t __p1) { - int64x2_t __ret; - __ret = vmull_n_s32(vget_high_s32(__p0), __p1); - return __ret; -} -#else -__ai int64x2_t vmull_high_n_s32(int32x4_t __p0, int32_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vmull_n_s32(__noswap_vget_high_s32(__rev0), __p1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmull_high_n_s16(int16x8_t __p0, int16_t __p1) { - int32x4_t __ret; - __ret = vmull_n_s16(vget_high_s16(__p0), __p1); - return __ret; -} -#else -__ai int32x4_t vmull_high_n_s16(int16x8_t __p0, int16_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vmull_n_s16(__noswap_vget_high_s16(__rev0), __p1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_laneq_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint64x2_t __ret; \ - __ret = vmull_u32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_laneq_u32(__p0, __p1, __p2) __extension__ ({ \ - uint32x2_t __s0 = __p0; \ - uint32x4_t __s1 = __p1; \ - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint64x2_t __ret; \ - __ret = __noswap_vmull_u32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_laneq_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint32x4_t __ret; \ - __ret = vmull_u16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_laneq_u16(__p0, __p1, __p2) __extension__ ({ \ - uint16x4_t __s0 = __p0; \ - uint16x8_t __s1 = __p1; \ - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __noswap_vmull_u16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = vmull_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vmull_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmull_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vmull_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmull_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vmull_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vmulxq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vmulxq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vmulxq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vmulxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float64x2_t __noswap_vmulxq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vmulxq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vmulxq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vmulxq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vmulxq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vmulxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai float32x4_t __noswap_vmulxq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vmulxq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vmulx_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vmulx_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#else -__ai float64x1_t vmulx_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vmulx_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vmulx_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vmulx_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vmulx_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vmulx_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai float32x2_t __noswap_vmulx_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vmulx_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vmulxd_f64(float64_t __p0, float64_t __p1) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vmulxd_f64(__p0, __p1); - return __ret; -} -#else -__ai float64_t vmulxd_f64(float64_t __p0, float64_t __p1) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vmulxd_f64(__p0, __p1); - return __ret; -} -__ai float64_t __noswap_vmulxd_f64(float64_t __p0, float64_t __p1) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vmulxd_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vmulxs_f32(float32_t __p0, float32_t __p1) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmulxs_f32(__p0, __p1); - return __ret; -} -#else -__ai float32_t vmulxs_f32(float32_t __p0, float32_t __p1) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmulxs_f32(__p0, __p1); - return __ret; -} -__ai float32_t __noswap_vmulxs_f32(float32_t __p0, float32_t __p1) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vmulxs_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxd_lane_f64(__p0_150, __p1_150, __p2_150) __extension__ ({ \ - float64_t __s0_150 = __p0_150; \ - float64x1_t __s1_150 = __p1_150; \ - float64_t __ret_150; \ - __ret_150 = vmulxd_f64(__s0_150, vget_lane_f64(__s1_150, __p2_150)); \ - __ret_150; \ -}) -#else -#define vmulxd_lane_f64(__p0_151, __p1_151, __p2_151) __extension__ ({ \ - float64_t __s0_151 = __p0_151; \ - float64x1_t __s1_151 = __p1_151; \ - float64_t __ret_151; \ - __ret_151 = __noswap_vmulxd_f64(__s0_151, __noswap_vget_lane_f64(__s1_151, __p2_151)); \ - __ret_151; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxs_lane_f32(__p0_152, __p1_152, __p2_152) __extension__ ({ \ - float32_t __s0_152 = __p0_152; \ - float32x2_t __s1_152 = __p1_152; \ - float32_t __ret_152; \ - __ret_152 = vmulxs_f32(__s0_152, vget_lane_f32(__s1_152, __p2_152)); \ - __ret_152; \ -}) -#else -#define vmulxs_lane_f32(__p0_153, __p1_153, __p2_153) __extension__ ({ \ - float32_t __s0_153 = __p0_153; \ - float32x2_t __s1_153 = __p1_153; \ - float32x2_t __rev1_153; __rev1_153 = __builtin_shufflevector(__s1_153, __s1_153, 1, 0); \ - float32_t __ret_153; \ - __ret_153 = __noswap_vmulxs_f32(__s0_153, __noswap_vget_lane_f32(__rev1_153, __p2_153)); \ - __ret_153; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxq_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x2_t __ret; \ - __ret = vmulxq_f64(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmulxq_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x2_t __ret; \ - __ret = __noswap_vmulxq_f64(__rev0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxq_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __ret; \ - __ret = vmulxq_f32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmulxq_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x4_t __ret; \ - __ret = __noswap_vmulxq_f32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulx_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __ret; \ - __ret = vmulx_f32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmulx_lane_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x2_t __s1 = __p1; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float32x2_t __ret; \ - __ret = __noswap_vmulx_f32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxd_laneq_f64(__p0_154, __p1_154, __p2_154) __extension__ ({ \ - float64_t __s0_154 = __p0_154; \ - float64x2_t __s1_154 = __p1_154; \ - float64_t __ret_154; \ - __ret_154 = vmulxd_f64(__s0_154, vgetq_lane_f64(__s1_154, __p2_154)); \ - __ret_154; \ -}) -#else -#define vmulxd_laneq_f64(__p0_155, __p1_155, __p2_155) __extension__ ({ \ - float64_t __s0_155 = __p0_155; \ - float64x2_t __s1_155 = __p1_155; \ - float64x2_t __rev1_155; __rev1_155 = __builtin_shufflevector(__s1_155, __s1_155, 1, 0); \ - float64_t __ret_155; \ - __ret_155 = __noswap_vmulxd_f64(__s0_155, __noswap_vgetq_lane_f64(__rev1_155, __p2_155)); \ - __ret_155; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxs_laneq_f32(__p0_156, __p1_156, __p2_156) __extension__ ({ \ - float32_t __s0_156 = __p0_156; \ - float32x4_t __s1_156 = __p1_156; \ - float32_t __ret_156; \ - __ret_156 = vmulxs_f32(__s0_156, vgetq_lane_f32(__s1_156, __p2_156)); \ - __ret_156; \ -}) -#else -#define vmulxs_laneq_f32(__p0_157, __p1_157, __p2_157) __extension__ ({ \ - float32_t __s0_157 = __p0_157; \ - float32x4_t __s1_157 = __p1_157; \ - float32x4_t __rev1_157; __rev1_157 = __builtin_shufflevector(__s1_157, __s1_157, 3, 2, 1, 0); \ - float32_t __ret_157; \ - __ret_157 = __noswap_vmulxs_f32(__s0_157, __noswap_vgetq_lane_f32(__rev1_157, __p2_157)); \ - __ret_157; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxq_laneq_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __ret; \ - __ret = vmulxq_f64(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmulxq_laneq_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float64x2_t __ret; \ - __ret = __noswap_vmulxq_f64(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulxq_laneq_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __ret; \ - __ret = vmulxq_f32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmulxq_laneq_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x4_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x4_t __ret; \ - __ret = __noswap_vmulxq_f32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulx_laneq_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __ret; \ - __ret = vmulx_f32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vmulx_laneq_f32(__p0, __p1, __p2) __extension__ ({ \ - float32x2_t __s0 = __p0; \ - float32x4_t __s1 = __p1; \ - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - float32x2_t __ret; \ - __ret = __noswap_vmulx_f32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vnegq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai float64x2_t vnegq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vnegq_s64(int64x2_t __p0) { - int64x2_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai int64x2_t vnegq_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = -__rev0; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vneg_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai float64x1_t vneg_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = -__p0; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vneg_s64(int64x1_t __p0) { - int64x1_t __ret; - __ret = -__p0; - return __ret; -} -#else -__ai int64x1_t vneg_s64(int64x1_t __p0) { - int64x1_t __ret; - __ret = -__p0; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vnegd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vnegd_s64(__p0); - return __ret; -} -#else -__ai int64_t vnegd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vnegd_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vpaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vpaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vpaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vpaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vpaddq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vpaddq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vpaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vpaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vpaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vpaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vpaddq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vpaddq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vpaddq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vpaddq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vpaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vpaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vpaddq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vpaddq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vpaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vpaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vpaddd_u64(uint64x2_t __p0) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vpaddd_u64((int8x16_t)__p0); - return __ret; -} -#else -__ai uint64_t vpaddd_u64(uint64x2_t __p0) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vpaddd_u64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vpaddd_f64(float64x2_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vpaddd_f64((int8x16_t)__p0); - return __ret; -} -#else -__ai float64_t vpaddd_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64_t __ret; - __ret = (float64_t) __builtin_neon_vpaddd_f64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vpaddd_s64(int64x2_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vpaddd_s64((int8x16_t)__p0); - return __ret; -} -#else -__ai int64_t vpaddd_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64_t __ret; - __ret = (int64_t) __builtin_neon_vpaddd_s64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vpadds_f32(float32x2_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vpadds_f32((int8x8_t)__p0); - return __ret; -} -#else -__ai float32_t vpadds_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vpadds_f32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vpmaxq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vpmaxq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vpmaxq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vpmaxq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vpmaxq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vpmaxq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vpmaxq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vpmaxq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vpmaxq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vpmaxq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vpmaxq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vpmaxq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vpmaxq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vpmaxq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vpmaxq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vpmaxq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vpmaxqd_f64(float64x2_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vpmaxqd_f64((int8x16_t)__p0); - return __ret; -} -#else -__ai float64_t vpmaxqd_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64_t __ret; - __ret = (float64_t) __builtin_neon_vpmaxqd_f64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vpmaxs_f32(float32x2_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vpmaxs_f32((int8x8_t)__p0); - return __ret; -} -#else -__ai float32_t vpmaxs_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vpmaxs_f32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vpmaxnmq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vpmaxnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vpmaxnmq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vpmaxnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vpmaxnmq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vpmaxnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vpmaxnmq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vpmaxnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vpmaxnm_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vpmaxnm_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vpmaxnm_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vpmaxnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vpmaxnmqd_f64(float64x2_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vpmaxnmqd_f64((int8x16_t)__p0); - return __ret; -} -#else -__ai float64_t vpmaxnmqd_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64_t __ret; - __ret = (float64_t) __builtin_neon_vpmaxnmqd_f64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vpmaxnms_f32(float32x2_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vpmaxnms_f32((int8x8_t)__p0); - return __ret; -} -#else -__ai float32_t vpmaxnms_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vpmaxnms_f32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vpminq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vpminq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vpminq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vpminq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vpminq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vpminq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vpminq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vpminq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vpminq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vpminq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vpminq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vpminq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vpminq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vpminq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vpminq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vpminq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vpminqd_f64(float64x2_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vpminqd_f64((int8x16_t)__p0); - return __ret; -} -#else -__ai float64_t vpminqd_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64_t __ret; - __ret = (float64_t) __builtin_neon_vpminqd_f64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vpmins_f32(float32x2_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vpmins_f32((int8x8_t)__p0); - return __ret; -} -#else -__ai float32_t vpmins_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vpmins_f32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vpminnmq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vpminnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vpminnmq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vpminnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vpminnmq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vpminnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 41); - return __ret; -} -#else -__ai float32x4_t vpminnmq_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vpminnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vpminnm_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vpminnm_v((int8x8_t)__p0, (int8x8_t)__p1, 9); - return __ret; -} -#else -__ai float32x2_t vpminnm_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vpminnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vpminnmqd_f64(float64x2_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vpminnmqd_f64((int8x16_t)__p0); - return __ret; -} -#else -__ai float64_t vpminnmqd_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64_t __ret; - __ret = (float64_t) __builtin_neon_vpminnmqd_f64((int8x16_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vpminnms_f32(float32x2_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vpminnms_f32((int8x8_t)__p0); - return __ret; -} -#else -__ai float32_t vpminnms_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32_t __ret; - __ret = (float32_t) __builtin_neon_vpminnms_f32((int8x8_t)__rev0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqabsq_s64(int64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqabsq_v((int8x16_t)__p0, 35); - return __ret; -} -#else -__ai int64x2_t vqabsq_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqabsq_v((int8x16_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vqabs_s64(int64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqabs_v((int8x8_t)__p0, 3); - return __ret; -} -#else -__ai int64x1_t vqabs_s64(int64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqabs_v((int8x8_t)__p0, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vqabsb_s8(int8_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqabsb_s8(__p0); - return __ret; -} -#else -__ai int8_t vqabsb_s8(int8_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqabsb_s8(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqabss_s32(int32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqabss_s32(__p0); - return __ret; -} -#else -__ai int32_t vqabss_s32(int32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqabss_s32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vqabsd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqabsd_s64(__p0); - return __ret; -} -#else -__ai int64_t vqabsd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqabsd_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqabsh_s16(int16_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqabsh_s16(__p0); - return __ret; -} -#else -__ai int16_t vqabsh_s16(int16_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqabsh_s16(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vqaddb_u8(uint8_t __p0, uint8_t __p1) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vqaddb_u8(__p0, __p1); - return __ret; -} -#else -__ai uint8_t vqaddb_u8(uint8_t __p0, uint8_t __p1) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vqaddb_u8(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vqadds_u32(uint32_t __p0, uint32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vqadds_u32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vqadds_u32(uint32_t __p0, uint32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vqadds_u32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vqaddd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vqaddd_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vqaddd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vqaddd_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vqaddh_u16(uint16_t __p0, uint16_t __p1) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vqaddh_u16(__p0, __p1); - return __ret; -} -#else -__ai uint16_t vqaddh_u16(uint16_t __p0, uint16_t __p1) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vqaddh_u16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vqaddb_s8(int8_t __p0, int8_t __p1) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqaddb_s8(__p0, __p1); - return __ret; -} -#else -__ai int8_t vqaddb_s8(int8_t __p0, int8_t __p1) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqaddb_s8(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqadds_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqadds_s32(__p0, __p1); - return __ret; -} -#else -__ai int32_t vqadds_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqadds_s32(__p0, __p1); - return __ret; -} -__ai int32_t __noswap_vqadds_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqadds_s32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vqaddd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqaddd_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vqaddd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqaddd_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqaddh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqaddh_s16(__p0, __p1); - return __ret; -} -#else -__ai int16_t vqaddh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqaddh_s16(__p0, __p1); - return __ret; -} -__ai int16_t __noswap_vqaddh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqaddh_s16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vqdmlals_s32(int64_t __p0, int32_t __p1, int32_t __p2) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqdmlals_s32(__p0, __p1, __p2); - return __ret; -} -#else -__ai int64_t vqdmlals_s32(int64_t __p0, int32_t __p1, int32_t __p2) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqdmlals_s32(__p0, __p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqdmlalh_s16(int32_t __p0, int16_t __p1, int16_t __p2) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqdmlalh_s16(__p0, __p1, __p2); - return __ret; -} -#else -__ai int32_t vqdmlalh_s16(int32_t __p0, int16_t __p1, int16_t __p2) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqdmlalh_s16(__p0, __p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmlal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) { - int64x2_t __ret; - __ret = vqdmlal_s32(__p0, vget_high_s32(__p1), vget_high_s32(__p2)); - return __ret; -} -#else -__ai int64x2_t vqdmlal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vqdmlal_s32(__rev0, __noswap_vget_high_s32(__rev1), __noswap_vget_high_s32(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmlal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) { - int32x4_t __ret; - __ret = vqdmlal_s16(__p0, vget_high_s16(__p1), vget_high_s16(__p2)); - return __ret; -} -#else -__ai int32x4_t vqdmlal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vqdmlal_s16(__rev0, __noswap_vget_high_s16(__rev1), __noswap_vget_high_s16(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlal_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = vqdmlal_s32(__s0, vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlal_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmlal_s32(__rev0, __noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlal_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqdmlal_s16(__s0, vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlal_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmlal_s16(__rev0, __noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlal_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = vqdmlal_s32(__s0, vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlal_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmlal_s32(__rev0, __noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlal_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqdmlal_s16(__s0, vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlal_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmlal_s16(__rev0, __noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmlal_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = vqdmlal_n_s32(__p0, vget_high_s32(__p1), __p2); - return __ret; -} -#else -__ai int64x2_t vqdmlal_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vqdmlal_n_s32(__rev0, __noswap_vget_high_s32(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmlal_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = vqdmlal_n_s16(__p0, vget_high_s16(__p1), __p2); - return __ret; -} -#else -__ai int32x4_t vqdmlal_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vqdmlal_n_s16(__rev0, __noswap_vget_high_s16(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlals_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqdmlals_lane_s32(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vqdmlals_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqdmlals_lane_s32(__s0, __s1, (int8x8_t)__rev2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlalh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqdmlalh_lane_s16(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vqdmlalh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqdmlalh_lane_s16(__s0, __s1, (int8x8_t)__rev2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlals_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqdmlals_laneq_s32(__s0, __s1, (int8x16_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vqdmlals_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqdmlals_laneq_s32(__s0, __s1, (int8x16_t)__rev2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlalh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqdmlalh_laneq_s16(__s0, __s1, (int8x16_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vqdmlalh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqdmlalh_laneq_s16(__s0, __s1, (int8x16_t)__rev2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlal_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = vqdmlal_s32(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlal_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmlal_s32(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlal_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqdmlal_s16(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlal_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmlal_s16(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vqdmlsls_s32(int64_t __p0, int32_t __p1, int32_t __p2) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqdmlsls_s32(__p0, __p1, __p2); - return __ret; -} -#else -__ai int64_t vqdmlsls_s32(int64_t __p0, int32_t __p1, int32_t __p2) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqdmlsls_s32(__p0, __p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqdmlslh_s16(int32_t __p0, int16_t __p1, int16_t __p2) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqdmlslh_s16(__p0, __p1, __p2); - return __ret; -} -#else -__ai int32_t vqdmlslh_s16(int32_t __p0, int16_t __p1, int16_t __p2) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqdmlslh_s16(__p0, __p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmlsl_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) { - int64x2_t __ret; - __ret = vqdmlsl_s32(__p0, vget_high_s32(__p1), vget_high_s32(__p2)); - return __ret; -} -#else -__ai int64x2_t vqdmlsl_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vqdmlsl_s32(__rev0, __noswap_vget_high_s32(__rev1), __noswap_vget_high_s32(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmlsl_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) { - int32x4_t __ret; - __ret = vqdmlsl_s16(__p0, vget_high_s16(__p1), vget_high_s16(__p2)); - return __ret; -} -#else -__ai int32x4_t vqdmlsl_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vqdmlsl_s16(__rev0, __noswap_vget_high_s16(__rev1), __noswap_vget_high_s16(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlsl_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = vqdmlsl_s32(__s0, vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlsl_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmlsl_s32(__rev0, __noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlsl_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqdmlsl_s16(__s0, vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlsl_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmlsl_s16(__rev0, __noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlsl_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = vqdmlsl_s32(__s0, vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlsl_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmlsl_s32(__rev0, __noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlsl_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqdmlsl_s16(__s0, vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlsl_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmlsl_s16(__rev0, __noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmlsl_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = vqdmlsl_n_s32(__p0, vget_high_s32(__p1), __p2); - return __ret; -} -#else -__ai int64x2_t vqdmlsl_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vqdmlsl_n_s32(__rev0, __noswap_vget_high_s32(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmlsl_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = vqdmlsl_n_s16(__p0, vget_high_s16(__p1), __p2); - return __ret; -} -#else -__ai int32x4_t vqdmlsl_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vqdmlsl_n_s16(__rev0, __noswap_vget_high_s16(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlsls_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqdmlsls_lane_s32(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vqdmlsls_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqdmlsls_lane_s32(__s0, __s1, (int8x8_t)__rev2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlslh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqdmlslh_lane_s16(__s0, __s1, (int8x8_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vqdmlslh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqdmlslh_lane_s16(__s0, __s1, (int8x8_t)__rev2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlsls_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqdmlsls_laneq_s32(__s0, __s1, (int8x16_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vqdmlsls_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqdmlsls_laneq_s32(__s0, __s1, (int8x16_t)__rev2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlslh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqdmlslh_laneq_s16(__s0, __s1, (int8x16_t)__s2, __p3); \ - __ret; \ -}) -#else -#define vqdmlslh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqdmlslh_laneq_s16(__s0, __s1, (int8x16_t)__rev2, __p3); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlsl_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = vqdmlsl_s32(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlsl_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmlsl_s32(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmlsl_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = vqdmlsl_s16(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vqdmlsl_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmlsl_s16(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqdmulhs_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqdmulhs_s32(__p0, __p1); - return __ret; -} -#else -__ai int32_t vqdmulhs_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqdmulhs_s32(__p0, __p1); - return __ret; -} -__ai int32_t __noswap_vqdmulhs_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqdmulhs_s32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqdmulhh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqdmulhh_s16(__p0, __p1); - return __ret; -} -#else -__ai int16_t vqdmulhh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqdmulhh_s16(__p0, __p1); - return __ret; -} -__ai int16_t __noswap_vqdmulhh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqdmulhh_s16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulhs_lane_s32(__p0_158, __p1_158, __p2_158) __extension__ ({ \ - int32_t __s0_158 = __p0_158; \ - int32x2_t __s1_158 = __p1_158; \ - int32_t __ret_158; \ - __ret_158 = vqdmulhs_s32(__s0_158, vget_lane_s32(__s1_158, __p2_158)); \ - __ret_158; \ -}) -#else -#define vqdmulhs_lane_s32(__p0_159, __p1_159, __p2_159) __extension__ ({ \ - int32_t __s0_159 = __p0_159; \ - int32x2_t __s1_159 = __p1_159; \ - int32x2_t __rev1_159; __rev1_159 = __builtin_shufflevector(__s1_159, __s1_159, 1, 0); \ - int32_t __ret_159; \ - __ret_159 = __noswap_vqdmulhs_s32(__s0_159, __noswap_vget_lane_s32(__rev1_159, __p2_159)); \ - __ret_159; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulhh_lane_s16(__p0_160, __p1_160, __p2_160) __extension__ ({ \ - int16_t __s0_160 = __p0_160; \ - int16x4_t __s1_160 = __p1_160; \ - int16_t __ret_160; \ - __ret_160 = vqdmulhh_s16(__s0_160, vget_lane_s16(__s1_160, __p2_160)); \ - __ret_160; \ -}) -#else -#define vqdmulhh_lane_s16(__p0_161, __p1_161, __p2_161) __extension__ ({ \ - int16_t __s0_161 = __p0_161; \ - int16x4_t __s1_161 = __p1_161; \ - int16x4_t __rev1_161; __rev1_161 = __builtin_shufflevector(__s1_161, __s1_161, 3, 2, 1, 0); \ - int16_t __ret_161; \ - __ret_161 = __noswap_vqdmulhh_s16(__s0_161, __noswap_vget_lane_s16(__rev1_161, __p2_161)); \ - __ret_161; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulhs_laneq_s32(__p0_162, __p1_162, __p2_162) __extension__ ({ \ - int32_t __s0_162 = __p0_162; \ - int32x4_t __s1_162 = __p1_162; \ - int32_t __ret_162; \ - __ret_162 = vqdmulhs_s32(__s0_162, vgetq_lane_s32(__s1_162, __p2_162)); \ - __ret_162; \ -}) -#else -#define vqdmulhs_laneq_s32(__p0_163, __p1_163, __p2_163) __extension__ ({ \ - int32_t __s0_163 = __p0_163; \ - int32x4_t __s1_163 = __p1_163; \ - int32x4_t __rev1_163; __rev1_163 = __builtin_shufflevector(__s1_163, __s1_163, 3, 2, 1, 0); \ - int32_t __ret_163; \ - __ret_163 = __noswap_vqdmulhs_s32(__s0_163, __noswap_vgetq_lane_s32(__rev1_163, __p2_163)); \ - __ret_163; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulhh_laneq_s16(__p0_164, __p1_164, __p2_164) __extension__ ({ \ - int16_t __s0_164 = __p0_164; \ - int16x8_t __s1_164 = __p1_164; \ - int16_t __ret_164; \ - __ret_164 = vqdmulhh_s16(__s0_164, vgetq_lane_s16(__s1_164, __p2_164)); \ - __ret_164; \ -}) -#else -#define vqdmulhh_laneq_s16(__p0_165, __p1_165, __p2_165) __extension__ ({ \ - int16_t __s0_165 = __p0_165; \ - int16x8_t __s1_165 = __p1_165; \ - int16x8_t __rev1_165; __rev1_165 = __builtin_shufflevector(__s1_165, __s1_165, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16_t __ret_165; \ - __ret_165 = __noswap_vqdmulhh_s16(__s0_165, __noswap_vgetq_lane_s16(__rev1_165, __p2_165)); \ - __ret_165; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulhq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vqdmulhq_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmulhq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmulhq_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulhq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = vqdmulhq_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmulhq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __noswap_vqdmulhq_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulh_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = vqdmulh_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmulh_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __ret; \ - __ret = __noswap_vqdmulh_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulh_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = vqdmulh_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmulh_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __noswap_vqdmulh_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vqdmulls_s32(int32_t __p0, int32_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqdmulls_s32(__p0, __p1); - return __ret; -} -#else -__ai int64_t vqdmulls_s32(int32_t __p0, int32_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqdmulls_s32(__p0, __p1); - return __ret; -} -__ai int64_t __noswap_vqdmulls_s32(int32_t __p0, int32_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqdmulls_s32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqdmullh_s16(int16_t __p0, int16_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqdmullh_s16(__p0, __p1); - return __ret; -} -#else -__ai int32_t vqdmullh_s16(int16_t __p0, int16_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqdmullh_s16(__p0, __p1); - return __ret; -} -__ai int32_t __noswap_vqdmullh_s16(int16_t __p0, int16_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqdmullh_s16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmull_high_s32(int32x4_t __p0, int32x4_t __p1) { - int64x2_t __ret; - __ret = vqdmull_s32(vget_high_s32(__p0), vget_high_s32(__p1)); - return __ret; -} -#else -__ai int64x2_t vqdmull_high_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vqdmull_s32(__noswap_vget_high_s32(__rev0), __noswap_vget_high_s32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmull_high_s16(int16x8_t __p0, int16x8_t __p1) { - int32x4_t __ret; - __ret = vqdmull_s16(vget_high_s16(__p0), vget_high_s16(__p1)); - return __ret; -} -#else -__ai int32x4_t vqdmull_high_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vqdmull_s16(__noswap_vget_high_s16(__rev0), __noswap_vget_high_s16(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmull_high_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = vqdmull_s32(vget_high_s32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmull_high_lane_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmull_s32(__noswap_vget_high_s32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmull_high_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vqdmull_s16(vget_high_s16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmull_high_lane_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmull_s16(__noswap_vget_high_s16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmull_high_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = vqdmull_s32(vget_high_s32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmull_high_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmull_s32(__noswap_vget_high_s32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmull_high_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vqdmull_s16(vget_high_s16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmull_high_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmull_s16(__noswap_vget_high_s16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqdmull_high_n_s32(int32x4_t __p0, int32_t __p1) { - int64x2_t __ret; - __ret = vqdmull_n_s32(vget_high_s32(__p0), __p1); - return __ret; -} -#else -__ai int64x2_t vqdmull_high_n_s32(int32x4_t __p0, int32_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vqdmull_n_s32(__noswap_vget_high_s32(__rev0), __p1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqdmull_high_n_s16(int16x8_t __p0, int16_t __p1) { - int32x4_t __ret; - __ret = vqdmull_n_s16(vget_high_s16(__p0), __p1); - return __ret; -} -#else -__ai int32x4_t vqdmull_high_n_s16(int16x8_t __p0, int16_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vqdmull_n_s16(__noswap_vget_high_s16(__rev0), __p1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulls_lane_s32(__p0_166, __p1_166, __p2_166) __extension__ ({ \ - int32_t __s0_166 = __p0_166; \ - int32x2_t __s1_166 = __p1_166; \ - int64_t __ret_166; \ - __ret_166 = vqdmulls_s32(__s0_166, vget_lane_s32(__s1_166, __p2_166)); \ - __ret_166; \ -}) -#else -#define vqdmulls_lane_s32(__p0_167, __p1_167, __p2_167) __extension__ ({ \ - int32_t __s0_167 = __p0_167; \ - int32x2_t __s1_167 = __p1_167; \ - int32x2_t __rev1_167; __rev1_167 = __builtin_shufflevector(__s1_167, __s1_167, 1, 0); \ - int64_t __ret_167; \ - __ret_167 = __noswap_vqdmulls_s32(__s0_167, __noswap_vget_lane_s32(__rev1_167, __p2_167)); \ - __ret_167; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmullh_lane_s16(__p0_168, __p1_168, __p2_168) __extension__ ({ \ - int16_t __s0_168 = __p0_168; \ - int16x4_t __s1_168 = __p1_168; \ - int32_t __ret_168; \ - __ret_168 = vqdmullh_s16(__s0_168, vget_lane_s16(__s1_168, __p2_168)); \ - __ret_168; \ -}) -#else -#define vqdmullh_lane_s16(__p0_169, __p1_169, __p2_169) __extension__ ({ \ - int16_t __s0_169 = __p0_169; \ - int16x4_t __s1_169 = __p1_169; \ - int16x4_t __rev1_169; __rev1_169 = __builtin_shufflevector(__s1_169, __s1_169, 3, 2, 1, 0); \ - int32_t __ret_169; \ - __ret_169 = __noswap_vqdmullh_s16(__s0_169, __noswap_vget_lane_s16(__rev1_169, __p2_169)); \ - __ret_169; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmulls_laneq_s32(__p0_170, __p1_170, __p2_170) __extension__ ({ \ - int32_t __s0_170 = __p0_170; \ - int32x4_t __s1_170 = __p1_170; \ - int64_t __ret_170; \ - __ret_170 = vqdmulls_s32(__s0_170, vgetq_lane_s32(__s1_170, __p2_170)); \ - __ret_170; \ -}) -#else -#define vqdmulls_laneq_s32(__p0_171, __p1_171, __p2_171) __extension__ ({ \ - int32_t __s0_171 = __p0_171; \ - int32x4_t __s1_171 = __p1_171; \ - int32x4_t __rev1_171; __rev1_171 = __builtin_shufflevector(__s1_171, __s1_171, 3, 2, 1, 0); \ - int64_t __ret_171; \ - __ret_171 = __noswap_vqdmulls_s32(__s0_171, __noswap_vgetq_lane_s32(__rev1_171, __p2_171)); \ - __ret_171; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmullh_laneq_s16(__p0_172, __p1_172, __p2_172) __extension__ ({ \ - int16_t __s0_172 = __p0_172; \ - int16x8_t __s1_172 = __p1_172; \ - int32_t __ret_172; \ - __ret_172 = vqdmullh_s16(__s0_172, vgetq_lane_s16(__s1_172, __p2_172)); \ - __ret_172; \ -}) -#else -#define vqdmullh_laneq_s16(__p0_173, __p1_173, __p2_173) __extension__ ({ \ - int16_t __s0_173 = __p0_173; \ - int16x8_t __s1_173 = __p1_173; \ - int16x8_t __rev1_173; __rev1_173 = __builtin_shufflevector(__s1_173, __s1_173, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32_t __ret_173; \ - __ret_173 = __noswap_vqdmullh_s16(__s0_173, __noswap_vgetq_lane_s16(__rev1_173, __p2_173)); \ - __ret_173; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmull_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int64x2_t __ret; \ - __ret = vqdmull_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmull_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int64x2_t __ret; \ - __ret = __noswap_vqdmull_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqdmull_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vqdmull_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqdmull_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqdmull_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqmovns_s32(int32_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqmovns_s32(__p0); - return __ret; -} -#else -__ai int16_t vqmovns_s32(int32_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqmovns_s32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqmovnd_s64(int64_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqmovnd_s64(__p0); - return __ret; -} -#else -__ai int32_t vqmovnd_s64(int64_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqmovnd_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vqmovnh_s16(int16_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqmovnh_s16(__p0); - return __ret; -} -#else -__ai int8_t vqmovnh_s16(int16_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqmovnh_s16(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vqmovns_u32(uint32_t __p0) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vqmovns_u32(__p0); - return __ret; -} -#else -__ai uint16_t vqmovns_u32(uint32_t __p0) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vqmovns_u32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vqmovnd_u64(uint64_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vqmovnd_u64(__p0); - return __ret; -} -#else -__ai uint32_t vqmovnd_u64(uint64_t __p0) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vqmovnd_u64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vqmovnh_u16(uint16_t __p0) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vqmovnh_u16(__p0); - return __ret; -} -#else -__ai uint8_t vqmovnh_u16(uint16_t __p0) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vqmovnh_u16(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vqmovn_high_u32(uint16x4_t __p0, uint32x4_t __p1) { - uint16x8_t __ret; - __ret = vcombine_u16(__p0, vqmovn_u32(__p1)); - return __ret; -} -#else -__ai uint16x8_t vqmovn_high_u32(uint16x4_t __p0, uint32x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vcombine_u16(__rev0, __noswap_vqmovn_u32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vqmovn_high_u64(uint32x2_t __p0, uint64x2_t __p1) { - uint32x4_t __ret; - __ret = vcombine_u32(__p0, vqmovn_u64(__p1)); - return __ret; -} -#else -__ai uint32x4_t vqmovn_high_u64(uint32x2_t __p0, uint64x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vcombine_u32(__rev0, __noswap_vqmovn_u64(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqmovn_high_u16(uint8x8_t __p0, uint16x8_t __p1) { - uint8x16_t __ret; - __ret = vcombine_u8(__p0, vqmovn_u16(__p1)); - return __ret; -} -#else -__ai uint8x16_t vqmovn_high_u16(uint8x8_t __p0, uint16x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __noswap_vcombine_u8(__rev0, __noswap_vqmovn_u16(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vqmovn_high_s32(int16x4_t __p0, int32x4_t __p1) { - int16x8_t __ret; - __ret = vcombine_s16(__p0, vqmovn_s32(__p1)); - return __ret; -} -#else -__ai int16x8_t vqmovn_high_s32(int16x4_t __p0, int32x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vcombine_s16(__rev0, __noswap_vqmovn_s32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vqmovn_high_s64(int32x2_t __p0, int64x2_t __p1) { - int32x4_t __ret; - __ret = vcombine_s32(__p0, vqmovn_s64(__p1)); - return __ret; -} -#else -__ai int32x4_t vqmovn_high_s64(int32x2_t __p0, int64x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x4_t __ret; - __ret = __noswap_vcombine_s32(__rev0, __noswap_vqmovn_s64(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqmovn_high_s16(int8x8_t __p0, int16x8_t __p1) { - int8x16_t __ret; - __ret = vcombine_s8(__p0, vqmovn_s16(__p1)); - return __ret; -} -#else -__ai int8x16_t vqmovn_high_s16(int8x8_t __p0, int16x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __noswap_vcombine_s8(__rev0, __noswap_vqmovn_s16(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqmovuns_s32(int32_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqmovuns_s32(__p0); - return __ret; -} -#else -__ai int16_t vqmovuns_s32(int32_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqmovuns_s32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqmovund_s64(int64_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqmovund_s64(__p0); - return __ret; -} -#else -__ai int32_t vqmovund_s64(int64_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqmovund_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vqmovunh_s16(int16_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqmovunh_s16(__p0); - return __ret; -} -#else -__ai int8_t vqmovunh_s16(int16_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqmovunh_s16(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vqmovun_high_s32(int16x4_t __p0, int32x4_t __p1) { - uint16x8_t __ret; - __ret = vcombine_u16((uint16x4_t)(__p0), vqmovun_s32(__p1)); - return __ret; -} -#else -__ai uint16x8_t vqmovun_high_s32(int16x4_t __p0, int32x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vcombine_u16((uint16x4_t)(__rev0), __noswap_vqmovun_s32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vqmovun_high_s64(int32x2_t __p0, int64x2_t __p1) { - uint32x4_t __ret; - __ret = vcombine_u32((uint32x2_t)(__p0), vqmovun_s64(__p1)); - return __ret; -} -#else -__ai uint32x4_t vqmovun_high_s64(int32x2_t __p0, int64x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vcombine_u32((uint32x2_t)(__rev0), __noswap_vqmovun_s64(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqmovun_high_s16(int8x8_t __p0, int16x8_t __p1) { - uint8x16_t __ret; - __ret = vcombine_u8((uint8x8_t)(__p0), vqmovun_s16(__p1)); - return __ret; -} -#else -__ai uint8x16_t vqmovun_high_s16(int8x8_t __p0, int16x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __noswap_vcombine_u8((uint8x8_t)(__rev0), __noswap_vqmovun_s16(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vqnegq_s64(int64x2_t __p0) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqnegq_v((int8x16_t)__p0, 35); - return __ret; -} -#else -__ai int64x2_t vqnegq_s64(int64x2_t __p0) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vqnegq_v((int8x16_t)__rev0, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vqneg_s64(int64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqneg_v((int8x8_t)__p0, 3); - return __ret; -} -#else -__ai int64x1_t vqneg_s64(int64x1_t __p0) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vqneg_v((int8x8_t)__p0, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vqnegb_s8(int8_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqnegb_s8(__p0); - return __ret; -} -#else -__ai int8_t vqnegb_s8(int8_t __p0) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqnegb_s8(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqnegs_s32(int32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqnegs_s32(__p0); - return __ret; -} -#else -__ai int32_t vqnegs_s32(int32_t __p0) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqnegs_s32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vqnegd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqnegd_s64(__p0); - return __ret; -} -#else -__ai int64_t vqnegd_s64(int64_t __p0) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqnegd_s64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqnegh_s16(int16_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqnegh_s16(__p0); - return __ret; -} -#else -__ai int16_t vqnegh_s16(int16_t __p0) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqnegh_s16(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqrdmulhs_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqrdmulhs_s32(__p0, __p1); - return __ret; -} -#else -__ai int32_t vqrdmulhs_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqrdmulhs_s32(__p0, __p1); - return __ret; -} -__ai int32_t __noswap_vqrdmulhs_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqrdmulhs_s32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqrdmulhh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqrdmulhh_s16(__p0, __p1); - return __ret; -} -#else -__ai int16_t vqrdmulhh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqrdmulhh_s16(__p0, __p1); - return __ret; -} -__ai int16_t __noswap_vqrdmulhh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqrdmulhh_s16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulhs_lane_s32(__p0_174, __p1_174, __p2_174) __extension__ ({ \ - int32_t __s0_174 = __p0_174; \ - int32x2_t __s1_174 = __p1_174; \ - int32_t __ret_174; \ - __ret_174 = vqrdmulhs_s32(__s0_174, vget_lane_s32(__s1_174, __p2_174)); \ - __ret_174; \ -}) -#else -#define vqrdmulhs_lane_s32(__p0_175, __p1_175, __p2_175) __extension__ ({ \ - int32_t __s0_175 = __p0_175; \ - int32x2_t __s1_175 = __p1_175; \ - int32x2_t __rev1_175; __rev1_175 = __builtin_shufflevector(__s1_175, __s1_175, 1, 0); \ - int32_t __ret_175; \ - __ret_175 = __noswap_vqrdmulhs_s32(__s0_175, __noswap_vget_lane_s32(__rev1_175, __p2_175)); \ - __ret_175; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulhh_lane_s16(__p0_176, __p1_176, __p2_176) __extension__ ({ \ - int16_t __s0_176 = __p0_176; \ - int16x4_t __s1_176 = __p1_176; \ - int16_t __ret_176; \ - __ret_176 = vqrdmulhh_s16(__s0_176, vget_lane_s16(__s1_176, __p2_176)); \ - __ret_176; \ -}) -#else -#define vqrdmulhh_lane_s16(__p0_177, __p1_177, __p2_177) __extension__ ({ \ - int16_t __s0_177 = __p0_177; \ - int16x4_t __s1_177 = __p1_177; \ - int16x4_t __rev1_177; __rev1_177 = __builtin_shufflevector(__s1_177, __s1_177, 3, 2, 1, 0); \ - int16_t __ret_177; \ - __ret_177 = __noswap_vqrdmulhh_s16(__s0_177, __noswap_vget_lane_s16(__rev1_177, __p2_177)); \ - __ret_177; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulhs_laneq_s32(__p0_178, __p1_178, __p2_178) __extension__ ({ \ - int32_t __s0_178 = __p0_178; \ - int32x4_t __s1_178 = __p1_178; \ - int32_t __ret_178; \ - __ret_178 = vqrdmulhs_s32(__s0_178, vgetq_lane_s32(__s1_178, __p2_178)); \ - __ret_178; \ -}) -#else -#define vqrdmulhs_laneq_s32(__p0_179, __p1_179, __p2_179) __extension__ ({ \ - int32_t __s0_179 = __p0_179; \ - int32x4_t __s1_179 = __p1_179; \ - int32x4_t __rev1_179; __rev1_179 = __builtin_shufflevector(__s1_179, __s1_179, 3, 2, 1, 0); \ - int32_t __ret_179; \ - __ret_179 = __noswap_vqrdmulhs_s32(__s0_179, __noswap_vgetq_lane_s32(__rev1_179, __p2_179)); \ - __ret_179; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulhh_laneq_s16(__p0_180, __p1_180, __p2_180) __extension__ ({ \ - int16_t __s0_180 = __p0_180; \ - int16x8_t __s1_180 = __p1_180; \ - int16_t __ret_180; \ - __ret_180 = vqrdmulhh_s16(__s0_180, vgetq_lane_s16(__s1_180, __p2_180)); \ - __ret_180; \ -}) -#else -#define vqrdmulhh_laneq_s16(__p0_181, __p1_181, __p2_181) __extension__ ({ \ - int16_t __s0_181 = __p0_181; \ - int16x8_t __s1_181 = __p1_181; \ - int16x8_t __rev1_181; __rev1_181 = __builtin_shufflevector(__s1_181, __s1_181, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16_t __ret_181; \ - __ret_181 = __noswap_vqrdmulhh_s16(__s0_181, __noswap_vgetq_lane_s16(__rev1_181, __p2_181)); \ - __ret_181; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulhq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __ret; \ - __ret = vqrdmulhq_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqrdmulhq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __noswap_vqrdmulhq_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulhq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __ret; \ - __ret = vqrdmulhq_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqrdmulhq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x8_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret; \ - __ret = __noswap_vqrdmulhq_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulh_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __ret; \ - __ret = vqrdmulh_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqrdmulh_laneq_s32(__p0, __p1, __p2) __extension__ ({ \ - int32x2_t __s0 = __p0; \ - int32x4_t __s1 = __p1; \ - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int32x2_t __ret; \ - __ret = __noswap_vqrdmulh_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmulh_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __ret; \ - __ret = vqrdmulh_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \ - __ret; \ -}) -#else -#define vqrdmulh_laneq_s16(__p0, __p1, __p2) __extension__ ({ \ - int16x4_t __s0 = __p0; \ - int16x8_t __s1 = __p1; \ - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x4_t __ret; \ - __ret = __noswap_vqrdmulh_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vqrshlb_u8(uint8_t __p0, uint8_t __p1) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vqrshlb_u8(__p0, __p1); - return __ret; -} -#else -__ai uint8_t vqrshlb_u8(uint8_t __p0, uint8_t __p1) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vqrshlb_u8(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vqrshls_u32(uint32_t __p0, uint32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vqrshls_u32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vqrshls_u32(uint32_t __p0, uint32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vqrshls_u32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vqrshld_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vqrshld_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vqrshld_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vqrshld_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vqrshlh_u16(uint16_t __p0, uint16_t __p1) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vqrshlh_u16(__p0, __p1); - return __ret; -} -#else -__ai uint16_t vqrshlh_u16(uint16_t __p0, uint16_t __p1) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vqrshlh_u16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vqrshlb_s8(int8_t __p0, int8_t __p1) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqrshlb_s8(__p0, __p1); - return __ret; -} -#else -__ai int8_t vqrshlb_s8(int8_t __p0, int8_t __p1) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqrshlb_s8(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqrshls_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqrshls_s32(__p0, __p1); - return __ret; -} -#else -__ai int32_t vqrshls_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqrshls_s32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vqrshld_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqrshld_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vqrshld_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqrshld_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqrshlh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqrshlh_s16(__p0, __p1); - return __ret; -} -#else -__ai int16_t vqrshlh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqrshlh_s16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_high_n_u32(__p0_182, __p1_182, __p2_182) __extension__ ({ \ - uint16x4_t __s0_182 = __p0_182; \ - uint32x4_t __s1_182 = __p1_182; \ - uint16x8_t __ret_182; \ - __ret_182 = (uint16x8_t)(vcombine_u16((uint16x4_t)(__s0_182), (uint16x4_t)(vqrshrn_n_u32(__s1_182, __p2_182)))); \ - __ret_182; \ -}) -#else -#define vqrshrn_high_n_u32(__p0_183, __p1_183, __p2_183) __extension__ ({ \ - uint16x4_t __s0_183 = __p0_183; \ - uint32x4_t __s1_183 = __p1_183; \ - uint16x4_t __rev0_183; __rev0_183 = __builtin_shufflevector(__s0_183, __s0_183, 3, 2, 1, 0); \ - uint32x4_t __rev1_183; __rev1_183 = __builtin_shufflevector(__s1_183, __s1_183, 3, 2, 1, 0); \ - uint16x8_t __ret_183; \ - __ret_183 = (uint16x8_t)(__noswap_vcombine_u16((uint16x4_t)(__rev0_183), (uint16x4_t)(__noswap_vqrshrn_n_u32(__rev1_183, __p2_183)))); \ - __ret_183 = __builtin_shufflevector(__ret_183, __ret_183, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_183; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_high_n_u64(__p0_184, __p1_184, __p2_184) __extension__ ({ \ - uint32x2_t __s0_184 = __p0_184; \ - uint64x2_t __s1_184 = __p1_184; \ - uint32x4_t __ret_184; \ - __ret_184 = (uint32x4_t)(vcombine_u32((uint32x2_t)(__s0_184), (uint32x2_t)(vqrshrn_n_u64(__s1_184, __p2_184)))); \ - __ret_184; \ -}) -#else -#define vqrshrn_high_n_u64(__p0_185, __p1_185, __p2_185) __extension__ ({ \ - uint32x2_t __s0_185 = __p0_185; \ - uint64x2_t __s1_185 = __p1_185; \ - uint32x2_t __rev0_185; __rev0_185 = __builtin_shufflevector(__s0_185, __s0_185, 1, 0); \ - uint64x2_t __rev1_185; __rev1_185 = __builtin_shufflevector(__s1_185, __s1_185, 1, 0); \ - uint32x4_t __ret_185; \ - __ret_185 = (uint32x4_t)(__noswap_vcombine_u32((uint32x2_t)(__rev0_185), (uint32x2_t)(__noswap_vqrshrn_n_u64(__rev1_185, __p2_185)))); \ - __ret_185 = __builtin_shufflevector(__ret_185, __ret_185, 3, 2, 1, 0); \ - __ret_185; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_high_n_u16(__p0_186, __p1_186, __p2_186) __extension__ ({ \ - uint8x8_t __s0_186 = __p0_186; \ - uint16x8_t __s1_186 = __p1_186; \ - uint8x16_t __ret_186; \ - __ret_186 = (uint8x16_t)(vcombine_u8((uint8x8_t)(__s0_186), (uint8x8_t)(vqrshrn_n_u16(__s1_186, __p2_186)))); \ - __ret_186; \ -}) -#else -#define vqrshrn_high_n_u16(__p0_187, __p1_187, __p2_187) __extension__ ({ \ - uint8x8_t __s0_187 = __p0_187; \ - uint16x8_t __s1_187 = __p1_187; \ - uint8x8_t __rev0_187; __rev0_187 = __builtin_shufflevector(__s0_187, __s0_187, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1_187; __rev1_187 = __builtin_shufflevector(__s1_187, __s1_187, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret_187; \ - __ret_187 = (uint8x16_t)(__noswap_vcombine_u8((uint8x8_t)(__rev0_187), (uint8x8_t)(__noswap_vqrshrn_n_u16(__rev1_187, __p2_187)))); \ - __ret_187 = __builtin_shufflevector(__ret_187, __ret_187, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_187; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_high_n_s32(__p0_188, __p1_188, __p2_188) __extension__ ({ \ - int16x4_t __s0_188 = __p0_188; \ - int32x4_t __s1_188 = __p1_188; \ - int16x8_t __ret_188; \ - __ret_188 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_188), (int16x4_t)(vqrshrn_n_s32(__s1_188, __p2_188)))); \ - __ret_188; \ -}) -#else -#define vqrshrn_high_n_s32(__p0_189, __p1_189, __p2_189) __extension__ ({ \ - int16x4_t __s0_189 = __p0_189; \ - int32x4_t __s1_189 = __p1_189; \ - int16x4_t __rev0_189; __rev0_189 = __builtin_shufflevector(__s0_189, __s0_189, 3, 2, 1, 0); \ - int32x4_t __rev1_189; __rev1_189 = __builtin_shufflevector(__s1_189, __s1_189, 3, 2, 1, 0); \ - int16x8_t __ret_189; \ - __ret_189 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_189), (int16x4_t)(__noswap_vqrshrn_n_s32(__rev1_189, __p2_189)))); \ - __ret_189 = __builtin_shufflevector(__ret_189, __ret_189, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_189; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_high_n_s64(__p0_190, __p1_190, __p2_190) __extension__ ({ \ - int32x2_t __s0_190 = __p0_190; \ - int64x2_t __s1_190 = __p1_190; \ - int32x4_t __ret_190; \ - __ret_190 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_190), (int32x2_t)(vqrshrn_n_s64(__s1_190, __p2_190)))); \ - __ret_190; \ -}) -#else -#define vqrshrn_high_n_s64(__p0_191, __p1_191, __p2_191) __extension__ ({ \ - int32x2_t __s0_191 = __p0_191; \ - int64x2_t __s1_191 = __p1_191; \ - int32x2_t __rev0_191; __rev0_191 = __builtin_shufflevector(__s0_191, __s0_191, 1, 0); \ - int64x2_t __rev1_191; __rev1_191 = __builtin_shufflevector(__s1_191, __s1_191, 1, 0); \ - int32x4_t __ret_191; \ - __ret_191 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_191), (int32x2_t)(__noswap_vqrshrn_n_s64(__rev1_191, __p2_191)))); \ - __ret_191 = __builtin_shufflevector(__ret_191, __ret_191, 3, 2, 1, 0); \ - __ret_191; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrn_high_n_s16(__p0_192, __p1_192, __p2_192) __extension__ ({ \ - int8x8_t __s0_192 = __p0_192; \ - int16x8_t __s1_192 = __p1_192; \ - int8x16_t __ret_192; \ - __ret_192 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_192), (int8x8_t)(vqrshrn_n_s16(__s1_192, __p2_192)))); \ - __ret_192; \ -}) -#else -#define vqrshrn_high_n_s16(__p0_193, __p1_193, __p2_193) __extension__ ({ \ - int8x8_t __s0_193 = __p0_193; \ - int16x8_t __s1_193 = __p1_193; \ - int8x8_t __rev0_193; __rev0_193 = __builtin_shufflevector(__s0_193, __s0_193, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1_193; __rev1_193 = __builtin_shufflevector(__s1_193, __s1_193, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret_193; \ - __ret_193 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_193), (int8x8_t)(__noswap_vqrshrn_n_s16(__rev1_193, __p2_193)))); \ - __ret_193 = __builtin_shufflevector(__ret_193, __ret_193, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_193; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrns_n_u32(__p0, __p1) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vqrshrns_n_u32(__s0, __p1); \ - __ret; \ -}) -#else -#define vqrshrns_n_u32(__p0, __p1) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vqrshrns_n_u32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrnd_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vqrshrnd_n_u64(__s0, __p1); \ - __ret; \ -}) -#else -#define vqrshrnd_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vqrshrnd_n_u64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrnh_n_u16(__p0, __p1) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vqrshrnh_n_u16(__s0, __p1); \ - __ret; \ -}) -#else -#define vqrshrnh_n_u16(__p0, __p1) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vqrshrnh_n_u16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrns_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqrshrns_n_s32(__s0, __p1); \ - __ret; \ -}) -#else -#define vqrshrns_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqrshrns_n_s32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrnd_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqrshrnd_n_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vqrshrnd_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqrshrnd_n_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrnh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqrshrnh_n_s16(__s0, __p1); \ - __ret; \ -}) -#else -#define vqrshrnh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqrshrnh_n_s16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrun_high_n_s32(__p0_194, __p1_194, __p2_194) __extension__ ({ \ - int16x4_t __s0_194 = __p0_194; \ - int32x4_t __s1_194 = __p1_194; \ - int16x8_t __ret_194; \ - __ret_194 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_194), (int16x4_t)(vqrshrun_n_s32(__s1_194, __p2_194)))); \ - __ret_194; \ -}) -#else -#define vqrshrun_high_n_s32(__p0_195, __p1_195, __p2_195) __extension__ ({ \ - int16x4_t __s0_195 = __p0_195; \ - int32x4_t __s1_195 = __p1_195; \ - int16x4_t __rev0_195; __rev0_195 = __builtin_shufflevector(__s0_195, __s0_195, 3, 2, 1, 0); \ - int32x4_t __rev1_195; __rev1_195 = __builtin_shufflevector(__s1_195, __s1_195, 3, 2, 1, 0); \ - int16x8_t __ret_195; \ - __ret_195 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_195), (int16x4_t)(__noswap_vqrshrun_n_s32(__rev1_195, __p2_195)))); \ - __ret_195 = __builtin_shufflevector(__ret_195, __ret_195, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_195; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrun_high_n_s64(__p0_196, __p1_196, __p2_196) __extension__ ({ \ - int32x2_t __s0_196 = __p0_196; \ - int64x2_t __s1_196 = __p1_196; \ - int32x4_t __ret_196; \ - __ret_196 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_196), (int32x2_t)(vqrshrun_n_s64(__s1_196, __p2_196)))); \ - __ret_196; \ -}) -#else -#define vqrshrun_high_n_s64(__p0_197, __p1_197, __p2_197) __extension__ ({ \ - int32x2_t __s0_197 = __p0_197; \ - int64x2_t __s1_197 = __p1_197; \ - int32x2_t __rev0_197; __rev0_197 = __builtin_shufflevector(__s0_197, __s0_197, 1, 0); \ - int64x2_t __rev1_197; __rev1_197 = __builtin_shufflevector(__s1_197, __s1_197, 1, 0); \ - int32x4_t __ret_197; \ - __ret_197 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_197), (int32x2_t)(__noswap_vqrshrun_n_s64(__rev1_197, __p2_197)))); \ - __ret_197 = __builtin_shufflevector(__ret_197, __ret_197, 3, 2, 1, 0); \ - __ret_197; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrun_high_n_s16(__p0_198, __p1_198, __p2_198) __extension__ ({ \ - int8x8_t __s0_198 = __p0_198; \ - int16x8_t __s1_198 = __p1_198; \ - int8x16_t __ret_198; \ - __ret_198 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_198), (int8x8_t)(vqrshrun_n_s16(__s1_198, __p2_198)))); \ - __ret_198; \ -}) -#else -#define vqrshrun_high_n_s16(__p0_199, __p1_199, __p2_199) __extension__ ({ \ - int8x8_t __s0_199 = __p0_199; \ - int16x8_t __s1_199 = __p1_199; \ - int8x8_t __rev0_199; __rev0_199 = __builtin_shufflevector(__s0_199, __s0_199, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1_199; __rev1_199 = __builtin_shufflevector(__s1_199, __s1_199, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret_199; \ - __ret_199 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_199), (int8x8_t)(__noswap_vqrshrun_n_s16(__rev1_199, __p2_199)))); \ - __ret_199 = __builtin_shufflevector(__ret_199, __ret_199, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_199; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshruns_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqrshruns_n_s32(__s0, __p1); \ - __ret; \ -}) -#else -#define vqrshruns_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqrshruns_n_s32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrund_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqrshrund_n_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vqrshrund_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqrshrund_n_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrshrunh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqrshrunh_n_s16(__s0, __p1); \ - __ret; \ -}) -#else -#define vqrshrunh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqrshrunh_n_s16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vqshlb_u8(uint8_t __p0, uint8_t __p1) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vqshlb_u8(__p0, __p1); - return __ret; -} -#else -__ai uint8_t vqshlb_u8(uint8_t __p0, uint8_t __p1) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vqshlb_u8(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vqshls_u32(uint32_t __p0, uint32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vqshls_u32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vqshls_u32(uint32_t __p0, uint32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vqshls_u32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vqshld_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vqshld_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vqshld_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vqshld_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vqshlh_u16(uint16_t __p0, uint16_t __p1) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vqshlh_u16(__p0, __p1); - return __ret; -} -#else -__ai uint16_t vqshlh_u16(uint16_t __p0, uint16_t __p1) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vqshlh_u16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vqshlb_s8(int8_t __p0, int8_t __p1) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqshlb_s8(__p0, __p1); - return __ret; -} -#else -__ai int8_t vqshlb_s8(int8_t __p0, int8_t __p1) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqshlb_s8(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqshls_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqshls_s32(__p0, __p1); - return __ret; -} -#else -__ai int32_t vqshls_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqshls_s32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vqshld_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqshld_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vqshld_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqshld_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqshlh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqshlh_s16(__p0, __p1); - return __ret; -} -#else -__ai int16_t vqshlh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqshlh_s16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlb_n_u8(__p0, __p1) __extension__ ({ \ - uint8_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vqshlb_n_u8(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshlb_n_u8(__p0, __p1) __extension__ ({ \ - uint8_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vqshlb_n_u8(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshls_n_u32(__p0, __p1) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vqshls_n_u32(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshls_n_u32(__p0, __p1) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vqshls_n_u32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshld_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vqshld_n_u64(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshld_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vqshld_n_u64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlh_n_u16(__p0, __p1) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vqshlh_n_u16(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshlh_n_u16(__p0, __p1) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vqshlh_n_u16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlb_n_s8(__p0, __p1) __extension__ ({ \ - int8_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqshlb_n_s8(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshlb_n_s8(__p0, __p1) __extension__ ({ \ - int8_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqshlb_n_s8(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshls_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqshls_n_s32(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshls_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqshls_n_s32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshld_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqshld_n_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshld_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqshld_n_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqshlh_n_s16(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshlh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqshlh_n_s16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlub_n_s8(__p0, __p1) __extension__ ({ \ - int8_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqshlub_n_s8(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshlub_n_s8(__p0, __p1) __extension__ ({ \ - int8_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqshlub_n_s8(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlus_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqshlus_n_s32(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshlus_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqshlus_n_s32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshlud_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqshlud_n_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshlud_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vqshlud_n_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshluh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqshluh_n_s16(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshluh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqshluh_n_s16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_high_n_u32(__p0_200, __p1_200, __p2_200) __extension__ ({ \ - uint16x4_t __s0_200 = __p0_200; \ - uint32x4_t __s1_200 = __p1_200; \ - uint16x8_t __ret_200; \ - __ret_200 = (uint16x8_t)(vcombine_u16((uint16x4_t)(__s0_200), (uint16x4_t)(vqshrn_n_u32(__s1_200, __p2_200)))); \ - __ret_200; \ -}) -#else -#define vqshrn_high_n_u32(__p0_201, __p1_201, __p2_201) __extension__ ({ \ - uint16x4_t __s0_201 = __p0_201; \ - uint32x4_t __s1_201 = __p1_201; \ - uint16x4_t __rev0_201; __rev0_201 = __builtin_shufflevector(__s0_201, __s0_201, 3, 2, 1, 0); \ - uint32x4_t __rev1_201; __rev1_201 = __builtin_shufflevector(__s1_201, __s1_201, 3, 2, 1, 0); \ - uint16x8_t __ret_201; \ - __ret_201 = (uint16x8_t)(__noswap_vcombine_u16((uint16x4_t)(__rev0_201), (uint16x4_t)(__noswap_vqshrn_n_u32(__rev1_201, __p2_201)))); \ - __ret_201 = __builtin_shufflevector(__ret_201, __ret_201, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_201; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_high_n_u64(__p0_202, __p1_202, __p2_202) __extension__ ({ \ - uint32x2_t __s0_202 = __p0_202; \ - uint64x2_t __s1_202 = __p1_202; \ - uint32x4_t __ret_202; \ - __ret_202 = (uint32x4_t)(vcombine_u32((uint32x2_t)(__s0_202), (uint32x2_t)(vqshrn_n_u64(__s1_202, __p2_202)))); \ - __ret_202; \ -}) -#else -#define vqshrn_high_n_u64(__p0_203, __p1_203, __p2_203) __extension__ ({ \ - uint32x2_t __s0_203 = __p0_203; \ - uint64x2_t __s1_203 = __p1_203; \ - uint32x2_t __rev0_203; __rev0_203 = __builtin_shufflevector(__s0_203, __s0_203, 1, 0); \ - uint64x2_t __rev1_203; __rev1_203 = __builtin_shufflevector(__s1_203, __s1_203, 1, 0); \ - uint32x4_t __ret_203; \ - __ret_203 = (uint32x4_t)(__noswap_vcombine_u32((uint32x2_t)(__rev0_203), (uint32x2_t)(__noswap_vqshrn_n_u64(__rev1_203, __p2_203)))); \ - __ret_203 = __builtin_shufflevector(__ret_203, __ret_203, 3, 2, 1, 0); \ - __ret_203; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_high_n_u16(__p0_204, __p1_204, __p2_204) __extension__ ({ \ - uint8x8_t __s0_204 = __p0_204; \ - uint16x8_t __s1_204 = __p1_204; \ - uint8x16_t __ret_204; \ - __ret_204 = (uint8x16_t)(vcombine_u8((uint8x8_t)(__s0_204), (uint8x8_t)(vqshrn_n_u16(__s1_204, __p2_204)))); \ - __ret_204; \ -}) -#else -#define vqshrn_high_n_u16(__p0_205, __p1_205, __p2_205) __extension__ ({ \ - uint8x8_t __s0_205 = __p0_205; \ - uint16x8_t __s1_205 = __p1_205; \ - uint8x8_t __rev0_205; __rev0_205 = __builtin_shufflevector(__s0_205, __s0_205, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1_205; __rev1_205 = __builtin_shufflevector(__s1_205, __s1_205, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret_205; \ - __ret_205 = (uint8x16_t)(__noswap_vcombine_u8((uint8x8_t)(__rev0_205), (uint8x8_t)(__noswap_vqshrn_n_u16(__rev1_205, __p2_205)))); \ - __ret_205 = __builtin_shufflevector(__ret_205, __ret_205, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_205; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_high_n_s32(__p0_206, __p1_206, __p2_206) __extension__ ({ \ - int16x4_t __s0_206 = __p0_206; \ - int32x4_t __s1_206 = __p1_206; \ - int16x8_t __ret_206; \ - __ret_206 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_206), (int16x4_t)(vqshrn_n_s32(__s1_206, __p2_206)))); \ - __ret_206; \ -}) -#else -#define vqshrn_high_n_s32(__p0_207, __p1_207, __p2_207) __extension__ ({ \ - int16x4_t __s0_207 = __p0_207; \ - int32x4_t __s1_207 = __p1_207; \ - int16x4_t __rev0_207; __rev0_207 = __builtin_shufflevector(__s0_207, __s0_207, 3, 2, 1, 0); \ - int32x4_t __rev1_207; __rev1_207 = __builtin_shufflevector(__s1_207, __s1_207, 3, 2, 1, 0); \ - int16x8_t __ret_207; \ - __ret_207 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_207), (int16x4_t)(__noswap_vqshrn_n_s32(__rev1_207, __p2_207)))); \ - __ret_207 = __builtin_shufflevector(__ret_207, __ret_207, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_207; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_high_n_s64(__p0_208, __p1_208, __p2_208) __extension__ ({ \ - int32x2_t __s0_208 = __p0_208; \ - int64x2_t __s1_208 = __p1_208; \ - int32x4_t __ret_208; \ - __ret_208 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_208), (int32x2_t)(vqshrn_n_s64(__s1_208, __p2_208)))); \ - __ret_208; \ -}) -#else -#define vqshrn_high_n_s64(__p0_209, __p1_209, __p2_209) __extension__ ({ \ - int32x2_t __s0_209 = __p0_209; \ - int64x2_t __s1_209 = __p1_209; \ - int32x2_t __rev0_209; __rev0_209 = __builtin_shufflevector(__s0_209, __s0_209, 1, 0); \ - int64x2_t __rev1_209; __rev1_209 = __builtin_shufflevector(__s1_209, __s1_209, 1, 0); \ - int32x4_t __ret_209; \ - __ret_209 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_209), (int32x2_t)(__noswap_vqshrn_n_s64(__rev1_209, __p2_209)))); \ - __ret_209 = __builtin_shufflevector(__ret_209, __ret_209, 3, 2, 1, 0); \ - __ret_209; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrn_high_n_s16(__p0_210, __p1_210, __p2_210) __extension__ ({ \ - int8x8_t __s0_210 = __p0_210; \ - int16x8_t __s1_210 = __p1_210; \ - int8x16_t __ret_210; \ - __ret_210 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_210), (int8x8_t)(vqshrn_n_s16(__s1_210, __p2_210)))); \ - __ret_210; \ -}) -#else -#define vqshrn_high_n_s16(__p0_211, __p1_211, __p2_211) __extension__ ({ \ - int8x8_t __s0_211 = __p0_211; \ - int16x8_t __s1_211 = __p1_211; \ - int8x8_t __rev0_211; __rev0_211 = __builtin_shufflevector(__s0_211, __s0_211, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1_211; __rev1_211 = __builtin_shufflevector(__s1_211, __s1_211, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret_211; \ - __ret_211 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_211), (int8x8_t)(__noswap_vqshrn_n_s16(__rev1_211, __p2_211)))); \ - __ret_211 = __builtin_shufflevector(__ret_211, __ret_211, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_211; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrns_n_u32(__p0, __p1) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vqshrns_n_u32(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshrns_n_u32(__p0, __p1) __extension__ ({ \ - uint32_t __s0 = __p0; \ - uint16_t __ret; \ - __ret = (uint16_t) __builtin_neon_vqshrns_n_u32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrnd_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vqshrnd_n_u64(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshrnd_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint32_t __ret; \ - __ret = (uint32_t) __builtin_neon_vqshrnd_n_u64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrnh_n_u16(__p0, __p1) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vqshrnh_n_u16(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshrnh_n_u16(__p0, __p1) __extension__ ({ \ - uint16_t __s0 = __p0; \ - uint8_t __ret; \ - __ret = (uint8_t) __builtin_neon_vqshrnh_n_u16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrns_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqshrns_n_s32(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshrns_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqshrns_n_s32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrnd_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqshrnd_n_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshrnd_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqshrnd_n_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrnh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqshrnh_n_s16(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshrnh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqshrnh_n_s16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrun_high_n_s32(__p0_212, __p1_212, __p2_212) __extension__ ({ \ - int16x4_t __s0_212 = __p0_212; \ - int32x4_t __s1_212 = __p1_212; \ - int16x8_t __ret_212; \ - __ret_212 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_212), (int16x4_t)(vqshrun_n_s32(__s1_212, __p2_212)))); \ - __ret_212; \ -}) -#else -#define vqshrun_high_n_s32(__p0_213, __p1_213, __p2_213) __extension__ ({ \ - int16x4_t __s0_213 = __p0_213; \ - int32x4_t __s1_213 = __p1_213; \ - int16x4_t __rev0_213; __rev0_213 = __builtin_shufflevector(__s0_213, __s0_213, 3, 2, 1, 0); \ - int32x4_t __rev1_213; __rev1_213 = __builtin_shufflevector(__s1_213, __s1_213, 3, 2, 1, 0); \ - int16x8_t __ret_213; \ - __ret_213 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_213), (int16x4_t)(__noswap_vqshrun_n_s32(__rev1_213, __p2_213)))); \ - __ret_213 = __builtin_shufflevector(__ret_213, __ret_213, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_213; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrun_high_n_s64(__p0_214, __p1_214, __p2_214) __extension__ ({ \ - int32x2_t __s0_214 = __p0_214; \ - int64x2_t __s1_214 = __p1_214; \ - int32x4_t __ret_214; \ - __ret_214 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_214), (int32x2_t)(vqshrun_n_s64(__s1_214, __p2_214)))); \ - __ret_214; \ -}) -#else -#define vqshrun_high_n_s64(__p0_215, __p1_215, __p2_215) __extension__ ({ \ - int32x2_t __s0_215 = __p0_215; \ - int64x2_t __s1_215 = __p1_215; \ - int32x2_t __rev0_215; __rev0_215 = __builtin_shufflevector(__s0_215, __s0_215, 1, 0); \ - int64x2_t __rev1_215; __rev1_215 = __builtin_shufflevector(__s1_215, __s1_215, 1, 0); \ - int32x4_t __ret_215; \ - __ret_215 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_215), (int32x2_t)(__noswap_vqshrun_n_s64(__rev1_215, __p2_215)))); \ - __ret_215 = __builtin_shufflevector(__ret_215, __ret_215, 3, 2, 1, 0); \ - __ret_215; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrun_high_n_s16(__p0_216, __p1_216, __p2_216) __extension__ ({ \ - int8x8_t __s0_216 = __p0_216; \ - int16x8_t __s1_216 = __p1_216; \ - int8x16_t __ret_216; \ - __ret_216 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_216), (int8x8_t)(vqshrun_n_s16(__s1_216, __p2_216)))); \ - __ret_216; \ -}) -#else -#define vqshrun_high_n_s16(__p0_217, __p1_217, __p2_217) __extension__ ({ \ - int8x8_t __s0_217 = __p0_217; \ - int16x8_t __s1_217 = __p1_217; \ - int8x8_t __rev0_217; __rev0_217 = __builtin_shufflevector(__s0_217, __s0_217, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1_217; __rev1_217 = __builtin_shufflevector(__s1_217, __s1_217, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret_217; \ - __ret_217 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_217), (int8x8_t)(__noswap_vqshrun_n_s16(__rev1_217, __p2_217)))); \ - __ret_217 = __builtin_shufflevector(__ret_217, __ret_217, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_217; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshruns_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqshruns_n_s32(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshruns_n_s32(__p0, __p1) __extension__ ({ \ - int32_t __s0 = __p0; \ - int16_t __ret; \ - __ret = (int16_t) __builtin_neon_vqshruns_n_s32(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrund_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqshrund_n_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshrund_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int32_t __ret; \ - __ret = (int32_t) __builtin_neon_vqshrund_n_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqshrunh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqshrunh_n_s16(__s0, __p1); \ - __ret; \ -}) -#else -#define vqshrunh_n_s16(__p0, __p1) __extension__ ({ \ - int16_t __s0 = __p0; \ - int8_t __ret; \ - __ret = (int8_t) __builtin_neon_vqshrunh_n_s16(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vqsubb_u8(uint8_t __p0, uint8_t __p1) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vqsubb_u8(__p0, __p1); - return __ret; -} -#else -__ai uint8_t vqsubb_u8(uint8_t __p0, uint8_t __p1) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vqsubb_u8(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vqsubs_u32(uint32_t __p0, uint32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vqsubs_u32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vqsubs_u32(uint32_t __p0, uint32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vqsubs_u32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vqsubd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vqsubd_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vqsubd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vqsubd_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vqsubh_u16(uint16_t __p0, uint16_t __p1) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vqsubh_u16(__p0, __p1); - return __ret; -} -#else -__ai uint16_t vqsubh_u16(uint16_t __p0, uint16_t __p1) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vqsubh_u16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vqsubb_s8(int8_t __p0, int8_t __p1) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqsubb_s8(__p0, __p1); - return __ret; -} -#else -__ai int8_t vqsubb_s8(int8_t __p0, int8_t __p1) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vqsubb_s8(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqsubs_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqsubs_s32(__p0, __p1); - return __ret; -} -#else -__ai int32_t vqsubs_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqsubs_s32(__p0, __p1); - return __ret; -} -__ai int32_t __noswap_vqsubs_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vqsubs_s32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vqsubd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqsubd_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vqsubd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vqsubd_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqsubh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqsubh_s16(__p0, __p1); - return __ret; -} -#else -__ai int16_t vqsubh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqsubh_s16(__p0, __p1); - return __ret; -} -__ai int16_t __noswap_vqsubh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vqsubh_s16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vqtbl1_p8(poly8x16_t __p0, uint8x8_t __p1) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__p0, (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8_t vqtbl1_p8(poly8x16_t __p0, uint8x8_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__rev0, (int8x8_t)__rev1, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vqtbl1q_p8(poly8x16_t __p0, uint8x16_t __p1) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__p0, (int8x16_t)__p1, 36); - return __ret; -} -#else -__ai poly8x16_t vqtbl1q_p8(poly8x16_t __p0, uint8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqtbl1q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vqtbl1q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqtbl1q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vqtbl1q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqtbl1_u8(uint8x16_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vqtbl1_u8(uint8x16_t __p0, uint8x8_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqtbl1_s8(int8x16_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vqtbl1_s8(int8x16_t __p0, int8x8_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vqtbl2_p8(poly8x16x2_t __p0, uint8x8_t __p1) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8_t vqtbl2_p8(poly8x16x2_t __p0, uint8x8_t __p1) { - poly8x16x2_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x8_t)__rev1, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vqtbl2q_p8(poly8x16x2_t __p0, uint8x16_t __p1) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p1, 36); - return __ret; -} -#else -__ai poly8x16_t vqtbl2q_p8(poly8x16x2_t __p0, uint8x16_t __p1) { - poly8x16x2_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev1, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqtbl2q_u8(uint8x16x2_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vqtbl2q_u8(uint8x16x2_t __p0, uint8x16_t __p1) { - uint8x16x2_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqtbl2q_s8(int8x16x2_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vqtbl2q_s8(int8x16x2_t __p0, int8x16_t __p1) { - int8x16x2_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqtbl2_u8(uint8x16x2_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vqtbl2_u8(uint8x16x2_t __p0, uint8x8_t __p1) { - uint8x16x2_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqtbl2_s8(int8x16x2_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vqtbl2_s8(int8x16x2_t __p0, int8x8_t __p1) { - int8x16x2_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vqtbl3_p8(poly8x16x3_t __p0, uint8x8_t __p1) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8_t vqtbl3_p8(poly8x16x3_t __p0, uint8x8_t __p1) { - poly8x16x3_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x8_t)__rev1, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vqtbl3q_p8(poly8x16x3_t __p0, uint8x16_t __p1) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p1, 36); - return __ret; -} -#else -__ai poly8x16_t vqtbl3q_p8(poly8x16x3_t __p0, uint8x16_t __p1) { - poly8x16x3_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev1, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqtbl3q_u8(uint8x16x3_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vqtbl3q_u8(uint8x16x3_t __p0, uint8x16_t __p1) { - uint8x16x3_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqtbl3q_s8(int8x16x3_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vqtbl3q_s8(int8x16x3_t __p0, int8x16_t __p1) { - int8x16x3_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqtbl3_u8(uint8x16x3_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vqtbl3_u8(uint8x16x3_t __p0, uint8x8_t __p1) { - uint8x16x3_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqtbl3_s8(int8x16x3_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vqtbl3_s8(int8x16x3_t __p0, int8x8_t __p1) { - int8x16x3_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vqtbl4_p8(poly8x16x4_t __p0, uint8x8_t __p1) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x8_t)__p1, 4); - return __ret; -} -#else -__ai poly8x8_t vqtbl4_p8(poly8x16x4_t __p0, uint8x8_t __p1) { - poly8x16x4_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x8_t)__rev1, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vqtbl4q_p8(poly8x16x4_t __p0, uint8x16_t __p1) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x16_t)__p1, 36); - return __ret; -} -#else -__ai poly8x16_t vqtbl4q_p8(poly8x16x4_t __p0, uint8x16_t __p1) { - poly8x16x4_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x16_t)__rev1, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqtbl4q_u8(uint8x16x4_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vqtbl4q_u8(uint8x16x4_t __p0, uint8x16_t __p1) { - uint8x16x4_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqtbl4q_s8(int8x16x4_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vqtbl4q_s8(int8x16x4_t __p0, int8x16_t __p1) { - int8x16x4_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqtbl4_u8(uint8x16x4_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vqtbl4_u8(uint8x16x4_t __p0, uint8x8_t __p1) { - uint8x16x4_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqtbl4_s8(int8x16x4_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vqtbl4_s8(int8x16x4_t __p0, int8x8_t __p1) { - int8x16x4_t __rev0; - __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vqtbx1_p8(poly8x8_t __p0, poly8x16_t __p1, uint8x8_t __p2) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__p0, (int8x16_t)__p1, (int8x8_t)__p2, 4); - return __ret; -} -#else -__ai poly8x8_t vqtbx1_p8(poly8x8_t __p0, poly8x16_t __p1, uint8x8_t __p2) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__rev2, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vqtbx1q_p8(poly8x16_t __p0, poly8x16_t __p1, uint8x16_t __p2) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 36); - return __ret; -} -#else -__ai poly8x16_t vqtbx1q_p8(poly8x16_t __p0, poly8x16_t __p1, uint8x16_t __p2) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqtbx1q_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 48); - return __ret; -} -#else -__ai uint8x16_t vqtbx1q_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqtbx1q_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 32); - return __ret; -} -#else -__ai int8x16_t vqtbx1q_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqtbx1_u8(uint8x8_t __p0, uint8x16_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__p0, (int8x16_t)__p1, (int8x8_t)__p2, 16); - return __ret; -} -#else -__ai uint8x8_t vqtbx1_u8(uint8x8_t __p0, uint8x16_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__rev2, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqtbx1_s8(int8x8_t __p0, int8x16_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__p0, (int8x16_t)__p1, (int8x8_t)__p2, 0); - return __ret; -} -#else -__ai int8x8_t vqtbx1_s8(int8x8_t __p0, int8x16_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__rev2, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vqtbx2_p8(poly8x8_t __p0, poly8x16x2_t __p1, uint8x8_t __p2) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x8_t)__p2, 4); - return __ret; -} -#else -__ai poly8x8_t vqtbx2_p8(poly8x8_t __p0, poly8x16x2_t __p1, uint8x8_t __p2) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16x2_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x8_t)__rev2, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vqtbx2q_p8(poly8x16_t __p0, poly8x16x2_t __p1, uint8x16_t __p2) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p2, 36); - return __ret; -} -#else -__ai poly8x16_t vqtbx2q_p8(poly8x16_t __p0, poly8x16x2_t __p1, uint8x16_t __p2) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16x2_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev2, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqtbx2q_u8(uint8x16_t __p0, uint8x16x2_t __p1, uint8x16_t __p2) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p2, 48); - return __ret; -} -#else -__ai uint8x16_t vqtbx2q_u8(uint8x16_t __p0, uint8x16x2_t __p1, uint8x16_t __p2) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16x2_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev2, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqtbx2q_s8(int8x16_t __p0, int8x16x2_t __p1, int8x16_t __p2) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p2, 32); - return __ret; -} -#else -__ai int8x16_t vqtbx2q_s8(int8x16_t __p0, int8x16x2_t __p1, int8x16_t __p2) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16x2_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev2, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqtbx2_u8(uint8x8_t __p0, uint8x16x2_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x8_t)__p2, 16); - return __ret; -} -#else -__ai uint8x8_t vqtbx2_u8(uint8x8_t __p0, uint8x16x2_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16x2_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x8_t)__rev2, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqtbx2_s8(int8x8_t __p0, int8x16x2_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x8_t)__p2, 0); - return __ret; -} -#else -__ai int8x8_t vqtbx2_s8(int8x8_t __p0, int8x16x2_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16x2_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x8_t)__rev2, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vqtbx3_p8(poly8x8_t __p0, poly8x16x3_t __p1, uint8x8_t __p2) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x8_t)__p2, 4); - return __ret; -} -#else -__ai poly8x8_t vqtbx3_p8(poly8x8_t __p0, poly8x16x3_t __p1, uint8x8_t __p2) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16x3_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x8_t)__rev2, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vqtbx3q_p8(poly8x16_t __p0, poly8x16x3_t __p1, uint8x16_t __p2) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p2, 36); - return __ret; -} -#else -__ai poly8x16_t vqtbx3q_p8(poly8x16_t __p0, poly8x16x3_t __p1, uint8x16_t __p2) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16x3_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev2, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqtbx3q_u8(uint8x16_t __p0, uint8x16x3_t __p1, uint8x16_t __p2) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p2, 48); - return __ret; -} -#else -__ai uint8x16_t vqtbx3q_u8(uint8x16_t __p0, uint8x16x3_t __p1, uint8x16_t __p2) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16x3_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev2, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqtbx3q_s8(int8x16_t __p0, int8x16x3_t __p1, int8x16_t __p2) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p2, 32); - return __ret; -} -#else -__ai int8x16_t vqtbx3q_s8(int8x16_t __p0, int8x16x3_t __p1, int8x16_t __p2) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16x3_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev2, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqtbx3_u8(uint8x8_t __p0, uint8x16x3_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x8_t)__p2, 16); - return __ret; -} -#else -__ai uint8x8_t vqtbx3_u8(uint8x8_t __p0, uint8x16x3_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16x3_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x8_t)__rev2, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqtbx3_s8(int8x8_t __p0, int8x16x3_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x8_t)__p2, 0); - return __ret; -} -#else -__ai int8x8_t vqtbx3_s8(int8x8_t __p0, int8x16x3_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16x3_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x8_t)__rev2, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vqtbx4_p8(poly8x8_t __p0, poly8x16x4_t __p1, uint8x8_t __p2) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x8_t)__p2, 4); - return __ret; -} -#else -__ai poly8x8_t vqtbx4_p8(poly8x8_t __p0, poly8x16x4_t __p1, uint8x8_t __p2) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16x4_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x8_t)__rev2, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vqtbx4q_p8(poly8x16_t __p0, poly8x16x4_t __p1, uint8x16_t __p2) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x16_t)__p2, 36); - return __ret; -} -#else -__ai poly8x16_t vqtbx4q_p8(poly8x16_t __p0, poly8x16x4_t __p1, uint8x16_t __p2) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16x4_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x16_t)__rev2, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vqtbx4q_u8(uint8x16_t __p0, uint8x16x4_t __p1, uint8x16_t __p2) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x16_t)__p2, 48); - return __ret; -} -#else -__ai uint8x16_t vqtbx4q_u8(uint8x16_t __p0, uint8x16x4_t __p1, uint8x16_t __p2) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16x4_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x16_t)__rev2, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vqtbx4q_s8(int8x16_t __p0, int8x16x4_t __p1, int8x16_t __p2) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x16_t)__p2, 32); - return __ret; -} -#else -__ai int8x16_t vqtbx4q_s8(int8x16_t __p0, int8x16x4_t __p1, int8x16_t __p2) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16x4_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x16_t)__rev2, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vqtbx4_u8(uint8x8_t __p0, uint8x16x4_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x8_t)__p2, 16); - return __ret; -} -#else -__ai uint8x8_t vqtbx4_u8(uint8x8_t __p0, uint8x16x4_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16x4_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x8_t)__rev2, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vqtbx4_s8(int8x8_t __p0, int8x16x4_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x8_t)__p2, 0); - return __ret; -} -#else -__ai int8x8_t vqtbx4_s8(int8x8_t __p0, int8x16x4_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16x4_t __rev1; - __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x8_t)__rev2, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vraddhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint16x8_t __ret; - __ret = vcombine_u16(__p0, vraddhn_u32(__p1, __p2)); - return __ret; -} -#else -__ai uint16x8_t vraddhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vcombine_u16(__rev0, __noswap_vraddhn_u32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vraddhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) { - uint32x4_t __ret; - __ret = vcombine_u32(__p0, vraddhn_u64(__p1, __p2)); - return __ret; -} -#else -__ai uint32x4_t vraddhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vcombine_u32(__rev0, __noswap_vraddhn_u64(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vraddhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint8x16_t __ret; - __ret = vcombine_u8(__p0, vraddhn_u16(__p1, __p2)); - return __ret; -} -#else -__ai uint8x16_t vraddhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __noswap_vcombine_u8(__rev0, __noswap_vraddhn_u16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vraddhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int16x8_t __ret; - __ret = vcombine_s16(__p0, vraddhn_s32(__p1, __p2)); - return __ret; -} -#else -__ai int16x8_t vraddhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vcombine_s16(__rev0, __noswap_vraddhn_s32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vraddhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) { - int32x4_t __ret; - __ret = vcombine_s32(__p0, vraddhn_s64(__p1, __p2)); - return __ret; -} -#else -__ai int32x4_t vraddhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vcombine_s32(__rev0, __noswap_vraddhn_s64(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vraddhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int8x16_t __ret; - __ret = vcombine_s8(__p0, vraddhn_s16(__p1, __p2)); - return __ret; -} -#else -__ai int8x16_t vraddhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __noswap_vcombine_s8(__rev0, __noswap_vraddhn_s16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vrbit_p8(poly8x8_t __p0) { - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vrbit_v((int8x8_t)__p0, 4); - return __ret; -} -#else -__ai poly8x8_t vrbit_p8(poly8x8_t __p0) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = (poly8x8_t) __builtin_neon_vrbit_v((int8x8_t)__rev0, 4); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vrbitq_p8(poly8x16_t __p0) { - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__p0, 36); - return __ret; -} -#else -__ai poly8x16_t vrbitq_p8(poly8x16_t __p0) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = (poly8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__rev0, 36); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vrbitq_u8(uint8x16_t __p0) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__p0, 48); - return __ret; -} -#else -__ai uint8x16_t vrbitq_u8(uint8x16_t __p0) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__rev0, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vrbitq_s8(int8x16_t __p0) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__p0, 32); - return __ret; -} -#else -__ai int8x16_t vrbitq_s8(int8x16_t __p0) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__rev0, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vrbit_u8(uint8x8_t __p0) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vrbit_v((int8x8_t)__p0, 16); - return __ret; -} -#else -__ai uint8x8_t vrbit_u8(uint8x8_t __p0) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vrbit_v((int8x8_t)__rev0, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vrbit_s8(int8x8_t __p0) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vrbit_v((int8x8_t)__p0, 0); - return __ret; -} -#else -__ai int8x8_t vrbit_s8(int8x8_t __p0) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vrbit_v((int8x8_t)__rev0, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrecpeq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrecpeq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vrecpeq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrecpeq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrecpe_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrecpe_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vrecpe_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrecpe_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vrecped_f64(float64_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vrecped_f64(__p0); - return __ret; -} -#else -__ai float64_t vrecped_f64(float64_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vrecped_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vrecpes_f32(float32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrecpes_f32(__p0); - return __ret; -} -#else -__ai float32_t vrecpes_f32(float32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrecpes_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrecpsq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrecpsq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vrecpsq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrecpsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrecps_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrecps_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#else -__ai float64x1_t vrecps_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrecps_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vrecpsd_f64(float64_t __p0, float64_t __p1) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vrecpsd_f64(__p0, __p1); - return __ret; -} -#else -__ai float64_t vrecpsd_f64(float64_t __p0, float64_t __p1) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vrecpsd_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vrecpss_f32(float32_t __p0, float32_t __p1) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrecpss_f32(__p0, __p1); - return __ret; -} -#else -__ai float32_t vrecpss_f32(float32_t __p0, float32_t __p1) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrecpss_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vrecpxd_f64(float64_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vrecpxd_f64(__p0); - return __ret; -} -#else -__ai float64_t vrecpxd_f64(float64_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vrecpxd_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vrecpxs_f32(float32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrecpxs_f32(__p0); - return __ret; -} -#else -__ai float32_t vrecpxs_f32(float32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrecpxs_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vrshld_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vrshld_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vrshld_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vrshld_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vrshld_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vrshld_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vrshld_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vrshld_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrd_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vrshrd_n_u64(__s0, __p1); \ - __ret; \ -}) -#else -#define vrshrd_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vrshrd_n_u64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrd_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vrshrd_n_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vrshrd_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vrshrd_n_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_high_n_u32(__p0_218, __p1_218, __p2_218) __extension__ ({ \ - uint16x4_t __s0_218 = __p0_218; \ - uint32x4_t __s1_218 = __p1_218; \ - uint16x8_t __ret_218; \ - __ret_218 = (uint16x8_t)(vcombine_u16((uint16x4_t)(__s0_218), (uint16x4_t)(vrshrn_n_u32(__s1_218, __p2_218)))); \ - __ret_218; \ -}) -#else -#define vrshrn_high_n_u32(__p0_219, __p1_219, __p2_219) __extension__ ({ \ - uint16x4_t __s0_219 = __p0_219; \ - uint32x4_t __s1_219 = __p1_219; \ - uint16x4_t __rev0_219; __rev0_219 = __builtin_shufflevector(__s0_219, __s0_219, 3, 2, 1, 0); \ - uint32x4_t __rev1_219; __rev1_219 = __builtin_shufflevector(__s1_219, __s1_219, 3, 2, 1, 0); \ - uint16x8_t __ret_219; \ - __ret_219 = (uint16x8_t)(__noswap_vcombine_u16((uint16x4_t)(__rev0_219), (uint16x4_t)(__noswap_vrshrn_n_u32(__rev1_219, __p2_219)))); \ - __ret_219 = __builtin_shufflevector(__ret_219, __ret_219, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_219; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_high_n_u64(__p0_220, __p1_220, __p2_220) __extension__ ({ \ - uint32x2_t __s0_220 = __p0_220; \ - uint64x2_t __s1_220 = __p1_220; \ - uint32x4_t __ret_220; \ - __ret_220 = (uint32x4_t)(vcombine_u32((uint32x2_t)(__s0_220), (uint32x2_t)(vrshrn_n_u64(__s1_220, __p2_220)))); \ - __ret_220; \ -}) -#else -#define vrshrn_high_n_u64(__p0_221, __p1_221, __p2_221) __extension__ ({ \ - uint32x2_t __s0_221 = __p0_221; \ - uint64x2_t __s1_221 = __p1_221; \ - uint32x2_t __rev0_221; __rev0_221 = __builtin_shufflevector(__s0_221, __s0_221, 1, 0); \ - uint64x2_t __rev1_221; __rev1_221 = __builtin_shufflevector(__s1_221, __s1_221, 1, 0); \ - uint32x4_t __ret_221; \ - __ret_221 = (uint32x4_t)(__noswap_vcombine_u32((uint32x2_t)(__rev0_221), (uint32x2_t)(__noswap_vrshrn_n_u64(__rev1_221, __p2_221)))); \ - __ret_221 = __builtin_shufflevector(__ret_221, __ret_221, 3, 2, 1, 0); \ - __ret_221; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_high_n_u16(__p0_222, __p1_222, __p2_222) __extension__ ({ \ - uint8x8_t __s0_222 = __p0_222; \ - uint16x8_t __s1_222 = __p1_222; \ - uint8x16_t __ret_222; \ - __ret_222 = (uint8x16_t)(vcombine_u8((uint8x8_t)(__s0_222), (uint8x8_t)(vrshrn_n_u16(__s1_222, __p2_222)))); \ - __ret_222; \ -}) -#else -#define vrshrn_high_n_u16(__p0_223, __p1_223, __p2_223) __extension__ ({ \ - uint8x8_t __s0_223 = __p0_223; \ - uint16x8_t __s1_223 = __p1_223; \ - uint8x8_t __rev0_223; __rev0_223 = __builtin_shufflevector(__s0_223, __s0_223, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1_223; __rev1_223 = __builtin_shufflevector(__s1_223, __s1_223, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret_223; \ - __ret_223 = (uint8x16_t)(__noswap_vcombine_u8((uint8x8_t)(__rev0_223), (uint8x8_t)(__noswap_vrshrn_n_u16(__rev1_223, __p2_223)))); \ - __ret_223 = __builtin_shufflevector(__ret_223, __ret_223, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_223; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_high_n_s32(__p0_224, __p1_224, __p2_224) __extension__ ({ \ - int16x4_t __s0_224 = __p0_224; \ - int32x4_t __s1_224 = __p1_224; \ - int16x8_t __ret_224; \ - __ret_224 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_224), (int16x4_t)(vrshrn_n_s32(__s1_224, __p2_224)))); \ - __ret_224; \ -}) -#else -#define vrshrn_high_n_s32(__p0_225, __p1_225, __p2_225) __extension__ ({ \ - int16x4_t __s0_225 = __p0_225; \ - int32x4_t __s1_225 = __p1_225; \ - int16x4_t __rev0_225; __rev0_225 = __builtin_shufflevector(__s0_225, __s0_225, 3, 2, 1, 0); \ - int32x4_t __rev1_225; __rev1_225 = __builtin_shufflevector(__s1_225, __s1_225, 3, 2, 1, 0); \ - int16x8_t __ret_225; \ - __ret_225 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_225), (int16x4_t)(__noswap_vrshrn_n_s32(__rev1_225, __p2_225)))); \ - __ret_225 = __builtin_shufflevector(__ret_225, __ret_225, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_225; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_high_n_s64(__p0_226, __p1_226, __p2_226) __extension__ ({ \ - int32x2_t __s0_226 = __p0_226; \ - int64x2_t __s1_226 = __p1_226; \ - int32x4_t __ret_226; \ - __ret_226 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_226), (int32x2_t)(vrshrn_n_s64(__s1_226, __p2_226)))); \ - __ret_226; \ -}) -#else -#define vrshrn_high_n_s64(__p0_227, __p1_227, __p2_227) __extension__ ({ \ - int32x2_t __s0_227 = __p0_227; \ - int64x2_t __s1_227 = __p1_227; \ - int32x2_t __rev0_227; __rev0_227 = __builtin_shufflevector(__s0_227, __s0_227, 1, 0); \ - int64x2_t __rev1_227; __rev1_227 = __builtin_shufflevector(__s1_227, __s1_227, 1, 0); \ - int32x4_t __ret_227; \ - __ret_227 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_227), (int32x2_t)(__noswap_vrshrn_n_s64(__rev1_227, __p2_227)))); \ - __ret_227 = __builtin_shufflevector(__ret_227, __ret_227, 3, 2, 1, 0); \ - __ret_227; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrshrn_high_n_s16(__p0_228, __p1_228, __p2_228) __extension__ ({ \ - int8x8_t __s0_228 = __p0_228; \ - int16x8_t __s1_228 = __p1_228; \ - int8x16_t __ret_228; \ - __ret_228 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_228), (int8x8_t)(vrshrn_n_s16(__s1_228, __p2_228)))); \ - __ret_228; \ -}) -#else -#define vrshrn_high_n_s16(__p0_229, __p1_229, __p2_229) __extension__ ({ \ - int8x8_t __s0_229 = __p0_229; \ - int16x8_t __s1_229 = __p1_229; \ - int8x8_t __rev0_229; __rev0_229 = __builtin_shufflevector(__s0_229, __s0_229, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1_229; __rev1_229 = __builtin_shufflevector(__s1_229, __s1_229, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret_229; \ - __ret_229 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_229), (int8x8_t)(__noswap_vrshrn_n_s16(__rev1_229, __p2_229)))); \ - __ret_229 = __builtin_shufflevector(__ret_229, __ret_229, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_229; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrsqrteq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrsqrteq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vrsqrteq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrsqrteq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrsqrte_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrsqrte_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vrsqrte_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrsqrte_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vrsqrted_f64(float64_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vrsqrted_f64(__p0); - return __ret; -} -#else -__ai float64_t vrsqrted_f64(float64_t __p0) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vrsqrted_f64(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vrsqrtes_f32(float32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrsqrtes_f32(__p0); - return __ret; -} -#else -__ai float32_t vrsqrtes_f32(float32_t __p0) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrsqrtes_f32(__p0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vrsqrtsq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrsqrtsq_v((int8x16_t)__p0, (int8x16_t)__p1, 42); - return __ret; -} -#else -__ai float64x2_t vrsqrtsq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vrsqrtsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vrsqrts_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrsqrts_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#else -__ai float64x1_t vrsqrts_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vrsqrts_v((int8x8_t)__p0, (int8x8_t)__p1, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64_t vrsqrtsd_f64(float64_t __p0, float64_t __p1) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vrsqrtsd_f64(__p0, __p1); - return __ret; -} -#else -__ai float64_t vrsqrtsd_f64(float64_t __p0, float64_t __p1) { - float64_t __ret; - __ret = (float64_t) __builtin_neon_vrsqrtsd_f64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32_t vrsqrtss_f32(float32_t __p0, float32_t __p1) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrsqrtss_f32(__p0, __p1); - return __ret; -} -#else -__ai float32_t vrsqrtss_f32(float32_t __p0, float32_t __p1) { - float32_t __ret; - __ret = (float32_t) __builtin_neon_vrsqrtss_f32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsrad_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __s1 = __p1; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vrsrad_n_u64(__s0, __s1, __p2); \ - __ret; \ -}) -#else -#define vrsrad_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __s1 = __p1; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vrsrad_n_u64(__s0, __s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vrsrad_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __s1 = __p1; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vrsrad_n_s64(__s0, __s1, __p2); \ - __ret; \ -}) -#else -#define vrsrad_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __s1 = __p1; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vrsrad_n_s64(__s0, __s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vrsubhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint16x8_t __ret; - __ret = vcombine_u16(__p0, vrsubhn_u32(__p1, __p2)); - return __ret; -} -#else -__ai uint16x8_t vrsubhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vcombine_u16(__rev0, __noswap_vrsubhn_u32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vrsubhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) { - uint32x4_t __ret; - __ret = vcombine_u32(__p0, vrsubhn_u64(__p1, __p2)); - return __ret; -} -#else -__ai uint32x4_t vrsubhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vcombine_u32(__rev0, __noswap_vrsubhn_u64(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vrsubhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint8x16_t __ret; - __ret = vcombine_u8(__p0, vrsubhn_u16(__p1, __p2)); - return __ret; -} -#else -__ai uint8x16_t vrsubhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __noswap_vcombine_u8(__rev0, __noswap_vrsubhn_u16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vrsubhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int16x8_t __ret; - __ret = vcombine_s16(__p0, vrsubhn_s32(__p1, __p2)); - return __ret; -} -#else -__ai int16x8_t vrsubhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vcombine_s16(__rev0, __noswap_vrsubhn_s32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vrsubhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) { - int32x4_t __ret; - __ret = vcombine_s32(__p0, vrsubhn_s64(__p1, __p2)); - return __ret; -} -#else -__ai int32x4_t vrsubhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vcombine_s32(__rev0, __noswap_vrsubhn_s64(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vrsubhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int8x16_t __ret; - __ret = vcombine_s8(__p0, vrsubhn_s16(__p1, __p2)); - return __ret; -} -#else -__ai int8x16_t vrsubhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __noswap_vcombine_s8(__rev0, __noswap_vrsubhn_s16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64_t __s0 = __p0; \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64_t __s0 = __p0; \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#define __noswap_vset_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64_t __s0 = __p0; \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64_t __s0 = __p0; \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64_t __s0 = __p0; \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64_t __s0 = __p0; \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vsetq_lane_f64(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vsetq_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vsetq_lane_f64(__s0, (int8x16_t)__rev1, __p2); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#define __noswap_vsetq_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64x2_t __s1 = __p1; \ - float64x2_t __ret; \ - __ret = (float64x2_t) __builtin_neon_vsetq_lane_f64(__s0, (int8x16_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vset_lane_f64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#else -#define vset_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vset_lane_f64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#define __noswap_vset_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64_t __s0 = __p0; \ - float64x1_t __s1 = __p1; \ - float64x1_t __ret; \ - __ret = (float64x1_t) __builtin_neon_vset_lane_f64(__s0, (int8x8_t)__s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vshld_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vshld_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vshld_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vshld_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vshld_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vshld_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vshld_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vshld_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshld_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vshld_n_u64(__s0, __p1); \ - __ret; \ -}) -#else -#define vshld_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vshld_n_u64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshld_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vshld_n_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vshld_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vshld_n_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_high_n_u8(__p0_230, __p1_230) __extension__ ({ \ - uint8x16_t __s0_230 = __p0_230; \ - uint16x8_t __ret_230; \ - __ret_230 = (uint16x8_t)(vshll_n_u8(vget_high_u8(__s0_230), __p1_230)); \ - __ret_230; \ -}) -#else -#define vshll_high_n_u8(__p0_231, __p1_231) __extension__ ({ \ - uint8x16_t __s0_231 = __p0_231; \ - uint8x16_t __rev0_231; __rev0_231 = __builtin_shufflevector(__s0_231, __s0_231, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __ret_231; \ - __ret_231 = (uint16x8_t)(__noswap_vshll_n_u8(__noswap_vget_high_u8(__rev0_231), __p1_231)); \ - __ret_231 = __builtin_shufflevector(__ret_231, __ret_231, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_231; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_high_n_u32(__p0_232, __p1_232) __extension__ ({ \ - uint32x4_t __s0_232 = __p0_232; \ - uint64x2_t __ret_232; \ - __ret_232 = (uint64x2_t)(vshll_n_u32(vget_high_u32(__s0_232), __p1_232)); \ - __ret_232; \ -}) -#else -#define vshll_high_n_u32(__p0_233, __p1_233) __extension__ ({ \ - uint32x4_t __s0_233 = __p0_233; \ - uint32x4_t __rev0_233; __rev0_233 = __builtin_shufflevector(__s0_233, __s0_233, 3, 2, 1, 0); \ - uint64x2_t __ret_233; \ - __ret_233 = (uint64x2_t)(__noswap_vshll_n_u32(__noswap_vget_high_u32(__rev0_233), __p1_233)); \ - __ret_233 = __builtin_shufflevector(__ret_233, __ret_233, 1, 0); \ - __ret_233; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_high_n_u16(__p0_234, __p1_234) __extension__ ({ \ - uint16x8_t __s0_234 = __p0_234; \ - uint32x4_t __ret_234; \ - __ret_234 = (uint32x4_t)(vshll_n_u16(vget_high_u16(__s0_234), __p1_234)); \ - __ret_234; \ -}) -#else -#define vshll_high_n_u16(__p0_235, __p1_235) __extension__ ({ \ - uint16x8_t __s0_235 = __p0_235; \ - uint16x8_t __rev0_235; __rev0_235 = __builtin_shufflevector(__s0_235, __s0_235, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint32x4_t __ret_235; \ - __ret_235 = (uint32x4_t)(__noswap_vshll_n_u16(__noswap_vget_high_u16(__rev0_235), __p1_235)); \ - __ret_235 = __builtin_shufflevector(__ret_235, __ret_235, 3, 2, 1, 0); \ - __ret_235; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_high_n_s8(__p0_236, __p1_236) __extension__ ({ \ - int8x16_t __s0_236 = __p0_236; \ - int16x8_t __ret_236; \ - __ret_236 = (int16x8_t)(vshll_n_s8(vget_high_s8(__s0_236), __p1_236)); \ - __ret_236; \ -}) -#else -#define vshll_high_n_s8(__p0_237, __p1_237) __extension__ ({ \ - int8x16_t __s0_237 = __p0_237; \ - int8x16_t __rev0_237; __rev0_237 = __builtin_shufflevector(__s0_237, __s0_237, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __ret_237; \ - __ret_237 = (int16x8_t)(__noswap_vshll_n_s8(__noswap_vget_high_s8(__rev0_237), __p1_237)); \ - __ret_237 = __builtin_shufflevector(__ret_237, __ret_237, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_237; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_high_n_s32(__p0_238, __p1_238) __extension__ ({ \ - int32x4_t __s0_238 = __p0_238; \ - int64x2_t __ret_238; \ - __ret_238 = (int64x2_t)(vshll_n_s32(vget_high_s32(__s0_238), __p1_238)); \ - __ret_238; \ -}) -#else -#define vshll_high_n_s32(__p0_239, __p1_239) __extension__ ({ \ - int32x4_t __s0_239 = __p0_239; \ - int32x4_t __rev0_239; __rev0_239 = __builtin_shufflevector(__s0_239, __s0_239, 3, 2, 1, 0); \ - int64x2_t __ret_239; \ - __ret_239 = (int64x2_t)(__noswap_vshll_n_s32(__noswap_vget_high_s32(__rev0_239), __p1_239)); \ - __ret_239 = __builtin_shufflevector(__ret_239, __ret_239, 1, 0); \ - __ret_239; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshll_high_n_s16(__p0_240, __p1_240) __extension__ ({ \ - int16x8_t __s0_240 = __p0_240; \ - int32x4_t __ret_240; \ - __ret_240 = (int32x4_t)(vshll_n_s16(vget_high_s16(__s0_240), __p1_240)); \ - __ret_240; \ -}) -#else -#define vshll_high_n_s16(__p0_241, __p1_241) __extension__ ({ \ - int16x8_t __s0_241 = __p0_241; \ - int16x8_t __rev0_241; __rev0_241 = __builtin_shufflevector(__s0_241, __s0_241, 7, 6, 5, 4, 3, 2, 1, 0); \ - int32x4_t __ret_241; \ - __ret_241 = (int32x4_t)(__noswap_vshll_n_s16(__noswap_vget_high_s16(__rev0_241), __p1_241)); \ - __ret_241 = __builtin_shufflevector(__ret_241, __ret_241, 3, 2, 1, 0); \ - __ret_241; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrd_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vshrd_n_u64(__s0, __p1); \ - __ret; \ -}) -#else -#define vshrd_n_u64(__p0, __p1) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vshrd_n_u64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrd_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vshrd_n_s64(__s0, __p1); \ - __ret; \ -}) -#else -#define vshrd_n_s64(__p0, __p1) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vshrd_n_s64(__s0, __p1); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_high_n_u32(__p0_242, __p1_242, __p2_242) __extension__ ({ \ - uint16x4_t __s0_242 = __p0_242; \ - uint32x4_t __s1_242 = __p1_242; \ - uint16x8_t __ret_242; \ - __ret_242 = (uint16x8_t)(vcombine_u16((uint16x4_t)(__s0_242), (uint16x4_t)(vshrn_n_u32(__s1_242, __p2_242)))); \ - __ret_242; \ -}) -#else -#define vshrn_high_n_u32(__p0_243, __p1_243, __p2_243) __extension__ ({ \ - uint16x4_t __s0_243 = __p0_243; \ - uint32x4_t __s1_243 = __p1_243; \ - uint16x4_t __rev0_243; __rev0_243 = __builtin_shufflevector(__s0_243, __s0_243, 3, 2, 1, 0); \ - uint32x4_t __rev1_243; __rev1_243 = __builtin_shufflevector(__s1_243, __s1_243, 3, 2, 1, 0); \ - uint16x8_t __ret_243; \ - __ret_243 = (uint16x8_t)(__noswap_vcombine_u16((uint16x4_t)(__rev0_243), (uint16x4_t)(__noswap_vshrn_n_u32(__rev1_243, __p2_243)))); \ - __ret_243 = __builtin_shufflevector(__ret_243, __ret_243, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_243; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_high_n_u64(__p0_244, __p1_244, __p2_244) __extension__ ({ \ - uint32x2_t __s0_244 = __p0_244; \ - uint64x2_t __s1_244 = __p1_244; \ - uint32x4_t __ret_244; \ - __ret_244 = (uint32x4_t)(vcombine_u32((uint32x2_t)(__s0_244), (uint32x2_t)(vshrn_n_u64(__s1_244, __p2_244)))); \ - __ret_244; \ -}) -#else -#define vshrn_high_n_u64(__p0_245, __p1_245, __p2_245) __extension__ ({ \ - uint32x2_t __s0_245 = __p0_245; \ - uint64x2_t __s1_245 = __p1_245; \ - uint32x2_t __rev0_245; __rev0_245 = __builtin_shufflevector(__s0_245, __s0_245, 1, 0); \ - uint64x2_t __rev1_245; __rev1_245 = __builtin_shufflevector(__s1_245, __s1_245, 1, 0); \ - uint32x4_t __ret_245; \ - __ret_245 = (uint32x4_t)(__noswap_vcombine_u32((uint32x2_t)(__rev0_245), (uint32x2_t)(__noswap_vshrn_n_u64(__rev1_245, __p2_245)))); \ - __ret_245 = __builtin_shufflevector(__ret_245, __ret_245, 3, 2, 1, 0); \ - __ret_245; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_high_n_u16(__p0_246, __p1_246, __p2_246) __extension__ ({ \ - uint8x8_t __s0_246 = __p0_246; \ - uint16x8_t __s1_246 = __p1_246; \ - uint8x16_t __ret_246; \ - __ret_246 = (uint8x16_t)(vcombine_u8((uint8x8_t)(__s0_246), (uint8x8_t)(vshrn_n_u16(__s1_246, __p2_246)))); \ - __ret_246; \ -}) -#else -#define vshrn_high_n_u16(__p0_247, __p1_247, __p2_247) __extension__ ({ \ - uint8x8_t __s0_247 = __p0_247; \ - uint16x8_t __s1_247 = __p1_247; \ - uint8x8_t __rev0_247; __rev0_247 = __builtin_shufflevector(__s0_247, __s0_247, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint16x8_t __rev1_247; __rev1_247 = __builtin_shufflevector(__s1_247, __s1_247, 7, 6, 5, 4, 3, 2, 1, 0); \ - uint8x16_t __ret_247; \ - __ret_247 = (uint8x16_t)(__noswap_vcombine_u8((uint8x8_t)(__rev0_247), (uint8x8_t)(__noswap_vshrn_n_u16(__rev1_247, __p2_247)))); \ - __ret_247 = __builtin_shufflevector(__ret_247, __ret_247, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_247; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_high_n_s32(__p0_248, __p1_248, __p2_248) __extension__ ({ \ - int16x4_t __s0_248 = __p0_248; \ - int32x4_t __s1_248 = __p1_248; \ - int16x8_t __ret_248; \ - __ret_248 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_248), (int16x4_t)(vshrn_n_s32(__s1_248, __p2_248)))); \ - __ret_248; \ -}) -#else -#define vshrn_high_n_s32(__p0_249, __p1_249, __p2_249) __extension__ ({ \ - int16x4_t __s0_249 = __p0_249; \ - int32x4_t __s1_249 = __p1_249; \ - int16x4_t __rev0_249; __rev0_249 = __builtin_shufflevector(__s0_249, __s0_249, 3, 2, 1, 0); \ - int32x4_t __rev1_249; __rev1_249 = __builtin_shufflevector(__s1_249, __s1_249, 3, 2, 1, 0); \ - int16x8_t __ret_249; \ - __ret_249 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_249), (int16x4_t)(__noswap_vshrn_n_s32(__rev1_249, __p2_249)))); \ - __ret_249 = __builtin_shufflevector(__ret_249, __ret_249, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_249; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_high_n_s64(__p0_250, __p1_250, __p2_250) __extension__ ({ \ - int32x2_t __s0_250 = __p0_250; \ - int64x2_t __s1_250 = __p1_250; \ - int32x4_t __ret_250; \ - __ret_250 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_250), (int32x2_t)(vshrn_n_s64(__s1_250, __p2_250)))); \ - __ret_250; \ -}) -#else -#define vshrn_high_n_s64(__p0_251, __p1_251, __p2_251) __extension__ ({ \ - int32x2_t __s0_251 = __p0_251; \ - int64x2_t __s1_251 = __p1_251; \ - int32x2_t __rev0_251; __rev0_251 = __builtin_shufflevector(__s0_251, __s0_251, 1, 0); \ - int64x2_t __rev1_251; __rev1_251 = __builtin_shufflevector(__s1_251, __s1_251, 1, 0); \ - int32x4_t __ret_251; \ - __ret_251 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_251), (int32x2_t)(__noswap_vshrn_n_s64(__rev1_251, __p2_251)))); \ - __ret_251 = __builtin_shufflevector(__ret_251, __ret_251, 3, 2, 1, 0); \ - __ret_251; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vshrn_high_n_s16(__p0_252, __p1_252, __p2_252) __extension__ ({ \ - int8x8_t __s0_252 = __p0_252; \ - int16x8_t __s1_252 = __p1_252; \ - int8x16_t __ret_252; \ - __ret_252 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_252), (int8x8_t)(vshrn_n_s16(__s1_252, __p2_252)))); \ - __ret_252; \ -}) -#else -#define vshrn_high_n_s16(__p0_253, __p1_253, __p2_253) __extension__ ({ \ - int8x8_t __s0_253 = __p0_253; \ - int16x8_t __s1_253 = __p1_253; \ - int8x8_t __rev0_253; __rev0_253 = __builtin_shufflevector(__s0_253, __s0_253, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16x8_t __rev1_253; __rev1_253 = __builtin_shufflevector(__s1_253, __s1_253, 7, 6, 5, 4, 3, 2, 1, 0); \ - int8x16_t __ret_253; \ - __ret_253 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_253), (int8x8_t)(__noswap_vshrn_n_s16(__rev1_253, __p2_253)))); \ - __ret_253 = __builtin_shufflevector(__ret_253, __ret_253, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_253; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vslid_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __s1 = __p1; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vslid_n_u64(__s0, __s1, __p2); \ - __ret; \ -}) -#else -#define vslid_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __s1 = __p1; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vslid_n_u64(__s0, __s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vslid_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __s1 = __p1; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vslid_n_s64(__s0, __s1, __p2); \ - __ret; \ -}) -#else -#define vslid_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __s1 = __p1; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vslid_n_s64(__s0, __s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsli_n_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \ - __ret; \ -}) -#else -#define vsli_n_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsliq_n_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 38); \ - __ret; \ -}) -#else -#define vsliq_n_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 38); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8_t vsqaddb_u8(uint8_t __p0, uint8_t __p1) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vsqaddb_u8(__p0, __p1); - return __ret; -} -#else -__ai uint8_t vsqaddb_u8(uint8_t __p0, uint8_t __p1) { - uint8_t __ret; - __ret = (uint8_t) __builtin_neon_vsqaddb_u8(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32_t vsqadds_u32(uint32_t __p0, uint32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vsqadds_u32(__p0, __p1); - return __ret; -} -#else -__ai uint32_t vsqadds_u32(uint32_t __p0, uint32_t __p1) { - uint32_t __ret; - __ret = (uint32_t) __builtin_neon_vsqadds_u32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vsqaddd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vsqaddd_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vsqaddd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vsqaddd_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16_t vsqaddh_u16(uint16_t __p0, uint16_t __p1) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vsqaddh_u16(__p0, __p1); - return __ret; -} -#else -__ai uint16_t vsqaddh_u16(uint16_t __p0, uint16_t __p1) { - uint16_t __ret; - __ret = (uint16_t) __builtin_neon_vsqaddh_u16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vsqaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vsqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 48); - return __ret; -} -#else -__ai uint8x16_t vsqaddq_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = (uint8x16_t) __builtin_neon_vsqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsqaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 50); - return __ret; -} -#else -__ai uint32x4_t vsqaddq_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t) __builtin_neon_vsqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vsqaddq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vsqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vsqaddq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vsqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vsqaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vsqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 49); - return __ret; -} -#else -__ai uint16x8_t vsqaddq_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t) __builtin_neon_vsqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vsqadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vsqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 16); - return __ret; -} -#else -__ai uint8x8_t vsqadd_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = (uint8x8_t) __builtin_neon_vsqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vsqadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vsqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 18); - return __ret; -} -#else -__ai uint32x2_t vsqadd_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = (uint32x2_t) __builtin_neon_vsqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vsqadd_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vsqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vsqadd_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vsqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vsqadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vsqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 17); - return __ret; -} -#else -__ai uint16x4_t vsqadd_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = (uint16x4_t) __builtin_neon_vsqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vsqrtq_f64(float64x2_t __p0) { - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vsqrtq_v((int8x16_t)__p0, 42); - return __ret; -} -#else -__ai float64x2_t vsqrtq_f64(float64x2_t __p0) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __ret; - __ret = (float64x2_t) __builtin_neon_vsqrtq_v((int8x16_t)__rev0, 42); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vsqrtq_f32(float32x4_t __p0) { - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vsqrtq_v((int8x16_t)__p0, 41); - return __ret; -} -#else -__ai float32x4_t vsqrtq_f32(float32x4_t __p0) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __ret; - __ret = (float32x4_t) __builtin_neon_vsqrtq_v((int8x16_t)__rev0, 41); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vsqrt_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vsqrt_v((int8x8_t)__p0, 10); - return __ret; -} -#else -__ai float64x1_t vsqrt_f64(float64x1_t __p0) { - float64x1_t __ret; - __ret = (float64x1_t) __builtin_neon_vsqrt_v((int8x8_t)__p0, 10); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vsqrt_f32(float32x2_t __p0) { - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vsqrt_v((int8x8_t)__p0, 9); - return __ret; -} -#else -__ai float32x2_t vsqrt_f32(float32x2_t __p0) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __ret; - __ret = (float32x2_t) __builtin_neon_vsqrt_v((int8x8_t)__rev0, 9); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsrad_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __s1 = __p1; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vsrad_n_u64(__s0, __s1, __p2); \ - __ret; \ -}) -#else -#define vsrad_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __s1 = __p1; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vsrad_n_u64(__s0, __s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsrad_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __s1 = __p1; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vsrad_n_s64(__s0, __s1, __p2); \ - __ret; \ -}) -#else -#define vsrad_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __s1 = __p1; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vsrad_n_s64(__s0, __s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsrid_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __s1 = __p1; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vsrid_n_u64(__s0, __s1, __p2); \ - __ret; \ -}) -#else -#define vsrid_n_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64_t __s0 = __p0; \ - uint64_t __s1 = __p1; \ - uint64_t __ret; \ - __ret = (uint64_t) __builtin_neon_vsrid_n_u64(__s0, __s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsrid_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __s1 = __p1; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vsrid_n_s64(__s0, __s1, __p2); \ - __ret; \ -}) -#else -#define vsrid_n_s64(__p0, __p1, __p2) __extension__ ({ \ - int64_t __s0 = __p0; \ - int64_t __s1 = __p1; \ - int64_t __ret; \ - __ret = (int64_t) __builtin_neon_vsrid_n_s64(__s0, __s1, __p2); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsri_n_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \ - __ret; \ -}) -#else -#define vsri_n_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1_t __s0 = __p0; \ - poly64x1_t __s1 = __p1; \ - poly64x1_t __ret; \ - __ret = (poly64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsriq_n_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 38); \ - __ret; \ -}) -#else -#define vsriq_n_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2_t __s0 = __p0; \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - poly64x2_t __ret; \ - __ret = (poly64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 38); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p64(__p0, __p1) __extension__ ({ \ - poly64x1_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 6); \ -}) -#else -#define vst1_p64(__p0, __p1) __extension__ ({ \ - poly64x1_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p64(__p0, __p1) __extension__ ({ \ - poly64x2_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 38); \ -}) -#else -#define vst1q_p64(__p0, __p1) __extension__ ({ \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s1 = __p1; \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 42); \ -}) -#else -#define vst1q_f64(__p0, __p1) __extension__ ({ \ - float64x2_t __s1 = __p1; \ - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 10); \ -}) -#else -#define vst1_f64(__p0, __p1) __extension__ ({ \ - float64x1_t __s1 = __p1; \ - __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 6); \ -}) -#else -#define vst1_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 38); \ -}) -#else -#define vst1q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2_t __s1 = __p1; \ - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s1 = __p1; \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 42); \ -}) -#else -#define vst1q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2_t __s1 = __p1; \ - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 10); \ -}) -#else -#define vst1_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1_t __s1 = __p1; \ - __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p64_x2(__p0, __p1) __extension__ ({ \ - poly64x1x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 6); \ -}) -#else -#define vst1_p64_x2(__p0, __p1) __extension__ ({ \ - poly64x1x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p64_x2(__p0, __p1) __extension__ ({ \ - poly64x2x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 38); \ -}) -#else -#define vst1q_p64_x2(__p0, __p1) __extension__ ({ \ - poly64x2x2_t __s1 = __p1; \ - poly64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f64_x2(__p0, __p1) __extension__ ({ \ - float64x2x2_t __s1 = __p1; \ - __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 42); \ -}) -#else -#define vst1q_f64_x2(__p0, __p1) __extension__ ({ \ - float64x2x2_t __s1 = __p1; \ - float64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f64_x2(__p0, __p1) __extension__ ({ \ - float64x1x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 10); \ -}) -#else -#define vst1_f64_x2(__p0, __p1) __extension__ ({ \ - float64x1x2_t __s1 = __p1; \ - __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p64_x3(__p0, __p1) __extension__ ({ \ - poly64x1x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 6); \ -}) -#else -#define vst1_p64_x3(__p0, __p1) __extension__ ({ \ - poly64x1x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p64_x3(__p0, __p1) __extension__ ({ \ - poly64x2x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 38); \ -}) -#else -#define vst1q_p64_x3(__p0, __p1) __extension__ ({ \ - poly64x2x3_t __s1 = __p1; \ - poly64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f64_x3(__p0, __p1) __extension__ ({ \ - float64x2x3_t __s1 = __p1; \ - __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 42); \ -}) -#else -#define vst1q_f64_x3(__p0, __p1) __extension__ ({ \ - float64x2x3_t __s1 = __p1; \ - float64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f64_x3(__p0, __p1) __extension__ ({ \ - float64x1x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 10); \ -}) -#else -#define vst1_f64_x3(__p0, __p1) __extension__ ({ \ - float64x1x3_t __s1 = __p1; \ - __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_p64_x4(__p0, __p1) __extension__ ({ \ - poly64x1x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 6); \ -}) -#else -#define vst1_p64_x4(__p0, __p1) __extension__ ({ \ - poly64x1x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_p64_x4(__p0, __p1) __extension__ ({ \ - poly64x2x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 38); \ -}) -#else -#define vst1q_p64_x4(__p0, __p1) __extension__ ({ \ - poly64x2x4_t __s1 = __p1; \ - poly64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1q_f64_x4(__p0, __p1) __extension__ ({ \ - float64x2x4_t __s1 = __p1; \ - __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 42); \ -}) -#else -#define vst1q_f64_x4(__p0, __p1) __extension__ ({ \ - float64x2x4_t __s1 = __p1; \ - float64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst1_f64_x4(__p0, __p1) __extension__ ({ \ - float64x1x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 10); \ -}) -#else -#define vst1_f64_x4(__p0, __p1) __extension__ ({ \ - float64x1x4_t __s1 = __p1; \ - __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_p64(__p0, __p1) __extension__ ({ \ - poly64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 6); \ -}) -#else -#define vst2_p64(__p0, __p1) __extension__ ({ \ - poly64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_p64(__p0, __p1) __extension__ ({ \ - poly64x2x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 38); \ -}) -#else -#define vst2q_p64(__p0, __p1) __extension__ ({ \ - poly64x2x2_t __s1 = __p1; \ - poly64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_u64(__p0, __p1) __extension__ ({ \ - uint64x2x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 51); \ -}) -#else -#define vst2q_u64(__p0, __p1) __extension__ ({ \ - uint64x2x2_t __s1 = __p1; \ - uint64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_f64(__p0, __p1) __extension__ ({ \ - float64x2x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 42); \ -}) -#else -#define vst2q_f64(__p0, __p1) __extension__ ({ \ - float64x2x2_t __s1 = __p1; \ - float64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_s64(__p0, __p1) __extension__ ({ \ - int64x2x2_t __s1 = __p1; \ - __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 35); \ -}) -#else -#define vst2q_s64(__p0, __p1) __extension__ ({ \ - int64x2x2_t __s1 = __p1; \ - int64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_f64(__p0, __p1) __extension__ ({ \ - float64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 10); \ -}) -#else -#define vst2_f64(__p0, __p1) __extension__ ({ \ - float64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 6); \ -}) -#else -#define vst2_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 36); \ -}) -#else -#define vst2q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x2_t __s1 = __p1; \ - poly8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 38); \ -}) -#else -#define vst2q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x2_t __s1 = __p1; \ - poly64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 48); \ -}) -#else -#define vst2q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x2_t __s1 = __p1; \ - uint8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 51); \ -}) -#else -#define vst2q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x2_t __s1 = __p1; \ - uint64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 32); \ -}) -#else -#define vst2q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x2_t __s1 = __p1; \ - int8x16x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 42); \ -}) -#else -#define vst2q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x2_t __s1 = __p1; \ - float64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x2_t __s1 = __p1; \ - __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 35); \ -}) -#else -#define vst2q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x2_t __s1 = __p1; \ - int64x2x2_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 19); \ -}) -#else -#define vst2_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 10); \ -}) -#else -#define vst2_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst2_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 3); \ -}) -#else -#define vst2_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x2_t __s1 = __p1; \ - __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_p64(__p0, __p1) __extension__ ({ \ - poly64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 6); \ -}) -#else -#define vst3_p64(__p0, __p1) __extension__ ({ \ - poly64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_p64(__p0, __p1) __extension__ ({ \ - poly64x2x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 38); \ -}) -#else -#define vst3q_p64(__p0, __p1) __extension__ ({ \ - poly64x2x3_t __s1 = __p1; \ - poly64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_u64(__p0, __p1) __extension__ ({ \ - uint64x2x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 51); \ -}) -#else -#define vst3q_u64(__p0, __p1) __extension__ ({ \ - uint64x2x3_t __s1 = __p1; \ - uint64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_f64(__p0, __p1) __extension__ ({ \ - float64x2x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 42); \ -}) -#else -#define vst3q_f64(__p0, __p1) __extension__ ({ \ - float64x2x3_t __s1 = __p1; \ - float64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_s64(__p0, __p1) __extension__ ({ \ - int64x2x3_t __s1 = __p1; \ - __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 35); \ -}) -#else -#define vst3q_s64(__p0, __p1) __extension__ ({ \ - int64x2x3_t __s1 = __p1; \ - int64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_f64(__p0, __p1) __extension__ ({ \ - float64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 10); \ -}) -#else -#define vst3_f64(__p0, __p1) __extension__ ({ \ - float64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 6); \ -}) -#else -#define vst3_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 36); \ -}) -#else -#define vst3q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x3_t __s1 = __p1; \ - poly8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 38); \ -}) -#else -#define vst3q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x3_t __s1 = __p1; \ - poly64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 48); \ -}) -#else -#define vst3q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x3_t __s1 = __p1; \ - uint8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 51); \ -}) -#else -#define vst3q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x3_t __s1 = __p1; \ - uint64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 32); \ -}) -#else -#define vst3q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x3_t __s1 = __p1; \ - int8x16x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 42); \ -}) -#else -#define vst3q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x3_t __s1 = __p1; \ - float64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x3_t __s1 = __p1; \ - __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 35); \ -}) -#else -#define vst3q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x3_t __s1 = __p1; \ - int64x2x3_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 19); \ -}) -#else -#define vst3_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 10); \ -}) -#else -#define vst3_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst3_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 3); \ -}) -#else -#define vst3_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x3_t __s1 = __p1; \ - __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_p64(__p0, __p1) __extension__ ({ \ - poly64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 6); \ -}) -#else -#define vst4_p64(__p0, __p1) __extension__ ({ \ - poly64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_p64(__p0, __p1) __extension__ ({ \ - poly64x2x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 38); \ -}) -#else -#define vst4q_p64(__p0, __p1) __extension__ ({ \ - poly64x2x4_t __s1 = __p1; \ - poly64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_u64(__p0, __p1) __extension__ ({ \ - uint64x2x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 51); \ -}) -#else -#define vst4q_u64(__p0, __p1) __extension__ ({ \ - uint64x2x4_t __s1 = __p1; \ - uint64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_f64(__p0, __p1) __extension__ ({ \ - float64x2x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 42); \ -}) -#else -#define vst4q_f64(__p0, __p1) __extension__ ({ \ - float64x2x4_t __s1 = __p1; \ - float64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_s64(__p0, __p1) __extension__ ({ \ - int64x2x4_t __s1 = __p1; \ - __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 35); \ -}) -#else -#define vst4q_s64(__p0, __p1) __extension__ ({ \ - int64x2x4_t __s1 = __p1; \ - int64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_f64(__p0, __p1) __extension__ ({ \ - float64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 10); \ -}) -#else -#define vst4_f64(__p0, __p1) __extension__ ({ \ - float64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 6); \ -}) -#else -#define vst4_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 6); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 36); \ -}) -#else -#define vst4q_lane_p8(__p0, __p1, __p2) __extension__ ({ \ - poly8x16x4_t __s1 = __p1; \ - poly8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 36); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 38); \ -}) -#else -#define vst4q_lane_p64(__p0, __p1, __p2) __extension__ ({ \ - poly64x2x4_t __s1 = __p1; \ - poly64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 38); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 48); \ -}) -#else -#define vst4q_lane_u8(__p0, __p1, __p2) __extension__ ({ \ - uint8x16x4_t __s1 = __p1; \ - uint8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 48); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 51); \ -}) -#else -#define vst4q_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x2x4_t __s1 = __p1; \ - uint64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 51); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 32); \ -}) -#else -#define vst4q_lane_s8(__p0, __p1, __p2) __extension__ ({ \ - int8x16x4_t __s1 = __p1; \ - int8x16x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 32); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 42); \ -}) -#else -#define vst4q_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x2x4_t __s1 = __p1; \ - float64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 42); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x4_t __s1 = __p1; \ - __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 35); \ -}) -#else -#define vst4q_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x2x4_t __s1 = __p1; \ - int64x2x4_t __rev1; \ - __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \ - __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \ - __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \ - __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \ - __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 35); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 19); \ -}) -#else -#define vst4_lane_u64(__p0, __p1, __p2) __extension__ ({ \ - uint64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 19); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 10); \ -}) -#else -#define vst4_lane_f64(__p0, __p1, __p2) __extension__ ({ \ - float64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 10); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vst4_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 3); \ -}) -#else -#define vst4_lane_s64(__p0, __p1, __p2) __extension__ ({ \ - int64x1x4_t __s1 = __p1; \ - __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 3); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vstrq_p128(__p0, __p1) __extension__ ({ \ - poly128_t __s1 = __p1; \ - __builtin_neon_vstrq_p128(__p0, __s1); \ -}) -#else -#define vstrq_p128(__p0, __p1) __extension__ ({ \ - poly128_t __s1 = __p1; \ - __builtin_neon_vstrq_p128(__p0, __s1); \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vsubd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vsubd_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vsubd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vsubd_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vsubd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vsubd_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vsubd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vsubd_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vsubq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai float64x2_t vsubq_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __rev0 - __rev1; - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x1_t vsub_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#else -__ai float64x1_t vsub_f64(float64x1_t __p0, float64x1_t __p1) { - float64x1_t __ret; - __ret = __p0 - __p1; - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vsubhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint16x8_t __ret; - __ret = vcombine_u16(__p0, vsubhn_u32(__p1, __p2)); - return __ret; -} -#else -__ai uint16x8_t vsubhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vcombine_u16(__rev0, __noswap_vsubhn_u32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsubhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) { - uint32x4_t __ret; - __ret = vcombine_u32(__p0, vsubhn_u64(__p1, __p2)); - return __ret; -} -#else -__ai uint32x4_t vsubhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vcombine_u32(__rev0, __noswap_vsubhn_u64(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vsubhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint8x16_t __ret; - __ret = vcombine_u8(__p0, vsubhn_u16(__p1, __p2)); - return __ret; -} -#else -__ai uint8x16_t vsubhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __noswap_vcombine_u8(__rev0, __noswap_vsubhn_u16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vsubhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int16x8_t __ret; - __ret = vcombine_s16(__p0, vsubhn_s32(__p1, __p2)); - return __ret; -} -#else -__ai int16x8_t vsubhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vcombine_s16(__rev0, __noswap_vsubhn_s32(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vsubhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) { - int32x4_t __ret; - __ret = vcombine_s32(__p0, vsubhn_s64(__p1, __p2)); - return __ret; -} -#else -__ai int32x4_t vsubhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vcombine_s32(__rev0, __noswap_vsubhn_s64(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vsubhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int8x16_t __ret; - __ret = vcombine_s8(__p0, vsubhn_s16(__p1, __p2)); - return __ret; -} -#else -__ai int8x16_t vsubhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __noswap_vcombine_s8(__rev0, __noswap_vsubhn_s16(__rev1, __rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vsubl_high_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint16x8_t __ret; - __ret = vmovl_high_u8(__p0) - vmovl_high_u8(__p1); - return __ret; -} -#else -__ai uint16x8_t vsubl_high_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vmovl_high_u8(__rev0) - __noswap_vmovl_high_u8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vsubl_high_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint64x2_t __ret; - __ret = vmovl_high_u32(__p0) - vmovl_high_u32(__p1); - return __ret; -} -#else -__ai uint64x2_t vsubl_high_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vmovl_high_u32(__rev0) - __noswap_vmovl_high_u32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsubl_high_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint32x4_t __ret; - __ret = vmovl_high_u16(__p0) - vmovl_high_u16(__p1); - return __ret; -} -#else -__ai uint32x4_t vsubl_high_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vmovl_high_u16(__rev0) - __noswap_vmovl_high_u16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vsubl_high_s8(int8x16_t __p0, int8x16_t __p1) { - int16x8_t __ret; - __ret = vmovl_high_s8(__p0) - vmovl_high_s8(__p1); - return __ret; -} -#else -__ai int16x8_t vsubl_high_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vmovl_high_s8(__rev0) - __noswap_vmovl_high_s8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vsubl_high_s32(int32x4_t __p0, int32x4_t __p1) { - int64x2_t __ret; - __ret = vmovl_high_s32(__p0) - vmovl_high_s32(__p1); - return __ret; -} -#else -__ai int64x2_t vsubl_high_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vmovl_high_s32(__rev0) - __noswap_vmovl_high_s32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vsubl_high_s16(int16x8_t __p0, int16x8_t __p1) { - int32x4_t __ret; - __ret = vmovl_high_s16(__p0) - vmovl_high_s16(__p1); - return __ret; -} -#else -__ai int32x4_t vsubl_high_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vmovl_high_s16(__rev0) - __noswap_vmovl_high_s16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vsubw_high_u8(uint16x8_t __p0, uint8x16_t __p1) { - uint16x8_t __ret; - __ret = __p0 - vmovl_high_u8(__p1); - return __ret; -} -#else -__ai uint16x8_t vsubw_high_u8(uint16x8_t __p0, uint8x16_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 - __noswap_vmovl_high_u8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vsubw_high_u32(uint64x2_t __p0, uint32x4_t __p1) { - uint64x2_t __ret; - __ret = __p0 - vmovl_high_u32(__p1); - return __ret; -} -#else -__ai uint64x2_t vsubw_high_u32(uint64x2_t __p0, uint32x4_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __rev0 - __noswap_vmovl_high_u32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vsubw_high_u16(uint32x4_t __p0, uint16x8_t __p1) { - uint32x4_t __ret; - __ret = __p0 - vmovl_high_u16(__p1); - return __ret; -} -#else -__ai uint32x4_t vsubw_high_u16(uint32x4_t __p0, uint16x8_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 - __noswap_vmovl_high_u16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vsubw_high_s8(int16x8_t __p0, int8x16_t __p1) { - int16x8_t __ret; - __ret = __p0 - vmovl_high_s8(__p1); - return __ret; -} -#else -__ai int16x8_t vsubw_high_s8(int16x8_t __p0, int8x16_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 - __noswap_vmovl_high_s8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vsubw_high_s32(int64x2_t __p0, int32x4_t __p1) { - int64x2_t __ret; - __ret = __p0 - vmovl_high_s32(__p1); - return __ret; -} -#else -__ai int64x2_t vsubw_high_s32(int64x2_t __p0, int32x4_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __rev0 - __noswap_vmovl_high_s32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vsubw_high_s16(int32x4_t __p0, int16x8_t __p1) { - int32x4_t __ret; - __ret = __p0 - vmovl_high_s16(__p1); - return __ret; -} -#else -__ai int32x4_t vsubw_high_s16(int32x4_t __p0, int16x8_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 - __noswap_vmovl_high_s16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vtrn1_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14); - return __ret; -} -#else -__ai poly8x8_t vtrn1_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vtrn1_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6); - return __ret; -} -#else -__ai poly16x4_t vtrn1_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vtrn1q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30); - return __ret; -} -#else -__ai poly8x16_t vtrn1q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vtrn1q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai poly64x2_t vtrn1q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - poly64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vtrn1q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14); - return __ret; -} -#else -__ai poly16x8_t vtrn1q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vtrn1q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30); - return __ret; -} -#else -__ai uint8x16_t vtrn1q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vtrn1q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6); - return __ret; -} -#else -__ai uint32x4_t vtrn1q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vtrn1q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai uint64x2_t vtrn1q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vtrn1q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14); - return __ret; -} -#else -__ai uint16x8_t vtrn1q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vtrn1q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30); - return __ret; -} -#else -__ai int8x16_t vtrn1q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vtrn1q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai float64x2_t vtrn1q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vtrn1q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6); - return __ret; -} -#else -__ai float32x4_t vtrn1q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vtrn1q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6); - return __ret; -} -#else -__ai int32x4_t vtrn1q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vtrn1q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai int64x2_t vtrn1q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vtrn1q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14); - return __ret; -} -#else -__ai int16x8_t vtrn1q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtrn1_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14); - return __ret; -} -#else -__ai uint8x8_t vtrn1_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vtrn1_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai uint32x2_t vtrn1_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vtrn1_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6); - return __ret; -} -#else -__ai uint16x4_t vtrn1_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vtrn1_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14); - return __ret; -} -#else -__ai int8x8_t vtrn1_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vtrn1_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai float32x2_t vtrn1_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vtrn1_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai int32x2_t vtrn1_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vtrn1_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6); - return __ret; -} -#else -__ai int16x4_t vtrn1_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vtrn2_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15); - return __ret; -} -#else -__ai poly8x8_t vtrn2_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vtrn2_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7); - return __ret; -} -#else -__ai poly16x4_t vtrn2_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vtrn2q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31); - return __ret; -} -#else -__ai poly8x16_t vtrn2q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vtrn2q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai poly64x2_t vtrn2q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - poly64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vtrn2q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15); - return __ret; -} -#else -__ai poly16x8_t vtrn2q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vtrn2q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31); - return __ret; -} -#else -__ai uint8x16_t vtrn2q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vtrn2q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7); - return __ret; -} -#else -__ai uint32x4_t vtrn2q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vtrn2q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai uint64x2_t vtrn2q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vtrn2q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15); - return __ret; -} -#else -__ai uint16x8_t vtrn2q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vtrn2q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31); - return __ret; -} -#else -__ai int8x16_t vtrn2q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vtrn2q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai float64x2_t vtrn2q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vtrn2q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7); - return __ret; -} -#else -__ai float32x4_t vtrn2q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vtrn2q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7); - return __ret; -} -#else -__ai int32x4_t vtrn2q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vtrn2q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai int64x2_t vtrn2q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vtrn2q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15); - return __ret; -} -#else -__ai int16x8_t vtrn2q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vtrn2_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15); - return __ret; -} -#else -__ai uint8x8_t vtrn2_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vtrn2_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai uint32x2_t vtrn2_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vtrn2_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7); - return __ret; -} -#else -__ai uint16x4_t vtrn2_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vtrn2_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15); - return __ret; -} -#else -__ai int8x8_t vtrn2_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vtrn2_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai float32x2_t vtrn2_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vtrn2_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai int32x2_t vtrn2_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vtrn2_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7); - return __ret; -} -#else -__ai int16x4_t vtrn2_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vtst_p64(poly64x1_t __p0, poly64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vtst_p64(poly64x1_t __p0, poly64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vtstq_p64(poly64x2_t __p0, poly64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vtstq_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vtstq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vtstq_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vtstq_s64(int64x2_t __p0, int64x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 51); - return __ret; -} -#else -__ai uint64x2_t vtstq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vtst_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vtst_u64(uint64x1_t __p0, uint64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x1_t vtst_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#else -__ai uint64x1_t vtst_s64(int64x1_t __p0, int64x1_t __p1) { - uint64x1_t __ret; - __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64_t vtstd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vtstd_u64(__p0, __p1); - return __ret; -} -#else -__ai uint64_t vtstd_u64(uint64_t __p0, uint64_t __p1) { - uint64_t __ret; - __ret = (uint64_t) __builtin_neon_vtstd_u64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vtstd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vtstd_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vtstd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vtstd_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8_t vuqaddb_s8(int8_t __p0, int8_t __p1) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vuqaddb_s8(__p0, __p1); - return __ret; -} -#else -__ai int8_t vuqaddb_s8(int8_t __p0, int8_t __p1) { - int8_t __ret; - __ret = (int8_t) __builtin_neon_vuqaddb_s8(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vuqadds_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vuqadds_s32(__p0, __p1); - return __ret; -} -#else -__ai int32_t vuqadds_s32(int32_t __p0, int32_t __p1) { - int32_t __ret; - __ret = (int32_t) __builtin_neon_vuqadds_s32(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64_t vuqaddd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vuqaddd_s64(__p0, __p1); - return __ret; -} -#else -__ai int64_t vuqaddd_s64(int64_t __p0, int64_t __p1) { - int64_t __ret; - __ret = (int64_t) __builtin_neon_vuqaddd_s64(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vuqaddh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vuqaddh_s16(__p0, __p1); - return __ret; -} -#else -__ai int16_t vuqaddh_s16(int16_t __p0, int16_t __p1) { - int16_t __ret; - __ret = (int16_t) __builtin_neon_vuqaddh_s16(__p0, __p1); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vuqaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vuqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 32); - return __ret; -} -#else -__ai int8x16_t vuqaddq_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = (int8x16_t) __builtin_neon_vuqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vuqaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vuqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34); - return __ret; -} -#else -__ai int32x4_t vuqaddq_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t) __builtin_neon_vuqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vuqaddq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vuqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 35); - return __ret; -} -#else -__ai int64x2_t vuqaddq_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t) __builtin_neon_vuqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vuqaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vuqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33); - return __ret; -} -#else -__ai int16x8_t vuqaddq_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t) __builtin_neon_vuqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vuqadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vuqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 0); - return __ret; -} -#else -__ai int8x8_t vuqadd_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = (int8x8_t) __builtin_neon_vuqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vuqadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vuqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2); - return __ret; -} -#else -__ai int32x2_t vuqadd_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = (int32x2_t) __builtin_neon_vuqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x1_t vuqadd_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vuqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#else -__ai int64x1_t vuqadd_s64(int64x1_t __p0, int64x1_t __p1) { - int64x1_t __ret; - __ret = (int64x1_t) __builtin_neon_vuqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 3); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vuqadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vuqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1); - return __ret; -} -#else -__ai int16x4_t vuqadd_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = (int16x4_t) __builtin_neon_vuqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vuzp1_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14); - return __ret; -} -#else -__ai poly8x8_t vuzp1_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vuzp1_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6); - return __ret; -} -#else -__ai poly16x4_t vuzp1_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vuzp1q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30); - return __ret; -} -#else -__ai poly8x16_t vuzp1q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vuzp1q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai poly64x2_t vuzp1q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - poly64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vuzp1q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14); - return __ret; -} -#else -__ai poly16x8_t vuzp1q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vuzp1q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30); - return __ret; -} -#else -__ai uint8x16_t vuzp1q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vuzp1q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6); - return __ret; -} -#else -__ai uint32x4_t vuzp1q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vuzp1q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai uint64x2_t vuzp1q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vuzp1q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14); - return __ret; -} -#else -__ai uint16x8_t vuzp1q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vuzp1q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30); - return __ret; -} -#else -__ai int8x16_t vuzp1q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vuzp1q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai float64x2_t vuzp1q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vuzp1q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6); - return __ret; -} -#else -__ai float32x4_t vuzp1q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vuzp1q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6); - return __ret; -} -#else -__ai int32x4_t vuzp1q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vuzp1q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai int64x2_t vuzp1q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vuzp1q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14); - return __ret; -} -#else -__ai int16x8_t vuzp1q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vuzp1_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14); - return __ret; -} -#else -__ai uint8x8_t vuzp1_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vuzp1_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai uint32x2_t vuzp1_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vuzp1_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6); - return __ret; -} -#else -__ai uint16x4_t vuzp1_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vuzp1_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14); - return __ret; -} -#else -__ai int8x8_t vuzp1_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vuzp1_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai float32x2_t vuzp1_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vuzp1_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai int32x2_t vuzp1_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vuzp1_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6); - return __ret; -} -#else -__ai int16x4_t vuzp1_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vuzp2_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15); - return __ret; -} -#else -__ai poly8x8_t vuzp2_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vuzp2_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7); - return __ret; -} -#else -__ai poly16x4_t vuzp2_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vuzp2q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31); - return __ret; -} -#else -__ai poly8x16_t vuzp2q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vuzp2q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai poly64x2_t vuzp2q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - poly64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vuzp2q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15); - return __ret; -} -#else -__ai poly16x8_t vuzp2q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vuzp2q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31); - return __ret; -} -#else -__ai uint8x16_t vuzp2q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vuzp2q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7); - return __ret; -} -#else -__ai uint32x4_t vuzp2q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vuzp2q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai uint64x2_t vuzp2q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vuzp2q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15); - return __ret; -} -#else -__ai uint16x8_t vuzp2q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vuzp2q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31); - return __ret; -} -#else -__ai int8x16_t vuzp2q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vuzp2q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai float64x2_t vuzp2q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vuzp2q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7); - return __ret; -} -#else -__ai float32x4_t vuzp2q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vuzp2q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7); - return __ret; -} -#else -__ai int32x4_t vuzp2q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vuzp2q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai int64x2_t vuzp2q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vuzp2q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15); - return __ret; -} -#else -__ai int16x8_t vuzp2q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vuzp2_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15); - return __ret; -} -#else -__ai uint8x8_t vuzp2_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vuzp2_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai uint32x2_t vuzp2_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vuzp2_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7); - return __ret; -} -#else -__ai uint16x4_t vuzp2_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vuzp2_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15); - return __ret; -} -#else -__ai int8x8_t vuzp2_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vuzp2_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai float32x2_t vuzp2_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vuzp2_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai int32x2_t vuzp2_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vuzp2_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7); - return __ret; -} -#else -__ai int16x4_t vuzp2_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vzip1_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11); - return __ret; -} -#else -__ai poly8x8_t vzip1_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vzip1_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5); - return __ret; -} -#else -__ai poly16x4_t vzip1_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vzip1q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23); - return __ret; -} -#else -__ai poly8x16_t vzip1q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vzip1q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai poly64x2_t vzip1q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - poly64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vzip1q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11); - return __ret; -} -#else -__ai poly16x8_t vzip1q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vzip1q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23); - return __ret; -} -#else -__ai uint8x16_t vzip1q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vzip1q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5); - return __ret; -} -#else -__ai uint32x4_t vzip1q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vzip1q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai uint64x2_t vzip1q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vzip1q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11); - return __ret; -} -#else -__ai uint16x8_t vzip1q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vzip1q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23); - return __ret; -} -#else -__ai int8x16_t vzip1q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vzip1q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai float64x2_t vzip1q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vzip1q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5); - return __ret; -} -#else -__ai float32x4_t vzip1q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vzip1q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5); - return __ret; -} -#else -__ai int32x4_t vzip1q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vzip1q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai int64x2_t vzip1q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vzip1q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11); - return __ret; -} -#else -__ai int16x8_t vzip1q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vzip1_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11); - return __ret; -} -#else -__ai uint8x8_t vzip1_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vzip1_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai uint32x2_t vzip1_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vzip1_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5); - return __ret; -} -#else -__ai uint16x4_t vzip1_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vzip1_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11); - return __ret; -} -#else -__ai int8x8_t vzip1_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vzip1_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai float32x2_t vzip1_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vzip1_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 2); - return __ret; -} -#else -__ai int32x2_t vzip1_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vzip1_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5); - return __ret; -} -#else -__ai int16x4_t vzip1_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x8_t vzip2_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15); - return __ret; -} -#else -__ai poly8x8_t vzip2_p8(poly8x8_t __p0, poly8x8_t __p1) { - poly8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x4_t vzip2_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7); - return __ret; -} -#else -__ai poly16x4_t vzip2_p16(poly16x4_t __p0, poly16x4_t __p1) { - poly16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - poly16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - poly16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly8x16_t vzip2q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31); - return __ret; -} -#else -__ai poly8x16_t vzip2q_p8(poly8x16_t __p0, poly8x16_t __p1) { - poly8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - poly8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly64x2_t vzip2q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai poly64x2_t vzip2q_p64(poly64x2_t __p0, poly64x2_t __p1) { - poly64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - poly64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - poly64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai poly16x8_t vzip2q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15); - return __ret; -} -#else -__ai poly16x8_t vzip2q_p16(poly16x8_t __p0, poly16x8_t __p1) { - poly16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - poly16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vzip2q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31); - return __ret; -} -#else -__ai uint8x16_t vzip2q_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vzip2q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7); - return __ret; -} -#else -__ai uint32x4_t vzip2q_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vzip2q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai uint64x2_t vzip2q_u64(uint64x2_t __p0, uint64x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vzip2q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15); - return __ret; -} -#else -__ai uint16x8_t vzip2q_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vzip2q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31); - return __ret; -} -#else -__ai int8x16_t vzip2q_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float64x2_t vzip2q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai float64x2_t vzip2q_f64(float64x2_t __p0, float64x2_t __p1) { - float64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x4_t vzip2q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7); - return __ret; -} -#else -__ai float32x4_t vzip2q_f32(float32x4_t __p0, float32x4_t __p1) { - float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - float32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - float32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vzip2q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7); - return __ret; -} -#else -__ai int32x4_t vzip2q_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vzip2q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai int64x2_t vzip2q_s64(int64x2_t __p0, int64x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int64x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vzip2q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15); - return __ret; -} -#else -__ai int16x8_t vzip2q_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vzip2_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15); - return __ret; -} -#else -__ai uint8x8_t vzip2_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vzip2_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai uint32x2_t vzip2_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vzip2_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7); - return __ret; -} -#else -__ai uint16x4_t vzip2_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vzip2_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15); - return __ret; -} -#else -__ai int8x8_t vzip2_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai float32x2_t vzip2_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai float32x2_t vzip2_f32(float32x2_t __p0, float32x2_t __p1) { - float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - float32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - float32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vzip2_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 1, 3); - return __ret; -} -#else -__ai int32x2_t vzip2_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vzip2_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __ret; - __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7); - return __ret; -} -#else -__ai int16x4_t vzip2_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#endif -#ifdef __LITTLE_ENDIAN__ -__ai uint8x16_t vabaq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint8x16_t __ret; - __ret = __p0 + vabdq_u8(__p1, __p2); - return __ret; -} -#else -__ai uint8x16_t vabaq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __ret; - __ret = __rev0 + __noswap_vabdq_u8(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vabaq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __ret; - __ret = __p0 + vabdq_u32(__p1, __p2); - return __ret; -} -#else -__ai uint32x4_t vabaq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 + __noswap_vabdq_u32(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vabaq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint16x8_t __ret; - __ret = __p0 + vabdq_u16(__p1, __p2); - return __ret; -} -#else -__ai uint16x8_t vabaq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 + __noswap_vabdq_u16(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x16_t vabaq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) { - int8x16_t __ret; - __ret = __p0 + vabdq_s8(__p1, __p2); - return __ret; -} -#else -__ai int8x16_t vabaq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __ret; - __ret = __rev0 + __noswap_vabdq_s8(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vabaq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __ret; - __ret = __p0 + vabdq_s32(__p1, __p2); - return __ret; -} -#else -__ai int32x4_t vabaq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 + __noswap_vabdq_s32(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vabaq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __ret; - __ret = __p0 + vabdq_s16(__p1, __p2); - return __ret; -} -#else -__ai int16x8_t vabaq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 + __noswap_vabdq_s16(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint8x8_t vaba_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint8x8_t __ret; - __ret = __p0 + vabd_u8(__p1, __p2); - return __ret; -} -#else -__ai uint8x8_t vaba_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __ret; - __ret = __rev0 + __noswap_vabd_u8(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x2_t vaba_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint32x2_t __ret; - __ret = __p0 + vabd_u32(__p1, __p2); - return __ret; -} -#else -__ai uint32x2_t vaba_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint32x2_t __ret; - __ret = __rev0 + __noswap_vabd_u32(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x4_t vaba_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint16x4_t __ret; - __ret = __p0 + vabd_u16(__p1, __p2); - return __ret; -} -#else -__ai uint16x4_t vaba_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint16x4_t __ret; - __ret = __rev0 + __noswap_vabd_u16(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int8x8_t vaba_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int8x8_t __ret; - __ret = __p0 + vabd_s8(__p1, __p2); - return __ret; -} -#else -__ai int8x8_t vaba_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __ret; - __ret = __rev0 + __noswap_vabd_s8(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x2_t vaba_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __ret; - __ret = __p0 + vabd_s32(__p1, __p2); - return __ret; -} -#else -__ai int32x2_t vaba_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int32x2_t __ret; - __ret = __rev0 + __noswap_vabd_s32(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x4_t vaba_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __ret; - __ret = __p0 + vabd_s16(__p1, __p2); - return __ret; -} -#else -__ai int16x4_t vaba_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int16x4_t __ret; - __ret = __rev0 + __noswap_vabd_s16(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vabdl_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(vmovl_u8((uint8x8_t)(vabd_u8(__p0, __p1)))); - return __ret; -} -#else -__ai uint16x8_t vabdl_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = (uint16x8_t)(__noswap_vmovl_u8((uint8x8_t)(__noswap_vabd_u8(__rev0, __rev1)))); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint16x8_t __noswap_vabdl_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint16x8_t __ret; - __ret = (uint16x8_t)(__noswap_vmovl_u8((uint8x8_t)(__noswap_vabd_u8(__p0, __p1)))); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vabdl_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(vmovl_u32((uint32x2_t)(vabd_u32(__p0, __p1)))); - return __ret; -} -#else -__ai uint64x2_t vabdl_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = (uint64x2_t)(__noswap_vmovl_u32((uint32x2_t)(__noswap_vabd_u32(__rev0, __rev1)))); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint64x2_t __noswap_vabdl_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint64x2_t __ret; - __ret = (uint64x2_t)(__noswap_vmovl_u32((uint32x2_t)(__noswap_vabd_u32(__p0, __p1)))); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vabdl_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(vmovl_u16((uint16x4_t)(vabd_u16(__p0, __p1)))); - return __ret; -} -#else -__ai uint32x4_t vabdl_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = (uint32x4_t)(__noswap_vmovl_u16((uint16x4_t)(__noswap_vabd_u16(__rev0, __rev1)))); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vabdl_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint32x4_t __ret; - __ret = (uint32x4_t)(__noswap_vmovl_u16((uint16x4_t)(__noswap_vabd_u16(__p0, __p1)))); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vabdl_s8(int8x8_t __p0, int8x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t)(vmovl_u8((uint8x8_t)(vabd_s8(__p0, __p1)))); - return __ret; -} -#else -__ai int16x8_t vabdl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = (int16x8_t)(__noswap_vmovl_u8((uint8x8_t)(__noswap_vabd_s8(__rev0, __rev1)))); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vabdl_s8(int8x8_t __p0, int8x8_t __p1) { - int16x8_t __ret; - __ret = (int16x8_t)(__noswap_vmovl_u8((uint8x8_t)(__noswap_vabd_s8(__p0, __p1)))); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vabdl_s32(int32x2_t __p0, int32x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t)(vmovl_u32((uint32x2_t)(vabd_s32(__p0, __p1)))); - return __ret; -} -#else -__ai int64x2_t vabdl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = (int64x2_t)(__noswap_vmovl_u32((uint32x2_t)(__noswap_vabd_s32(__rev0, __rev1)))); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vabdl_s32(int32x2_t __p0, int32x2_t __p1) { - int64x2_t __ret; - __ret = (int64x2_t)(__noswap_vmovl_u32((uint32x2_t)(__noswap_vabd_s32(__p0, __p1)))); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vabdl_s16(int16x4_t __p0, int16x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t)(vmovl_u16((uint16x4_t)(vabd_s16(__p0, __p1)))); - return __ret; -} -#else -__ai int32x4_t vabdl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = (int32x4_t)(__noswap_vmovl_u16((uint16x4_t)(__noswap_vabd_s16(__rev0, __rev1)))); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vabdl_s16(int16x4_t __p0, int16x4_t __p1) { - int32x4_t __ret; - __ret = (int32x4_t)(__noswap_vmovl_u16((uint16x4_t)(__noswap_vabd_s16(__p0, __p1)))); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vaddl_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint16x8_t __ret; - __ret = vmovl_u8(__p0) + vmovl_u8(__p1); - return __ret; -} -#else -__ai uint16x8_t vaddl_u8(uint8x8_t __p0, uint8x8_t __p1) { - uint8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vmovl_u8(__rev0) + __noswap_vmovl_u8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vaddl_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint64x2_t __ret; - __ret = vmovl_u32(__p0) + vmovl_u32(__p1); - return __ret; -} -#else -__ai uint64x2_t vaddl_u32(uint32x2_t __p0, uint32x2_t __p1) { - uint32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vmovl_u32(__rev0) + __noswap_vmovl_u32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vaddl_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint32x4_t __ret; - __ret = vmovl_u16(__p0) + vmovl_u16(__p1); - return __ret; -} -#else -__ai uint32x4_t vaddl_u16(uint16x4_t __p0, uint16x4_t __p1) { - uint16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vmovl_u16(__rev0) + __noswap_vmovl_u16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vaddl_s8(int8x8_t __p0, int8x8_t __p1) { - int16x8_t __ret; - __ret = vmovl_s8(__p0) + vmovl_s8(__p1); - return __ret; -} -#else -__ai int16x8_t vaddl_s8(int8x8_t __p0, int8x8_t __p1) { - int8x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vmovl_s8(__rev0) + __noswap_vmovl_s8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vaddl_s32(int32x2_t __p0, int32x2_t __p1) { - int64x2_t __ret; - __ret = vmovl_s32(__p0) + vmovl_s32(__p1); - return __ret; -} -#else -__ai int64x2_t vaddl_s32(int32x2_t __p0, int32x2_t __p1) { - int32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __noswap_vmovl_s32(__rev0) + __noswap_vmovl_s32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vaddl_s16(int16x4_t __p0, int16x4_t __p1) { - int32x4_t __ret; - __ret = vmovl_s16(__p0) + vmovl_s16(__p1); - return __ret; -} -#else -__ai int32x4_t vaddl_s16(int16x4_t __p0, int16x4_t __p1) { - int16x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vmovl_s16(__rev0) + __noswap_vmovl_s16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vaddw_u8(uint16x8_t __p0, uint8x8_t __p1) { - uint16x8_t __ret; - __ret = __p0 + vmovl_u8(__p1); - return __ret; -} -#else -__ai uint16x8_t vaddw_u8(uint16x8_t __p0, uint8x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 + __noswap_vmovl_u8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vaddw_u32(uint64x2_t __p0, uint32x2_t __p1) { - uint64x2_t __ret; - __ret = __p0 + vmovl_u32(__p1); - return __ret; -} -#else -__ai uint64x2_t vaddw_u32(uint64x2_t __p0, uint32x2_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 + __noswap_vmovl_u32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vaddw_u16(uint32x4_t __p0, uint16x4_t __p1) { - uint32x4_t __ret; - __ret = __p0 + vmovl_u16(__p1); - return __ret; -} -#else -__ai uint32x4_t vaddw_u16(uint32x4_t __p0, uint16x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 + __noswap_vmovl_u16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vaddw_s8(int16x8_t __p0, int8x8_t __p1) { - int16x8_t __ret; - __ret = __p0 + vmovl_s8(__p1); - return __ret; -} -#else -__ai int16x8_t vaddw_s8(int16x8_t __p0, int8x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 + __noswap_vmovl_s8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vaddw_s32(int64x2_t __p0, int32x2_t __p1) { - int64x2_t __ret; - __ret = __p0 + vmovl_s32(__p1); - return __ret; -} -#else -__ai int64x2_t vaddw_s32(int64x2_t __p0, int32x2_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 + __noswap_vmovl_s32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vaddw_s16(int32x4_t __p0, int16x4_t __p1) { - int32x4_t __ret; - __ret = __p0 + vmovl_s16(__p1); - return __ret; -} -#else -__ai int32x4_t vaddw_s16(int32x4_t __p0, int16x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 + __noswap_vmovl_s16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vget_lane_f16(__p0_254, __p1_254) __extension__ ({ \ - float16x4_t __s0_254 = __p0_254; \ - float16_t __ret_254; \ -float16x4_t __reint_254 = __s0_254; \ -int16_t __reint1_254 = vget_lane_s16(*(int16x4_t *) &__reint_254, __p1_254); \ - __ret_254 = *(float16_t *) &__reint1_254; \ - __ret_254; \ -}) -#else -#define vget_lane_f16(__p0_255, __p1_255) __extension__ ({ \ - float16x4_t __s0_255 = __p0_255; \ - float16x4_t __rev0_255; __rev0_255 = __builtin_shufflevector(__s0_255, __s0_255, 3, 2, 1, 0); \ - float16_t __ret_255; \ -float16x4_t __reint_255 = __rev0_255; \ -int16_t __reint1_255 = __noswap_vget_lane_s16(*(int16x4_t *) &__reint_255, __p1_255); \ - __ret_255 = *(float16_t *) &__reint1_255; \ - __ret_255; \ -}) -#define __noswap_vget_lane_f16(__p0_256, __p1_256) __extension__ ({ \ - float16x4_t __s0_256 = __p0_256; \ - float16_t __ret_256; \ -float16x4_t __reint_256 = __s0_256; \ -int16_t __reint1_256 = __noswap_vget_lane_s16(*(int16x4_t *) &__reint_256, __p1_256); \ - __ret_256 = *(float16_t *) &__reint1_256; \ - __ret_256; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vgetq_lane_f16(__p0_257, __p1_257) __extension__ ({ \ - float16x8_t __s0_257 = __p0_257; \ - float16_t __ret_257; \ -float16x8_t __reint_257 = __s0_257; \ -int16_t __reint1_257 = vgetq_lane_s16(*(int16x8_t *) &__reint_257, __p1_257); \ - __ret_257 = *(float16_t *) &__reint1_257; \ - __ret_257; \ -}) -#else -#define vgetq_lane_f16(__p0_258, __p1_258) __extension__ ({ \ - float16x8_t __s0_258 = __p0_258; \ - float16x8_t __rev0_258; __rev0_258 = __builtin_shufflevector(__s0_258, __s0_258, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16_t __ret_258; \ -float16x8_t __reint_258 = __rev0_258; \ -int16_t __reint1_258 = __noswap_vgetq_lane_s16(*(int16x8_t *) &__reint_258, __p1_258); \ - __ret_258 = *(float16_t *) &__reint1_258; \ - __ret_258; \ -}) -#define __noswap_vgetq_lane_f16(__p0_259, __p1_259) __extension__ ({ \ - float16x8_t __s0_259 = __p0_259; \ - float16_t __ret_259; \ -float16x8_t __reint_259 = __s0_259; \ -int16_t __reint1_259 = __noswap_vgetq_lane_s16(*(int16x8_t *) &__reint_259, __p1_259); \ - __ret_259 = *(float16_t *) &__reint1_259; \ - __ret_259; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmlal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint16x8_t __ret; - __ret = __p0 + vmull_u8(__p1, __p2); - return __ret; -} -#else -__ai uint16x8_t vmlal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 + __noswap_vmull_u8(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint16x8_t __noswap_vmlal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint16x8_t __ret; - __ret = __p0 + __noswap_vmull_u8(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmlal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint64x2_t __ret; - __ret = __p0 + vmull_u32(__p1, __p2); - return __ret; -} -#else -__ai uint64x2_t vmlal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint64x2_t __ret; - __ret = __rev0 + __noswap_vmull_u32(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint64x2_t __noswap_vmlal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint64x2_t __ret; - __ret = __p0 + __noswap_vmull_u32(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint32x4_t __ret; - __ret = __p0 + vmull_u16(__p1, __p2); - return __ret; -} -#else -__ai uint32x4_t vmlal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 + __noswap_vmull_u16(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vmlal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint32x4_t __ret; - __ret = __p0 + __noswap_vmull_u16(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmlal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int16x8_t __ret; - __ret = __p0 + vmull_s8(__p1, __p2); - return __ret; -} -#else -__ai int16x8_t vmlal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 + __noswap_vmull_s8(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vmlal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int16x8_t __ret; - __ret = __p0 + __noswap_vmull_s8(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __ret; - __ret = __p0 + vmull_s32(__p1, __p2); - return __ret; -} -#else -__ai int64x2_t vmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int64x2_t __ret; - __ret = __rev0 + __noswap_vmull_s32(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __ret; - __ret = __p0 + __noswap_vmull_s32(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __ret; - __ret = __p0 + vmull_s16(__p1, __p2); - return __ret; -} -#else -__ai int32x4_t vmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 + __noswap_vmull_s16(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __ret; - __ret = __p0 + __noswap_vmull_s16(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint64x2_t __ret; \ - __ret = __s0 + vmull_u32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - uint64x2_t __ret; \ - __ret = __rev0 + __noswap_vmull_u32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 + vmull_u16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 + __noswap_vmull_u16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = __s0 + vmull_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int64x2_t __ret; \ - __ret = __rev0 + __noswap_vmull_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlal_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 + vmull_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlal_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 + __noswap_vmull_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmlal_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) { - uint64x2_t __ret; - __ret = __p0 + vmull_u32(__p1, (uint32x2_t) {__p2, __p2}); - return __ret; -} -#else -__ai uint64x2_t vmlal_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 + __noswap_vmull_u32(__rev1, (uint32x2_t) {__p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint64x2_t __noswap_vmlal_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) { - uint64x2_t __ret; - __ret = __p0 + __noswap_vmull_u32(__p1, (uint32x2_t) {__p2, __p2}); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlal_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) { - uint32x4_t __ret; - __ret = __p0 + vmull_u16(__p1, (uint16x4_t) {__p2, __p2, __p2, __p2}); - return __ret; -} -#else -__ai uint32x4_t vmlal_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 + __noswap_vmull_u16(__rev1, (uint16x4_t) {__p2, __p2, __p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vmlal_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) { - uint32x4_t __ret; - __ret = __p0 + __noswap_vmull_u16(__p1, (uint16x4_t) {__p2, __p2, __p2, __p2}); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = __p0 + vmull_s32(__p1, (int32x2_t) {__p2, __p2}); - return __ret; -} -#else -__ai int64x2_t vmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 + __noswap_vmull_s32(__rev1, (int32x2_t) {__p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = __p0 + __noswap_vmull_s32(__p1, (int32x2_t) {__p2, __p2}); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = __p0 + vmull_s16(__p1, (int16x4_t) {__p2, __p2, __p2, __p2}); - return __ret; -} -#else -__ai int32x4_t vmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 + __noswap_vmull_s16(__rev1, (int16x4_t) {__p2, __p2, __p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = __p0 + __noswap_vmull_s16(__p1, (int16x4_t) {__p2, __p2, __p2, __p2}); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmlsl_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint16x8_t __ret; - __ret = __p0 - vmull_u8(__p1, __p2); - return __ret; -} -#else -__ai uint16x8_t vmlsl_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 - __noswap_vmull_u8(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint16x8_t __noswap_vmlsl_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint16x8_t __ret; - __ret = __p0 - __noswap_vmull_u8(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmlsl_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint64x2_t __ret; - __ret = __p0 - vmull_u32(__p1, __p2); - return __ret; -} -#else -__ai uint64x2_t vmlsl_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint64x2_t __ret; - __ret = __rev0 - __noswap_vmull_u32(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint64x2_t __noswap_vmlsl_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint64x2_t __ret; - __ret = __p0 - __noswap_vmull_u32(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlsl_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint32x4_t __ret; - __ret = __p0 - vmull_u16(__p1, __p2); - return __ret; -} -#else -__ai uint32x4_t vmlsl_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 - __noswap_vmull_u16(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vmlsl_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint32x4_t __ret; - __ret = __p0 - __noswap_vmull_u16(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmlsl_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int16x8_t __ret; - __ret = __p0 - vmull_s8(__p1, __p2); - return __ret; -} -#else -__ai int16x8_t vmlsl_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 - __noswap_vmull_s8(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vmlsl_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int16x8_t __ret; - __ret = __p0 - __noswap_vmull_s8(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __ret; - __ret = __p0 - vmull_s32(__p1, __p2); - return __ret; -} -#else -__ai int64x2_t vmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int64x2_t __ret; - __ret = __rev0 - __noswap_vmull_s32(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __ret; - __ret = __p0 - __noswap_vmull_s32(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __ret; - __ret = __p0 - vmull_s16(__p1, __p2); - return __ret; -} -#else -__ai int32x4_t vmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 - __noswap_vmull_s16(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __ret; - __ret = __p0 - __noswap_vmull_s16(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint64x2_t __ret; \ - __ret = __s0 - vmull_u32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint64x2_t __s0 = __p0; \ - uint32x2_t __s1 = __p1; \ - uint32x2_t __s2 = __p2; \ - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - uint64x2_t __ret; \ - __ret = __rev0 - __noswap_vmull_u32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint32x4_t __ret; \ - __ret = __s0 - vmull_u16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \ - uint32x4_t __s0 = __p0; \ - uint16x4_t __s1 = __p1; \ - uint16x4_t __s2 = __p2; \ - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - uint32x4_t __ret; \ - __ret = __rev0 - __noswap_vmull_u16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __ret; \ - __ret = __s0 - vmull_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \ - int64x2_t __s0 = __p0; \ - int32x2_t __s1 = __p1; \ - int32x2_t __s2 = __p2; \ - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \ - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \ - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \ - int64x2_t __ret; \ - __ret = __rev0 - __noswap_vmull_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmlsl_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __ret; \ - __ret = __s0 - vmull_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \ - __ret; \ -}) -#else -#define vmlsl_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \ - int32x4_t __s0 = __p0; \ - int16x4_t __s1 = __p1; \ - int16x4_t __s2 = __p2; \ - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \ - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \ - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \ - int32x4_t __ret; \ - __ret = __rev0 - __noswap_vmull_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \ - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \ - __ret; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmlsl_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) { - uint64x2_t __ret; - __ret = __p0 - vmull_u32(__p1, (uint32x2_t) {__p2, __p2}); - return __ret; -} -#else -__ai uint64x2_t vmlsl_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint64x2_t __ret; - __ret = __rev0 - __noswap_vmull_u32(__rev1, (uint32x2_t) {__p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint64x2_t __noswap_vmlsl_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) { - uint64x2_t __ret; - __ret = __p0 - __noswap_vmull_u32(__p1, (uint32x2_t) {__p2, __p2}); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlsl_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) { - uint32x4_t __ret; - __ret = __p0 - vmull_u16(__p1, (uint16x4_t) {__p2, __p2, __p2, __p2}); - return __ret; -} -#else -__ai uint32x4_t vmlsl_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 - __noswap_vmull_u16(__rev1, (uint16x4_t) {__p2, __p2, __p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vmlsl_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) { - uint32x4_t __ret; - __ret = __p0 - __noswap_vmull_u16(__p1, (uint16x4_t) {__p2, __p2, __p2, __p2}); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = __p0 - vmull_s32(__p1, (int32x2_t) {__p2, __p2}); - return __ret; -} -#else -__ai int64x2_t vmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int64x2_t __ret; - __ret = __rev0 - __noswap_vmull_s32(__rev1, (int32x2_t) {__p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = __p0 - __noswap_vmull_s32(__p1, (int32x2_t) {__p2, __p2}); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = __p0 - vmull_s16(__p1, (int16x4_t) {__p2, __p2, __p2, __p2}); - return __ret; -} -#else -__ai int32x4_t vmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 - __noswap_vmull_s16(__rev1, (int16x4_t) {__p2, __p2, __p2, __p2}); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = __p0 - __noswap_vmull_s16(__p1, (int16x4_t) {__p2, __p2, __p2, __p2}); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vset_lane_f16(__p0_260, __p1_260, __p2_260) __extension__ ({ \ - float16_t __s0_260 = __p0_260; \ - float16x4_t __s1_260 = __p1_260; \ - float16x4_t __ret_260; \ -float16_t __reint_260 = __s0_260; \ -float16x4_t __reint1_260 = __s1_260; \ -int16x4_t __reint2_260 = vset_lane_s16(*(int16_t *) &__reint_260, *(int16x4_t *) &__reint1_260, __p2_260); \ - __ret_260 = *(float16x4_t *) &__reint2_260; \ - __ret_260; \ -}) -#else -#define vset_lane_f16(__p0_261, __p1_261, __p2_261) __extension__ ({ \ - float16_t __s0_261 = __p0_261; \ - float16x4_t __s1_261 = __p1_261; \ - float16x4_t __rev1_261; __rev1_261 = __builtin_shufflevector(__s1_261, __s1_261, 3, 2, 1, 0); \ - float16x4_t __ret_261; \ -float16_t __reint_261 = __s0_261; \ -float16x4_t __reint1_261 = __rev1_261; \ -int16x4_t __reint2_261 = __noswap_vset_lane_s16(*(int16_t *) &__reint_261, *(int16x4_t *) &__reint1_261, __p2_261); \ - __ret_261 = *(float16x4_t *) &__reint2_261; \ - __ret_261 = __builtin_shufflevector(__ret_261, __ret_261, 3, 2, 1, 0); \ - __ret_261; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vsetq_lane_f16(__p0_262, __p1_262, __p2_262) __extension__ ({ \ - float16_t __s0_262 = __p0_262; \ - float16x8_t __s1_262 = __p1_262; \ - float16x8_t __ret_262; \ -float16_t __reint_262 = __s0_262; \ -float16x8_t __reint1_262 = __s1_262; \ -int16x8_t __reint2_262 = vsetq_lane_s16(*(int16_t *) &__reint_262, *(int16x8_t *) &__reint1_262, __p2_262); \ - __ret_262 = *(float16x8_t *) &__reint2_262; \ - __ret_262; \ -}) -#else -#define vsetq_lane_f16(__p0_263, __p1_263, __p2_263) __extension__ ({ \ - float16_t __s0_263 = __p0_263; \ - float16x8_t __s1_263 = __p1_263; \ - float16x8_t __rev1_263; __rev1_263 = __builtin_shufflevector(__s1_263, __s1_263, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __ret_263; \ -float16_t __reint_263 = __s0_263; \ -float16x8_t __reint1_263 = __rev1_263; \ -int16x8_t __reint2_263 = __noswap_vsetq_lane_s16(*(int16_t *) &__reint_263, *(int16x8_t *) &__reint1_263, __p2_263); \ - __ret_263 = *(float16x8_t *) &__reint2_263; \ - __ret_263 = __builtin_shufflevector(__ret_263, __ret_263, 7, 6, 5, 4, 3, 2, 1, 0); \ - __ret_263; \ -}) -#endif - -#if defined(__ARM_FEATURE_FP16FML) && defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -#define vfmlalq_lane_high_u32(__p0_264, __p1_264, __p2_264, __p3_264) __extension__ ({ \ - float32x4_t __s0_264 = __p0_264; \ - float16x8_t __s1_264 = __p1_264; \ - float16x4_t __s2_264 = __p2_264; \ - float32x4_t __ret_264; \ - __ret_264 = vfmlalq_high_u32(__s0_264, __s1_264, (float16x8_t) {vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264)}); \ - __ret_264; \ -}) -#else -#define vfmlalq_lane_high_u32(__p0_265, __p1_265, __p2_265, __p3_265) __extension__ ({ \ - float32x4_t __s0_265 = __p0_265; \ - float16x8_t __s1_265 = __p1_265; \ - float16x4_t __s2_265 = __p2_265; \ - float32x4_t __rev0_265; __rev0_265 = __builtin_shufflevector(__s0_265, __s0_265, 3, 2, 1, 0); \ - float16x8_t __rev1_265; __rev1_265 = __builtin_shufflevector(__s1_265, __s1_265, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __rev2_265; __rev2_265 = __builtin_shufflevector(__s2_265, __s2_265, 3, 2, 1, 0); \ - float32x4_t __ret_265; \ - __ret_265 = __noswap_vfmlalq_high_u32(__rev0_265, __rev1_265, (float16x8_t) {__noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265)}); \ - __ret_265 = __builtin_shufflevector(__ret_265, __ret_265, 3, 2, 1, 0); \ - __ret_265; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlal_lane_high_u32(__p0_266, __p1_266, __p2_266, __p3_266) __extension__ ({ \ - float32x2_t __s0_266 = __p0_266; \ - float16x4_t __s1_266 = __p1_266; \ - float16x4_t __s2_266 = __p2_266; \ - float32x2_t __ret_266; \ - __ret_266 = vfmlal_high_u32(__s0_266, __s1_266, (float16x4_t) {vget_lane_f16(__s2_266, __p3_266), vget_lane_f16(__s2_266, __p3_266), vget_lane_f16(__s2_266, __p3_266), vget_lane_f16(__s2_266, __p3_266)}); \ - __ret_266; \ -}) -#else -#define vfmlal_lane_high_u32(__p0_267, __p1_267, __p2_267, __p3_267) __extension__ ({ \ - float32x2_t __s0_267 = __p0_267; \ - float16x4_t __s1_267 = __p1_267; \ - float16x4_t __s2_267 = __p2_267; \ - float32x2_t __rev0_267; __rev0_267 = __builtin_shufflevector(__s0_267, __s0_267, 1, 0); \ - float16x4_t __rev1_267; __rev1_267 = __builtin_shufflevector(__s1_267, __s1_267, 3, 2, 1, 0); \ - float16x4_t __rev2_267; __rev2_267 = __builtin_shufflevector(__s2_267, __s2_267, 3, 2, 1, 0); \ - float32x2_t __ret_267; \ - __ret_267 = __noswap_vfmlal_high_u32(__rev0_267, __rev1_267, (float16x4_t) {__noswap_vget_lane_f16(__rev2_267, __p3_267), __noswap_vget_lane_f16(__rev2_267, __p3_267), __noswap_vget_lane_f16(__rev2_267, __p3_267), __noswap_vget_lane_f16(__rev2_267, __p3_267)}); \ - __ret_267 = __builtin_shufflevector(__ret_267, __ret_267, 1, 0); \ - __ret_267; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlalq_lane_low_u32(__p0_268, __p1_268, __p2_268, __p3_268) __extension__ ({ \ - float32x4_t __s0_268 = __p0_268; \ - float16x8_t __s1_268 = __p1_268; \ - float16x4_t __s2_268 = __p2_268; \ - float32x4_t __ret_268; \ - __ret_268 = vfmlalq_low_u32(__s0_268, __s1_268, (float16x8_t) {vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268)}); \ - __ret_268; \ -}) -#else -#define vfmlalq_lane_low_u32(__p0_269, __p1_269, __p2_269, __p3_269) __extension__ ({ \ - float32x4_t __s0_269 = __p0_269; \ - float16x8_t __s1_269 = __p1_269; \ - float16x4_t __s2_269 = __p2_269; \ - float32x4_t __rev0_269; __rev0_269 = __builtin_shufflevector(__s0_269, __s0_269, 3, 2, 1, 0); \ - float16x8_t __rev1_269; __rev1_269 = __builtin_shufflevector(__s1_269, __s1_269, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __rev2_269; __rev2_269 = __builtin_shufflevector(__s2_269, __s2_269, 3, 2, 1, 0); \ - float32x4_t __ret_269; \ - __ret_269 = __noswap_vfmlalq_low_u32(__rev0_269, __rev1_269, (float16x8_t) {__noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269)}); \ - __ret_269 = __builtin_shufflevector(__ret_269, __ret_269, 3, 2, 1, 0); \ - __ret_269; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlal_lane_low_u32(__p0_270, __p1_270, __p2_270, __p3_270) __extension__ ({ \ - float32x2_t __s0_270 = __p0_270; \ - float16x4_t __s1_270 = __p1_270; \ - float16x4_t __s2_270 = __p2_270; \ - float32x2_t __ret_270; \ - __ret_270 = vfmlal_low_u32(__s0_270, __s1_270, (float16x4_t) {vget_lane_f16(__s2_270, __p3_270), vget_lane_f16(__s2_270, __p3_270), vget_lane_f16(__s2_270, __p3_270), vget_lane_f16(__s2_270, __p3_270)}); \ - __ret_270; \ -}) -#else -#define vfmlal_lane_low_u32(__p0_271, __p1_271, __p2_271, __p3_271) __extension__ ({ \ - float32x2_t __s0_271 = __p0_271; \ - float16x4_t __s1_271 = __p1_271; \ - float16x4_t __s2_271 = __p2_271; \ - float32x2_t __rev0_271; __rev0_271 = __builtin_shufflevector(__s0_271, __s0_271, 1, 0); \ - float16x4_t __rev1_271; __rev1_271 = __builtin_shufflevector(__s1_271, __s1_271, 3, 2, 1, 0); \ - float16x4_t __rev2_271; __rev2_271 = __builtin_shufflevector(__s2_271, __s2_271, 3, 2, 1, 0); \ - float32x2_t __ret_271; \ - __ret_271 = __noswap_vfmlal_low_u32(__rev0_271, __rev1_271, (float16x4_t) {__noswap_vget_lane_f16(__rev2_271, __p3_271), __noswap_vget_lane_f16(__rev2_271, __p3_271), __noswap_vget_lane_f16(__rev2_271, __p3_271), __noswap_vget_lane_f16(__rev2_271, __p3_271)}); \ - __ret_271 = __builtin_shufflevector(__ret_271, __ret_271, 1, 0); \ - __ret_271; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlalq_laneq_high_u32(__p0_272, __p1_272, __p2_272, __p3_272) __extension__ ({ \ - float32x4_t __s0_272 = __p0_272; \ - float16x8_t __s1_272 = __p1_272; \ - float16x8_t __s2_272 = __p2_272; \ - float32x4_t __ret_272; \ - __ret_272 = vfmlalq_high_u32(__s0_272, __s1_272, (float16x8_t) {vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272)}); \ - __ret_272; \ -}) -#else -#define vfmlalq_laneq_high_u32(__p0_273, __p1_273, __p2_273, __p3_273) __extension__ ({ \ - float32x4_t __s0_273 = __p0_273; \ - float16x8_t __s1_273 = __p1_273; \ - float16x8_t __s2_273 = __p2_273; \ - float32x4_t __rev0_273; __rev0_273 = __builtin_shufflevector(__s0_273, __s0_273, 3, 2, 1, 0); \ - float16x8_t __rev1_273; __rev1_273 = __builtin_shufflevector(__s1_273, __s1_273, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev2_273; __rev2_273 = __builtin_shufflevector(__s2_273, __s2_273, 7, 6, 5, 4, 3, 2, 1, 0); \ - float32x4_t __ret_273; \ - __ret_273 = __noswap_vfmlalq_high_u32(__rev0_273, __rev1_273, (float16x8_t) {__noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273)}); \ - __ret_273 = __builtin_shufflevector(__ret_273, __ret_273, 3, 2, 1, 0); \ - __ret_273; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlal_laneq_high_u32(__p0_274, __p1_274, __p2_274, __p3_274) __extension__ ({ \ - float32x2_t __s0_274 = __p0_274; \ - float16x4_t __s1_274 = __p1_274; \ - float16x8_t __s2_274 = __p2_274; \ - float32x2_t __ret_274; \ - __ret_274 = vfmlal_high_u32(__s0_274, __s1_274, (float16x4_t) {vgetq_lane_f16(__s2_274, __p3_274), vgetq_lane_f16(__s2_274, __p3_274), vgetq_lane_f16(__s2_274, __p3_274), vgetq_lane_f16(__s2_274, __p3_274)}); \ - __ret_274; \ -}) -#else -#define vfmlal_laneq_high_u32(__p0_275, __p1_275, __p2_275, __p3_275) __extension__ ({ \ - float32x2_t __s0_275 = __p0_275; \ - float16x4_t __s1_275 = __p1_275; \ - float16x8_t __s2_275 = __p2_275; \ - float32x2_t __rev0_275; __rev0_275 = __builtin_shufflevector(__s0_275, __s0_275, 1, 0); \ - float16x4_t __rev1_275; __rev1_275 = __builtin_shufflevector(__s1_275, __s1_275, 3, 2, 1, 0); \ - float16x8_t __rev2_275; __rev2_275 = __builtin_shufflevector(__s2_275, __s2_275, 7, 6, 5, 4, 3, 2, 1, 0); \ - float32x2_t __ret_275; \ - __ret_275 = __noswap_vfmlal_high_u32(__rev0_275, __rev1_275, (float16x4_t) {__noswap_vgetq_lane_f16(__rev2_275, __p3_275), __noswap_vgetq_lane_f16(__rev2_275, __p3_275), __noswap_vgetq_lane_f16(__rev2_275, __p3_275), __noswap_vgetq_lane_f16(__rev2_275, __p3_275)}); \ - __ret_275 = __builtin_shufflevector(__ret_275, __ret_275, 1, 0); \ - __ret_275; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlalq_laneq_low_u32(__p0_276, __p1_276, __p2_276, __p3_276) __extension__ ({ \ - float32x4_t __s0_276 = __p0_276; \ - float16x8_t __s1_276 = __p1_276; \ - float16x8_t __s2_276 = __p2_276; \ - float32x4_t __ret_276; \ - __ret_276 = vfmlalq_low_u32(__s0_276, __s1_276, (float16x8_t) {vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276)}); \ - __ret_276; \ -}) -#else -#define vfmlalq_laneq_low_u32(__p0_277, __p1_277, __p2_277, __p3_277) __extension__ ({ \ - float32x4_t __s0_277 = __p0_277; \ - float16x8_t __s1_277 = __p1_277; \ - float16x8_t __s2_277 = __p2_277; \ - float32x4_t __rev0_277; __rev0_277 = __builtin_shufflevector(__s0_277, __s0_277, 3, 2, 1, 0); \ - float16x8_t __rev1_277; __rev1_277 = __builtin_shufflevector(__s1_277, __s1_277, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev2_277; __rev2_277 = __builtin_shufflevector(__s2_277, __s2_277, 7, 6, 5, 4, 3, 2, 1, 0); \ - float32x4_t __ret_277; \ - __ret_277 = __noswap_vfmlalq_low_u32(__rev0_277, __rev1_277, (float16x8_t) {__noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277)}); \ - __ret_277 = __builtin_shufflevector(__ret_277, __ret_277, 3, 2, 1, 0); \ - __ret_277; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlal_laneq_low_u32(__p0_278, __p1_278, __p2_278, __p3_278) __extension__ ({ \ - float32x2_t __s0_278 = __p0_278; \ - float16x4_t __s1_278 = __p1_278; \ - float16x8_t __s2_278 = __p2_278; \ - float32x2_t __ret_278; \ - __ret_278 = vfmlal_low_u32(__s0_278, __s1_278, (float16x4_t) {vgetq_lane_f16(__s2_278, __p3_278), vgetq_lane_f16(__s2_278, __p3_278), vgetq_lane_f16(__s2_278, __p3_278), vgetq_lane_f16(__s2_278, __p3_278)}); \ - __ret_278; \ -}) -#else -#define vfmlal_laneq_low_u32(__p0_279, __p1_279, __p2_279, __p3_279) __extension__ ({ \ - float32x2_t __s0_279 = __p0_279; \ - float16x4_t __s1_279 = __p1_279; \ - float16x8_t __s2_279 = __p2_279; \ - float32x2_t __rev0_279; __rev0_279 = __builtin_shufflevector(__s0_279, __s0_279, 1, 0); \ - float16x4_t __rev1_279; __rev1_279 = __builtin_shufflevector(__s1_279, __s1_279, 3, 2, 1, 0); \ - float16x8_t __rev2_279; __rev2_279 = __builtin_shufflevector(__s2_279, __s2_279, 7, 6, 5, 4, 3, 2, 1, 0); \ - float32x2_t __ret_279; \ - __ret_279 = __noswap_vfmlal_low_u32(__rev0_279, __rev1_279, (float16x4_t) {__noswap_vgetq_lane_f16(__rev2_279, __p3_279), __noswap_vgetq_lane_f16(__rev2_279, __p3_279), __noswap_vgetq_lane_f16(__rev2_279, __p3_279), __noswap_vgetq_lane_f16(__rev2_279, __p3_279)}); \ - __ret_279 = __builtin_shufflevector(__ret_279, __ret_279, 1, 0); \ - __ret_279; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlslq_lane_high_u32(__p0_280, __p1_280, __p2_280, __p3_280) __extension__ ({ \ - float32x4_t __s0_280 = __p0_280; \ - float16x8_t __s1_280 = __p1_280; \ - float16x4_t __s2_280 = __p2_280; \ - float32x4_t __ret_280; \ - __ret_280 = vfmlslq_high_u32(__s0_280, __s1_280, (float16x8_t) {vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280)}); \ - __ret_280; \ -}) -#else -#define vfmlslq_lane_high_u32(__p0_281, __p1_281, __p2_281, __p3_281) __extension__ ({ \ - float32x4_t __s0_281 = __p0_281; \ - float16x8_t __s1_281 = __p1_281; \ - float16x4_t __s2_281 = __p2_281; \ - float32x4_t __rev0_281; __rev0_281 = __builtin_shufflevector(__s0_281, __s0_281, 3, 2, 1, 0); \ - float16x8_t __rev1_281; __rev1_281 = __builtin_shufflevector(__s1_281, __s1_281, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __rev2_281; __rev2_281 = __builtin_shufflevector(__s2_281, __s2_281, 3, 2, 1, 0); \ - float32x4_t __ret_281; \ - __ret_281 = __noswap_vfmlslq_high_u32(__rev0_281, __rev1_281, (float16x8_t) {__noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281)}); \ - __ret_281 = __builtin_shufflevector(__ret_281, __ret_281, 3, 2, 1, 0); \ - __ret_281; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlsl_lane_high_u32(__p0_282, __p1_282, __p2_282, __p3_282) __extension__ ({ \ - float32x2_t __s0_282 = __p0_282; \ - float16x4_t __s1_282 = __p1_282; \ - float16x4_t __s2_282 = __p2_282; \ - float32x2_t __ret_282; \ - __ret_282 = vfmlsl_high_u32(__s0_282, __s1_282, (float16x4_t) {vget_lane_f16(__s2_282, __p3_282), vget_lane_f16(__s2_282, __p3_282), vget_lane_f16(__s2_282, __p3_282), vget_lane_f16(__s2_282, __p3_282)}); \ - __ret_282; \ -}) -#else -#define vfmlsl_lane_high_u32(__p0_283, __p1_283, __p2_283, __p3_283) __extension__ ({ \ - float32x2_t __s0_283 = __p0_283; \ - float16x4_t __s1_283 = __p1_283; \ - float16x4_t __s2_283 = __p2_283; \ - float32x2_t __rev0_283; __rev0_283 = __builtin_shufflevector(__s0_283, __s0_283, 1, 0); \ - float16x4_t __rev1_283; __rev1_283 = __builtin_shufflevector(__s1_283, __s1_283, 3, 2, 1, 0); \ - float16x4_t __rev2_283; __rev2_283 = __builtin_shufflevector(__s2_283, __s2_283, 3, 2, 1, 0); \ - float32x2_t __ret_283; \ - __ret_283 = __noswap_vfmlsl_high_u32(__rev0_283, __rev1_283, (float16x4_t) {__noswap_vget_lane_f16(__rev2_283, __p3_283), __noswap_vget_lane_f16(__rev2_283, __p3_283), __noswap_vget_lane_f16(__rev2_283, __p3_283), __noswap_vget_lane_f16(__rev2_283, __p3_283)}); \ - __ret_283 = __builtin_shufflevector(__ret_283, __ret_283, 1, 0); \ - __ret_283; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlslq_lane_low_u32(__p0_284, __p1_284, __p2_284, __p3_284) __extension__ ({ \ - float32x4_t __s0_284 = __p0_284; \ - float16x8_t __s1_284 = __p1_284; \ - float16x4_t __s2_284 = __p2_284; \ - float32x4_t __ret_284; \ - __ret_284 = vfmlslq_low_u32(__s0_284, __s1_284, (float16x8_t) {vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284)}); \ - __ret_284; \ -}) -#else -#define vfmlslq_lane_low_u32(__p0_285, __p1_285, __p2_285, __p3_285) __extension__ ({ \ - float32x4_t __s0_285 = __p0_285; \ - float16x8_t __s1_285 = __p1_285; \ - float16x4_t __s2_285 = __p2_285; \ - float32x4_t __rev0_285; __rev0_285 = __builtin_shufflevector(__s0_285, __s0_285, 3, 2, 1, 0); \ - float16x8_t __rev1_285; __rev1_285 = __builtin_shufflevector(__s1_285, __s1_285, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x4_t __rev2_285; __rev2_285 = __builtin_shufflevector(__s2_285, __s2_285, 3, 2, 1, 0); \ - float32x4_t __ret_285; \ - __ret_285 = __noswap_vfmlslq_low_u32(__rev0_285, __rev1_285, (float16x8_t) {__noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285)}); \ - __ret_285 = __builtin_shufflevector(__ret_285, __ret_285, 3, 2, 1, 0); \ - __ret_285; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlsl_lane_low_u32(__p0_286, __p1_286, __p2_286, __p3_286) __extension__ ({ \ - float32x2_t __s0_286 = __p0_286; \ - float16x4_t __s1_286 = __p1_286; \ - float16x4_t __s2_286 = __p2_286; \ - float32x2_t __ret_286; \ - __ret_286 = vfmlsl_low_u32(__s0_286, __s1_286, (float16x4_t) {vget_lane_f16(__s2_286, __p3_286), vget_lane_f16(__s2_286, __p3_286), vget_lane_f16(__s2_286, __p3_286), vget_lane_f16(__s2_286, __p3_286)}); \ - __ret_286; \ -}) -#else -#define vfmlsl_lane_low_u32(__p0_287, __p1_287, __p2_287, __p3_287) __extension__ ({ \ - float32x2_t __s0_287 = __p0_287; \ - float16x4_t __s1_287 = __p1_287; \ - float16x4_t __s2_287 = __p2_287; \ - float32x2_t __rev0_287; __rev0_287 = __builtin_shufflevector(__s0_287, __s0_287, 1, 0); \ - float16x4_t __rev1_287; __rev1_287 = __builtin_shufflevector(__s1_287, __s1_287, 3, 2, 1, 0); \ - float16x4_t __rev2_287; __rev2_287 = __builtin_shufflevector(__s2_287, __s2_287, 3, 2, 1, 0); \ - float32x2_t __ret_287; \ - __ret_287 = __noswap_vfmlsl_low_u32(__rev0_287, __rev1_287, (float16x4_t) {__noswap_vget_lane_f16(__rev2_287, __p3_287), __noswap_vget_lane_f16(__rev2_287, __p3_287), __noswap_vget_lane_f16(__rev2_287, __p3_287), __noswap_vget_lane_f16(__rev2_287, __p3_287)}); \ - __ret_287 = __builtin_shufflevector(__ret_287, __ret_287, 1, 0); \ - __ret_287; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlslq_laneq_high_u32(__p0_288, __p1_288, __p2_288, __p3_288) __extension__ ({ \ - float32x4_t __s0_288 = __p0_288; \ - float16x8_t __s1_288 = __p1_288; \ - float16x8_t __s2_288 = __p2_288; \ - float32x4_t __ret_288; \ - __ret_288 = vfmlslq_high_u32(__s0_288, __s1_288, (float16x8_t) {vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288)}); \ - __ret_288; \ -}) -#else -#define vfmlslq_laneq_high_u32(__p0_289, __p1_289, __p2_289, __p3_289) __extension__ ({ \ - float32x4_t __s0_289 = __p0_289; \ - float16x8_t __s1_289 = __p1_289; \ - float16x8_t __s2_289 = __p2_289; \ - float32x4_t __rev0_289; __rev0_289 = __builtin_shufflevector(__s0_289, __s0_289, 3, 2, 1, 0); \ - float16x8_t __rev1_289; __rev1_289 = __builtin_shufflevector(__s1_289, __s1_289, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev2_289; __rev2_289 = __builtin_shufflevector(__s2_289, __s2_289, 7, 6, 5, 4, 3, 2, 1, 0); \ - float32x4_t __ret_289; \ - __ret_289 = __noswap_vfmlslq_high_u32(__rev0_289, __rev1_289, (float16x8_t) {__noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289)}); \ - __ret_289 = __builtin_shufflevector(__ret_289, __ret_289, 3, 2, 1, 0); \ - __ret_289; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlsl_laneq_high_u32(__p0_290, __p1_290, __p2_290, __p3_290) __extension__ ({ \ - float32x2_t __s0_290 = __p0_290; \ - float16x4_t __s1_290 = __p1_290; \ - float16x8_t __s2_290 = __p2_290; \ - float32x2_t __ret_290; \ - __ret_290 = vfmlsl_high_u32(__s0_290, __s1_290, (float16x4_t) {vgetq_lane_f16(__s2_290, __p3_290), vgetq_lane_f16(__s2_290, __p3_290), vgetq_lane_f16(__s2_290, __p3_290), vgetq_lane_f16(__s2_290, __p3_290)}); \ - __ret_290; \ -}) -#else -#define vfmlsl_laneq_high_u32(__p0_291, __p1_291, __p2_291, __p3_291) __extension__ ({ \ - float32x2_t __s0_291 = __p0_291; \ - float16x4_t __s1_291 = __p1_291; \ - float16x8_t __s2_291 = __p2_291; \ - float32x2_t __rev0_291; __rev0_291 = __builtin_shufflevector(__s0_291, __s0_291, 1, 0); \ - float16x4_t __rev1_291; __rev1_291 = __builtin_shufflevector(__s1_291, __s1_291, 3, 2, 1, 0); \ - float16x8_t __rev2_291; __rev2_291 = __builtin_shufflevector(__s2_291, __s2_291, 7, 6, 5, 4, 3, 2, 1, 0); \ - float32x2_t __ret_291; \ - __ret_291 = __noswap_vfmlsl_high_u32(__rev0_291, __rev1_291, (float16x4_t) {__noswap_vgetq_lane_f16(__rev2_291, __p3_291), __noswap_vgetq_lane_f16(__rev2_291, __p3_291), __noswap_vgetq_lane_f16(__rev2_291, __p3_291), __noswap_vgetq_lane_f16(__rev2_291, __p3_291)}); \ - __ret_291 = __builtin_shufflevector(__ret_291, __ret_291, 1, 0); \ - __ret_291; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlslq_laneq_low_u32(__p0_292, __p1_292, __p2_292, __p3_292) __extension__ ({ \ - float32x4_t __s0_292 = __p0_292; \ - float16x8_t __s1_292 = __p1_292; \ - float16x8_t __s2_292 = __p2_292; \ - float32x4_t __ret_292; \ - __ret_292 = vfmlslq_low_u32(__s0_292, __s1_292, (float16x8_t) {vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292)}); \ - __ret_292; \ -}) -#else -#define vfmlslq_laneq_low_u32(__p0_293, __p1_293, __p2_293, __p3_293) __extension__ ({ \ - float32x4_t __s0_293 = __p0_293; \ - float16x8_t __s1_293 = __p1_293; \ - float16x8_t __s2_293 = __p2_293; \ - float32x4_t __rev0_293; __rev0_293 = __builtin_shufflevector(__s0_293, __s0_293, 3, 2, 1, 0); \ - float16x8_t __rev1_293; __rev1_293 = __builtin_shufflevector(__s1_293, __s1_293, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16x8_t __rev2_293; __rev2_293 = __builtin_shufflevector(__s2_293, __s2_293, 7, 6, 5, 4, 3, 2, 1, 0); \ - float32x4_t __ret_293; \ - __ret_293 = __noswap_vfmlslq_low_u32(__rev0_293, __rev1_293, (float16x8_t) {__noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293)}); \ - __ret_293 = __builtin_shufflevector(__ret_293, __ret_293, 3, 2, 1, 0); \ - __ret_293; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vfmlsl_laneq_low_u32(__p0_294, __p1_294, __p2_294, __p3_294) __extension__ ({ \ - float32x2_t __s0_294 = __p0_294; \ - float16x4_t __s1_294 = __p1_294; \ - float16x8_t __s2_294 = __p2_294; \ - float32x2_t __ret_294; \ - __ret_294 = vfmlsl_low_u32(__s0_294, __s1_294, (float16x4_t) {vgetq_lane_f16(__s2_294, __p3_294), vgetq_lane_f16(__s2_294, __p3_294), vgetq_lane_f16(__s2_294, __p3_294), vgetq_lane_f16(__s2_294, __p3_294)}); \ - __ret_294; \ -}) -#else -#define vfmlsl_laneq_low_u32(__p0_295, __p1_295, __p2_295, __p3_295) __extension__ ({ \ - float32x2_t __s0_295 = __p0_295; \ - float16x4_t __s1_295 = __p1_295; \ - float16x8_t __s2_295 = __p2_295; \ - float32x2_t __rev0_295; __rev0_295 = __builtin_shufflevector(__s0_295, __s0_295, 1, 0); \ - float16x4_t __rev1_295; __rev1_295 = __builtin_shufflevector(__s1_295, __s1_295, 3, 2, 1, 0); \ - float16x8_t __rev2_295; __rev2_295 = __builtin_shufflevector(__s2_295, __s2_295, 7, 6, 5, 4, 3, 2, 1, 0); \ - float32x2_t __ret_295; \ - __ret_295 = __noswap_vfmlsl_low_u32(__rev0_295, __rev1_295, (float16x4_t) {__noswap_vgetq_lane_f16(__rev2_295, __p3_295), __noswap_vgetq_lane_f16(__rev2_295, __p3_295), __noswap_vgetq_lane_f16(__rev2_295, __p3_295), __noswap_vgetq_lane_f16(__rev2_295, __p3_295)}); \ - __ret_295 = __builtin_shufflevector(__ret_295, __ret_295, 1, 0); \ - __ret_295; \ -}) -#endif - -#endif -#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -#define vmulh_lane_f16(__p0_296, __p1_296, __p2_296) __extension__ ({ \ - float16_t __s0_296 = __p0_296; \ - float16x4_t __s1_296 = __p1_296; \ - float16_t __ret_296; \ - __ret_296 = __s0_296 * vget_lane_f16(__s1_296, __p2_296); \ - __ret_296; \ -}) -#else -#define vmulh_lane_f16(__p0_297, __p1_297, __p2_297) __extension__ ({ \ - float16_t __s0_297 = __p0_297; \ - float16x4_t __s1_297 = __p1_297; \ - float16x4_t __rev1_297; __rev1_297 = __builtin_shufflevector(__s1_297, __s1_297, 3, 2, 1, 0); \ - float16_t __ret_297; \ - __ret_297 = __s0_297 * __noswap_vget_lane_f16(__rev1_297, __p2_297); \ - __ret_297; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulh_laneq_f16(__p0_298, __p1_298, __p2_298) __extension__ ({ \ - float16_t __s0_298 = __p0_298; \ - float16x8_t __s1_298 = __p1_298; \ - float16_t __ret_298; \ - __ret_298 = __s0_298 * vgetq_lane_f16(__s1_298, __p2_298); \ - __ret_298; \ -}) -#else -#define vmulh_laneq_f16(__p0_299, __p1_299, __p2_299) __extension__ ({ \ - float16_t __s0_299 = __p0_299; \ - float16x8_t __s1_299 = __p1_299; \ - float16x8_t __rev1_299; __rev1_299 = __builtin_shufflevector(__s1_299, __s1_299, 7, 6, 5, 4, 3, 2, 1, 0); \ - float16_t __ret_299; \ - __ret_299 = __s0_299 * __noswap_vgetq_lane_f16(__rev1_299, __p2_299); \ - __ret_299; \ -}) -#endif - -#endif -#if defined(__ARM_FEATURE_QRDMX) && defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqrdmlahs_s32(int32_t __p0, int32_t __p1, int32_t __p2) { - int32_t __ret; - __ret = vqadds_s32(__p0, vqrdmulhs_s32(__p1, __p2)); - return __ret; -} -#else -__ai int32_t vqrdmlahs_s32(int32_t __p0, int32_t __p1, int32_t __p2) { - int32_t __ret; - __ret = __noswap_vqadds_s32(__p0, __noswap_vqrdmulhs_s32(__p1, __p2)); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqrdmlahh_s16(int16_t __p0, int16_t __p1, int16_t __p2) { - int16_t __ret; - __ret = vqaddh_s16(__p0, vqrdmulhh_s16(__p1, __p2)); - return __ret; -} -#else -__ai int16_t vqrdmlahh_s16(int16_t __p0, int16_t __p1, int16_t __p2) { - int16_t __ret; - __ret = __noswap_vqaddh_s16(__p0, __noswap_vqrdmulhh_s16(__p1, __p2)); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlahs_lane_s32(__p0_300, __p1_300, __p2_300, __p3_300) __extension__ ({ \ - int32_t __s0_300 = __p0_300; \ - int32_t __s1_300 = __p1_300; \ - int32x2_t __s2_300 = __p2_300; \ - int32_t __ret_300; \ - __ret_300 = vqadds_s32(__s0_300, vqrdmulhs_s32(__s1_300, vget_lane_s32(__s2_300, __p3_300))); \ - __ret_300; \ -}) -#else -#define vqrdmlahs_lane_s32(__p0_301, __p1_301, __p2_301, __p3_301) __extension__ ({ \ - int32_t __s0_301 = __p0_301; \ - int32_t __s1_301 = __p1_301; \ - int32x2_t __s2_301 = __p2_301; \ - int32x2_t __rev2_301; __rev2_301 = __builtin_shufflevector(__s2_301, __s2_301, 1, 0); \ - int32_t __ret_301; \ - __ret_301 = __noswap_vqadds_s32(__s0_301, __noswap_vqrdmulhs_s32(__s1_301, __noswap_vget_lane_s32(__rev2_301, __p3_301))); \ - __ret_301; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlahh_lane_s16(__p0_302, __p1_302, __p2_302, __p3_302) __extension__ ({ \ - int16_t __s0_302 = __p0_302; \ - int16_t __s1_302 = __p1_302; \ - int16x4_t __s2_302 = __p2_302; \ - int16_t __ret_302; \ - __ret_302 = vqaddh_s16(__s0_302, vqrdmulhh_s16(__s1_302, vget_lane_s16(__s2_302, __p3_302))); \ - __ret_302; \ -}) -#else -#define vqrdmlahh_lane_s16(__p0_303, __p1_303, __p2_303, __p3_303) __extension__ ({ \ - int16_t __s0_303 = __p0_303; \ - int16_t __s1_303 = __p1_303; \ - int16x4_t __s2_303 = __p2_303; \ - int16x4_t __rev2_303; __rev2_303 = __builtin_shufflevector(__s2_303, __s2_303, 3, 2, 1, 0); \ - int16_t __ret_303; \ - __ret_303 = __noswap_vqaddh_s16(__s0_303, __noswap_vqrdmulhh_s16(__s1_303, __noswap_vget_lane_s16(__rev2_303, __p3_303))); \ - __ret_303; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlahs_laneq_s32(__p0_304, __p1_304, __p2_304, __p3_304) __extension__ ({ \ - int32_t __s0_304 = __p0_304; \ - int32_t __s1_304 = __p1_304; \ - int32x4_t __s2_304 = __p2_304; \ - int32_t __ret_304; \ - __ret_304 = vqadds_s32(__s0_304, vqrdmulhs_s32(__s1_304, vgetq_lane_s32(__s2_304, __p3_304))); \ - __ret_304; \ -}) -#else -#define vqrdmlahs_laneq_s32(__p0_305, __p1_305, __p2_305, __p3_305) __extension__ ({ \ - int32_t __s0_305 = __p0_305; \ - int32_t __s1_305 = __p1_305; \ - int32x4_t __s2_305 = __p2_305; \ - int32x4_t __rev2_305; __rev2_305 = __builtin_shufflevector(__s2_305, __s2_305, 3, 2, 1, 0); \ - int32_t __ret_305; \ - __ret_305 = __noswap_vqadds_s32(__s0_305, __noswap_vqrdmulhs_s32(__s1_305, __noswap_vgetq_lane_s32(__rev2_305, __p3_305))); \ - __ret_305; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlahh_laneq_s16(__p0_306, __p1_306, __p2_306, __p3_306) __extension__ ({ \ - int16_t __s0_306 = __p0_306; \ - int16_t __s1_306 = __p1_306; \ - int16x8_t __s2_306 = __p2_306; \ - int16_t __ret_306; \ - __ret_306 = vqaddh_s16(__s0_306, vqrdmulhh_s16(__s1_306, vgetq_lane_s16(__s2_306, __p3_306))); \ - __ret_306; \ -}) -#else -#define vqrdmlahh_laneq_s16(__p0_307, __p1_307, __p2_307, __p3_307) __extension__ ({ \ - int16_t __s0_307 = __p0_307; \ - int16_t __s1_307 = __p1_307; \ - int16x8_t __s2_307 = __p2_307; \ - int16x8_t __rev2_307; __rev2_307 = __builtin_shufflevector(__s2_307, __s2_307, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16_t __ret_307; \ - __ret_307 = __noswap_vqaddh_s16(__s0_307, __noswap_vqrdmulhh_s16(__s1_307, __noswap_vgetq_lane_s16(__rev2_307, __p3_307))); \ - __ret_307; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32_t vqrdmlshs_s32(int32_t __p0, int32_t __p1, int32_t __p2) { - int32_t __ret; - __ret = vqsubs_s32(__p0, vqrdmulhs_s32(__p1, __p2)); - return __ret; -} -#else -__ai int32_t vqrdmlshs_s32(int32_t __p0, int32_t __p1, int32_t __p2) { - int32_t __ret; - __ret = __noswap_vqsubs_s32(__p0, __noswap_vqrdmulhs_s32(__p1, __p2)); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16_t vqrdmlshh_s16(int16_t __p0, int16_t __p1, int16_t __p2) { - int16_t __ret; - __ret = vqsubh_s16(__p0, vqrdmulhh_s16(__p1, __p2)); - return __ret; -} -#else -__ai int16_t vqrdmlshh_s16(int16_t __p0, int16_t __p1, int16_t __p2) { - int16_t __ret; - __ret = __noswap_vqsubh_s16(__p0, __noswap_vqrdmulhh_s16(__p1, __p2)); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlshs_lane_s32(__p0_308, __p1_308, __p2_308, __p3_308) __extension__ ({ \ - int32_t __s0_308 = __p0_308; \ - int32_t __s1_308 = __p1_308; \ - int32x2_t __s2_308 = __p2_308; \ - int32_t __ret_308; \ - __ret_308 = vqsubs_s32(__s0_308, vqrdmulhs_s32(__s1_308, vget_lane_s32(__s2_308, __p3_308))); \ - __ret_308; \ -}) -#else -#define vqrdmlshs_lane_s32(__p0_309, __p1_309, __p2_309, __p3_309) __extension__ ({ \ - int32_t __s0_309 = __p0_309; \ - int32_t __s1_309 = __p1_309; \ - int32x2_t __s2_309 = __p2_309; \ - int32x2_t __rev2_309; __rev2_309 = __builtin_shufflevector(__s2_309, __s2_309, 1, 0); \ - int32_t __ret_309; \ - __ret_309 = __noswap_vqsubs_s32(__s0_309, __noswap_vqrdmulhs_s32(__s1_309, __noswap_vget_lane_s32(__rev2_309, __p3_309))); \ - __ret_309; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlshh_lane_s16(__p0_310, __p1_310, __p2_310, __p3_310) __extension__ ({ \ - int16_t __s0_310 = __p0_310; \ - int16_t __s1_310 = __p1_310; \ - int16x4_t __s2_310 = __p2_310; \ - int16_t __ret_310; \ - __ret_310 = vqsubh_s16(__s0_310, vqrdmulhh_s16(__s1_310, vget_lane_s16(__s2_310, __p3_310))); \ - __ret_310; \ -}) -#else -#define vqrdmlshh_lane_s16(__p0_311, __p1_311, __p2_311, __p3_311) __extension__ ({ \ - int16_t __s0_311 = __p0_311; \ - int16_t __s1_311 = __p1_311; \ - int16x4_t __s2_311 = __p2_311; \ - int16x4_t __rev2_311; __rev2_311 = __builtin_shufflevector(__s2_311, __s2_311, 3, 2, 1, 0); \ - int16_t __ret_311; \ - __ret_311 = __noswap_vqsubh_s16(__s0_311, __noswap_vqrdmulhh_s16(__s1_311, __noswap_vget_lane_s16(__rev2_311, __p3_311))); \ - __ret_311; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlshs_laneq_s32(__p0_312, __p1_312, __p2_312, __p3_312) __extension__ ({ \ - int32_t __s0_312 = __p0_312; \ - int32_t __s1_312 = __p1_312; \ - int32x4_t __s2_312 = __p2_312; \ - int32_t __ret_312; \ - __ret_312 = vqsubs_s32(__s0_312, vqrdmulhs_s32(__s1_312, vgetq_lane_s32(__s2_312, __p3_312))); \ - __ret_312; \ -}) -#else -#define vqrdmlshs_laneq_s32(__p0_313, __p1_313, __p2_313, __p3_313) __extension__ ({ \ - int32_t __s0_313 = __p0_313; \ - int32_t __s1_313 = __p1_313; \ - int32x4_t __s2_313 = __p2_313; \ - int32x4_t __rev2_313; __rev2_313 = __builtin_shufflevector(__s2_313, __s2_313, 3, 2, 1, 0); \ - int32_t __ret_313; \ - __ret_313 = __noswap_vqsubs_s32(__s0_313, __noswap_vqrdmulhs_s32(__s1_313, __noswap_vgetq_lane_s32(__rev2_313, __p3_313))); \ - __ret_313; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vqrdmlshh_laneq_s16(__p0_314, __p1_314, __p2_314, __p3_314) __extension__ ({ \ - int16_t __s0_314 = __p0_314; \ - int16_t __s1_314 = __p1_314; \ - int16x8_t __s2_314 = __p2_314; \ - int16_t __ret_314; \ - __ret_314 = vqsubh_s16(__s0_314, vqrdmulhh_s16(__s1_314, vgetq_lane_s16(__s2_314, __p3_314))); \ - __ret_314; \ -}) -#else -#define vqrdmlshh_laneq_s16(__p0_315, __p1_315, __p2_315, __p3_315) __extension__ ({ \ - int16_t __s0_315 = __p0_315; \ - int16_t __s1_315 = __p1_315; \ - int16x8_t __s2_315 = __p2_315; \ - int16x8_t __rev2_315; __rev2_315 = __builtin_shufflevector(__s2_315, __s2_315, 7, 6, 5, 4, 3, 2, 1, 0); \ - int16_t __ret_315; \ - __ret_315 = __noswap_vqsubh_s16(__s0_315, __noswap_vqrdmulhh_s16(__s1_315, __noswap_vgetq_lane_s16(__rev2_315, __p3_315))); \ - __ret_315; \ -}) -#endif - -#endif -#if defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vabdl_high_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint16x8_t __ret; - __ret = vabdl_u8(vget_high_u8(__p0), vget_high_u8(__p1)); - return __ret; -} -#else -__ai uint16x8_t vabdl_high_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vabdl_u8(__noswap_vget_high_u8(__rev0), __noswap_vget_high_u8(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vabdl_high_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint64x2_t __ret; - __ret = vabdl_u32(vget_high_u32(__p0), vget_high_u32(__p1)); - return __ret; -} -#else -__ai uint64x2_t vabdl_high_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vabdl_u32(__noswap_vget_high_u32(__rev0), __noswap_vget_high_u32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vabdl_high_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint32x4_t __ret; - __ret = vabdl_u16(vget_high_u16(__p0), vget_high_u16(__p1)); - return __ret; -} -#else -__ai uint32x4_t vabdl_high_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vabdl_u16(__noswap_vget_high_u16(__rev0), __noswap_vget_high_u16(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vabdl_high_s8(int8x16_t __p0, int8x16_t __p1) { - int16x8_t __ret; - __ret = vabdl_s8(vget_high_s8(__p0), vget_high_s8(__p1)); - return __ret; -} -#else -__ai int16x8_t vabdl_high_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vabdl_s8(__noswap_vget_high_s8(__rev0), __noswap_vget_high_s8(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vabdl_high_s32(int32x4_t __p0, int32x4_t __p1) { - int64x2_t __ret; - __ret = vabdl_s32(vget_high_s32(__p0), vget_high_s32(__p1)); - return __ret; -} -#else -__ai int64x2_t vabdl_high_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vabdl_s32(__noswap_vget_high_s32(__rev0), __noswap_vget_high_s32(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vabdl_high_s16(int16x8_t __p0, int16x8_t __p1) { - int32x4_t __ret; - __ret = vabdl_s16(vget_high_s16(__p0), vget_high_s16(__p1)); - return __ret; -} -#else -__ai int32x4_t vabdl_high_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vabdl_s16(__noswap_vget_high_s16(__rev0), __noswap_vget_high_s16(__rev1)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vaddl_high_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint16x8_t __ret; - __ret = vmovl_high_u8(__p0) + vmovl_high_u8(__p1); - return __ret; -} -#else -__ai uint16x8_t vaddl_high_u8(uint8x16_t __p0, uint8x16_t __p1) { - uint8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vmovl_high_u8(__rev0) + __noswap_vmovl_high_u8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vaddl_high_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint64x2_t __ret; - __ret = vmovl_high_u32(__p0) + vmovl_high_u32(__p1); - return __ret; -} -#else -__ai uint64x2_t vaddl_high_u32(uint32x4_t __p0, uint32x4_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vmovl_high_u32(__rev0) + __noswap_vmovl_high_u32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vaddl_high_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint32x4_t __ret; - __ret = vmovl_high_u16(__p0) + vmovl_high_u16(__p1); - return __ret; -} -#else -__ai uint32x4_t vaddl_high_u16(uint16x8_t __p0, uint16x8_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vmovl_high_u16(__rev0) + __noswap_vmovl_high_u16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vaddl_high_s8(int8x16_t __p0, int8x16_t __p1) { - int16x8_t __ret; - __ret = vmovl_high_s8(__p0) + vmovl_high_s8(__p1); - return __ret; -} -#else -__ai int16x8_t vaddl_high_s8(int8x16_t __p0, int8x16_t __p1) { - int8x16_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vmovl_high_s8(__rev0) + __noswap_vmovl_high_s8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vaddl_high_s32(int32x4_t __p0, int32x4_t __p1) { - int64x2_t __ret; - __ret = vmovl_high_s32(__p0) + vmovl_high_s32(__p1); - return __ret; -} -#else -__ai int64x2_t vaddl_high_s32(int32x4_t __p0, int32x4_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vmovl_high_s32(__rev0) + __noswap_vmovl_high_s32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vaddl_high_s16(int16x8_t __p0, int16x8_t __p1) { - int32x4_t __ret; - __ret = vmovl_high_s16(__p0) + vmovl_high_s16(__p1); - return __ret; -} -#else -__ai int32x4_t vaddl_high_s16(int16x8_t __p0, int16x8_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vmovl_high_s16(__rev0) + __noswap_vmovl_high_s16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vaddw_high_u8(uint16x8_t __p0, uint8x16_t __p1) { - uint16x8_t __ret; - __ret = __p0 + vmovl_high_u8(__p1); - return __ret; -} -#else -__ai uint16x8_t vaddw_high_u8(uint16x8_t __p0, uint8x16_t __p1) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 + __noswap_vmovl_high_u8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vaddw_high_u32(uint64x2_t __p0, uint32x4_t __p1) { - uint64x2_t __ret; - __ret = __p0 + vmovl_high_u32(__p1); - return __ret; -} -#else -__ai uint64x2_t vaddw_high_u32(uint64x2_t __p0, uint32x4_t __p1) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __rev0 + __noswap_vmovl_high_u32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vaddw_high_u16(uint32x4_t __p0, uint16x8_t __p1) { - uint32x4_t __ret; - __ret = __p0 + vmovl_high_u16(__p1); - return __ret; -} -#else -__ai uint32x4_t vaddw_high_u16(uint32x4_t __p0, uint16x8_t __p1) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 + __noswap_vmovl_high_u16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vaddw_high_s8(int16x8_t __p0, int8x16_t __p1) { - int16x8_t __ret; - __ret = __p0 + vmovl_high_s8(__p1); - return __ret; -} -#else -__ai int16x8_t vaddw_high_s8(int16x8_t __p0, int8x16_t __p1) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 + __noswap_vmovl_high_s8(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vaddw_high_s32(int64x2_t __p0, int32x4_t __p1) { - int64x2_t __ret; - __ret = __p0 + vmovl_high_s32(__p1); - return __ret; -} -#else -__ai int64x2_t vaddw_high_s32(int64x2_t __p0, int32x4_t __p1) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __rev0 + __noswap_vmovl_high_s32(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vaddw_high_s16(int32x4_t __p0, int16x8_t __p1) { - int32x4_t __ret; - __ret = __p0 + vmovl_high_s16(__p1); - return __ret; -} -#else -__ai int32x4_t vaddw_high_s16(int32x4_t __p0, int16x8_t __p1) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 + __noswap_vmovl_high_s16(__rev1); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_p64(__p0_316, __p1_316, __p2_316, __p3_316) __extension__ ({ \ - poly64x2_t __s0_316 = __p0_316; \ - poly64x1_t __s2_316 = __p2_316; \ - poly64x2_t __ret_316; \ - __ret_316 = vsetq_lane_p64(vget_lane_p64(__s2_316, __p3_316), __s0_316, __p1_316); \ - __ret_316; \ -}) -#else -#define vcopyq_lane_p64(__p0_317, __p1_317, __p2_317, __p3_317) __extension__ ({ \ - poly64x2_t __s0_317 = __p0_317; \ - poly64x1_t __s2_317 = __p2_317; \ - poly64x2_t __rev0_317; __rev0_317 = __builtin_shufflevector(__s0_317, __s0_317, 1, 0); \ - poly64x2_t __ret_317; \ - __ret_317 = __noswap_vsetq_lane_p64(__noswap_vget_lane_p64(__s2_317, __p3_317), __rev0_317, __p1_317); \ - __ret_317 = __builtin_shufflevector(__ret_317, __ret_317, 1, 0); \ - __ret_317; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_lane_f64(__p0_318, __p1_318, __p2_318, __p3_318) __extension__ ({ \ - float64x2_t __s0_318 = __p0_318; \ - float64x1_t __s2_318 = __p2_318; \ - float64x2_t __ret_318; \ - __ret_318 = vsetq_lane_f64(vget_lane_f64(__s2_318, __p3_318), __s0_318, __p1_318); \ - __ret_318; \ -}) -#else -#define vcopyq_lane_f64(__p0_319, __p1_319, __p2_319, __p3_319) __extension__ ({ \ - float64x2_t __s0_319 = __p0_319; \ - float64x1_t __s2_319 = __p2_319; \ - float64x2_t __rev0_319; __rev0_319 = __builtin_shufflevector(__s0_319, __s0_319, 1, 0); \ - float64x2_t __ret_319; \ - __ret_319 = __noswap_vsetq_lane_f64(__noswap_vget_lane_f64(__s2_319, __p3_319), __rev0_319, __p1_319); \ - __ret_319 = __builtin_shufflevector(__ret_319, __ret_319, 1, 0); \ - __ret_319; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_p64(__p0_320, __p1_320, __p2_320, __p3_320) __extension__ ({ \ - poly64x1_t __s0_320 = __p0_320; \ - poly64x1_t __s2_320 = __p2_320; \ - poly64x1_t __ret_320; \ - __ret_320 = vset_lane_p64(vget_lane_p64(__s2_320, __p3_320), __s0_320, __p1_320); \ - __ret_320; \ -}) -#else -#define vcopy_lane_p64(__p0_321, __p1_321, __p2_321, __p3_321) __extension__ ({ \ - poly64x1_t __s0_321 = __p0_321; \ - poly64x1_t __s2_321 = __p2_321; \ - poly64x1_t __ret_321; \ - __ret_321 = __noswap_vset_lane_p64(__noswap_vget_lane_p64(__s2_321, __p3_321), __s0_321, __p1_321); \ - __ret_321; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_lane_f64(__p0_322, __p1_322, __p2_322, __p3_322) __extension__ ({ \ - float64x1_t __s0_322 = __p0_322; \ - float64x1_t __s2_322 = __p2_322; \ - float64x1_t __ret_322; \ - __ret_322 = vset_lane_f64(vget_lane_f64(__s2_322, __p3_322), __s0_322, __p1_322); \ - __ret_322; \ -}) -#else -#define vcopy_lane_f64(__p0_323, __p1_323, __p2_323, __p3_323) __extension__ ({ \ - float64x1_t __s0_323 = __p0_323; \ - float64x1_t __s2_323 = __p2_323; \ - float64x1_t __ret_323; \ - __ret_323 = __noswap_vset_lane_f64(__noswap_vget_lane_f64(__s2_323, __p3_323), __s0_323, __p1_323); \ - __ret_323; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_p64(__p0_324, __p1_324, __p2_324, __p3_324) __extension__ ({ \ - poly64x2_t __s0_324 = __p0_324; \ - poly64x2_t __s2_324 = __p2_324; \ - poly64x2_t __ret_324; \ - __ret_324 = vsetq_lane_p64(vgetq_lane_p64(__s2_324, __p3_324), __s0_324, __p1_324); \ - __ret_324; \ -}) -#else -#define vcopyq_laneq_p64(__p0_325, __p1_325, __p2_325, __p3_325) __extension__ ({ \ - poly64x2_t __s0_325 = __p0_325; \ - poly64x2_t __s2_325 = __p2_325; \ - poly64x2_t __rev0_325; __rev0_325 = __builtin_shufflevector(__s0_325, __s0_325, 1, 0); \ - poly64x2_t __rev2_325; __rev2_325 = __builtin_shufflevector(__s2_325, __s2_325, 1, 0); \ - poly64x2_t __ret_325; \ - __ret_325 = __noswap_vsetq_lane_p64(__noswap_vgetq_lane_p64(__rev2_325, __p3_325), __rev0_325, __p1_325); \ - __ret_325 = __builtin_shufflevector(__ret_325, __ret_325, 1, 0); \ - __ret_325; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopyq_laneq_f64(__p0_326, __p1_326, __p2_326, __p3_326) __extension__ ({ \ - float64x2_t __s0_326 = __p0_326; \ - float64x2_t __s2_326 = __p2_326; \ - float64x2_t __ret_326; \ - __ret_326 = vsetq_lane_f64(vgetq_lane_f64(__s2_326, __p3_326), __s0_326, __p1_326); \ - __ret_326; \ -}) -#else -#define vcopyq_laneq_f64(__p0_327, __p1_327, __p2_327, __p3_327) __extension__ ({ \ - float64x2_t __s0_327 = __p0_327; \ - float64x2_t __s2_327 = __p2_327; \ - float64x2_t __rev0_327; __rev0_327 = __builtin_shufflevector(__s0_327, __s0_327, 1, 0); \ - float64x2_t __rev2_327; __rev2_327 = __builtin_shufflevector(__s2_327, __s2_327, 1, 0); \ - float64x2_t __ret_327; \ - __ret_327 = __noswap_vsetq_lane_f64(__noswap_vgetq_lane_f64(__rev2_327, __p3_327), __rev0_327, __p1_327); \ - __ret_327 = __builtin_shufflevector(__ret_327, __ret_327, 1, 0); \ - __ret_327; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_p64(__p0_328, __p1_328, __p2_328, __p3_328) __extension__ ({ \ - poly64x1_t __s0_328 = __p0_328; \ - poly64x2_t __s2_328 = __p2_328; \ - poly64x1_t __ret_328; \ - __ret_328 = vset_lane_p64(vgetq_lane_p64(__s2_328, __p3_328), __s0_328, __p1_328); \ - __ret_328; \ -}) -#else -#define vcopy_laneq_p64(__p0_329, __p1_329, __p2_329, __p3_329) __extension__ ({ \ - poly64x1_t __s0_329 = __p0_329; \ - poly64x2_t __s2_329 = __p2_329; \ - poly64x2_t __rev2_329; __rev2_329 = __builtin_shufflevector(__s2_329, __s2_329, 1, 0); \ - poly64x1_t __ret_329; \ - __ret_329 = __noswap_vset_lane_p64(__noswap_vgetq_lane_p64(__rev2_329, __p3_329), __s0_329, __p1_329); \ - __ret_329; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vcopy_laneq_f64(__p0_330, __p1_330, __p2_330, __p3_330) __extension__ ({ \ - float64x1_t __s0_330 = __p0_330; \ - float64x2_t __s2_330 = __p2_330; \ - float64x1_t __ret_330; \ - __ret_330 = vset_lane_f64(vgetq_lane_f64(__s2_330, __p3_330), __s0_330, __p1_330); \ - __ret_330; \ -}) -#else -#define vcopy_laneq_f64(__p0_331, __p1_331, __p2_331, __p3_331) __extension__ ({ \ - float64x1_t __s0_331 = __p0_331; \ - float64x2_t __s2_331 = __p2_331; \ - float64x2_t __rev2_331; __rev2_331 = __builtin_shufflevector(__s2_331, __s2_331, 1, 0); \ - float64x1_t __ret_331; \ - __ret_331 = __noswap_vset_lane_f64(__noswap_vgetq_lane_f64(__rev2_331, __p3_331), __s0_331, __p1_331); \ - __ret_331; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmlal_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint16x8_t __ret; - __ret = vmlal_u8(__p0, vget_high_u8(__p1), vget_high_u8(__p2)); - return __ret; -} -#else -__ai uint16x8_t vmlal_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vmlal_u8(__rev0, __noswap_vget_high_u8(__rev1), __noswap_vget_high_u8(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmlal_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint64x2_t __ret; - __ret = vmlal_u32(__p0, vget_high_u32(__p1), vget_high_u32(__p2)); - return __ret; -} -#else -__ai uint64x2_t vmlal_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vmlal_u32(__rev0, __noswap_vget_high_u32(__rev1), __noswap_vget_high_u32(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlal_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint32x4_t __ret; - __ret = vmlal_u16(__p0, vget_high_u16(__p1), vget_high_u16(__p2)); - return __ret; -} -#else -__ai uint32x4_t vmlal_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vmlal_u16(__rev0, __noswap_vget_high_u16(__rev1), __noswap_vget_high_u16(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmlal_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) { - int16x8_t __ret; - __ret = vmlal_s8(__p0, vget_high_s8(__p1), vget_high_s8(__p2)); - return __ret; -} -#else -__ai int16x8_t vmlal_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vmlal_s8(__rev0, __noswap_vget_high_s8(__rev1), __noswap_vget_high_s8(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmlal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) { - int64x2_t __ret; - __ret = vmlal_s32(__p0, vget_high_s32(__p1), vget_high_s32(__p2)); - return __ret; -} -#else -__ai int64x2_t vmlal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vmlal_s32(__rev0, __noswap_vget_high_s32(__rev1), __noswap_vget_high_s32(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) { - int32x4_t __ret; - __ret = vmlal_s16(__p0, vget_high_s16(__p1), vget_high_s16(__p2)); - return __ret; -} -#else -__ai int32x4_t vmlal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vmlal_s16(__rev0, __noswap_vget_high_s16(__rev1), __noswap_vget_high_s16(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmlal_high_n_u32(uint64x2_t __p0, uint32x4_t __p1, uint32_t __p2) { - uint64x2_t __ret; - __ret = vmlal_n_u32(__p0, vget_high_u32(__p1), __p2); - return __ret; -} -#else -__ai uint64x2_t vmlal_high_n_u32(uint64x2_t __p0, uint32x4_t __p1, uint32_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vmlal_n_u32(__rev0, __noswap_vget_high_u32(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlal_high_n_u16(uint32x4_t __p0, uint16x8_t __p1, uint16_t __p2) { - uint32x4_t __ret; - __ret = vmlal_n_u16(__p0, vget_high_u16(__p1), __p2); - return __ret; -} -#else -__ai uint32x4_t vmlal_high_n_u16(uint32x4_t __p0, uint16x8_t __p1, uint16_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vmlal_n_u16(__rev0, __noswap_vget_high_u16(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmlal_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = vmlal_n_s32(__p0, vget_high_s32(__p1), __p2); - return __ret; -} -#else -__ai int64x2_t vmlal_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vmlal_n_s32(__rev0, __noswap_vget_high_s32(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlal_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = vmlal_n_s16(__p0, vget_high_s16(__p1), __p2); - return __ret; -} -#else -__ai int32x4_t vmlal_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vmlal_n_s16(__rev0, __noswap_vget_high_s16(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vmlsl_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint16x8_t __ret; - __ret = vmlsl_u8(__p0, vget_high_u8(__p1), vget_high_u8(__p2)); - return __ret; -} -#else -__ai uint16x8_t vmlsl_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vmlsl_u8(__rev0, __noswap_vget_high_u8(__rev1), __noswap_vget_high_u8(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmlsl_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint64x2_t __ret; - __ret = vmlsl_u32(__p0, vget_high_u32(__p1), vget_high_u32(__p2)); - return __ret; -} -#else -__ai uint64x2_t vmlsl_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vmlsl_u32(__rev0, __noswap_vget_high_u32(__rev1), __noswap_vget_high_u32(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlsl_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint32x4_t __ret; - __ret = vmlsl_u16(__p0, vget_high_u16(__p1), vget_high_u16(__p2)); - return __ret; -} -#else -__ai uint32x4_t vmlsl_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vmlsl_u16(__rev0, __noswap_vget_high_u16(__rev1), __noswap_vget_high_u16(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vmlsl_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) { - int16x8_t __ret; - __ret = vmlsl_s8(__p0, vget_high_s8(__p1), vget_high_s8(__p2)); - return __ret; -} -#else -__ai int16x8_t vmlsl_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vmlsl_s8(__rev0, __noswap_vget_high_s8(__rev1), __noswap_vget_high_s8(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmlsl_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) { - int64x2_t __ret; - __ret = vmlsl_s32(__p0, vget_high_s32(__p1), vget_high_s32(__p2)); - return __ret; -} -#else -__ai int64x2_t vmlsl_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vmlsl_s32(__rev0, __noswap_vget_high_s32(__rev1), __noswap_vget_high_s32(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlsl_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) { - int32x4_t __ret; - __ret = vmlsl_s16(__p0, vget_high_s16(__p1), vget_high_s16(__p2)); - return __ret; -} -#else -__ai int32x4_t vmlsl_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vmlsl_s16(__rev0, __noswap_vget_high_s16(__rev1), __noswap_vget_high_s16(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vmlsl_high_n_u32(uint64x2_t __p0, uint32x4_t __p1, uint32_t __p2) { - uint64x2_t __ret; - __ret = vmlsl_n_u32(__p0, vget_high_u32(__p1), __p2); - return __ret; -} -#else -__ai uint64x2_t vmlsl_high_n_u32(uint64x2_t __p0, uint32x4_t __p1, uint32_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vmlsl_n_u32(__rev0, __noswap_vget_high_u32(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vmlsl_high_n_u16(uint32x4_t __p0, uint16x8_t __p1, uint16_t __p2) { - uint32x4_t __ret; - __ret = vmlsl_n_u16(__p0, vget_high_u16(__p1), __p2); - return __ret; -} -#else -__ai uint32x4_t vmlsl_high_n_u16(uint32x4_t __p0, uint16x8_t __p1, uint16_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vmlsl_n_u16(__rev0, __noswap_vget_high_u16(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vmlsl_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) { - int64x2_t __ret; - __ret = vmlsl_n_s32(__p0, vget_high_s32(__p1), __p2); - return __ret; -} -#else -__ai int64x2_t vmlsl_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vmlsl_n_s32(__rev0, __noswap_vget_high_s32(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vmlsl_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) { - int32x4_t __ret; - __ret = vmlsl_n_s16(__p0, vget_high_s16(__p1), __p2); - return __ret; -} -#else -__ai int32x4_t vmlsl_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vmlsl_n_s16(__rev0, __noswap_vget_high_s16(__rev1), __p2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulx_lane_f64(__p0_332, __p1_332, __p2_332) __extension__ ({ \ - float64x1_t __s0_332 = __p0_332; \ - float64x1_t __s1_332 = __p1_332; \ - float64x1_t __ret_332; \ - float64_t __x_332 = vget_lane_f64(__s0_332, 0); \ - float64_t __y_332 = vget_lane_f64(__s1_332, __p2_332); \ - float64_t __z_332 = vmulxd_f64(__x_332, __y_332); \ - __ret_332 = vset_lane_f64(__z_332, __s0_332, __p2_332); \ - __ret_332; \ -}) -#else -#define vmulx_lane_f64(__p0_333, __p1_333, __p2_333) __extension__ ({ \ - float64x1_t __s0_333 = __p0_333; \ - float64x1_t __s1_333 = __p1_333; \ - float64x1_t __ret_333; \ - float64_t __x_333 = __noswap_vget_lane_f64(__s0_333, 0); \ - float64_t __y_333 = __noswap_vget_lane_f64(__s1_333, __p2_333); \ - float64_t __z_333 = __noswap_vmulxd_f64(__x_333, __y_333); \ - __ret_333 = __noswap_vset_lane_f64(__z_333, __s0_333, __p2_333); \ - __ret_333; \ -}) -#endif - -#ifdef __LITTLE_ENDIAN__ -#define vmulx_laneq_f64(__p0_334, __p1_334, __p2_334) __extension__ ({ \ - float64x1_t __s0_334 = __p0_334; \ - float64x2_t __s1_334 = __p1_334; \ - float64x1_t __ret_334; \ - float64_t __x_334 = vget_lane_f64(__s0_334, 0); \ - float64_t __y_334 = vgetq_lane_f64(__s1_334, __p2_334); \ - float64_t __z_334 = vmulxd_f64(__x_334, __y_334); \ - __ret_334 = vset_lane_f64(__z_334, __s0_334, 0); \ - __ret_334; \ -}) -#else -#define vmulx_laneq_f64(__p0_335, __p1_335, __p2_335) __extension__ ({ \ - float64x1_t __s0_335 = __p0_335; \ - float64x2_t __s1_335 = __p1_335; \ - float64x2_t __rev1_335; __rev1_335 = __builtin_shufflevector(__s1_335, __s1_335, 1, 0); \ - float64x1_t __ret_335; \ - float64_t __x_335 = __noswap_vget_lane_f64(__s0_335, 0); \ - float64_t __y_335 = __noswap_vgetq_lane_f64(__rev1_335, __p2_335); \ - float64_t __z_335 = __noswap_vmulxd_f64(__x_335, __y_335); \ - __ret_335 = __noswap_vset_lane_f64(__z_335, __s0_335, 0); \ - __ret_335; \ -}) -#endif - -#endif -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vabal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint16x8_t __ret; - __ret = __p0 + vabdl_u8(__p1, __p2); - return __ret; -} -#else -__ai uint16x8_t vabal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __rev0 + __noswap_vabdl_u8(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai uint16x8_t __noswap_vabal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) { - uint16x8_t __ret; - __ret = __p0 + __noswap_vabdl_u8(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vabal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint64x2_t __ret; - __ret = __p0 + vabdl_u32(__p1, __p2); - return __ret; -} -#else -__ai uint64x2_t vabal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - uint32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - uint64x2_t __ret; - __ret = __rev0 + __noswap_vabdl_u32(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai uint64x2_t __noswap_vabal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) { - uint64x2_t __ret; - __ret = __p0 + __noswap_vabdl_u32(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vabal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint32x4_t __ret; - __ret = __p0 + vabdl_u16(__p1, __p2); - return __ret; -} -#else -__ai uint32x4_t vabal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __rev0 + __noswap_vabdl_u16(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai uint32x4_t __noswap_vabal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) { - uint32x4_t __ret; - __ret = __p0 + __noswap_vabdl_u16(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vabal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int16x8_t __ret; - __ret = __p0 + vabdl_s8(__p1, __p2); - return __ret; -} -#else -__ai int16x8_t vabal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int8x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __rev0 + __noswap_vabdl_s8(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -__ai int16x8_t __noswap_vabal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) { - int16x8_t __ret; - __ret = __p0 + __noswap_vabdl_s8(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vabal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __ret; - __ret = __p0 + vabdl_s32(__p1, __p2); - return __ret; -} -#else -__ai int64x2_t vabal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x2_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0); - int32x2_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0); - int64x2_t __ret; - __ret = __rev0 + __noswap_vabdl_s32(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -__ai int64x2_t __noswap_vabal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) { - int64x2_t __ret; - __ret = __p0 + __noswap_vabdl_s32(__p1, __p2); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vabal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __ret; - __ret = __p0 + vabdl_s16(__p1, __p2); - return __ret; -} -#else -__ai int32x4_t vabal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __rev0 + __noswap_vabdl_s16(__rev1, __rev2); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -__ai int32x4_t __noswap_vabal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) { - int32x4_t __ret; - __ret = __p0 + __noswap_vabdl_s16(__p1, __p2); - return __ret; -} -#endif - -#if defined(__aarch64__) -#ifdef __LITTLE_ENDIAN__ -__ai uint16x8_t vabal_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint16x8_t __ret; - __ret = vabal_u8(__p0, vget_high_u8(__p1), vget_high_u8(__p2)); - return __ret; -} -#else -__ai uint16x8_t vabal_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) { - uint16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __ret; - __ret = __noswap_vabal_u8(__rev0, __noswap_vget_high_u8(__rev1), __noswap_vget_high_u8(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint64x2_t vabal_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint64x2_t __ret; - __ret = vabal_u32(__p0, vget_high_u32(__p1), vget_high_u32(__p2)); - return __ret; -} -#else -__ai uint64x2_t vabal_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) { - uint64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - uint32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - uint32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - uint64x2_t __ret; - __ret = __noswap_vabal_u32(__rev0, __noswap_vget_high_u32(__rev1), __noswap_vget_high_u32(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai uint32x4_t vabal_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint32x4_t __ret; - __ret = vabal_u16(__p0, vget_high_u16(__p1), vget_high_u16(__p2)); - return __ret; -} -#else -__ai uint32x4_t vabal_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) { - uint32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - uint16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - uint16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - uint32x4_t __ret; - __ret = __noswap_vabal_u16(__rev0, __noswap_vget_high_u16(__rev1), __noswap_vget_high_u16(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int16x8_t vabal_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) { - int16x8_t __ret; - __ret = vabal_s8(__p0, vget_high_s8(__p1), vget_high_s8(__p2)); - return __ret; -} -#else -__ai int16x8_t vabal_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) { - int16x8_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int8x16_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __ret; - __ret = __noswap_vabal_s8(__rev0, __noswap_vget_high_s8(__rev1), __noswap_vget_high_s8(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int64x2_t vabal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) { - int64x2_t __ret; - __ret = vabal_s32(__p0, vget_high_s32(__p1), vget_high_s32(__p2)); - return __ret; -} -#else -__ai int64x2_t vabal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) { - int64x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0); - int32x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0); - int32x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0); - int64x2_t __ret; - __ret = __noswap_vabal_s32(__rev0, __noswap_vget_high_s32(__rev1), __noswap_vget_high_s32(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 1, 0); - return __ret; -} -#endif - -#ifdef __LITTLE_ENDIAN__ -__ai int32x4_t vabal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) { - int32x4_t __ret; - __ret = vabal_s16(__p0, vget_high_s16(__p1), vget_high_s16(__p2)); - return __ret; -} -#else -__ai int32x4_t vabal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) { - int32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0); - int16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0); - int16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0); - int32x4_t __ret; - __ret = __noswap_vabal_s16(__rev0, __noswap_vget_high_s16(__rev1), __noswap_vget_high_s16(__rev2)); - __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); - return __ret; -} -#endif - -#endif - -#undef __ai - -#endif /* __ARM_NEON_H */ diff --git a/bin/app/data/cxx/include/armintr.h b/bin/app/data/cxx/include/armintr.h deleted file mode 100644 index 300ed4ee..00000000 --- a/bin/app/data/cxx/include/armintr.h +++ /dev/null @@ -1,31 +0,0 @@ -/*===---- armintr.h - ARM Windows intrinsics -------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* Only include this if we're compiling for the windows platform. */ -#ifndef _MSC_VER -#include_next -#else - -#ifndef __ARMINTR_H -#define __ARMINTR_H - -typedef enum -{ - _ARM_BARRIER_SY = 0xF, - _ARM_BARRIER_ST = 0xE, - _ARM_BARRIER_ISH = 0xB, - _ARM_BARRIER_ISHST = 0xA, - _ARM_BARRIER_NSH = 0x7, - _ARM_BARRIER_NSHST = 0x6, - _ARM_BARRIER_OSH = 0x3, - _ARM_BARRIER_OSHST = 0x2 -} _ARMINTR_BARRIER_TYPE; - -#endif /* __ARMINTR_H */ -#endif /* _MSC_VER */ diff --git a/bin/app/data/cxx/include/avx2intrin.h b/bin/app/data/cxx/include/avx2intrin.h deleted file mode 100644 index 162e83ea..00000000 --- a/bin/app/data/cxx/include/avx2intrin.h +++ /dev/null @@ -1,1146 +0,0 @@ -/*===---- avx2intrin.h - AVX2 intrinsics -----------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX2INTRIN_H -#define __AVX2INTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) - -/* SSE4 Multiple Packed Sums of Absolute Difference. */ -#define _mm256_mpsadbw_epu8(X, Y, M) \ - (__m256i)__builtin_ia32_mpsadbw256((__v32qi)(__m256i)(X), \ - (__v32qi)(__m256i)(Y), (int)(M)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_abs_epi8(__m256i __a) -{ - return (__m256i)__builtin_ia32_pabsb256((__v32qi)__a); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_abs_epi16(__m256i __a) -{ - return (__m256i)__builtin_ia32_pabsw256((__v16hi)__a); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_abs_epi32(__m256i __a) -{ - return (__m256i)__builtin_ia32_pabsd256((__v8si)__a); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_packs_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_packsswb256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_packs_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_packssdw256((__v8si)__a, (__v8si)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_packus_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_packuswb256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_packus_epi32(__m256i __V1, __m256i __V2) -{ - return (__m256i) __builtin_ia32_packusdw256((__v8si)__V1, (__v8si)__V2); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_add_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)((__v32qu)__a + (__v32qu)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_add_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)((__v16hu)__a + (__v16hu)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_add_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)((__v8su)__a + (__v8su)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_add_epi64(__m256i __a, __m256i __b) -{ - return (__m256i)((__v4du)__a + (__v4du)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_adds_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_paddsb256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_adds_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_paddsw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_adds_epu8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_paddusb256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_adds_epu16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_paddusw256((__v16hi)__a, (__v16hi)__b); -} - -#define _mm256_alignr_epi8(a, b, n) \ - (__m256i)__builtin_ia32_palignr256((__v32qi)(__m256i)(a), \ - (__v32qi)(__m256i)(b), (n)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_and_si256(__m256i __a, __m256i __b) -{ - return (__m256i)((__v4du)__a & (__v4du)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_andnot_si256(__m256i __a, __m256i __b) -{ - return (__m256i)(~(__v4du)__a & (__v4du)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_avg_epu8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pavgb256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_avg_epu16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pavgw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_blendv_epi8(__m256i __V1, __m256i __V2, __m256i __M) -{ - return (__m256i)__builtin_ia32_pblendvb256((__v32qi)__V1, (__v32qi)__V2, - (__v32qi)__M); -} - -#define _mm256_blend_epi16(V1, V2, M) \ - (__m256i)__builtin_ia32_pblendw256((__v16hi)(__m256i)(V1), \ - (__v16hi)(__m256i)(V2), (int)(M)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cmpeq_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)((__v32qi)__a == (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cmpeq_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)((__v16hi)__a == (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cmpeq_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)((__v8si)__a == (__v8si)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cmpeq_epi64(__m256i __a, __m256i __b) -{ - return (__m256i)((__v4di)__a == (__v4di)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cmpgt_epi8(__m256i __a, __m256i __b) -{ - /* This function always performs a signed comparison, but __v32qi is a char - which may be signed or unsigned, so use __v32qs. */ - return (__m256i)((__v32qs)__a > (__v32qs)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cmpgt_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)((__v16hi)__a > (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cmpgt_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)((__v8si)__a > (__v8si)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cmpgt_epi64(__m256i __a, __m256i __b) -{ - return (__m256i)((__v4di)__a > (__v4di)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_hadd_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_phaddw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_hadd_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_phaddd256((__v8si)__a, (__v8si)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_hadds_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_phaddsw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_hsub_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_phsubw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_hsub_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_phsubd256((__v8si)__a, (__v8si)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_hsubs_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_phsubsw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maddubs_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmaddubsw256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_madd_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmaddwd256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_max_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmaxsb256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_max_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmaxsw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_max_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmaxsd256((__v8si)__a, (__v8si)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_max_epu8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmaxub256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_max_epu16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmaxuw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_max_epu32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmaxud256((__v8si)__a, (__v8si)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_min_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pminsb256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_min_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pminsw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_min_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pminsd256((__v8si)__a, (__v8si)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_min_epu8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pminub256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_min_epu16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pminuw256 ((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_min_epu32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pminud256((__v8si)__a, (__v8si)__b); -} - -static __inline__ int __DEFAULT_FN_ATTRS256 -_mm256_movemask_epi8(__m256i __a) -{ - return __builtin_ia32_pmovmskb256((__v32qi)__a); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi8_epi16(__m128i __V) -{ - /* This function always performs a signed extension, but __v16qi is a char - which may be signed or unsigned, so use __v16qs. */ - return (__m256i)__builtin_convertvector((__v16qs)__V, __v16hi); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi8_epi32(__m128i __V) -{ - /* This function always performs a signed extension, but __v16qi is a char - which may be signed or unsigned, so use __v16qs. */ - return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8si); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi8_epi64(__m128i __V) -{ - /* This function always performs a signed extension, but __v16qi is a char - which may be signed or unsigned, so use __v16qs. */ - return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3), __v4di); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi16_epi32(__m128i __V) -{ - return (__m256i)__builtin_convertvector((__v8hi)__V, __v8si); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi16_epi64(__m128i __V) -{ - return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1, 2, 3), __v4di); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi32_epi64(__m128i __V) -{ - return (__m256i)__builtin_convertvector((__v4si)__V, __v4di); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepu8_epi16(__m128i __V) -{ - return (__m256i)__builtin_convertvector((__v16qu)__V, __v16hi); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepu8_epi32(__m128i __V) -{ - return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8si); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepu8_epi64(__m128i __V) -{ - return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3), __v4di); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepu16_epi32(__m128i __V) -{ - return (__m256i)__builtin_convertvector((__v8hu)__V, __v8si); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepu16_epi64(__m128i __V) -{ - return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1, 2, 3), __v4di); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtepu32_epi64(__m128i __V) -{ - return (__m256i)__builtin_convertvector((__v4su)__V, __v4di); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mul_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmuldq256((__v8si)__a, (__v8si)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mulhrs_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmulhrsw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mulhi_epu16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmulhuw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mulhi_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pmulhw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mullo_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)((__v16hu)__a * (__v16hu)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mullo_epi32 (__m256i __a, __m256i __b) -{ - return (__m256i)((__v8su)__a * (__v8su)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mul_epu32(__m256i __a, __m256i __b) -{ - return __builtin_ia32_pmuludq256((__v8si)__a, (__v8si)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_or_si256(__m256i __a, __m256i __b) -{ - return (__m256i)((__v4du)__a | (__v4du)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sad_epu8(__m256i __a, __m256i __b) -{ - return __builtin_ia32_psadbw256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_shuffle_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_pshufb256((__v32qi)__a, (__v32qi)__b); -} - -#define _mm256_shuffle_epi32(a, imm) \ - (__m256i)__builtin_ia32_pshufd256((__v8si)(__m256i)(a), (int)(imm)) - -#define _mm256_shufflehi_epi16(a, imm) \ - (__m256i)__builtin_ia32_pshufhw256((__v16hi)(__m256i)(a), (int)(imm)) - -#define _mm256_shufflelo_epi16(a, imm) \ - (__m256i)__builtin_ia32_pshuflw256((__v16hi)(__m256i)(a), (int)(imm)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sign_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_psignb256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sign_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_psignw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sign_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_psignd256((__v8si)__a, (__v8si)__b); -} - -#define _mm256_slli_si256(a, imm) \ - (__m256i)__builtin_ia32_pslldqi256_byteshift((__v4di)(__m256i)(a), (int)(imm)) - -#define _mm256_bslli_epi128(a, imm) \ - (__m256i)__builtin_ia32_pslldqi256_byteshift((__v4di)(__m256i)(a), (int)(imm)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_slli_epi16(__m256i __a, int __count) -{ - return (__m256i)__builtin_ia32_psllwi256((__v16hi)__a, __count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sll_epi16(__m256i __a, __m128i __count) -{ - return (__m256i)__builtin_ia32_psllw256((__v16hi)__a, (__v8hi)__count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_slli_epi32(__m256i __a, int __count) -{ - return (__m256i)__builtin_ia32_pslldi256((__v8si)__a, __count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sll_epi32(__m256i __a, __m128i __count) -{ - return (__m256i)__builtin_ia32_pslld256((__v8si)__a, (__v4si)__count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_slli_epi64(__m256i __a, int __count) -{ - return __builtin_ia32_psllqi256((__v4di)__a, __count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sll_epi64(__m256i __a, __m128i __count) -{ - return __builtin_ia32_psllq256((__v4di)__a, __count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srai_epi16(__m256i __a, int __count) -{ - return (__m256i)__builtin_ia32_psrawi256((__v16hi)__a, __count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sra_epi16(__m256i __a, __m128i __count) -{ - return (__m256i)__builtin_ia32_psraw256((__v16hi)__a, (__v8hi)__count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srai_epi32(__m256i __a, int __count) -{ - return (__m256i)__builtin_ia32_psradi256((__v8si)__a, __count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sra_epi32(__m256i __a, __m128i __count) -{ - return (__m256i)__builtin_ia32_psrad256((__v8si)__a, (__v4si)__count); -} - -#define _mm256_srli_si256(a, imm) \ - (__m256i)__builtin_ia32_psrldqi256_byteshift((__m256i)(a), (int)(imm)) - -#define _mm256_bsrli_epi128(a, imm) \ - (__m256i)__builtin_ia32_psrldqi256_byteshift((__m256i)(a), (int)(imm)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srli_epi16(__m256i __a, int __count) -{ - return (__m256i)__builtin_ia32_psrlwi256((__v16hi)__a, __count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srl_epi16(__m256i __a, __m128i __count) -{ - return (__m256i)__builtin_ia32_psrlw256((__v16hi)__a, (__v8hi)__count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srli_epi32(__m256i __a, int __count) -{ - return (__m256i)__builtin_ia32_psrldi256((__v8si)__a, __count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srl_epi32(__m256i __a, __m128i __count) -{ - return (__m256i)__builtin_ia32_psrld256((__v8si)__a, (__v4si)__count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srli_epi64(__m256i __a, int __count) -{ - return __builtin_ia32_psrlqi256((__v4di)__a, __count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srl_epi64(__m256i __a, __m128i __count) -{ - return __builtin_ia32_psrlq256((__v4di)__a, __count); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sub_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)((__v32qu)__a - (__v32qu)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sub_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)((__v16hu)__a - (__v16hu)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sub_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)((__v8su)__a - (__v8su)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sub_epi64(__m256i __a, __m256i __b) -{ - return (__m256i)((__v4du)__a - (__v4du)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_subs_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_psubsb256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_subs_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_psubsw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_subs_epu8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_psubusb256((__v32qi)__a, (__v32qi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_subs_epu16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_psubusw256((__v16hi)__a, (__v16hi)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_unpackhi_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_shufflevector((__v32qi)__a, (__v32qi)__b, 8, 32+8, 9, 32+9, 10, 32+10, 11, 32+11, 12, 32+12, 13, 32+13, 14, 32+14, 15, 32+15, 24, 32+24, 25, 32+25, 26, 32+26, 27, 32+27, 28, 32+28, 29, 32+29, 30, 32+30, 31, 32+31); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_unpackhi_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_shufflevector((__v16hi)__a, (__v16hi)__b, 4, 16+4, 5, 16+5, 6, 16+6, 7, 16+7, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_unpackhi_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_shufflevector((__v8si)__a, (__v8si)__b, 2, 8+2, 3, 8+3, 6, 8+6, 7, 8+7); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_unpackhi_epi64(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_shufflevector((__v4di)__a, (__v4di)__b, 1, 4+1, 3, 4+3); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_unpacklo_epi8(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_shufflevector((__v32qi)__a, (__v32qi)__b, 0, 32+0, 1, 32+1, 2, 32+2, 3, 32+3, 4, 32+4, 5, 32+5, 6, 32+6, 7, 32+7, 16, 32+16, 17, 32+17, 18, 32+18, 19, 32+19, 20, 32+20, 21, 32+21, 22, 32+22, 23, 32+23); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_unpacklo_epi16(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_shufflevector((__v16hi)__a, (__v16hi)__b, 0, 16+0, 1, 16+1, 2, 16+2, 3, 16+3, 8, 16+8, 9, 16+9, 10, 16+10, 11, 16+11); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_unpacklo_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_shufflevector((__v8si)__a, (__v8si)__b, 0, 8+0, 1, 8+1, 4, 8+4, 5, 8+5); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_unpacklo_epi64(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_shufflevector((__v4di)__a, (__v4di)__b, 0, 4+0, 2, 4+2); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_xor_si256(__m256i __a, __m256i __b) -{ - return (__m256i)((__v4du)__a ^ (__v4du)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_stream_load_si256(__m256i const *__V) -{ - typedef __v4di __v4di_aligned __attribute__((aligned(32))); - return (__m256i)__builtin_nontemporal_load((const __v4di_aligned *)__V); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_broadcastss_ps(__m128 __X) -{ - return (__m128)__builtin_shufflevector((__v4sf)__X, (__v4sf)__X, 0, 0, 0, 0); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_broadcastsd_pd(__m128d __a) -{ - return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_broadcastss_ps(__m128 __X) -{ - return (__m256)__builtin_shufflevector((__v4sf)__X, (__v4sf)__X, 0, 0, 0, 0, 0, 0, 0, 0); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_broadcastsd_pd(__m128d __X) -{ - return (__m256d)__builtin_shufflevector((__v2df)__X, (__v2df)__X, 0, 0, 0, 0); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_broadcastsi128_si256(__m128i __X) -{ - return (__m256i)__builtin_shufflevector((__v2di)__X, (__v2di)__X, 0, 1, 0, 1); -} - -#define _mm_blend_epi32(V1, V2, M) \ - (__m128i)__builtin_ia32_pblendd128((__v4si)(__m128i)(V1), \ - (__v4si)(__m128i)(V2), (int)(M)) - -#define _mm256_blend_epi32(V1, V2, M) \ - (__m256i)__builtin_ia32_pblendd256((__v8si)(__m256i)(V1), \ - (__v8si)(__m256i)(V2), (int)(M)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_broadcastb_epi8(__m128i __X) -{ - return (__m256i)__builtin_shufflevector((__v16qi)__X, (__v16qi)__X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_broadcastw_epi16(__m128i __X) -{ - return (__m256i)__builtin_shufflevector((__v8hi)__X, (__v8hi)__X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_broadcastd_epi32(__m128i __X) -{ - return (__m256i)__builtin_shufflevector((__v4si)__X, (__v4si)__X, 0, 0, 0, 0, 0, 0, 0, 0); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_broadcastq_epi64(__m128i __X) -{ - return (__m256i)__builtin_shufflevector((__v2di)__X, (__v2di)__X, 0, 0, 0, 0); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_broadcastb_epi8(__m128i __X) -{ - return (__m128i)__builtin_shufflevector((__v16qi)__X, (__v16qi)__X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_broadcastw_epi16(__m128i __X) -{ - return (__m128i)__builtin_shufflevector((__v8hi)__X, (__v8hi)__X, 0, 0, 0, 0, 0, 0, 0, 0); -} - - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_broadcastd_epi32(__m128i __X) -{ - return (__m128i)__builtin_shufflevector((__v4si)__X, (__v4si)__X, 0, 0, 0, 0); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_broadcastq_epi64(__m128i __X) -{ - return (__m128i)__builtin_shufflevector((__v2di)__X, (__v2di)__X, 0, 0); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_permutevar8x32_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)__builtin_ia32_permvarsi256((__v8si)__a, (__v8si)__b); -} - -#define _mm256_permute4x64_pd(V, M) \ - (__m256d)__builtin_ia32_permdf256((__v4df)(__m256d)(V), (int)(M)) - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_permutevar8x32_ps(__m256 __a, __m256i __b) -{ - return (__m256)__builtin_ia32_permvarsf256((__v8sf)__a, (__v8si)__b); -} - -#define _mm256_permute4x64_epi64(V, M) \ - (__m256i)__builtin_ia32_permdi256((__v4di)(__m256i)(V), (int)(M)) - -#define _mm256_permute2x128_si256(V1, V2, M) \ - (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (int)(M)) - -#define _mm256_extracti128_si256(V, M) \ - (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(V), (int)(M)) - -#define _mm256_inserti128_si256(V1, V2, M) \ - (__m256i)__builtin_ia32_insert128i256((__v4di)(__m256i)(V1), \ - (__v2di)(__m128i)(V2), (int)(M)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskload_epi32(int const *__X, __m256i __M) -{ - return (__m256i)__builtin_ia32_maskloadd256((const __v8si *)__X, (__v8si)__M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskload_epi64(long long const *__X, __m256i __M) -{ - return (__m256i)__builtin_ia32_maskloadq256((const __v4di *)__X, (__v4di)__M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskload_epi32(int const *__X, __m128i __M) -{ - return (__m128i)__builtin_ia32_maskloadd((const __v4si *)__X, (__v4si)__M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskload_epi64(long long const *__X, __m128i __M) -{ - return (__m128i)__builtin_ia32_maskloadq((const __v2di *)__X, (__v2di)__M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_maskstore_epi32(int *__X, __m256i __M, __m256i __Y) -{ - __builtin_ia32_maskstored256((__v8si *)__X, (__v8si)__M, (__v8si)__Y); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_maskstore_epi64(long long *__X, __m256i __M, __m256i __Y) -{ - __builtin_ia32_maskstoreq256((__v4di *)__X, (__v4di)__M, (__v4di)__Y); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_maskstore_epi32(int *__X, __m128i __M, __m128i __Y) -{ - __builtin_ia32_maskstored((__v4si *)__X, (__v4si)__M, (__v4si)__Y); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_maskstore_epi64(long long *__X, __m128i __M, __m128i __Y) -{ - __builtin_ia32_maskstoreq(( __v2di *)__X, (__v2di)__M, (__v2di)__Y); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sllv_epi32(__m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_psllv8si((__v8si)__X, (__v8si)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_sllv_epi32(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_psllv4si((__v4si)__X, (__v4si)__Y); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sllv_epi64(__m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_psllv4di((__v4di)__X, (__v4di)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_sllv_epi64(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_psllv2di((__v2di)__X, (__v2di)__Y); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srav_epi32(__m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_psrav8si((__v8si)__X, (__v8si)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_srav_epi32(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_psrav4si((__v4si)__X, (__v4si)__Y); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srlv_epi32(__m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_psrlv8si((__v8si)__X, (__v8si)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_srlv_epi32(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_psrlv4si((__v4si)__X, (__v4si)__Y); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srlv_epi64(__m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_psrlv4di((__v4di)__X, (__v4di)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_srlv_epi64(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_psrlv2di((__v2di)__X, (__v2di)__Y); -} - -#define _mm_mask_i32gather_pd(a, m, i, mask, s) \ - (__m128d)__builtin_ia32_gatherd_pd((__v2df)(__m128i)(a), \ - (double const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v2df)(__m128d)(mask), (s)) - -#define _mm256_mask_i32gather_pd(a, m, i, mask, s) \ - (__m256d)__builtin_ia32_gatherd_pd256((__v4df)(__m256d)(a), \ - (double const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v4df)(__m256d)(mask), (s)) - -#define _mm_mask_i64gather_pd(a, m, i, mask, s) \ - (__m128d)__builtin_ia32_gatherq_pd((__v2df)(__m128d)(a), \ - (double const *)(m), \ - (__v2di)(__m128i)(i), \ - (__v2df)(__m128d)(mask), (s)) - -#define _mm256_mask_i64gather_pd(a, m, i, mask, s) \ - (__m256d)__builtin_ia32_gatherq_pd256((__v4df)(__m256d)(a), \ - (double const *)(m), \ - (__v4di)(__m256i)(i), \ - (__v4df)(__m256d)(mask), (s)) - -#define _mm_mask_i32gather_ps(a, m, i, mask, s) \ - (__m128)__builtin_ia32_gatherd_ps((__v4sf)(__m128)(a), \ - (float const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v4sf)(__m128)(mask), (s)) - -#define _mm256_mask_i32gather_ps(a, m, i, mask, s) \ - (__m256)__builtin_ia32_gatherd_ps256((__v8sf)(__m256)(a), \ - (float const *)(m), \ - (__v8si)(__m256i)(i), \ - (__v8sf)(__m256)(mask), (s)) - -#define _mm_mask_i64gather_ps(a, m, i, mask, s) \ - (__m128)__builtin_ia32_gatherq_ps((__v4sf)(__m128)(a), \ - (float const *)(m), \ - (__v2di)(__m128i)(i), \ - (__v4sf)(__m128)(mask), (s)) - -#define _mm256_mask_i64gather_ps(a, m, i, mask, s) \ - (__m128)__builtin_ia32_gatherq_ps256((__v4sf)(__m128)(a), \ - (float const *)(m), \ - (__v4di)(__m256i)(i), \ - (__v4sf)(__m128)(mask), (s)) - -#define _mm_mask_i32gather_epi32(a, m, i, mask, s) \ - (__m128i)__builtin_ia32_gatherd_d((__v4si)(__m128i)(a), \ - (int const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v4si)(__m128i)(mask), (s)) - -#define _mm256_mask_i32gather_epi32(a, m, i, mask, s) \ - (__m256i)__builtin_ia32_gatherd_d256((__v8si)(__m256i)(a), \ - (int const *)(m), \ - (__v8si)(__m256i)(i), \ - (__v8si)(__m256i)(mask), (s)) - -#define _mm_mask_i64gather_epi32(a, m, i, mask, s) \ - (__m128i)__builtin_ia32_gatherq_d((__v4si)(__m128i)(a), \ - (int const *)(m), \ - (__v2di)(__m128i)(i), \ - (__v4si)(__m128i)(mask), (s)) - -#define _mm256_mask_i64gather_epi32(a, m, i, mask, s) \ - (__m128i)__builtin_ia32_gatherq_d256((__v4si)(__m128i)(a), \ - (int const *)(m), \ - (__v4di)(__m256i)(i), \ - (__v4si)(__m128i)(mask), (s)) - -#define _mm_mask_i32gather_epi64(a, m, i, mask, s) \ - (__m128i)__builtin_ia32_gatherd_q((__v2di)(__m128i)(a), \ - (long long const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v2di)(__m128i)(mask), (s)) - -#define _mm256_mask_i32gather_epi64(a, m, i, mask, s) \ - (__m256i)__builtin_ia32_gatherd_q256((__v4di)(__m256i)(a), \ - (long long const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v4di)(__m256i)(mask), (s)) - -#define _mm_mask_i64gather_epi64(a, m, i, mask, s) \ - (__m128i)__builtin_ia32_gatherq_q((__v2di)(__m128i)(a), \ - (long long const *)(m), \ - (__v2di)(__m128i)(i), \ - (__v2di)(__m128i)(mask), (s)) - -#define _mm256_mask_i64gather_epi64(a, m, i, mask, s) \ - (__m256i)__builtin_ia32_gatherq_q256((__v4di)(__m256i)(a), \ - (long long const *)(m), \ - (__v4di)(__m256i)(i), \ - (__v4di)(__m256i)(mask), (s)) - -#define _mm_i32gather_pd(m, i, s) \ - (__m128d)__builtin_ia32_gatherd_pd((__v2df)_mm_undefined_pd(), \ - (double const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v2df)_mm_cmpeq_pd(_mm_setzero_pd(), \ - _mm_setzero_pd()), \ - (s)) - -#define _mm256_i32gather_pd(m, i, s) \ - (__m256d)__builtin_ia32_gatherd_pd256((__v4df)_mm256_undefined_pd(), \ - (double const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v4df)_mm256_cmp_pd(_mm256_setzero_pd(), \ - _mm256_setzero_pd(), \ - _CMP_EQ_OQ), \ - (s)) - -#define _mm_i64gather_pd(m, i, s) \ - (__m128d)__builtin_ia32_gatherq_pd((__v2df)_mm_undefined_pd(), \ - (double const *)(m), \ - (__v2di)(__m128i)(i), \ - (__v2df)_mm_cmpeq_pd(_mm_setzero_pd(), \ - _mm_setzero_pd()), \ - (s)) - -#define _mm256_i64gather_pd(m, i, s) \ - (__m256d)__builtin_ia32_gatherq_pd256((__v4df)_mm256_undefined_pd(), \ - (double const *)(m), \ - (__v4di)(__m256i)(i), \ - (__v4df)_mm256_cmp_pd(_mm256_setzero_pd(), \ - _mm256_setzero_pd(), \ - _CMP_EQ_OQ), \ - (s)) - -#define _mm_i32gather_ps(m, i, s) \ - (__m128)__builtin_ia32_gatherd_ps((__v4sf)_mm_undefined_ps(), \ - (float const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v4sf)_mm_cmpeq_ps(_mm_setzero_ps(), \ - _mm_setzero_ps()), \ - (s)) - -#define _mm256_i32gather_ps(m, i, s) \ - (__m256)__builtin_ia32_gatherd_ps256((__v8sf)_mm256_undefined_ps(), \ - (float const *)(m), \ - (__v8si)(__m256i)(i), \ - (__v8sf)_mm256_cmp_ps(_mm256_setzero_ps(), \ - _mm256_setzero_ps(), \ - _CMP_EQ_OQ), \ - (s)) - -#define _mm_i64gather_ps(m, i, s) \ - (__m128)__builtin_ia32_gatherq_ps((__v4sf)_mm_undefined_ps(), \ - (float const *)(m), \ - (__v2di)(__m128i)(i), \ - (__v4sf)_mm_cmpeq_ps(_mm_setzero_ps(), \ - _mm_setzero_ps()), \ - (s)) - -#define _mm256_i64gather_ps(m, i, s) \ - (__m128)__builtin_ia32_gatherq_ps256((__v4sf)_mm_undefined_ps(), \ - (float const *)(m), \ - (__v4di)(__m256i)(i), \ - (__v4sf)_mm_cmpeq_ps(_mm_setzero_ps(), \ - _mm_setzero_ps()), \ - (s)) - -#define _mm_i32gather_epi32(m, i, s) \ - (__m128i)__builtin_ia32_gatherd_d((__v4si)_mm_undefined_si128(), \ - (int const *)(m), (__v4si)(__m128i)(i), \ - (__v4si)_mm_set1_epi32(-1), (s)) - -#define _mm256_i32gather_epi32(m, i, s) \ - (__m256i)__builtin_ia32_gatherd_d256((__v8si)_mm256_undefined_si256(), \ - (int const *)(m), (__v8si)(__m256i)(i), \ - (__v8si)_mm256_set1_epi32(-1), (s)) - -#define _mm_i64gather_epi32(m, i, s) \ - (__m128i)__builtin_ia32_gatherq_d((__v4si)_mm_undefined_si128(), \ - (int const *)(m), (__v2di)(__m128i)(i), \ - (__v4si)_mm_set1_epi32(-1), (s)) - -#define _mm256_i64gather_epi32(m, i, s) \ - (__m128i)__builtin_ia32_gatherq_d256((__v4si)_mm_undefined_si128(), \ - (int const *)(m), (__v4di)(__m256i)(i), \ - (__v4si)_mm_set1_epi32(-1), (s)) - -#define _mm_i32gather_epi64(m, i, s) \ - (__m128i)__builtin_ia32_gatherd_q((__v2di)_mm_undefined_si128(), \ - (long long const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v2di)_mm_set1_epi64x(-1), (s)) - -#define _mm256_i32gather_epi64(m, i, s) \ - (__m256i)__builtin_ia32_gatherd_q256((__v4di)_mm256_undefined_si256(), \ - (long long const *)(m), \ - (__v4si)(__m128i)(i), \ - (__v4di)_mm256_set1_epi64x(-1), (s)) - -#define _mm_i64gather_epi64(m, i, s) \ - (__m128i)__builtin_ia32_gatherq_q((__v2di)_mm_undefined_si128(), \ - (long long const *)(m), \ - (__v2di)(__m128i)(i), \ - (__v2di)_mm_set1_epi64x(-1), (s)) - -#define _mm256_i64gather_epi64(m, i, s) \ - (__m256i)__builtin_ia32_gatherq_q256((__v4di)_mm256_undefined_si256(), \ - (long long const *)(m), \ - (__v4di)(__m256i)(i), \ - (__v4di)_mm256_set1_epi64x(-1), (s)) - -#undef __DEFAULT_FN_ATTRS256 -#undef __DEFAULT_FN_ATTRS128 - -#endif /* __AVX2INTRIN_H */ diff --git a/bin/app/data/cxx/include/avx512bf16intrin.h b/bin/app/data/cxx/include/avx512bf16intrin.h deleted file mode 100644 index d1d87e72..00000000 --- a/bin/app/data/cxx/include/avx512bf16intrin.h +++ /dev/null @@ -1,279 +0,0 @@ -/*===------------ avx512bf16intrin.h - AVX512_BF16 intrinsics --------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512BF16INTRIN_H -#define __AVX512BF16INTRIN_H - -typedef short __m512bh __attribute__((__vector_size__(64), __aligned__(64))); -typedef short __m256bh __attribute__((__vector_size__(32), __aligned__(32))); -typedef unsigned short __bfloat16; - -#define __DEFAULT_FN_ATTRS512 \ - __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), \ - __min_vector_width__(512))) -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"))) - -/// Convert One BF16 Data to One Single Float Data. -/// -/// \headerfile -/// -/// This intrinsic does not correspond to a specific instruction. -/// -/// \param __A -/// A bfloat data. -/// \returns A float data whose sign field and exponent field keep unchanged, -/// and fraction field is extended to 23 bits. -static __inline__ float __DEFAULT_FN_ATTRS _mm_cvtsbh_ss(__bfloat16 __A) { - return __builtin_ia32_cvtsbf162ss_32(__A); -} - -/// Convert Two Packed Single Data to One Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNE2PS2BF16 instructions. -/// -/// \param __A -/// A 512-bit vector of [16 x float]. -/// \param __B -/// A 512-bit vector of [16 x float]. -/// \returns A 512-bit vector of [32 x bfloat] whose lower 256 bits come from -/// conversion of __B, and higher 256 bits come from conversion of __A. -static __inline__ __m512bh __DEFAULT_FN_ATTRS512 -_mm512_cvtne2ps_pbh(__m512 __A, __m512 __B) { - return (__m512bh)__builtin_ia32_cvtne2ps2bf16_512((__v16sf) __A, - (__v16sf) __B); -} - -/// Convert Two Packed Single Data to One Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNE2PS2BF16 instructions. -/// -/// \param __A -/// A 512-bit vector of [16 x float]. -/// \param __B -/// A 512-bit vector of [16 x float]. -/// \param __W -/// A 512-bit vector of [32 x bfloat]. -/// \param __U -/// A 32-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A or __B. A 0 means element from __W. -/// \returns A 512-bit vector of [32 x bfloat] whose lower 256 bits come from -/// conversion of __B, and higher 256 bits come from conversion of __A. -static __inline__ __m512bh __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtne2ps_pbh(__m512bh __W, __mmask32 __U, __m512 __A, __m512 __B) { - return (__m512bh)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_cvtne2ps_pbh(__A, __B), - (__v32hi)__W); -} - -/// Convert Two Packed Single Data to One Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNE2PS2BF16 instructions. -/// -/// \param __A -/// A 512-bit vector of [16 x float]. -/// \param __B -/// A 512-bit vector of [16 x float]. -/// \param __U -/// A 32-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A or __B. A 0 means element is zero. -/// \returns A 512-bit vector of [32 x bfloat] whose lower 256 bits come from -/// conversion of __B, and higher 256 bits come from conversion of __A. -static __inline__ __m512bh __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtne2ps_pbh(__mmask32 __U, __m512 __A, __m512 __B) { - return (__m512bh)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_cvtne2ps_pbh(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -/// Convert Packed Single Data to Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNEPS2BF16 instructions. -/// -/// \param __A -/// A 512-bit vector of [16 x float]. -/// \returns A 256-bit vector of [16 x bfloat] come from conversion of __A. -static __inline__ __m256bh __DEFAULT_FN_ATTRS512 -_mm512_cvtneps_pbh(__m512 __A) { - return (__m256bh)__builtin_ia32_cvtneps2bf16_512_mask((__v16sf)__A, - (__v16hi)_mm256_undefined_si256(), - (__mmask16)-1); -} - -/// Convert Packed Single Data to Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNEPS2BF16 instructions. -/// -/// \param __A -/// A 512-bit vector of [16 x float]. -/// \param __W -/// A 256-bit vector of [16 x bfloat]. -/// \param __U -/// A 16-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A. A 0 means element from __W. -/// \returns A 256-bit vector of [16 x bfloat] come from conversion of __A. -static __inline__ __m256bh __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtneps_pbh(__m256bh __W, __mmask16 __U, __m512 __A) { - return (__m256bh)__builtin_ia32_cvtneps2bf16_512_mask((__v16sf)__A, - (__v16hi)__W, - (__mmask16)__U); -} - -/// Convert Packed Single Data to Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNEPS2BF16 instructions. -/// -/// \param __A -/// A 512-bit vector of [16 x float]. -/// \param __U -/// A 16-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A. A 0 means element is zero. -/// \returns A 256-bit vector of [16 x bfloat] come from conversion of __A. -static __inline__ __m256bh __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtneps_pbh(__mmask16 __U, __m512 __A) { - return (__m256bh)__builtin_ia32_cvtneps2bf16_512_mask((__v16sf)__A, - (__v16hi)_mm256_setzero_si256(), - (__mmask16)__U); -} - -/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDPBF16PS instructions. -/// -/// \param __A -/// A 512-bit vector of [32 x bfloat]. -/// \param __B -/// A 512-bit vector of [32 x bfloat]. -/// \param __D -/// A 512-bit vector of [16 x float]. -/// \returns A 512-bit vector of [16 x float] comes from Dot Product of -/// __A, __B and __D -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_dpbf16_ps(__m512 __D, __m512bh __A, __m512bh __B) { - return (__m512)__builtin_ia32_dpbf16ps_512((__v16sf) __D, - (__v16si) __A, - (__v16si) __B); -} - -/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDPBF16PS instructions. -/// -/// \param __A -/// A 512-bit vector of [32 x bfloat]. -/// \param __B -/// A 512-bit vector of [32 x bfloat]. -/// \param __D -/// A 512-bit vector of [16 x float]. -/// \param __U -/// A 16-bit mask value specifying what is chosen for each element. -/// A 1 means __A and __B's dot product accumulated with __D. A 0 means __D. -/// \returns A 512-bit vector of [16 x float] comes from Dot Product of -/// __A, __B and __D -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_dpbf16_ps(__m512 __D, __mmask16 __U, __m512bh __A, __m512bh __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_dpbf16_ps(__D, __A, __B), - (__v16sf)__D); -} - -/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDPBF16PS instructions. -/// -/// \param __A -/// A 512-bit vector of [32 x bfloat]. -/// \param __B -/// A 512-bit vector of [32 x bfloat]. -/// \param __D -/// A 512-bit vector of [16 x float]. -/// \param __U -/// A 16-bit mask value specifying what is chosen for each element. -/// A 1 means __A and __B's dot product accumulated with __D. A 0 means 0. -/// \returns A 512-bit vector of [16 x float] comes from Dot Product of -/// __A, __B and __D -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_dpbf16_ps(__mmask16 __U, __m512 __D, __m512bh __A, __m512bh __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_dpbf16_ps(__D, __A, __B), - (__v16sf)_mm512_setzero_si512()); -} - -/// Convert Packed BF16 Data to Packed float Data. -/// -/// \headerfile -/// -/// \param __A -/// A 256-bit vector of [16 x bfloat]. -/// \returns A 512-bit vector of [16 x float] come from convertion of __A -static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_cvtpbh_ps(__m256bh __A) { - return _mm512_castsi512_ps((__m512i)_mm512_slli_epi32( - (__m512i)_mm512_cvtepi16_epi32((__m256i)__A), 16)); -} - -/// Convert Packed BF16 Data to Packed float Data using zeroing mask. -/// -/// \headerfile -/// -/// \param __U -/// A 16-bit mask. Elements are zeroed out when the corresponding mask -/// bit is not set. -/// \param __A -/// A 256-bit vector of [16 x bfloat]. -/// \returns A 512-bit vector of [16 x float] come from convertion of __A -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtpbh_ps(__mmask16 __U, __m256bh __A) { - return _mm512_castsi512_ps((__m512i)_mm512_slli_epi32( - (__m512i)_mm512_maskz_cvtepi16_epi32((__mmask16)__U, (__m256i)__A), 16)); -} - -/// Convert Packed BF16 Data to Packed float Data using merging mask. -/// -/// \headerfile -/// -/// \param __S -/// A 512-bit vector of [16 x float]. Elements are copied from __S when -/// the corresponding mask bit is not set. -/// \param __U -/// A 16-bit mask. -/// \param __A -/// A 256-bit vector of [16 x bfloat]. -/// \returns A 512-bit vector of [16 x float] come from convertion of __A -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtpbh_ps(__m512 __S, __mmask16 __U, __m256bh __A) { - return _mm512_castsi512_ps((__m512i)_mm512_mask_slli_epi32( - (__m512i)__S, (__mmask16)__U, - (__m512i)_mm512_cvtepi16_epi32((__m256i)__A), 16)); -} - -#undef __DEFAULT_FN_ATTRS -#undef __DEFAULT_FN_ATTRS512 - -#endif diff --git a/bin/app/data/cxx/include/avx512bitalgintrin.h b/bin/app/data/cxx/include/avx512bitalgintrin.h deleted file mode 100644 index d4411d15..00000000 --- a/bin/app/data/cxx/include/avx512bitalgintrin.h +++ /dev/null @@ -1,83 +0,0 @@ -/*===------------- avx512bitalgintrin.h - BITALG intrinsics ------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512BITALGINTRIN_H -#define __AVX512BITALGINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), __min_vector_width__(512))) - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_popcnt_epi16(__m512i __A) -{ - return (__m512i) __builtin_ia32_vpopcntw_512((__v32hi) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_popcnt_epi16(__m512i __A, __mmask32 __U, __m512i __B) -{ - return (__m512i) __builtin_ia32_selectw_512((__mmask32) __U, - (__v32hi) _mm512_popcnt_epi16(__B), - (__v32hi) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_popcnt_epi16(__mmask32 __U, __m512i __B) -{ - return _mm512_mask_popcnt_epi16((__m512i) _mm512_setzero_si512(), - __U, - __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_popcnt_epi8(__m512i __A) -{ - return (__m512i) __builtin_ia32_vpopcntb_512((__v64qi) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_popcnt_epi8(__m512i __A, __mmask64 __U, __m512i __B) -{ - return (__m512i) __builtin_ia32_selectb_512((__mmask64) __U, - (__v64qi) _mm512_popcnt_epi8(__B), - (__v64qi) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_popcnt_epi8(__mmask64 __U, __m512i __B) -{ - return _mm512_mask_popcnt_epi8((__m512i) _mm512_setzero_si512(), - __U, - __B); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_mm512_mask_bitshuffle_epi64_mask(__mmask64 __U, __m512i __A, __m512i __B) -{ - return (__mmask64) __builtin_ia32_vpshufbitqmb512_mask((__v64qi) __A, - (__v64qi) __B, - __U); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_mm512_bitshuffle_epi64_mask(__m512i __A, __m512i __B) -{ - return _mm512_mask_bitshuffle_epi64_mask((__mmask64) -1, - __A, - __B); -} - - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/avx512bwintrin.h b/bin/app/data/cxx/include/avx512bwintrin.h deleted file mode 100644 index cb2e0761..00000000 --- a/bin/app/data/cxx/include/avx512bwintrin.h +++ /dev/null @@ -1,2021 +0,0 @@ -/*===------------- avx512bwintrin.h - AVX512BW intrinsics ------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512BWINTRIN_H -#define __AVX512BWINTRIN_H - -typedef unsigned int __mmask32; -typedef unsigned long long __mmask64; - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS512 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) - -static __inline __mmask32 __DEFAULT_FN_ATTRS -_knot_mask32(__mmask32 __M) -{ - return __builtin_ia32_knotsi(__M); -} - -static __inline __mmask64 __DEFAULT_FN_ATTRS -_knot_mask64(__mmask64 __M) -{ - return __builtin_ia32_knotdi(__M); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS -_kand_mask32(__mmask32 __A, __mmask32 __B) -{ - return (__mmask32)__builtin_ia32_kandsi((__mmask32)__A, (__mmask32)__B); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_kand_mask64(__mmask64 __A, __mmask64 __B) -{ - return (__mmask64)__builtin_ia32_kanddi((__mmask64)__A, (__mmask64)__B); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS -_kandn_mask32(__mmask32 __A, __mmask32 __B) -{ - return (__mmask32)__builtin_ia32_kandnsi((__mmask32)__A, (__mmask32)__B); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_kandn_mask64(__mmask64 __A, __mmask64 __B) -{ - return (__mmask64)__builtin_ia32_kandndi((__mmask64)__A, (__mmask64)__B); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS -_kor_mask32(__mmask32 __A, __mmask32 __B) -{ - return (__mmask32)__builtin_ia32_korsi((__mmask32)__A, (__mmask32)__B); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_kor_mask64(__mmask64 __A, __mmask64 __B) -{ - return (__mmask64)__builtin_ia32_kordi((__mmask64)__A, (__mmask64)__B); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS -_kxnor_mask32(__mmask32 __A, __mmask32 __B) -{ - return (__mmask32)__builtin_ia32_kxnorsi((__mmask32)__A, (__mmask32)__B); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_kxnor_mask64(__mmask64 __A, __mmask64 __B) -{ - return (__mmask64)__builtin_ia32_kxnordi((__mmask64)__A, (__mmask64)__B); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS -_kxor_mask32(__mmask32 __A, __mmask32 __B) -{ - return (__mmask32)__builtin_ia32_kxorsi((__mmask32)__A, (__mmask32)__B); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_kxor_mask64(__mmask64 __A, __mmask64 __B) -{ - return (__mmask64)__builtin_ia32_kxordi((__mmask64)__A, (__mmask64)__B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortestc_mask32_u8(__mmask32 __A, __mmask32 __B) -{ - return (unsigned char)__builtin_ia32_kortestcsi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortestz_mask32_u8(__mmask32 __A, __mmask32 __B) -{ - return (unsigned char)__builtin_ia32_kortestzsi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortest_mask32_u8(__mmask32 __A, __mmask32 __B, unsigned char *__C) { - *__C = (unsigned char)__builtin_ia32_kortestcsi(__A, __B); - return (unsigned char)__builtin_ia32_kortestzsi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortestc_mask64_u8(__mmask64 __A, __mmask64 __B) -{ - return (unsigned char)__builtin_ia32_kortestcdi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortestz_mask64_u8(__mmask64 __A, __mmask64 __B) -{ - return (unsigned char)__builtin_ia32_kortestzdi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortest_mask64_u8(__mmask64 __A, __mmask64 __B, unsigned char *__C) { - *__C = (unsigned char)__builtin_ia32_kortestcdi(__A, __B); - return (unsigned char)__builtin_ia32_kortestzdi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktestc_mask32_u8(__mmask32 __A, __mmask32 __B) -{ - return (unsigned char)__builtin_ia32_ktestcsi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktestz_mask32_u8(__mmask32 __A, __mmask32 __B) -{ - return (unsigned char)__builtin_ia32_ktestzsi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktest_mask32_u8(__mmask32 __A, __mmask32 __B, unsigned char *__C) { - *__C = (unsigned char)__builtin_ia32_ktestcsi(__A, __B); - return (unsigned char)__builtin_ia32_ktestzsi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktestc_mask64_u8(__mmask64 __A, __mmask64 __B) -{ - return (unsigned char)__builtin_ia32_ktestcdi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktestz_mask64_u8(__mmask64 __A, __mmask64 __B) -{ - return (unsigned char)__builtin_ia32_ktestzdi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktest_mask64_u8(__mmask64 __A, __mmask64 __B, unsigned char *__C) { - *__C = (unsigned char)__builtin_ia32_ktestcdi(__A, __B); - return (unsigned char)__builtin_ia32_ktestzdi(__A, __B); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS -_kadd_mask32(__mmask32 __A, __mmask32 __B) -{ - return (__mmask32)__builtin_ia32_kaddsi((__mmask32)__A, (__mmask32)__B); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_kadd_mask64(__mmask64 __A, __mmask64 __B) -{ - return (__mmask64)__builtin_ia32_kadddi((__mmask64)__A, (__mmask64)__B); -} - -#define _kshiftli_mask32(A, I) \ - (__mmask32)__builtin_ia32_kshiftlisi((__mmask32)(A), (unsigned int)(I)) - -#define _kshiftri_mask32(A, I) \ - (__mmask32)__builtin_ia32_kshiftrisi((__mmask32)(A), (unsigned int)(I)) - -#define _kshiftli_mask64(A, I) \ - (__mmask64)__builtin_ia32_kshiftlidi((__mmask64)(A), (unsigned int)(I)) - -#define _kshiftri_mask64(A, I) \ - (__mmask64)__builtin_ia32_kshiftridi((__mmask64)(A), (unsigned int)(I)) - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_cvtmask32_u32(__mmask32 __A) { - return (unsigned int)__builtin_ia32_kmovd((__mmask32)__A); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -_cvtmask64_u64(__mmask64 __A) { - return (unsigned long long)__builtin_ia32_kmovq((__mmask64)__A); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS -_cvtu32_mask32(unsigned int __A) { - return (__mmask32)__builtin_ia32_kmovd((__mmask32)__A); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_cvtu64_mask64(unsigned long long __A) { - return (__mmask64)__builtin_ia32_kmovq((__mmask64)__A); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS -_load_mask32(__mmask32 *__A) { - return (__mmask32)__builtin_ia32_kmovd(*(__mmask32 *)__A); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_load_mask64(__mmask64 *__A) { - return (__mmask64)__builtin_ia32_kmovq(*(__mmask64 *)__A); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_store_mask32(__mmask32 *__A, __mmask32 __B) { - *(__mmask32 *)__A = __builtin_ia32_kmovd((__mmask32)__B); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_store_mask64(__mmask64 *__A, __mmask64 __B) { - *(__mmask64 *)__A = __builtin_ia32_kmovq((__mmask64)__B); -} - -/* Integer compare */ - -#define _mm512_cmp_epi8_mask(a, b, p) \ - (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \ - (__v64qi)(__m512i)(b), (int)(p), \ - (__mmask64)-1) - -#define _mm512_mask_cmp_epi8_mask(m, a, b, p) \ - (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)(a), \ - (__v64qi)(__m512i)(b), (int)(p), \ - (__mmask64)(m)) - -#define _mm512_cmp_epu8_mask(a, b, p) \ - (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \ - (__v64qi)(__m512i)(b), (int)(p), \ - (__mmask64)-1) - -#define _mm512_mask_cmp_epu8_mask(m, a, b, p) \ - (__mmask64)__builtin_ia32_ucmpb512_mask((__v64qi)(__m512i)(a), \ - (__v64qi)(__m512i)(b), (int)(p), \ - (__mmask64)(m)) - -#define _mm512_cmp_epi16_mask(a, b, p) \ - (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \ - (__v32hi)(__m512i)(b), (int)(p), \ - (__mmask32)-1) - -#define _mm512_mask_cmp_epi16_mask(m, a, b, p) \ - (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)(a), \ - (__v32hi)(__m512i)(b), (int)(p), \ - (__mmask32)(m)) - -#define _mm512_cmp_epu16_mask(a, b, p) \ - (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \ - (__v32hi)(__m512i)(b), (int)(p), \ - (__mmask32)-1) - -#define _mm512_mask_cmp_epu16_mask(m, a, b, p) \ - (__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \ - (__v32hi)(__m512i)(b), (int)(p), \ - (__mmask32)(m)) - -#define _mm512_cmpeq_epi8_mask(A, B) \ - _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_EQ) -#define _mm512_mask_cmpeq_epi8_mask(k, A, B) \ - _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm512_cmpge_epi8_mask(A, B) \ - _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_GE) -#define _mm512_mask_cmpge_epi8_mask(k, A, B) \ - _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm512_cmpgt_epi8_mask(A, B) \ - _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_GT) -#define _mm512_mask_cmpgt_epi8_mask(k, A, B) \ - _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm512_cmple_epi8_mask(A, B) \ - _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_LE) -#define _mm512_mask_cmple_epi8_mask(k, A, B) \ - _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm512_cmplt_epi8_mask(A, B) \ - _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_LT) -#define _mm512_mask_cmplt_epi8_mask(k, A, B) \ - _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm512_cmpneq_epi8_mask(A, B) \ - _mm512_cmp_epi8_mask((A), (B), _MM_CMPINT_NE) -#define _mm512_mask_cmpneq_epi8_mask(k, A, B) \ - _mm512_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm512_cmpeq_epu8_mask(A, B) \ - _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_EQ) -#define _mm512_mask_cmpeq_epu8_mask(k, A, B) \ - _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm512_cmpge_epu8_mask(A, B) \ - _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_GE) -#define _mm512_mask_cmpge_epu8_mask(k, A, B) \ - _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm512_cmpgt_epu8_mask(A, B) \ - _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_GT) -#define _mm512_mask_cmpgt_epu8_mask(k, A, B) \ - _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm512_cmple_epu8_mask(A, B) \ - _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_LE) -#define _mm512_mask_cmple_epu8_mask(k, A, B) \ - _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm512_cmplt_epu8_mask(A, B) \ - _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_LT) -#define _mm512_mask_cmplt_epu8_mask(k, A, B) \ - _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm512_cmpneq_epu8_mask(A, B) \ - _mm512_cmp_epu8_mask((A), (B), _MM_CMPINT_NE) -#define _mm512_mask_cmpneq_epu8_mask(k, A, B) \ - _mm512_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm512_cmpeq_epi16_mask(A, B) \ - _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_EQ) -#define _mm512_mask_cmpeq_epi16_mask(k, A, B) \ - _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm512_cmpge_epi16_mask(A, B) \ - _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_GE) -#define _mm512_mask_cmpge_epi16_mask(k, A, B) \ - _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm512_cmpgt_epi16_mask(A, B) \ - _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_GT) -#define _mm512_mask_cmpgt_epi16_mask(k, A, B) \ - _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm512_cmple_epi16_mask(A, B) \ - _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_LE) -#define _mm512_mask_cmple_epi16_mask(k, A, B) \ - _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm512_cmplt_epi16_mask(A, B) \ - _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_LT) -#define _mm512_mask_cmplt_epi16_mask(k, A, B) \ - _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm512_cmpneq_epi16_mask(A, B) \ - _mm512_cmp_epi16_mask((A), (B), _MM_CMPINT_NE) -#define _mm512_mask_cmpneq_epi16_mask(k, A, B) \ - _mm512_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm512_cmpeq_epu16_mask(A, B) \ - _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_EQ) -#define _mm512_mask_cmpeq_epu16_mask(k, A, B) \ - _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm512_cmpge_epu16_mask(A, B) \ - _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_GE) -#define _mm512_mask_cmpge_epu16_mask(k, A, B) \ - _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm512_cmpgt_epu16_mask(A, B) \ - _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_GT) -#define _mm512_mask_cmpgt_epu16_mask(k, A, B) \ - _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm512_cmple_epu16_mask(A, B) \ - _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_LE) -#define _mm512_mask_cmple_epu16_mask(k, A, B) \ - _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm512_cmplt_epu16_mask(A, B) \ - _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_LT) -#define _mm512_mask_cmplt_epu16_mask(k, A, B) \ - _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm512_cmpneq_epu16_mask(A, B) \ - _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_NE) -#define _mm512_mask_cmpneq_epu16_mask(k, A, B) \ - _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_add_epi8 (__m512i __A, __m512i __B) { - return (__m512i) ((__v64qu) __A + (__v64qu) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_add_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_add_epi8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_add_epi8(__mmask64 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_add_epi8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sub_epi8 (__m512i __A, __m512i __B) { - return (__m512i) ((__v64qu) __A - (__v64qu) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sub_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_sub_epi8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sub_epi8(__mmask64 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_sub_epi8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_add_epi16 (__m512i __A, __m512i __B) { - return (__m512i) ((__v32hu) __A + (__v32hu) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_add_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_add_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_add_epi16(__mmask32 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_add_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sub_epi16 (__m512i __A, __m512i __B) { - return (__m512i) ((__v32hu) __A - (__v32hu) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sub_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_sub_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sub_epi16(__mmask32 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_sub_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mullo_epi16 (__m512i __A, __m512i __B) { - return (__m512i) ((__v32hu) __A * (__v32hu) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mullo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_mullo_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mullo_epi16(__mmask32 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_mullo_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W) -{ - return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U, - (__v64qi) __W, - (__v64qi) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W) -{ - return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U, - (__v32hi) __W, - (__v32hi) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_abs_epi8 (__m512i __A) -{ - return (__m512i)__builtin_ia32_pabsb512((__v64qi)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_abs_epi8(__A), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_abs_epi8(__A), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_abs_epi16 (__m512i __A) -{ - return (__m512i)__builtin_ia32_pabsw512((__v32hi)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_abs_epi16(__A), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_abs_epi16(__A), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_packs_epi32(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_packssdw512((__v16si)__A, (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_packs_epi32(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_packs_epi32(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_packs_epi16(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_packsswb512((__v32hi)__A, (__v32hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_packs_epi16(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_packs_epi16(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_packus_epi32(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_packusdw512((__v16si) __A, (__v16si) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_packus_epi32(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_packus_epi32(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_packus_epi16(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_packuswb512((__v32hi) __A, (__v32hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_packus_epi16(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_packus_epi16(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_adds_epi8 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_paddsb512((__v64qi)__A, (__v64qi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_adds_epi8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_adds_epi8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_adds_epi16 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_paddsw512((__v32hi)__A, (__v32hi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_adds_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_adds_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_adds_epu8 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_paddusb512((__v64qi) __A, (__v64qi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_adds_epu8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_adds_epu8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_adds_epu16 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_paddusw512((__v32hi) __A, (__v32hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_adds_epu16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_adds_epu16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_avg_epu8 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pavgb512((__v64qi)__A, (__v64qi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_avg_epu8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_avg_epu8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_avg_epu16 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pavgw512((__v32hi)__A, (__v32hi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_avg_epu16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_avg_epu16(__A, __B), - (__v32hi) _mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_max_epi8 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmaxsb512((__v64qi) __A, (__v64qi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_max_epi8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_max_epi8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_max_epi16 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmaxsw512((__v32hi) __A, (__v32hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_max_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_max_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_max_epu8 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmaxub512((__v64qi)__A, (__v64qi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_max_epu8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_max_epu8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_max_epu16 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmaxuw512((__v32hi)__A, (__v32hi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_max_epu16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_max_epu16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_min_epi8 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pminsb512((__v64qi) __A, (__v64qi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_min_epi8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_min_epi8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_min_epi16 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pminsw512((__v32hi) __A, (__v32hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_min_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_min_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_min_epu8 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pminub512((__v64qi)__A, (__v64qi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_min_epu8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_min_epu8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_min_epu16 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pminuw512((__v32hi)__A, (__v32hi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_min_epu16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_min_epu16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_shuffle_epi8(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pshufb512((__v64qi)__A,(__v64qi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_shuffle_epi8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_shuffle_epi8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_subs_epi8 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_psubsb512((__v64qi)__A, (__v64qi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_subs_epi8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_subs_epi8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_subs_epi16 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_psubsw512((__v32hi)__A, (__v32hi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_subs_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_subs_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_subs_epu8 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_psubusb512((__v64qi) __A, (__v64qi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_subs_epu8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_subs_epu8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_subs_epu16 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_psubusw512((__v32hi) __A, (__v32hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_subs_epu16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_subs_epu16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_permutex2var_epi16(__m512i __A, __m512i __I, __m512i __B) -{ - return (__m512i)__builtin_ia32_vpermi2varhi512((__v32hi)__A, (__v32hi)__I, - (__v32hi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i __I, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512(__U, - (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B), - (__v32hi)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask2_permutex2var_epi16(__m512i __A, __m512i __I, __mmask32 __U, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512(__U, - (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B), - (__v32hi)__I); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512(__U, - (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mulhrs_epi16(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmulhrsw512((__v32hi)__A, (__v32hi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_mulhrs_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_mulhrs_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mulhi_epi16(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmulhw512((__v32hi) __A, (__v32hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_mulhi_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_mulhi_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mulhi_epu16(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmulhuw512((__v32hi) __A, (__v32hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_mulhi_epu16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_mulhi_epu16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maddubs_epi16(__m512i __X, __m512i __Y) { - return (__m512i)__builtin_ia32_pmaddubsw512((__v64qi)__X, (__v64qi)__Y); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X, - __m512i __Y) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U, - (__v32hi)_mm512_maddubs_epi16(__X, __Y), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U, - (__v32hi)_mm512_maddubs_epi16(__X, __Y), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_madd_epi16(__m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_pmaddwd512((__v32hi)__A, (__v32hi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_madd_epi16(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_madd_epi16(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtsepi16_epi8 (__m512i __A) { - return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, - (__v32qi)_mm256_setzero_si256(), - (__mmask32) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) { - return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, - (__v32qi)__O, - __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A) { - return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, - (__v32qi) _mm256_setzero_si256(), - __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtusepi16_epi8 (__m512i __A) { - return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, - (__v32qi) _mm256_setzero_si256(), - (__mmask32) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) { - return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, - (__v32qi) __O, - __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A) { - return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, - (__v32qi) _mm256_setzero_si256(), - __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi16_epi8 (__m512i __A) { - return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, - (__v32qi) _mm256_undefined_si256(), - (__mmask32) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) { - return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, - (__v32qi) __O, - __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A) { - return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, - (__v32qi) _mm256_setzero_si256(), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A) -{ - __builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A) -{ - __builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A) -{ - __builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_unpackhi_epi8(__m512i __A, __m512i __B) { - return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B, - 8, 64+8, 9, 64+9, - 10, 64+10, 11, 64+11, - 12, 64+12, 13, 64+13, - 14, 64+14, 15, 64+15, - 24, 64+24, 25, 64+25, - 26, 64+26, 27, 64+27, - 28, 64+28, 29, 64+29, - 30, 64+30, 31, 64+31, - 40, 64+40, 41, 64+41, - 42, 64+42, 43, 64+43, - 44, 64+44, 45, 64+45, - 46, 64+46, 47, 64+47, - 56, 64+56, 57, 64+57, - 58, 64+58, 59, 64+59, - 60, 64+60, 61, 64+61, - 62, 64+62, 63, 64+63); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_unpackhi_epi8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_unpackhi_epi8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_unpackhi_epi16(__m512i __A, __m512i __B) { - return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B, - 4, 32+4, 5, 32+5, - 6, 32+6, 7, 32+7, - 12, 32+12, 13, 32+13, - 14, 32+14, 15, 32+15, - 20, 32+20, 21, 32+21, - 22, 32+22, 23, 32+23, - 28, 32+28, 29, 32+29, - 30, 32+30, 31, 32+31); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_unpackhi_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_unpackhi_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_unpacklo_epi8(__m512i __A, __m512i __B) { - return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B, - 0, 64+0, 1, 64+1, - 2, 64+2, 3, 64+3, - 4, 64+4, 5, 64+5, - 6, 64+6, 7, 64+7, - 16, 64+16, 17, 64+17, - 18, 64+18, 19, 64+19, - 20, 64+20, 21, 64+21, - 22, 64+22, 23, 64+23, - 32, 64+32, 33, 64+33, - 34, 64+34, 35, 64+35, - 36, 64+36, 37, 64+37, - 38, 64+38, 39, 64+39, - 48, 64+48, 49, 64+49, - 50, 64+50, 51, 64+51, - 52, 64+52, 53, 64+53, - 54, 64+54, 55, 64+55); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_unpacklo_epi8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, - (__v64qi)_mm512_unpacklo_epi8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_unpacklo_epi16(__m512i __A, __m512i __B) { - return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B, - 0, 32+0, 1, 32+1, - 2, 32+2, 3, 32+3, - 8, 32+8, 9, 32+9, - 10, 32+10, 11, 32+11, - 16, 32+16, 17, 32+17, - 18, 32+18, 19, 32+19, - 24, 32+24, 25, 32+25, - 26, 32+26, 27, 32+27); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_unpacklo_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_unpacklo_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi8_epi16(__m256i __A) -{ - /* This function always performs a signed extension, but __v32qi is a char - which may be signed or unsigned, so use __v32qs. */ - return (__m512i)__builtin_convertvector((__v32qs)__A, __v32hi); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_cvtepi8_epi16(__A), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_cvtepi8_epi16(__A), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepu8_epi16(__m256i __A) -{ - return (__m512i)__builtin_convertvector((__v32qu)__A, __v32hi); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_cvtepu8_epi16(__A), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_cvtepu8_epi16(__A), - (__v32hi)_mm512_setzero_si512()); -} - - -#define _mm512_shufflehi_epi16(A, imm) \ - (__m512i)__builtin_ia32_pshufhw512((__v32hi)(__m512i)(A), (int)(imm)) - -#define _mm512_mask_shufflehi_epi16(W, U, A, imm) \ - (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \ - (__v32hi)_mm512_shufflehi_epi16((A), \ - (imm)), \ - (__v32hi)(__m512i)(W)) - -#define _mm512_maskz_shufflehi_epi16(U, A, imm) \ - (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \ - (__v32hi)_mm512_shufflehi_epi16((A), \ - (imm)), \ - (__v32hi)_mm512_setzero_si512()) - -#define _mm512_shufflelo_epi16(A, imm) \ - (__m512i)__builtin_ia32_pshuflw512((__v32hi)(__m512i)(A), (int)(imm)) - - -#define _mm512_mask_shufflelo_epi16(W, U, A, imm) \ - (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \ - (__v32hi)_mm512_shufflelo_epi16((A), \ - (imm)), \ - (__v32hi)(__m512i)(W)) - - -#define _mm512_maskz_shufflelo_epi16(U, A, imm) \ - (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \ - (__v32hi)_mm512_shufflelo_epi16((A), \ - (imm)), \ - (__v32hi)_mm512_setzero_si512()) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sllv_epi16(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_psllv32hi((__v32hi) __A, (__v32hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_sllv_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_sllv_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sll_epi16(__m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_psllw512((__v32hi) __A, (__v8hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_sll_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sll_epi16(__mmask32 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_sll_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_slli_epi16(__m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_psllwi512((__v32hi)__A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_slli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_slli_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_slli_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -#define _mm512_bslli_epi128(a, imm) \ - (__m512i)__builtin_ia32_pslldqi512_byteshift((__v8di)(__m512i)(a), (int)(imm)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srlv_epi16(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_psrlv32hi((__v32hi)__A, (__v32hi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_srlv_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_srlv_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srav_epi16(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_psrav32hi((__v32hi)__A, (__v32hi)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_srav_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_srav_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sra_epi16(__m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_psraw512((__v32hi) __A, (__v8hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_sra_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sra_epi16(__mmask32 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_sra_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srai_epi16(__m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_psrawi512((__v32hi)__A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srai_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_srai_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srai_epi16(__mmask32 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_srai_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srl_epi16(__m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_psrlw512((__v32hi) __A, (__v8hi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_srl_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srl_epi16(__mmask32 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_srl_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srli_epi16(__m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_psrlwi512((__v32hi)__A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_srli_epi16(__A, __B), - (__v32hi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srli_epi16(__mmask32 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, - (__v32hi)_mm512_srli_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -#define _mm512_bsrli_epi128(a, imm) \ - (__m512i)__builtin_ia32_psrldqi512_byteshift((__v8di)(__m512i)(a), (int)(imm)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U, - (__v32hi) __A, - (__v32hi) __W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U, - (__v32hi) __A, - (__v32hi) _mm512_setzero_si512 ()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U, - (__v64qi) __A, - (__v64qi) __W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U, - (__v64qi) __A, - (__v64qi) _mm512_setzero_si512 ()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A) -{ - return (__m512i) __builtin_ia32_selectb_512(__M, - (__v64qi)_mm512_set1_epi8(__A), - (__v64qi) __O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_set1_epi8 (__mmask64 __M, char __A) -{ - return (__m512i) __builtin_ia32_selectb_512(__M, - (__v64qi) _mm512_set1_epi8(__A), - (__v64qi) _mm512_setzero_si512()); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS -_mm512_kunpackd (__mmask64 __A, __mmask64 __B) -{ - return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A, - (__mmask64) __B); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS -_mm512_kunpackw (__mmask32 __A, __mmask32 __B) -{ - return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A, - (__mmask32) __B); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_loadu_epi16 (void const *__P) -{ - struct __loadu_epi16 { - __m512i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi16*)__P)->__v; -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P, - (__v32hi) __W, - (__mmask32) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P, - (__v32hi) - _mm512_setzero_si512 (), - (__mmask32) __U); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_loadu_epi8 (void const *__P) -{ - struct __loadu_epi8 { - __m512i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi8*)__P)->__v; -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P, - (__v64qi) __W, - (__mmask64) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P, - (__v64qi) - _mm512_setzero_si512 (), - (__mmask64) __U); -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_storeu_epi16 (void *__P, __m512i __A) -{ - struct __storeu_epi16 { - __m512i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi16*)__P)->__v = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A) -{ - __builtin_ia32_storedquhi512_mask ((__v32hi *) __P, - (__v32hi) __A, - (__mmask32) __U); -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_storeu_epi8 (void *__P, __m512i __A) -{ - struct __storeu_epi8 { - __m512i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi8*)__P)->__v = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A) -{ - __builtin_ia32_storedquqi512_mask ((__v64qi *) __P, - (__v64qi) __A, - (__mmask64) __U); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS512 -_mm512_test_epi8_mask (__m512i __A, __m512i __B) -{ - return _mm512_cmpneq_epi8_mask (_mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS512 -_mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) -{ - return _mm512_mask_cmpneq_epi8_mask (__U, _mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS512 -_mm512_test_epi16_mask (__m512i __A, __m512i __B) -{ - return _mm512_cmpneq_epi16_mask (_mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS512 -_mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) -{ - return _mm512_mask_cmpneq_epi16_mask (__U, _mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS512 -_mm512_testn_epi8_mask (__m512i __A, __m512i __B) -{ - return _mm512_cmpeq_epi8_mask (_mm512_and_epi32 (__A, __B), _mm512_setzero_si512()); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS512 -_mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) -{ - return _mm512_mask_cmpeq_epi8_mask (__U, _mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS512 -_mm512_testn_epi16_mask (__m512i __A, __m512i __B) -{ - return _mm512_cmpeq_epi16_mask (_mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS512 -_mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) -{ - return _mm512_mask_cmpeq_epi16_mask (__U, _mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask64 __DEFAULT_FN_ATTRS512 -_mm512_movepi8_mask (__m512i __A) -{ - return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS512 -_mm512_movepi16_mask (__m512i __A) -{ - return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_movm_epi8 (__mmask64 __A) -{ - return (__m512i) __builtin_ia32_cvtmask2b512 (__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_movm_epi16 (__mmask32 __A) -{ - return (__m512i) __builtin_ia32_cvtmask2w512 (__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_broadcastb_epi8 (__m128i __A) -{ - return (__m512i)__builtin_shufflevector((__v16qi) __A, (__v16qi) __A, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectb_512(__M, - (__v64qi) _mm512_broadcastb_epi8(__A), - (__v64qi) __O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectb_512(__M, - (__v64qi) _mm512_broadcastb_epi8(__A), - (__v64qi) _mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A) -{ - return (__m512i) __builtin_ia32_selectw_512(__M, - (__v32hi) _mm512_set1_epi16(__A), - (__v32hi) __O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_set1_epi16 (__mmask32 __M, short __A) -{ - return (__m512i) __builtin_ia32_selectw_512(__M, - (__v32hi) _mm512_set1_epi16(__A), - (__v32hi) _mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_broadcastw_epi16 (__m128i __A) -{ - return (__m512i)__builtin_shufflevector((__v8hi) __A, (__v8hi) __A, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectw_512(__M, - (__v32hi) _mm512_broadcastw_epi16(__A), - (__v32hi) __O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectw_512(__M, - (__v32hi) _mm512_broadcastw_epi16(__A), - (__v32hi) _mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_permutexvar_epi16 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_permvarhi512((__v32hi)__B, (__v32hi)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_permutexvar_epi16(__A, __B), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, - (__v32hi)_mm512_permutexvar_epi16(__A, __B), - (__v32hi)__W); -} - -#define _mm512_alignr_epi8(A, B, N) \ - (__m512i)__builtin_ia32_palignr512((__v64qi)(__m512i)(A), \ - (__v64qi)(__m512i)(B), (int)(N)) - -#define _mm512_mask_alignr_epi8(W, U, A, B, N) \ - (__m512i)__builtin_ia32_selectb_512((__mmask64)(U), \ - (__v64qi)_mm512_alignr_epi8((A), (B), (int)(N)), \ - (__v64qi)(__m512i)(W)) - -#define _mm512_maskz_alignr_epi8(U, A, B, N) \ - (__m512i)__builtin_ia32_selectb_512((__mmask64)(U), \ - (__v64qi)_mm512_alignr_epi8((A), (B), (int)(N)), \ - (__v64qi)(__m512i)_mm512_setzero_si512()) - -#define _mm512_dbsad_epu8(A, B, imm) \ - (__m512i)__builtin_ia32_dbpsadbw512((__v64qi)(__m512i)(A), \ - (__v64qi)(__m512i)(B), (int)(imm)) - -#define _mm512_mask_dbsad_epu8(W, U, A, B, imm) \ - (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \ - (__v32hi)_mm512_dbsad_epu8((A), (B), (imm)), \ - (__v32hi)(__m512i)(W)) - -#define _mm512_maskz_dbsad_epu8(U, A, B, imm) \ - (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \ - (__v32hi)_mm512_dbsad_epu8((A), (B), (imm)), \ - (__v32hi)_mm512_setzero_si512()) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sad_epu8 (__m512i __A, __m512i __B) -{ - return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A, - (__v64qi) __B); -} - -#undef __DEFAULT_FN_ATTRS512 -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/avx512cdintrin.h b/bin/app/data/cxx/include/avx512cdintrin.h deleted file mode 100644 index bfdba84a..00000000 --- a/bin/app/data/cxx/include/avx512cdintrin.h +++ /dev/null @@ -1,123 +0,0 @@ -/*===------------- avx512cdintrin.h - AVX512CD intrinsics ------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512CDINTRIN_H -#define __AVX512CDINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_conflict_epi64 (__m512i __A) -{ - return (__m512i) __builtin_ia32_vpconflictdi_512 ((__v8di) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_conflict_epi64 (__m512i __W, __mmask8 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_conflict_epi64(__A), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_conflict_epi64 (__mmask8 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_conflict_epi64(__A), - (__v8di)_mm512_setzero_si512 ()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_conflict_epi32 (__m512i __A) -{ - return (__m512i) __builtin_ia32_vpconflictsi_512 ((__v16si) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_conflict_epi32 (__m512i __W, __mmask16 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_conflict_epi32(__A), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_conflict_epi32 (__mmask16 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_conflict_epi32(__A), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_lzcnt_epi32 (__m512i __A) -{ - return (__m512i) __builtin_ia32_vplzcntd_512 ((__v16si) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_lzcnt_epi32 (__m512i __W, __mmask16 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_lzcnt_epi32(__A), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_lzcnt_epi32 (__mmask16 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_lzcnt_epi32(__A), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_lzcnt_epi64 (__m512i __A) -{ - return (__m512i) __builtin_ia32_vplzcntq_512 ((__v8di) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_lzcnt_epi64 (__m512i __W, __mmask8 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_lzcnt_epi64(__A), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_lzcnt_epi64 (__mmask8 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_lzcnt_epi64(__A), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_broadcastmb_epi64 (__mmask8 __A) -{ - return (__m512i) _mm512_set1_epi64((long long) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_broadcastmw_epi32 (__mmask16 __A) -{ - return (__m512i) _mm512_set1_epi32((int) __A); - -} - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/avx512dqintrin.h b/bin/app/data/cxx/include/avx512dqintrin.h deleted file mode 100644 index 337256c5..00000000 --- a/bin/app/data/cxx/include/avx512dqintrin.h +++ /dev/null @@ -1,1377 +0,0 @@ -/*===---- avx512dqintrin.h - AVX512DQ intrinsics ---------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512DQINTRIN_H -#define __AVX512DQINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) - -static __inline __mmask8 __DEFAULT_FN_ATTRS -_knot_mask8(__mmask8 __M) -{ - return __builtin_ia32_knotqi(__M); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_kand_mask8(__mmask8 __A, __mmask8 __B) -{ - return (__mmask8)__builtin_ia32_kandqi((__mmask8)__A, (__mmask8)__B); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_kandn_mask8(__mmask8 __A, __mmask8 __B) -{ - return (__mmask8)__builtin_ia32_kandnqi((__mmask8)__A, (__mmask8)__B); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_kor_mask8(__mmask8 __A, __mmask8 __B) -{ - return (__mmask8)__builtin_ia32_korqi((__mmask8)__A, (__mmask8)__B); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_kxnor_mask8(__mmask8 __A, __mmask8 __B) -{ - return (__mmask8)__builtin_ia32_kxnorqi((__mmask8)__A, (__mmask8)__B); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_kxor_mask8(__mmask8 __A, __mmask8 __B) -{ - return (__mmask8)__builtin_ia32_kxorqi((__mmask8)__A, (__mmask8)__B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortestc_mask8_u8(__mmask8 __A, __mmask8 __B) -{ - return (unsigned char)__builtin_ia32_kortestcqi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortestz_mask8_u8(__mmask8 __A, __mmask8 __B) -{ - return (unsigned char)__builtin_ia32_kortestzqi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortest_mask8_u8(__mmask8 __A, __mmask8 __B, unsigned char *__C) { - *__C = (unsigned char)__builtin_ia32_kortestcqi(__A, __B); - return (unsigned char)__builtin_ia32_kortestzqi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktestc_mask8_u8(__mmask8 __A, __mmask8 __B) -{ - return (unsigned char)__builtin_ia32_ktestcqi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktestz_mask8_u8(__mmask8 __A, __mmask8 __B) -{ - return (unsigned char)__builtin_ia32_ktestzqi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktest_mask8_u8(__mmask8 __A, __mmask8 __B, unsigned char *__C) { - *__C = (unsigned char)__builtin_ia32_ktestcqi(__A, __B); - return (unsigned char)__builtin_ia32_ktestzqi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktestc_mask16_u8(__mmask16 __A, __mmask16 __B) -{ - return (unsigned char)__builtin_ia32_ktestchi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktestz_mask16_u8(__mmask16 __A, __mmask16 __B) -{ - return (unsigned char)__builtin_ia32_ktestzhi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_ktest_mask16_u8(__mmask16 __A, __mmask16 __B, unsigned char *__C) { - *__C = (unsigned char)__builtin_ia32_ktestchi(__A, __B); - return (unsigned char)__builtin_ia32_ktestzhi(__A, __B); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_kadd_mask8(__mmask8 __A, __mmask8 __B) -{ - return (__mmask8)__builtin_ia32_kaddqi((__mmask8)__A, (__mmask8)__B); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_kadd_mask16(__mmask16 __A, __mmask16 __B) -{ - return (__mmask16)__builtin_ia32_kaddhi((__mmask16)__A, (__mmask16)__B); -} - -#define _kshiftli_mask8(A, I) \ - (__mmask8)__builtin_ia32_kshiftliqi((__mmask8)(A), (unsigned int)(I)) - -#define _kshiftri_mask8(A, I) \ - (__mmask8)__builtin_ia32_kshiftriqi((__mmask8)(A), (unsigned int)(I)) - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_cvtmask8_u32(__mmask8 __A) { - return (unsigned int)__builtin_ia32_kmovb((__mmask8)__A); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_cvtu32_mask8(unsigned int __A) { - return (__mmask8)__builtin_ia32_kmovb((__mmask8)__A); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS -_load_mask8(__mmask8 *__A) { - return (__mmask8)__builtin_ia32_kmovb(*(__mmask8 *)__A); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_store_mask8(__mmask8 *__A, __mmask8 __B) { - *(__mmask8 *)__A = __builtin_ia32_kmovb((__mmask8)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mullo_epi64 (__m512i __A, __m512i __B) { - return (__m512i) ((__v8du) __A * (__v8du) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mullo_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_mullo_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mullo_epi64(__mmask8 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_mullo_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_xor_pd(__m512d __A, __m512d __B) { - return (__m512d)((__v8du)__A ^ (__v8du)__B); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_xor_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_xor_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_xor_pd(__mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_xor_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_xor_ps (__m512 __A, __m512 __B) { - return (__m512)((__v16su)__A ^ (__v16su)__B); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_xor_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_xor_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_xor_ps(__mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_xor_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_or_pd(__m512d __A, __m512d __B) { - return (__m512d)((__v8du)__A | (__v8du)__B); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_or_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_or_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_or_pd(__mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_or_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_or_ps(__m512 __A, __m512 __B) { - return (__m512)((__v16su)__A | (__v16su)__B); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_or_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_or_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_or_ps(__mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_or_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_and_pd(__m512d __A, __m512d __B) { - return (__m512d)((__v8du)__A & (__v8du)__B); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_and_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_and_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_and_pd(__mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_and_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_and_ps(__m512 __A, __m512 __B) { - return (__m512)((__v16su)__A & (__v16su)__B); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_and_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_and_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_and_ps(__mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_and_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_andnot_pd(__m512d __A, __m512d __B) { - return (__m512d)(~(__v8du)__A & (__v8du)__B); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_andnot_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_andnot_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_andnot_pd(__mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_andnot_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_andnot_ps(__m512 __A, __m512 __B) { - return (__m512)(~(__v16su)__A & (__v16su)__B); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_andnot_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_andnot_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_andnot_ps(__mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_andnot_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtpd_epi64 (__m512d __A) { - return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) { - return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, - (__v8di) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A) { - return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundpd_epi64(A, R) \ - (__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundpd_epi64(W, U, A, R) \ - (__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \ - (__v8di)(__m512i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundpd_epi64(U, A, R) \ - (__m512i)__builtin_ia32_cvtpd2qq512_mask((__v8df)(__m512d)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtpd_epu64 (__m512d __A) { - return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) { - return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, - (__v8di) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A) { - return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundpd_epu64(A, R) \ - (__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundpd_epu64(W, U, A, R) \ - (__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \ - (__v8di)(__m512i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundpd_epu64(U, A, R) \ - (__m512i)__builtin_ia32_cvtpd2uqq512_mask((__v8df)(__m512d)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtps_epi64 (__m256 __A) { - return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) { - return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, - (__v8di) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A) { - return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundps_epi64(A, R) \ - (__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundps_epi64(W, U, A, R) \ - (__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \ - (__v8di)(__m512i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundps_epi64(U, A, R) \ - (__m512i)__builtin_ia32_cvtps2qq512_mask((__v8sf)(__m256)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtps_epu64 (__m256 __A) { - return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) { - return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, - (__v8di) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A) { - return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundps_epu64(A, R) \ - (__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundps_epu64(W, U, A, R) \ - (__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \ - (__v8di)(__m512i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundps_epu64(U, A, R) \ - (__m512i)__builtin_ia32_cvtps2uqq512_mask((__v8sf)(__m256)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)(U), (int)(R)) - - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_cvtepi64_pd (__m512i __A) { - return (__m512d)__builtin_convertvector((__v8di)__A, __v8df); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_cvtepi64_pd(__A), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_cvtepi64_pd(__A), - (__v8df)_mm512_setzero_pd()); -} - -#define _mm512_cvt_roundepi64_pd(A, R) \ - (__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundepi64_pd(W, U, A, R) \ - (__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \ - (__v8df)(__m512d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundepi64_pd(U, A, R) \ - (__m512d)__builtin_ia32_cvtqq2pd512_mask((__v8di)(__m512i)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m256 __DEFAULT_FN_ATTRS512 -_mm512_cvtepi64_ps (__m512i __A) { - return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, - (__v8sf) _mm256_setzero_ps(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A) { - return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, - (__v8sf) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A) { - return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, - (__v8sf) _mm256_setzero_ps(), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundepi64_ps(A, R) \ - (__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundepi64_ps(W, U, A, R) \ - (__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \ - (__v8sf)(__m256)(W), (__mmask8)(U), \ - (int)(R)) - -#define _mm512_maskz_cvt_roundepi64_ps(U, A, R) \ - (__m256)__builtin_ia32_cvtqq2ps512_mask((__v8di)(__m512i)(A), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvttpd_epi64 (__m512d __A) { - return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) { - return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, - (__v8di) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A) { - return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvtt_roundpd_epi64(A, R) \ - (__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvtt_roundpd_epi64(W, U, A, R) \ - (__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \ - (__v8di)(__m512i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvtt_roundpd_epi64(U, A, R) \ - (__m512i)__builtin_ia32_cvttpd2qq512_mask((__v8df)(__m512d)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvttpd_epu64 (__m512d __A) { - return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) { - return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, - (__v8di) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A) { - return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvtt_roundpd_epu64(A, R) \ - (__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvtt_roundpd_epu64(W, U, A, R) \ - (__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \ - (__v8di)(__m512i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvtt_roundpd_epu64(U, A, R) \ - (__m512i)__builtin_ia32_cvttpd2uqq512_mask((__v8df)(__m512d)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvttps_epi64 (__m256 __A) { - return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) { - return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, - (__v8di) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A) { - return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvtt_roundps_epi64(A, R) \ - (__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvtt_roundps_epi64(W, U, A, R) \ - (__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \ - (__v8di)(__m512i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvtt_roundps_epi64(U, A, R) \ - (__m512i)__builtin_ia32_cvttps2qq512_mask((__v8sf)(__m256)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvttps_epu64 (__m256 __A) { - return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) { - return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, - (__v8di) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A) { - return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, - (__v8di) _mm512_setzero_si512(), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvtt_roundps_epu64(A, R) \ - (__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvtt_roundps_epu64(W, U, A, R) \ - (__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \ - (__v8di)(__m512i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvtt_roundps_epu64(U, A, R) \ - (__m512i)__builtin_ia32_cvttps2uqq512_mask((__v8sf)(__m256)(A), \ - (__v8di)_mm512_setzero_si512(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_cvtepu64_pd (__m512i __A) { - return (__m512d)__builtin_convertvector((__v8du)__A, __v8df); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_cvtepu64_pd(__A), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_cvtepu64_pd(__A), - (__v8df)_mm512_setzero_pd()); -} - -#define _mm512_cvt_roundepu64_pd(A, R) \ - (__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundepu64_pd(W, U, A, R) \ - (__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \ - (__v8df)(__m512d)(W), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_maskz_cvt_roundepu64_pd(U, A, R) \ - (__m512d)__builtin_ia32_cvtuqq2pd512_mask((__v8di)(__m512i)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - - -static __inline__ __m256 __DEFAULT_FN_ATTRS512 -_mm512_cvtepu64_ps (__m512i __A) { - return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, - (__v8sf) _mm256_setzero_ps(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A) { - return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, - (__v8sf) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A) { - return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, - (__v8sf) _mm256_setzero_ps(), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundepu64_ps(A, R) \ - (__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundepu64_ps(W, U, A, R) \ - (__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \ - (__v8sf)(__m256)(W), (__mmask8)(U), \ - (int)(R)) - -#define _mm512_maskz_cvt_roundepu64_ps(U, A, R) \ - (__m256)__builtin_ia32_cvtuqq2ps512_mask((__v8di)(__m512i)(A), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_range_pd(A, B, C) \ - (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(C), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_range_pd(W, U, A, B, C) \ - (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(C), \ - (__v8df)(__m512d)(W), (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_range_pd(U, A, B, C) \ - (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(C), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_range_round_pd(A, B, C, R) \ - (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(C), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_range_round_pd(W, U, A, B, C, R) \ - (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(C), \ - (__v8df)(__m512d)(W), (__mmask8)(U), \ - (int)(R)) - -#define _mm512_maskz_range_round_pd(U, A, B, C, R) \ - (__m512d)__builtin_ia32_rangepd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(C), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_range_ps(A, B, C) \ - (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(C), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_range_ps(W, U, A, B, C) \ - (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(C), \ - (__v16sf)(__m512)(W), (__mmask16)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_range_ps(U, A, B, C) \ - (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(C), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_range_round_ps(A, B, C, R) \ - (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(C), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_range_round_ps(W, U, A, B, C, R) \ - (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(C), \ - (__v16sf)(__m512)(W), (__mmask16)(U), \ - (int)(R)) - -#define _mm512_maskz_range_round_ps(U, A, B, C, R) \ - (__m512)__builtin_ia32_rangeps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(C), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), (int)(R)) - -#define _mm_range_round_ss(A, B, C, R) \ - (__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8) -1, (int)(C),\ - (int)(R)) - -#define _mm_range_ss(A ,B , C) _mm_range_round_ss(A, B, C ,_MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_range_round_ss(W, U, A, B, C, R) \ - (__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W),\ - (__mmask8)(U), (int)(C),\ - (int)(R)) - -#define _mm_mask_range_ss(W , U, A, B, C) _mm_mask_range_round_ss(W, U, A, B, C , _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_range_round_ss(U, A, B, C, R) \ - (__m128)__builtin_ia32_rangess128_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(C),\ - (int)(R)) - -#define _mm_maskz_range_ss(U, A ,B , C) _mm_maskz_range_round_ss(U, A, B, C ,_MM_FROUND_CUR_DIRECTION) - -#define _mm_range_round_sd(A, B, C, R) \ - (__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8) -1, (int)(C),\ - (int)(R)) - -#define _mm_range_sd(A ,B , C) _mm_range_round_sd(A, B, C ,_MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_range_round_sd(W, U, A, B, C, R) \ - (__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W),\ - (__mmask8)(U), (int)(C),\ - (int)(R)) - -#define _mm_mask_range_sd(W, U, A, B, C) _mm_mask_range_round_sd(W, U, A, B, C ,_MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_range_round_sd(U, A, B, C, R) \ - (__m128d)__builtin_ia32_rangesd128_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(C),\ - (int)(R)) - -#define _mm_maskz_range_sd(U, A, B, C) _mm_maskz_range_round_sd(U, A, B, C ,_MM_FROUND_CUR_DIRECTION) - -#define _mm512_reduce_pd(A, B) \ - (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_reduce_pd(W, U, A, B) \ - (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ - (__v8df)(__m512d)(W), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_reduce_pd(U, A, B) \ - (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_reduce_ps(A, B) \ - (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_reduce_ps(W, U, A, B) \ - (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ - (__v16sf)(__m512)(W), \ - (__mmask16)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_reduce_ps(U, A, B) \ - (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_reduce_round_pd(A, B, R) \ - (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_reduce_round_pd(W, U, A, B, R) \ - (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ - (__v8df)(__m512d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_reduce_round_pd(U, A, B, R) \ - (__m512d)__builtin_ia32_reducepd512_mask((__v8df)(__m512d)(A), (int)(B), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_reduce_round_ps(A, B, R) \ - (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_reduce_round_ps(W, U, A, B, R) \ - (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ - (__v16sf)(__m512)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_reduce_round_ps(U, A, B, R) \ - (__m512)__builtin_ia32_reduceps512_mask((__v16sf)(__m512)(A), (int)(B), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), (int)(R)) - -#define _mm_reduce_ss(A, B, C) \ - (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), (__mmask8)-1, \ - (int)(C), _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_reduce_ss(W, U, A, B, C) \ - (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), (__mmask8)(U), \ - (int)(C), _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_reduce_ss(U, A, B, C) \ - (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(C), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_reduce_round_ss(A, B, C, R) \ - (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), (__mmask8)-1, \ - (int)(C), (int)(R)) - -#define _mm_mask_reduce_round_ss(W, U, A, B, C, R) \ - (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), (__mmask8)(U), \ - (int)(C), (int)(R)) - -#define _mm_maskz_reduce_round_ss(U, A, B, C, R) \ - (__m128)__builtin_ia32_reducess_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(C), (int)(R)) - -#define _mm_reduce_sd(A, B, C) \ - (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(C), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_reduce_sd(W, U, A, B, C) \ - (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), (__mmask8)(U), \ - (int)(C), _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_reduce_sd(U, A, B, C) \ - (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(C), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_reduce_round_sd(A, B, C, R) \ - (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(C), (int)(R)) - -#define _mm_mask_reduce_round_sd(W, U, A, B, C, R) \ - (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), (__mmask8)(U), \ - (int)(C), (int)(R)) - -#define _mm_maskz_reduce_round_sd(U, A, B, C, R) \ - (__m128d)__builtin_ia32_reducesd_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(C), (int)(R)) - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS512 -_mm512_movepi32_mask (__m512i __A) -{ - return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_movm_epi32 (__mmask16 __A) -{ - return (__m512i) __builtin_ia32_cvtmask2d512 (__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_movm_epi64 (__mmask8 __A) -{ - return (__m512i) __builtin_ia32_cvtmask2q512 (__A); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS512 -_mm512_movepi64_mask (__m512i __A) -{ - return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A); -} - - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_broadcast_f32x2 (__m128 __A) -{ - return (__m512)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A, - 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, - (__v16sf)_mm512_broadcast_f32x2(__A), - (__v16sf)__O); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, - (__v16sf)_mm512_broadcast_f32x2(__A), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_broadcast_f32x8(__m256 __A) -{ - return (__m512)__builtin_shufflevector((__v8sf)__A, (__v8sf)__A, - 0, 1, 2, 3, 4, 5, 6, 7, - 0, 1, 2, 3, 4, 5, 6, 7); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcast_f32x8(__m512 __O, __mmask16 __M, __m256 __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, - (__v16sf)_mm512_broadcast_f32x8(__A), - (__v16sf)__O); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcast_f32x8(__mmask16 __M, __m256 __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, - (__v16sf)_mm512_broadcast_f32x8(__A), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_broadcast_f64x2(__m128d __A) -{ - return (__m512d)__builtin_shufflevector((__v2df)__A, (__v2df)__A, - 0, 1, 0, 1, 0, 1, 0, 1); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcast_f64x2(__m512d __O, __mmask8 __M, __m128d __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M, - (__v8df)_mm512_broadcast_f64x2(__A), - (__v8df)__O); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M, - (__v8df)_mm512_broadcast_f64x2(__A), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_broadcast_i32x2 (__m128i __A) -{ - return (__m512i)__builtin_shufflevector((__v4si)__A, (__v4si)__A, - 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_broadcast_i32x2(__A), - (__v16si)__O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_broadcast_i32x2(__A), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_broadcast_i32x8(__m256i __A) -{ - return (__m512i)__builtin_shufflevector((__v8si)__A, (__v8si)__A, - 0, 1, 2, 3, 4, 5, 6, 7, - 0, 1, 2, 3, 4, 5, 6, 7); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcast_i32x8(__m512i __O, __mmask16 __M, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_broadcast_i32x8(__A), - (__v16si)__O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcast_i32x8(__mmask16 __M, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_broadcast_i32x8(__A), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_broadcast_i64x2(__m128i __A) -{ - return (__m512i)__builtin_shufflevector((__v2di)__A, (__v2di)__A, - 0, 1, 0, 1, 0, 1, 0, 1); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcast_i64x2(__m512i __O, __mmask8 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_broadcast_i64x2(__A), - (__v8di)__O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_broadcast_i64x2(__A), - (__v8di)_mm512_setzero_si512()); -} - -#define _mm512_extractf32x8_ps(A, imm) \ - (__m256)__builtin_ia32_extractf32x8_mask((__v16sf)(__m512)(A), (int)(imm), \ - (__v8sf)_mm256_undefined_ps(), \ - (__mmask8)-1) - -#define _mm512_mask_extractf32x8_ps(W, U, A, imm) \ - (__m256)__builtin_ia32_extractf32x8_mask((__v16sf)(__m512)(A), (int)(imm), \ - (__v8sf)(__m256)(W), \ - (__mmask8)(U)) - -#define _mm512_maskz_extractf32x8_ps(U, A, imm) \ - (__m256)__builtin_ia32_extractf32x8_mask((__v16sf)(__m512)(A), (int)(imm), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)(U)) - -#define _mm512_extractf64x2_pd(A, imm) \ - (__m128d)__builtin_ia32_extractf64x2_512_mask((__v8df)(__m512d)(A), \ - (int)(imm), \ - (__v2df)_mm_undefined_pd(), \ - (__mmask8)-1) - -#define _mm512_mask_extractf64x2_pd(W, U, A, imm) \ - (__m128d)__builtin_ia32_extractf64x2_512_mask((__v8df)(__m512d)(A), \ - (int)(imm), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U)) - -#define _mm512_maskz_extractf64x2_pd(U, A, imm) \ - (__m128d)__builtin_ia32_extractf64x2_512_mask((__v8df)(__m512d)(A), \ - (int)(imm), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U)) - -#define _mm512_extracti32x8_epi32(A, imm) \ - (__m256i)__builtin_ia32_extracti32x8_mask((__v16si)(__m512i)(A), (int)(imm), \ - (__v8si)_mm256_undefined_si256(), \ - (__mmask8)-1) - -#define _mm512_mask_extracti32x8_epi32(W, U, A, imm) \ - (__m256i)__builtin_ia32_extracti32x8_mask((__v16si)(__m512i)(A), (int)(imm), \ - (__v8si)(__m256i)(W), \ - (__mmask8)(U)) - -#define _mm512_maskz_extracti32x8_epi32(U, A, imm) \ - (__m256i)__builtin_ia32_extracti32x8_mask((__v16si)(__m512i)(A), (int)(imm), \ - (__v8si)_mm256_setzero_si256(), \ - (__mmask8)(U)) - -#define _mm512_extracti64x2_epi64(A, imm) \ - (__m128i)__builtin_ia32_extracti64x2_512_mask((__v8di)(__m512i)(A), \ - (int)(imm), \ - (__v2di)_mm_undefined_si128(), \ - (__mmask8)-1) - -#define _mm512_mask_extracti64x2_epi64(W, U, A, imm) \ - (__m128i)__builtin_ia32_extracti64x2_512_mask((__v8di)(__m512i)(A), \ - (int)(imm), \ - (__v2di)(__m128i)(W), \ - (__mmask8)(U)) - -#define _mm512_maskz_extracti64x2_epi64(U, A, imm) \ - (__m128i)__builtin_ia32_extracti64x2_512_mask((__v8di)(__m512i)(A), \ - (int)(imm), \ - (__v2di)_mm_setzero_si128(), \ - (__mmask8)(U)) - -#define _mm512_insertf32x8(A, B, imm) \ - (__m512)__builtin_ia32_insertf32x8((__v16sf)(__m512)(A), \ - (__v8sf)(__m256)(B), (int)(imm)) - -#define _mm512_mask_insertf32x8(W, U, A, B, imm) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_insertf32x8((A), (B), (imm)), \ - (__v16sf)(__m512)(W)) - -#define _mm512_maskz_insertf32x8(U, A, B, imm) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_insertf32x8((A), (B), (imm)), \ - (__v16sf)_mm512_setzero_ps()) - -#define _mm512_insertf64x2(A, B, imm) \ - (__m512d)__builtin_ia32_insertf64x2_512((__v8df)(__m512d)(A), \ - (__v2df)(__m128d)(B), (int)(imm)) - -#define _mm512_mask_insertf64x2(W, U, A, B, imm) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_insertf64x2((A), (B), (imm)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_insertf64x2(U, A, B, imm) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_insertf64x2((A), (B), (imm)), \ - (__v8df)_mm512_setzero_pd()) - -#define _mm512_inserti32x8(A, B, imm) \ - (__m512i)__builtin_ia32_inserti32x8((__v16si)(__m512i)(A), \ - (__v8si)(__m256i)(B), (int)(imm)) - -#define _mm512_mask_inserti32x8(W, U, A, B, imm) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_inserti32x8((A), (B), (imm)), \ - (__v16si)(__m512i)(W)) - -#define _mm512_maskz_inserti32x8(U, A, B, imm) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_inserti32x8((A), (B), (imm)), \ - (__v16si)_mm512_setzero_si512()) - -#define _mm512_inserti64x2(A, B, imm) \ - (__m512i)__builtin_ia32_inserti64x2_512((__v8di)(__m512i)(A), \ - (__v2di)(__m128i)(B), (int)(imm)) - -#define _mm512_mask_inserti64x2(W, U, A, B, imm) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_inserti64x2((A), (B), (imm)), \ - (__v8di)(__m512i)(W)) - -#define _mm512_maskz_inserti64x2(U, A, B, imm) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_inserti64x2((A), (B), (imm)), \ - (__v8di)_mm512_setzero_si512()) - -#define _mm512_mask_fpclass_ps_mask(U, A, imm) \ - (__mmask16)__builtin_ia32_fpclassps512_mask((__v16sf)(__m512)(A), \ - (int)(imm), (__mmask16)(U)) - -#define _mm512_fpclass_ps_mask(A, imm) \ - (__mmask16)__builtin_ia32_fpclassps512_mask((__v16sf)(__m512)(A), \ - (int)(imm), (__mmask16)-1) - -#define _mm512_mask_fpclass_pd_mask(U, A, imm) \ - (__mmask8)__builtin_ia32_fpclasspd512_mask((__v8df)(__m512d)(A), (int)(imm), \ - (__mmask8)(U)) - -#define _mm512_fpclass_pd_mask(A, imm) \ - (__mmask8)__builtin_ia32_fpclasspd512_mask((__v8df)(__m512d)(A), (int)(imm), \ - (__mmask8)-1) - -#define _mm_fpclass_sd_mask(A, imm) \ - (__mmask8)__builtin_ia32_fpclasssd_mask((__v2df)(__m128d)(A), (int)(imm), \ - (__mmask8)-1) - -#define _mm_mask_fpclass_sd_mask(U, A, imm) \ - (__mmask8)__builtin_ia32_fpclasssd_mask((__v2df)(__m128d)(A), (int)(imm), \ - (__mmask8)(U)) - -#define _mm_fpclass_ss_mask(A, imm) \ - (__mmask8)__builtin_ia32_fpclassss_mask((__v4sf)(__m128)(A), (int)(imm), \ - (__mmask8)-1) - -#define _mm_mask_fpclass_ss_mask(U, A, imm) \ - (__mmask8)__builtin_ia32_fpclassss_mask((__v4sf)(__m128)(A), (int)(imm), \ - (__mmask8)(U)) - -#undef __DEFAULT_FN_ATTRS512 -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/avx512erintrin.h b/bin/app/data/cxx/include/avx512erintrin.h deleted file mode 100644 index 85700616..00000000 --- a/bin/app/data/cxx/include/avx512erintrin.h +++ /dev/null @@ -1,271 +0,0 @@ -/*===---- avx512erintrin.h - AVX512ER intrinsics ---------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512ERINTRIN_H -#define __AVX512ERINTRIN_H - -/* exp2a23 */ -#define _mm512_exp2a23_round_pd(A, R) \ - (__m512d)__builtin_ia32_exp2pd_mask((__v8df)(__m512d)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_exp2a23_round_pd(S, M, A, R) \ - (__m512d)__builtin_ia32_exp2pd_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(S), (__mmask8)(M), \ - (int)(R)) - -#define _mm512_maskz_exp2a23_round_pd(M, A, R) \ - (__m512d)__builtin_ia32_exp2pd_mask((__v8df)(__m512d)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(M), (int)(R)) - -#define _mm512_exp2a23_pd(A) \ - _mm512_exp2a23_round_pd((A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_exp2a23_pd(S, M, A) \ - _mm512_mask_exp2a23_round_pd((S), (M), (A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_exp2a23_pd(M, A) \ - _mm512_maskz_exp2a23_round_pd((M), (A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_exp2a23_round_ps(A, R) \ - (__m512)__builtin_ia32_exp2ps_mask((__v16sf)(__m512)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_exp2a23_round_ps(S, M, A, R) \ - (__m512)__builtin_ia32_exp2ps_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(S), (__mmask16)(M), \ - (int)(R)) - -#define _mm512_maskz_exp2a23_round_ps(M, A, R) \ - (__m512)__builtin_ia32_exp2ps_mask((__v16sf)(__m512)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(M), (int)(R)) - -#define _mm512_exp2a23_ps(A) \ - _mm512_exp2a23_round_ps((A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_exp2a23_ps(S, M, A) \ - _mm512_mask_exp2a23_round_ps((S), (M), (A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_exp2a23_ps(M, A) \ - _mm512_maskz_exp2a23_round_ps((M), (A), _MM_FROUND_CUR_DIRECTION) - -/* rsqrt28 */ -#define _mm512_rsqrt28_round_pd(A, R) \ - (__m512d)__builtin_ia32_rsqrt28pd_mask((__v8df)(__m512d)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_rsqrt28_round_pd(S, M, A, R) \ - (__m512d)__builtin_ia32_rsqrt28pd_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(S), (__mmask8)(M), \ - (int)(R)) - -#define _mm512_maskz_rsqrt28_round_pd(M, A, R) \ - (__m512d)__builtin_ia32_rsqrt28pd_mask((__v8df)(__m512d)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(M), (int)(R)) - -#define _mm512_rsqrt28_pd(A) \ - _mm512_rsqrt28_round_pd((A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_rsqrt28_pd(S, M, A) \ - _mm512_mask_rsqrt28_round_pd((S), (M), (A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_rsqrt28_pd(M, A) \ - _mm512_maskz_rsqrt28_round_pd((M), (A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_rsqrt28_round_ps(A, R) \ - (__m512)__builtin_ia32_rsqrt28ps_mask((__v16sf)(__m512)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_rsqrt28_round_ps(S, M, A, R) \ - (__m512)__builtin_ia32_rsqrt28ps_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(S), (__mmask16)(M), \ - (int)(R)) - -#define _mm512_maskz_rsqrt28_round_ps(M, A, R) \ - (__m512)__builtin_ia32_rsqrt28ps_mask((__v16sf)(__m512)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(M), (int)(R)) - -#define _mm512_rsqrt28_ps(A) \ - _mm512_rsqrt28_round_ps((A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_rsqrt28_ps(S, M, A) \ - _mm512_mask_rsqrt28_round_ps((S), (M), A, _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_rsqrt28_ps(M, A) \ - _mm512_maskz_rsqrt28_round_ps((M), (A), _MM_FROUND_CUR_DIRECTION) - -#define _mm_rsqrt28_round_ss(A, B, R) \ - (__m128)__builtin_ia32_rsqrt28ss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_rsqrt28_round_ss(S, M, A, B, R) \ - (__m128)__builtin_ia32_rsqrt28ss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(S), \ - (__mmask8)(M), (int)(R)) - -#define _mm_maskz_rsqrt28_round_ss(M, A, B, R) \ - (__m128)__builtin_ia32_rsqrt28ss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(M), (int)(R)) - -#define _mm_rsqrt28_ss(A, B) \ - _mm_rsqrt28_round_ss((A), (B), _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_rsqrt28_ss(S, M, A, B) \ - _mm_mask_rsqrt28_round_ss((S), (M), (A), (B), _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_rsqrt28_ss(M, A, B) \ - _mm_maskz_rsqrt28_round_ss((M), (A), (B), _MM_FROUND_CUR_DIRECTION) - -#define _mm_rsqrt28_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_rsqrt28sd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_rsqrt28_round_sd(S, M, A, B, R) \ - (__m128d)__builtin_ia32_rsqrt28sd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(S), \ - (__mmask8)(M), (int)(R)) - -#define _mm_maskz_rsqrt28_round_sd(M, A, B, R) \ - (__m128d)__builtin_ia32_rsqrt28sd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(M), (int)(R)) - -#define _mm_rsqrt28_sd(A, B) \ - _mm_rsqrt28_round_sd((A), (B), _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_rsqrt28_sd(S, M, A, B) \ - _mm_mask_rsqrt28_round_sd((S), (M), (A), (B), _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_rsqrt28_sd(M, A, B) \ - _mm_maskz_rsqrt28_round_sd((M), (A), (B), _MM_FROUND_CUR_DIRECTION) - -/* rcp28 */ -#define _mm512_rcp28_round_pd(A, R) \ - (__m512d)__builtin_ia32_rcp28pd_mask((__v8df)(__m512d)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_rcp28_round_pd(S, M, A, R) \ - (__m512d)__builtin_ia32_rcp28pd_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(S), (__mmask8)(M), \ - (int)(R)) - -#define _mm512_maskz_rcp28_round_pd(M, A, R) \ - (__m512d)__builtin_ia32_rcp28pd_mask((__v8df)(__m512d)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(M), (int)(R)) - -#define _mm512_rcp28_pd(A) \ - _mm512_rcp28_round_pd((A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_rcp28_pd(S, M, A) \ - _mm512_mask_rcp28_round_pd((S), (M), (A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_rcp28_pd(M, A) \ - _mm512_maskz_rcp28_round_pd((M), (A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_rcp28_round_ps(A, R) \ - (__m512)__builtin_ia32_rcp28ps_mask((__v16sf)(__m512)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_rcp28_round_ps(S, M, A, R) \ - (__m512)__builtin_ia32_rcp28ps_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(S), (__mmask16)(M), \ - (int)(R)) - -#define _mm512_maskz_rcp28_round_ps(M, A, R) \ - (__m512)__builtin_ia32_rcp28ps_mask((__v16sf)(__m512)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(M), (int)(R)) - -#define _mm512_rcp28_ps(A) \ - _mm512_rcp28_round_ps((A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_rcp28_ps(S, M, A) \ - _mm512_mask_rcp28_round_ps((S), (M), (A), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_rcp28_ps(M, A) \ - _mm512_maskz_rcp28_round_ps((M), (A), _MM_FROUND_CUR_DIRECTION) - -#define _mm_rcp28_round_ss(A, B, R) \ - (__m128)__builtin_ia32_rcp28ss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_rcp28_round_ss(S, M, A, B, R) \ - (__m128)__builtin_ia32_rcp28ss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(S), \ - (__mmask8)(M), (int)(R)) - -#define _mm_maskz_rcp28_round_ss(M, A, B, R) \ - (__m128)__builtin_ia32_rcp28ss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(M), (int)(R)) - -#define _mm_rcp28_ss(A, B) \ - _mm_rcp28_round_ss((A), (B), _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_rcp28_ss(S, M, A, B) \ - _mm_mask_rcp28_round_ss((S), (M), (A), (B), _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_rcp28_ss(M, A, B) \ - _mm_maskz_rcp28_round_ss((M), (A), (B), _MM_FROUND_CUR_DIRECTION) - -#define _mm_rcp28_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_rcp28sd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_rcp28_round_sd(S, M, A, B, R) \ - (__m128d)__builtin_ia32_rcp28sd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(S), \ - (__mmask8)(M), (int)(R)) - -#define _mm_maskz_rcp28_round_sd(M, A, B, R) \ - (__m128d)__builtin_ia32_rcp28sd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(M), (int)(R)) - -#define _mm_rcp28_sd(A, B) \ - _mm_rcp28_round_sd((A), (B), _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_rcp28_sd(S, M, A, B) \ - _mm_mask_rcp28_round_sd((S), (M), (A), (B), _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_rcp28_sd(M, A, B) \ - _mm_maskz_rcp28_round_sd((M), (A), (B), _MM_FROUND_CUR_DIRECTION) - -#endif /* __AVX512ERINTRIN_H */ diff --git a/bin/app/data/cxx/include/avx512fintrin.h b/bin/app/data/cxx/include/avx512fintrin.h deleted file mode 100644 index 132761f9..00000000 --- a/bin/app/data/cxx/include/avx512fintrin.h +++ /dev/null @@ -1,9666 +0,0 @@ -/*===---- avx512fintrin.h - AVX512F intrinsics -----------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512FINTRIN_H -#define __AVX512FINTRIN_H - -typedef char __v64qi __attribute__((__vector_size__(64))); -typedef short __v32hi __attribute__((__vector_size__(64))); -typedef double __v8df __attribute__((__vector_size__(64))); -typedef float __v16sf __attribute__((__vector_size__(64))); -typedef long long __v8di __attribute__((__vector_size__(64))); -typedef int __v16si __attribute__((__vector_size__(64))); - -/* Unsigned types */ -typedef unsigned char __v64qu __attribute__((__vector_size__(64))); -typedef unsigned short __v32hu __attribute__((__vector_size__(64))); -typedef unsigned long long __v8du __attribute__((__vector_size__(64))); -typedef unsigned int __v16su __attribute__((__vector_size__(64))); - -typedef float __m512 __attribute__((__vector_size__(64), __aligned__(64))); -typedef double __m512d __attribute__((__vector_size__(64), __aligned__(64))); -typedef long long __m512i __attribute__((__vector_size__(64), __aligned__(64))); - -typedef float __m512_u __attribute__((__vector_size__(64), __aligned__(1))); -typedef double __m512d_u __attribute__((__vector_size__(64), __aligned__(1))); -typedef long long __m512i_u __attribute__((__vector_size__(64), __aligned__(1))); - -typedef unsigned char __mmask8; -typedef unsigned short __mmask16; - -/* Rounding mode macros. */ -#define _MM_FROUND_TO_NEAREST_INT 0x00 -#define _MM_FROUND_TO_NEG_INF 0x01 -#define _MM_FROUND_TO_POS_INF 0x02 -#define _MM_FROUND_TO_ZERO 0x03 -#define _MM_FROUND_CUR_DIRECTION 0x04 - -/* Constants for integer comparison predicates */ -typedef enum { - _MM_CMPINT_EQ, /* Equal */ - _MM_CMPINT_LT, /* Less than */ - _MM_CMPINT_LE, /* Less than or Equal */ - _MM_CMPINT_UNUSED, - _MM_CMPINT_NE, /* Not Equal */ - _MM_CMPINT_NLT, /* Not Less than */ -#define _MM_CMPINT_GE _MM_CMPINT_NLT /* Greater than or Equal */ - _MM_CMPINT_NLE /* Not Less than or Equal */ -#define _MM_CMPINT_GT _MM_CMPINT_NLE /* Greater than */ -} _MM_CMPINT_ENUM; - -typedef enum -{ - _MM_PERM_AAAA = 0x00, _MM_PERM_AAAB = 0x01, _MM_PERM_AAAC = 0x02, - _MM_PERM_AAAD = 0x03, _MM_PERM_AABA = 0x04, _MM_PERM_AABB = 0x05, - _MM_PERM_AABC = 0x06, _MM_PERM_AABD = 0x07, _MM_PERM_AACA = 0x08, - _MM_PERM_AACB = 0x09, _MM_PERM_AACC = 0x0A, _MM_PERM_AACD = 0x0B, - _MM_PERM_AADA = 0x0C, _MM_PERM_AADB = 0x0D, _MM_PERM_AADC = 0x0E, - _MM_PERM_AADD = 0x0F, _MM_PERM_ABAA = 0x10, _MM_PERM_ABAB = 0x11, - _MM_PERM_ABAC = 0x12, _MM_PERM_ABAD = 0x13, _MM_PERM_ABBA = 0x14, - _MM_PERM_ABBB = 0x15, _MM_PERM_ABBC = 0x16, _MM_PERM_ABBD = 0x17, - _MM_PERM_ABCA = 0x18, _MM_PERM_ABCB = 0x19, _MM_PERM_ABCC = 0x1A, - _MM_PERM_ABCD = 0x1B, _MM_PERM_ABDA = 0x1C, _MM_PERM_ABDB = 0x1D, - _MM_PERM_ABDC = 0x1E, _MM_PERM_ABDD = 0x1F, _MM_PERM_ACAA = 0x20, - _MM_PERM_ACAB = 0x21, _MM_PERM_ACAC = 0x22, _MM_PERM_ACAD = 0x23, - _MM_PERM_ACBA = 0x24, _MM_PERM_ACBB = 0x25, _MM_PERM_ACBC = 0x26, - _MM_PERM_ACBD = 0x27, _MM_PERM_ACCA = 0x28, _MM_PERM_ACCB = 0x29, - _MM_PERM_ACCC = 0x2A, _MM_PERM_ACCD = 0x2B, _MM_PERM_ACDA = 0x2C, - _MM_PERM_ACDB = 0x2D, _MM_PERM_ACDC = 0x2E, _MM_PERM_ACDD = 0x2F, - _MM_PERM_ADAA = 0x30, _MM_PERM_ADAB = 0x31, _MM_PERM_ADAC = 0x32, - _MM_PERM_ADAD = 0x33, _MM_PERM_ADBA = 0x34, _MM_PERM_ADBB = 0x35, - _MM_PERM_ADBC = 0x36, _MM_PERM_ADBD = 0x37, _MM_PERM_ADCA = 0x38, - _MM_PERM_ADCB = 0x39, _MM_PERM_ADCC = 0x3A, _MM_PERM_ADCD = 0x3B, - _MM_PERM_ADDA = 0x3C, _MM_PERM_ADDB = 0x3D, _MM_PERM_ADDC = 0x3E, - _MM_PERM_ADDD = 0x3F, _MM_PERM_BAAA = 0x40, _MM_PERM_BAAB = 0x41, - _MM_PERM_BAAC = 0x42, _MM_PERM_BAAD = 0x43, _MM_PERM_BABA = 0x44, - _MM_PERM_BABB = 0x45, _MM_PERM_BABC = 0x46, _MM_PERM_BABD = 0x47, - _MM_PERM_BACA = 0x48, _MM_PERM_BACB = 0x49, _MM_PERM_BACC = 0x4A, - _MM_PERM_BACD = 0x4B, _MM_PERM_BADA = 0x4C, _MM_PERM_BADB = 0x4D, - _MM_PERM_BADC = 0x4E, _MM_PERM_BADD = 0x4F, _MM_PERM_BBAA = 0x50, - _MM_PERM_BBAB = 0x51, _MM_PERM_BBAC = 0x52, _MM_PERM_BBAD = 0x53, - _MM_PERM_BBBA = 0x54, _MM_PERM_BBBB = 0x55, _MM_PERM_BBBC = 0x56, - _MM_PERM_BBBD = 0x57, _MM_PERM_BBCA = 0x58, _MM_PERM_BBCB = 0x59, - _MM_PERM_BBCC = 0x5A, _MM_PERM_BBCD = 0x5B, _MM_PERM_BBDA = 0x5C, - _MM_PERM_BBDB = 0x5D, _MM_PERM_BBDC = 0x5E, _MM_PERM_BBDD = 0x5F, - _MM_PERM_BCAA = 0x60, _MM_PERM_BCAB = 0x61, _MM_PERM_BCAC = 0x62, - _MM_PERM_BCAD = 0x63, _MM_PERM_BCBA = 0x64, _MM_PERM_BCBB = 0x65, - _MM_PERM_BCBC = 0x66, _MM_PERM_BCBD = 0x67, _MM_PERM_BCCA = 0x68, - _MM_PERM_BCCB = 0x69, _MM_PERM_BCCC = 0x6A, _MM_PERM_BCCD = 0x6B, - _MM_PERM_BCDA = 0x6C, _MM_PERM_BCDB = 0x6D, _MM_PERM_BCDC = 0x6E, - _MM_PERM_BCDD = 0x6F, _MM_PERM_BDAA = 0x70, _MM_PERM_BDAB = 0x71, - _MM_PERM_BDAC = 0x72, _MM_PERM_BDAD = 0x73, _MM_PERM_BDBA = 0x74, - _MM_PERM_BDBB = 0x75, _MM_PERM_BDBC = 0x76, _MM_PERM_BDBD = 0x77, - _MM_PERM_BDCA = 0x78, _MM_PERM_BDCB = 0x79, _MM_PERM_BDCC = 0x7A, - _MM_PERM_BDCD = 0x7B, _MM_PERM_BDDA = 0x7C, _MM_PERM_BDDB = 0x7D, - _MM_PERM_BDDC = 0x7E, _MM_PERM_BDDD = 0x7F, _MM_PERM_CAAA = 0x80, - _MM_PERM_CAAB = 0x81, _MM_PERM_CAAC = 0x82, _MM_PERM_CAAD = 0x83, - _MM_PERM_CABA = 0x84, _MM_PERM_CABB = 0x85, _MM_PERM_CABC = 0x86, - _MM_PERM_CABD = 0x87, _MM_PERM_CACA = 0x88, _MM_PERM_CACB = 0x89, - _MM_PERM_CACC = 0x8A, _MM_PERM_CACD = 0x8B, _MM_PERM_CADA = 0x8C, - _MM_PERM_CADB = 0x8D, _MM_PERM_CADC = 0x8E, _MM_PERM_CADD = 0x8F, - _MM_PERM_CBAA = 0x90, _MM_PERM_CBAB = 0x91, _MM_PERM_CBAC = 0x92, - _MM_PERM_CBAD = 0x93, _MM_PERM_CBBA = 0x94, _MM_PERM_CBBB = 0x95, - _MM_PERM_CBBC = 0x96, _MM_PERM_CBBD = 0x97, _MM_PERM_CBCA = 0x98, - _MM_PERM_CBCB = 0x99, _MM_PERM_CBCC = 0x9A, _MM_PERM_CBCD = 0x9B, - _MM_PERM_CBDA = 0x9C, _MM_PERM_CBDB = 0x9D, _MM_PERM_CBDC = 0x9E, - _MM_PERM_CBDD = 0x9F, _MM_PERM_CCAA = 0xA0, _MM_PERM_CCAB = 0xA1, - _MM_PERM_CCAC = 0xA2, _MM_PERM_CCAD = 0xA3, _MM_PERM_CCBA = 0xA4, - _MM_PERM_CCBB = 0xA5, _MM_PERM_CCBC = 0xA6, _MM_PERM_CCBD = 0xA7, - _MM_PERM_CCCA = 0xA8, _MM_PERM_CCCB = 0xA9, _MM_PERM_CCCC = 0xAA, - _MM_PERM_CCCD = 0xAB, _MM_PERM_CCDA = 0xAC, _MM_PERM_CCDB = 0xAD, - _MM_PERM_CCDC = 0xAE, _MM_PERM_CCDD = 0xAF, _MM_PERM_CDAA = 0xB0, - _MM_PERM_CDAB = 0xB1, _MM_PERM_CDAC = 0xB2, _MM_PERM_CDAD = 0xB3, - _MM_PERM_CDBA = 0xB4, _MM_PERM_CDBB = 0xB5, _MM_PERM_CDBC = 0xB6, - _MM_PERM_CDBD = 0xB7, _MM_PERM_CDCA = 0xB8, _MM_PERM_CDCB = 0xB9, - _MM_PERM_CDCC = 0xBA, _MM_PERM_CDCD = 0xBB, _MM_PERM_CDDA = 0xBC, - _MM_PERM_CDDB = 0xBD, _MM_PERM_CDDC = 0xBE, _MM_PERM_CDDD = 0xBF, - _MM_PERM_DAAA = 0xC0, _MM_PERM_DAAB = 0xC1, _MM_PERM_DAAC = 0xC2, - _MM_PERM_DAAD = 0xC3, _MM_PERM_DABA = 0xC4, _MM_PERM_DABB = 0xC5, - _MM_PERM_DABC = 0xC6, _MM_PERM_DABD = 0xC7, _MM_PERM_DACA = 0xC8, - _MM_PERM_DACB = 0xC9, _MM_PERM_DACC = 0xCA, _MM_PERM_DACD = 0xCB, - _MM_PERM_DADA = 0xCC, _MM_PERM_DADB = 0xCD, _MM_PERM_DADC = 0xCE, - _MM_PERM_DADD = 0xCF, _MM_PERM_DBAA = 0xD0, _MM_PERM_DBAB = 0xD1, - _MM_PERM_DBAC = 0xD2, _MM_PERM_DBAD = 0xD3, _MM_PERM_DBBA = 0xD4, - _MM_PERM_DBBB = 0xD5, _MM_PERM_DBBC = 0xD6, _MM_PERM_DBBD = 0xD7, - _MM_PERM_DBCA = 0xD8, _MM_PERM_DBCB = 0xD9, _MM_PERM_DBCC = 0xDA, - _MM_PERM_DBCD = 0xDB, _MM_PERM_DBDA = 0xDC, _MM_PERM_DBDB = 0xDD, - _MM_PERM_DBDC = 0xDE, _MM_PERM_DBDD = 0xDF, _MM_PERM_DCAA = 0xE0, - _MM_PERM_DCAB = 0xE1, _MM_PERM_DCAC = 0xE2, _MM_PERM_DCAD = 0xE3, - _MM_PERM_DCBA = 0xE4, _MM_PERM_DCBB = 0xE5, _MM_PERM_DCBC = 0xE6, - _MM_PERM_DCBD = 0xE7, _MM_PERM_DCCA = 0xE8, _MM_PERM_DCCB = 0xE9, - _MM_PERM_DCCC = 0xEA, _MM_PERM_DCCD = 0xEB, _MM_PERM_DCDA = 0xEC, - _MM_PERM_DCDB = 0xED, _MM_PERM_DCDC = 0xEE, _MM_PERM_DCDD = 0xEF, - _MM_PERM_DDAA = 0xF0, _MM_PERM_DDAB = 0xF1, _MM_PERM_DDAC = 0xF2, - _MM_PERM_DDAD = 0xF3, _MM_PERM_DDBA = 0xF4, _MM_PERM_DDBB = 0xF5, - _MM_PERM_DDBC = 0xF6, _MM_PERM_DDBD = 0xF7, _MM_PERM_DDCA = 0xF8, - _MM_PERM_DDCB = 0xF9, _MM_PERM_DDCC = 0xFA, _MM_PERM_DDCD = 0xFB, - _MM_PERM_DDDA = 0xFC, _MM_PERM_DDDB = 0xFD, _MM_PERM_DDDC = 0xFE, - _MM_PERM_DDDD = 0xFF -} _MM_PERM_ENUM; - -typedef enum -{ - _MM_MANT_NORM_1_2, /* interval [1, 2) */ - _MM_MANT_NORM_p5_2, /* interval [0.5, 2) */ - _MM_MANT_NORM_p5_1, /* interval [0.5, 1) */ - _MM_MANT_NORM_p75_1p5 /* interval [0.75, 1.5) */ -} _MM_MANTISSA_NORM_ENUM; - -typedef enum -{ - _MM_MANT_SIGN_src, /* sign = sign(SRC) */ - _MM_MANT_SIGN_zero, /* sign = 0 */ - _MM_MANT_SIGN_nan /* DEST = NaN if sign(SRC) = 1 */ -} _MM_MANTISSA_SIGN_ENUM; - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) - -/* Create vectors with repeated elements */ - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_setzero_si512(void) -{ - return __extension__ (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 }; -} - -#define _mm512_setzero_epi32 _mm512_setzero_si512 - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_undefined_pd(void) -{ - return (__m512d)__builtin_ia32_undef512(); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_undefined(void) -{ - return (__m512)__builtin_ia32_undef512(); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_undefined_ps(void) -{ - return (__m512)__builtin_ia32_undef512(); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_undefined_epi32(void) -{ - return (__m512i)__builtin_ia32_undef512(); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_broadcastd_epi32 (__m128i __A) -{ - return (__m512i)__builtin_shufflevector((__v4si) __A, (__v4si) __A, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcastd_epi32 (__m512i __O, __mmask16 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectd_512(__M, - (__v16si) _mm512_broadcastd_epi32(__A), - (__v16si) __O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcastd_epi32 (__mmask16 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectd_512(__M, - (__v16si) _mm512_broadcastd_epi32(__A), - (__v16si) _mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_broadcastq_epi64 (__m128i __A) -{ - return (__m512i)__builtin_shufflevector((__v2di) __A, (__v2di) __A, - 0, 0, 0, 0, 0, 0, 0, 0); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcastq_epi64 (__m512i __O, __mmask8 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512(__M, - (__v8di) _mm512_broadcastq_epi64(__A), - (__v8di) __O); - -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512(__M, - (__v8di) _mm512_broadcastq_epi64(__A), - (__v8di) _mm512_setzero_si512()); -} - - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_setzero_ps(void) -{ - return __extension__ (__m512){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, - 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; -} - -#define _mm512_setzero _mm512_setzero_ps - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_setzero_pd(void) -{ - return __extension__ (__m512d){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_set1_ps(float __w) -{ - return __extension__ (__m512){ __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w }; -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_set1_pd(double __w) -{ - return __extension__ (__m512d){ __w, __w, __w, __w, __w, __w, __w, __w }; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_set1_epi8(char __w) -{ - return __extension__ (__m512i)(__v64qi){ - __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w }; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_set1_epi16(short __w) -{ - return __extension__ (__m512i)(__v32hi){ - __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w }; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_set1_epi32(int __s) -{ - return __extension__ (__m512i)(__v16si){ - __s, __s, __s, __s, __s, __s, __s, __s, - __s, __s, __s, __s, __s, __s, __s, __s }; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_set1_epi32(__mmask16 __M, int __A) -{ - return (__m512i)__builtin_ia32_selectd_512(__M, - (__v16si)_mm512_set1_epi32(__A), - (__v16si)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_set1_epi64(long long __d) -{ - return __extension__(__m512i)(__v8di){ __d, __d, __d, __d, __d, __d, __d, __d }; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_set1_epi64(__mmask8 __M, long long __A) -{ - return (__m512i)__builtin_ia32_selectq_512(__M, - (__v8di)_mm512_set1_epi64(__A), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_broadcastss_ps(__m128 __A) -{ - return (__m512)__builtin_shufflevector((__v4sf) __A, (__v4sf) __A, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_set4_epi32 (int __A, int __B, int __C, int __D) -{ - return __extension__ (__m512i)(__v16si) - { __D, __C, __B, __A, __D, __C, __B, __A, - __D, __C, __B, __A, __D, __C, __B, __A }; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_set4_epi64 (long long __A, long long __B, long long __C, - long long __D) -{ - return __extension__ (__m512i) (__v8di) - { __D, __C, __B, __A, __D, __C, __B, __A }; -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_set4_pd (double __A, double __B, double __C, double __D) -{ - return __extension__ (__m512d) - { __D, __C, __B, __A, __D, __C, __B, __A }; -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_set4_ps (float __A, float __B, float __C, float __D) -{ - return __extension__ (__m512) - { __D, __C, __B, __A, __D, __C, __B, __A, - __D, __C, __B, __A, __D, __C, __B, __A }; -} - -#define _mm512_setr4_epi32(e0,e1,e2,e3) \ - _mm512_set4_epi32((e3),(e2),(e1),(e0)) - -#define _mm512_setr4_epi64(e0,e1,e2,e3) \ - _mm512_set4_epi64((e3),(e2),(e1),(e0)) - -#define _mm512_setr4_pd(e0,e1,e2,e3) \ - _mm512_set4_pd((e3),(e2),(e1),(e0)) - -#define _mm512_setr4_ps(e0,e1,e2,e3) \ - _mm512_set4_ps((e3),(e2),(e1),(e0)) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_broadcastsd_pd(__m128d __A) -{ - return (__m512d)__builtin_shufflevector((__v2df) __A, (__v2df) __A, - 0, 0, 0, 0, 0, 0, 0, 0); -} - -/* Cast between vector types */ - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_castpd256_pd512(__m256d __a) -{ - return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, -1, -1, -1, -1); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_castps256_ps512(__m256 __a) -{ - return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, - -1, -1, -1, -1, -1, -1, -1, -1); -} - -static __inline __m128d __DEFAULT_FN_ATTRS512 -_mm512_castpd512_pd128(__m512d __a) -{ - return __builtin_shufflevector(__a, __a, 0, 1); -} - -static __inline __m256d __DEFAULT_FN_ATTRS512 -_mm512_castpd512_pd256 (__m512d __A) -{ - return __builtin_shufflevector(__A, __A, 0, 1, 2, 3); -} - -static __inline __m128 __DEFAULT_FN_ATTRS512 -_mm512_castps512_ps128(__m512 __a) -{ - return __builtin_shufflevector(__a, __a, 0, 1, 2, 3); -} - -static __inline __m256 __DEFAULT_FN_ATTRS512 -_mm512_castps512_ps256 (__m512 __A) -{ - return __builtin_shufflevector(__A, __A, 0, 1, 2, 3, 4, 5, 6, 7); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_castpd_ps (__m512d __A) -{ - return (__m512) (__A); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_castpd_si512 (__m512d __A) -{ - return (__m512i) (__A); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_castpd128_pd512 (__m128d __A) -{ - return __builtin_shufflevector( __A, __A, 0, 1, -1, -1, -1, -1, -1, -1); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_castps_pd (__m512 __A) -{ - return (__m512d) (__A); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_castps_si512 (__m512 __A) -{ - return (__m512i) (__A); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_castps128_ps512 (__m128 __A) -{ - return __builtin_shufflevector( __A, __A, 0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_castsi128_si512 (__m128i __A) -{ - return __builtin_shufflevector( __A, __A, 0, 1, -1, -1, -1, -1, -1, -1); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_castsi256_si512 (__m256i __A) -{ - return __builtin_shufflevector( __A, __A, 0, 1, 2, 3, -1, -1, -1, -1); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_castsi512_ps (__m512i __A) -{ - return (__m512) (__A); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_castsi512_pd (__m512i __A) -{ - return (__m512d) (__A); -} - -static __inline __m128i __DEFAULT_FN_ATTRS512 -_mm512_castsi512_si128 (__m512i __A) -{ - return (__m128i)__builtin_shufflevector(__A, __A , 0, 1); -} - -static __inline __m256i __DEFAULT_FN_ATTRS512 -_mm512_castsi512_si256 (__m512i __A) -{ - return (__m256i)__builtin_shufflevector(__A, __A , 0, 1, 2, 3); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_int2mask(int __a) -{ - return (__mmask16)__a; -} - -static __inline__ int __DEFAULT_FN_ATTRS -_mm512_mask2int(__mmask16 __a) -{ - return (int)__a; -} - -/// Constructs a 512-bit floating-point vector of [8 x double] from a -/// 128-bit floating-point vector of [2 x double]. The lower 128 bits -/// contain the value of the source vector. The upper 384 bits are set -/// to zero. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \returns A 512-bit floating-point vector of [8 x double]. The lower 128 bits -/// contain the value of the parameter. The upper 384 bits are set to zero. -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_zextpd128_pd512(__m128d __a) -{ - return __builtin_shufflevector((__v2df)__a, (__v2df)_mm_setzero_pd(), 0, 1, 2, 3, 2, 3, 2, 3); -} - -/// Constructs a 512-bit floating-point vector of [8 x double] from a -/// 256-bit floating-point vector of [4 x double]. The lower 256 bits -/// contain the value of the source vector. The upper 256 bits are set -/// to zero. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \returns A 512-bit floating-point vector of [8 x double]. The lower 256 bits -/// contain the value of the parameter. The upper 256 bits are set to zero. -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_zextpd256_pd512(__m256d __a) -{ - return __builtin_shufflevector((__v4df)__a, (__v4df)_mm256_setzero_pd(), 0, 1, 2, 3, 4, 5, 6, 7); -} - -/// Constructs a 512-bit floating-point vector of [16 x float] from a -/// 128-bit floating-point vector of [4 x float]. The lower 128 bits contain -/// the value of the source vector. The upper 384 bits are set to zero. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 512-bit floating-point vector of [16 x float]. The lower 128 bits -/// contain the value of the parameter. The upper 384 bits are set to zero. -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_zextps128_ps512(__m128 __a) -{ - return __builtin_shufflevector((__v4sf)__a, (__v4sf)_mm_setzero_ps(), 0, 1, 2, 3, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7); -} - -/// Constructs a 512-bit floating-point vector of [16 x float] from a -/// 256-bit floating-point vector of [8 x float]. The lower 256 bits contain -/// the value of the source vector. The upper 256 bits are set to zero. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \returns A 512-bit floating-point vector of [16 x float]. The lower 256 bits -/// contain the value of the parameter. The upper 256 bits are set to zero. -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_zextps256_ps512(__m256 __a) -{ - return __builtin_shufflevector((__v8sf)__a, (__v8sf)_mm256_setzero_ps(), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); -} - -/// Constructs a 512-bit integer vector from a 128-bit integer vector. -/// The lower 128 bits contain the value of the source vector. The upper -/// 384 bits are set to zero. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \returns A 512-bit integer vector. The lower 128 bits contain the value of -/// the parameter. The upper 384 bits are set to zero. -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_zextsi128_si512(__m128i __a) -{ - return __builtin_shufflevector((__v2di)__a, (__v2di)_mm_setzero_si128(), 0, 1, 2, 3, 2, 3, 2, 3); -} - -/// Constructs a 512-bit integer vector from a 256-bit integer vector. -/// The lower 256 bits contain the value of the source vector. The upper -/// 256 bits are set to zero. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit integer vector. -/// \returns A 512-bit integer vector. The lower 256 bits contain the value of -/// the parameter. The upper 256 bits are set to zero. -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_zextsi256_si512(__m256i __a) -{ - return __builtin_shufflevector((__v4di)__a, (__v4di)_mm256_setzero_si256(), 0, 1, 2, 3, 4, 5, 6, 7); -} - -/* Bitwise operators */ -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_and_epi32(__m512i __a, __m512i __b) -{ - return (__m512i)((__v16su)__a & (__v16su)__b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_and_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k, - (__v16si) _mm512_and_epi32(__a, __b), - (__v16si) __src); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b) -{ - return (__m512i) _mm512_mask_and_epi32(_mm512_setzero_si512 (), - __k, __a, __b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_and_epi64(__m512i __a, __m512i __b) -{ - return (__m512i)((__v8du)__a & (__v8du)__b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_and_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b) -{ - return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __k, - (__v8di) _mm512_and_epi64(__a, __b), - (__v8di) __src); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b) -{ - return (__m512i) _mm512_mask_and_epi64(_mm512_setzero_si512 (), - __k, __a, __b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_andnot_si512 (__m512i __A, __m512i __B) -{ - return (__m512i)(~(__v8du)__A & (__v8du)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_andnot_epi32 (__m512i __A, __m512i __B) -{ - return (__m512i)(~(__v16su)__A & (__v16su)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_andnot_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_andnot_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_andnot_epi32(__mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)_mm512_mask_andnot_epi32(_mm512_setzero_si512(), - __U, __A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_andnot_epi64(__m512i __A, __m512i __B) -{ - return (__m512i)(~(__v8du)__A & (__v8du)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_andnot_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_andnot_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_andnot_epi64(__mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)_mm512_mask_andnot_epi64(_mm512_setzero_si512(), - __U, __A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_or_epi32(__m512i __a, __m512i __b) -{ - return (__m512i)((__v16su)__a | (__v16su)__b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_or_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k, - (__v16si)_mm512_or_epi32(__a, __b), - (__v16si)__src); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b) -{ - return (__m512i)_mm512_mask_or_epi32(_mm512_setzero_si512(), __k, __a, __b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_or_epi64(__m512i __a, __m512i __b) -{ - return (__m512i)((__v8du)__a | (__v8du)__b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_or_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__k, - (__v8di)_mm512_or_epi64(__a, __b), - (__v8di)__src); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b) -{ - return (__m512i)_mm512_mask_or_epi64(_mm512_setzero_si512(), __k, __a, __b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_xor_epi32(__m512i __a, __m512i __b) -{ - return (__m512i)((__v16su)__a ^ (__v16su)__b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_xor_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k, - (__v16si)_mm512_xor_epi32(__a, __b), - (__v16si)__src); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b) -{ - return (__m512i)_mm512_mask_xor_epi32(_mm512_setzero_si512(), __k, __a, __b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_xor_epi64(__m512i __a, __m512i __b) -{ - return (__m512i)((__v8du)__a ^ (__v8du)__b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_xor_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__k, - (__v8di)_mm512_xor_epi64(__a, __b), - (__v8di)__src); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b) -{ - return (__m512i)_mm512_mask_xor_epi64(_mm512_setzero_si512(), __k, __a, __b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_and_si512(__m512i __a, __m512i __b) -{ - return (__m512i)((__v8du)__a & (__v8du)__b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_or_si512(__m512i __a, __m512i __b) -{ - return (__m512i)((__v8du)__a | (__v8du)__b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_xor_si512(__m512i __a, __m512i __b) -{ - return (__m512i)((__v8du)__a ^ (__v8du)__b); -} - -/* Arithmetic */ - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_add_pd(__m512d __a, __m512d __b) -{ - return (__m512d)((__v8df)__a + (__v8df)__b); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_add_ps(__m512 __a, __m512 __b) -{ - return (__m512)((__v16sf)__a + (__v16sf)__b); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_mul_pd(__m512d __a, __m512d __b) -{ - return (__m512d)((__v8df)__a * (__v8df)__b); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_mul_ps(__m512 __a, __m512 __b) -{ - return (__m512)((__v16sf)__a * (__v16sf)__b); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_sub_pd(__m512d __a, __m512d __b) -{ - return (__m512d)((__v8df)__a - (__v8df)__b); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_sub_ps(__m512 __a, __m512 __b) -{ - return (__m512)((__v16sf)__a - (__v16sf)__b); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_add_epi64 (__m512i __A, __m512i __B) -{ - return (__m512i) ((__v8du) __A + (__v8du) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_add_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_add_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_add_epi64(__mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_add_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sub_epi64 (__m512i __A, __m512i __B) -{ - return (__m512i) ((__v8du) __A - (__v8du) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sub_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_sub_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sub_epi64(__mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_sub_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_add_epi32 (__m512i __A, __m512i __B) -{ - return (__m512i) ((__v16su) __A + (__v16su) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_add_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_add_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_add_epi32 (__mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_add_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sub_epi32 (__m512i __A, __m512i __B) -{ - return (__m512i) ((__v16su) __A - (__v16su) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sub_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_sub_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sub_epi32(__mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_sub_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -#define _mm512_max_round_pd(A, B, R) \ - (__m512d)__builtin_ia32_maxpd512((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(R)) - -#define _mm512_mask_max_round_pd(W, U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_max_round_pd((A), (B), (R)), \ - (__v8df)(W)) - -#define _mm512_maskz_max_round_pd(U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_max_round_pd((A), (B), (R)), \ - (__v8df)_mm512_setzero_pd()) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_max_pd(__m512d __A, __m512d __B) -{ - return (__m512d) __builtin_ia32_maxpd512((__v8df) __A, (__v8df) __B, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512(__U, - (__v8df)_mm512_max_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512(__U, - (__v8df)_mm512_max_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -#define _mm512_max_round_ps(A, B, R) \ - (__m512)__builtin_ia32_maxps512((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(R)) - -#define _mm512_mask_max_round_ps(W, U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_max_round_ps((A), (B), (R)), \ - (__v16sf)(W)) - -#define _mm512_maskz_max_round_ps(U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_max_round_ps((A), (B), (R)), \ - (__v16sf)_mm512_setzero_ps()) - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_max_ps(__m512 __A, __m512 __B) -{ - return (__m512) __builtin_ia32_maxps512((__v16sf) __A, (__v16sf) __B, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512(__U, - (__v16sf)_mm512_max_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512(__U, - (__v16sf)_mm512_max_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_max_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { - return (__m128) __builtin_ia32_maxss_round_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_max_ss(__mmask8 __U,__m128 __A, __m128 __B) { - return (__m128) __builtin_ia32_maxss_round_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) _mm_setzero_ps (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_max_round_ss(A, B, R) \ - (__m128)__builtin_ia32_maxss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_max_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_maxss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), (__mmask8)(U), \ - (int)(R)) - -#define _mm_maskz_max_round_ss(U, A, B, R) \ - (__m128)__builtin_ia32_maxss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_max_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { - return (__m128d) __builtin_ia32_maxsd_round_mask ((__v2df) __A, - (__v2df) __B, - (__v2df) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_max_sd(__mmask8 __U,__m128d __A, __m128d __B) { - return (__m128d) __builtin_ia32_maxsd_round_mask ((__v2df) __A, - (__v2df) __B, - (__v2df) _mm_setzero_pd (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_max_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_maxsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_max_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_maxsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_max_round_sd(U, A, B, R) \ - (__m128d)__builtin_ia32_maxsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline __m512i -__DEFAULT_FN_ATTRS512 -_mm512_max_epi32(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmaxsd512((__v16si)__A, (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_max_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_max_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_max_epu32(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmaxud512((__v16si)__A, (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_max_epu32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_max_epu32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_max_epi64(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmaxsq512((__v8di)__A, (__v8di)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_max_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_max_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_max_epu64(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pmaxuq512((__v8di)__A, (__v8di)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_max_epu64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_max_epu64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -#define _mm512_min_round_pd(A, B, R) \ - (__m512d)__builtin_ia32_minpd512((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(R)) - -#define _mm512_mask_min_round_pd(W, U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_min_round_pd((A), (B), (R)), \ - (__v8df)(W)) - -#define _mm512_maskz_min_round_pd(U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_min_round_pd((A), (B), (R)), \ - (__v8df)_mm512_setzero_pd()) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_min_pd(__m512d __A, __m512d __B) -{ - return (__m512d) __builtin_ia32_minpd512((__v8df) __A, (__v8df) __B, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512(__U, - (__v8df)_mm512_min_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512(__U, - (__v8df)_mm512_min_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -#define _mm512_min_round_ps(A, B, R) \ - (__m512)__builtin_ia32_minps512((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(R)) - -#define _mm512_mask_min_round_ps(W, U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_min_round_ps((A), (B), (R)), \ - (__v16sf)(W)) - -#define _mm512_maskz_min_round_ps(U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_min_round_ps((A), (B), (R)), \ - (__v16sf)_mm512_setzero_ps()) - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_min_ps(__m512 __A, __m512 __B) -{ - return (__m512) __builtin_ia32_minps512((__v16sf) __A, (__v16sf) __B, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512(__U, - (__v16sf)_mm512_min_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512(__U, - (__v16sf)_mm512_min_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_min_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { - return (__m128) __builtin_ia32_minss_round_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_min_ss(__mmask8 __U,__m128 __A, __m128 __B) { - return (__m128) __builtin_ia32_minss_round_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) _mm_setzero_ps (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_min_round_ss(A, B, R) \ - (__m128)__builtin_ia32_minss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_min_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_minss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), (__mmask8)(U), \ - (int)(R)) - -#define _mm_maskz_min_round_ss(U, A, B, R) \ - (__m128)__builtin_ia32_minss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_min_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { - return (__m128d) __builtin_ia32_minsd_round_mask ((__v2df) __A, - (__v2df) __B, - (__v2df) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_min_sd(__mmask8 __U,__m128d __A, __m128d __B) { - return (__m128d) __builtin_ia32_minsd_round_mask ((__v2df) __A, - (__v2df) __B, - (__v2df) _mm_setzero_pd (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_min_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_minsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_min_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_minsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_min_round_sd(U, A, B, R) \ - (__m128d)__builtin_ia32_minsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline __m512i -__DEFAULT_FN_ATTRS512 -_mm512_min_epi32(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pminsd512((__v16si)__A, (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_min_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_min_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_min_epu32(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pminud512((__v16si)__A, (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_min_epu32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_min_epu32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_min_epi64(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pminsq512((__v8di)__A, (__v8di)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_min_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_min_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_min_epu64(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_pminuq512((__v8di)__A, (__v8di)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_min_epu64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_min_epu64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_mul_epi32(__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_pmuldq512((__v16si)__X, (__v16si) __Y); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mul_epi32(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_mul_epi32(__X, __Y), - (__v8di)__W); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mul_epi32(__mmask8 __M, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_mul_epi32(__X, __Y), - (__v8di)_mm512_setzero_si512 ()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_mul_epu32(__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_pmuludq512((__v16si)__X, (__v16si)__Y); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mul_epu32(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_mul_epu32(__X, __Y), - (__v8di)__W); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mul_epu32(__mmask8 __M, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_mul_epu32(__X, __Y), - (__v8di)_mm512_setzero_si512 ()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_mullo_epi32 (__m512i __A, __m512i __B) -{ - return (__m512i) ((__v16su) __A * (__v16su) __B); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mullo_epi32(__mmask16 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_mullo_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mullo_epi32(__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_mullo_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mullox_epi64 (__m512i __A, __m512i __B) { - return (__m512i) ((__v8du) __A * (__v8du) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mullox_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_mullox_epi64(__A, __B), - (__v8di)__W); -} - -#define _mm512_sqrt_round_pd(A, R) \ - (__m512d)__builtin_ia32_sqrtpd512((__v8df)(__m512d)(A), (int)(R)) - -#define _mm512_mask_sqrt_round_pd(W, U, A, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_sqrt_round_pd((A), (R)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_sqrt_round_pd(U, A, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_sqrt_round_pd((A), (R)), \ - (__v8df)_mm512_setzero_pd()) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_sqrt_pd(__m512d __A) -{ - return (__m512d)__builtin_ia32_sqrtpd512((__v8df)__A, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A) -{ - return (__m512d)__builtin_ia32_selectpd_512(__U, - (__v8df)_mm512_sqrt_pd(__A), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A) -{ - return (__m512d)__builtin_ia32_selectpd_512(__U, - (__v8df)_mm512_sqrt_pd(__A), - (__v8df)_mm512_setzero_pd()); -} - -#define _mm512_sqrt_round_ps(A, R) \ - (__m512)__builtin_ia32_sqrtps512((__v16sf)(__m512)(A), (int)(R)) - -#define _mm512_mask_sqrt_round_ps(W, U, A, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_sqrt_round_ps((A), (R)), \ - (__v16sf)(__m512)(W)) - -#define _mm512_maskz_sqrt_round_ps(U, A, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_sqrt_round_ps((A), (R)), \ - (__v16sf)_mm512_setzero_ps()) - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_sqrt_ps(__m512 __A) -{ - return (__m512)__builtin_ia32_sqrtps512((__v16sf)__A, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_sqrt_ps(__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512)__builtin_ia32_selectps_512(__U, - (__v16sf)_mm512_sqrt_ps(__A), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_sqrt_ps( __mmask16 __U, __m512 __A) -{ - return (__m512)__builtin_ia32_selectps_512(__U, - (__v16sf)_mm512_sqrt_ps(__A), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_rsqrt14_pd(__m512d __A) -{ - return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A, - (__v8df) - _mm512_setzero_pd (), - (__mmask8) -1);} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A, - (__v8df) __W, - (__mmask8) __U); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A, - (__v8df) - _mm512_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_rsqrt14_ps(__m512 __A) -{ - return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A, - (__v16sf) - _mm512_setzero_ps (), - (__mmask16) -1); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A, - (__v16sf) __W, - (__mmask16) __U); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A, - (__v16sf) - _mm512_setzero_ps (), - (__mmask16) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_rsqrt14_ss(__m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) -1); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_rsqrt14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_rsqrt14_ss (__mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_rsqrt14_sd(__m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_rsqrt14sd_mask ((__v2df) __A, - (__v2df) __B, - (__v2df) - _mm_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_rsqrt14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_rsqrt14sd_mask ( (__v2df) __A, - (__v2df) __B, - (__v2df) __W, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_rsqrt14_sd (__mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_rsqrt14sd_mask ( (__v2df) __A, - (__v2df) __B, - (__v2df) _mm_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_rcp14_pd(__m512d __A) -{ - return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A, - (__v8df) - _mm512_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A, - (__v8df) __W, - (__mmask8) __U); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A, - (__v8df) - _mm512_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_rcp14_ps(__m512 __A) -{ - return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A, - (__v16sf) - _mm512_setzero_ps (), - (__mmask16) -1); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A, - (__v16sf) __W, - (__mmask16) __U); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A, - (__v16sf) - _mm512_setzero_ps (), - (__mmask16) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_rcp14_ss(__m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) -1); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_rcp14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_rcp14_ss (__mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_rcp14_sd(__m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_rcp14sd_mask ((__v2df) __A, - (__v2df) __B, - (__v2df) - _mm_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_rcp14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_rcp14sd_mask ( (__v2df) __A, - (__v2df) __B, - (__v2df) __W, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_rcp14_sd (__mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_rcp14sd_mask ( (__v2df) __A, - (__v2df) __B, - (__v2df) _mm_setzero_pd (), - (__mmask8) __U); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_floor_ps(__m512 __A) -{ - return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, - _MM_FROUND_FLOOR, - (__v16sf) __A, -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, - _MM_FROUND_FLOOR, - (__v16sf) __W, __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_floor_pd(__m512d __A) -{ - return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, - _MM_FROUND_FLOOR, - (__v8df) __A, -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, - _MM_FROUND_FLOOR, - (__v8df) __W, __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, - _MM_FROUND_CEIL, - (__v16sf) __W, __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_ceil_ps(__m512 __A) -{ - return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, - _MM_FROUND_CEIL, - (__v16sf) __A, -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_ceil_pd(__m512d __A) -{ - return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, - _MM_FROUND_CEIL, - (__v8df) __A, -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, - _MM_FROUND_CEIL, - (__v8df) __W, __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_abs_epi64(__m512i __A) -{ - return (__m512i)__builtin_ia32_pabsq512((__v8di)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_abs_epi64(__A), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_abs_epi64(__A), - (__v8di)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_abs_epi32(__m512i __A) -{ - return (__m512i)__builtin_ia32_pabsd512((__v16si) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_abs_epi32(__A), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_abs_epi32(__A), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_add_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { - __A = _mm_add_ss(__A, __B); - return __builtin_ia32_selectss_128(__U, __A, __W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_add_ss(__mmask8 __U,__m128 __A, __m128 __B) { - __A = _mm_add_ss(__A, __B); - return __builtin_ia32_selectss_128(__U, __A, _mm_setzero_ps()); -} - -#define _mm_add_round_ss(A, B, R) \ - (__m128)__builtin_ia32_addss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_add_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_addss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), (__mmask8)(U), \ - (int)(R)) - -#define _mm_maskz_add_round_ss(U, A, B, R) \ - (__m128)__builtin_ia32_addss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_add_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { - __A = _mm_add_sd(__A, __B); - return __builtin_ia32_selectsd_128(__U, __A, __W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_add_sd(__mmask8 __U,__m128d __A, __m128d __B) { - __A = _mm_add_sd(__A, __B); - return __builtin_ia32_selectsd_128(__U, __A, _mm_setzero_pd()); -} -#define _mm_add_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_addsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_add_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_addsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_add_round_sd(U, A, B, R) \ - (__m128d)__builtin_ia32_addsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_add_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_add_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_add_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_add_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -#define _mm512_add_round_pd(A, B, R) \ - (__m512d)__builtin_ia32_addpd512((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(R)) - -#define _mm512_mask_add_round_pd(W, U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_add_round_pd((A), (B), (R)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_add_round_pd(U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_add_round_pd((A), (B), (R)), \ - (__v8df)_mm512_setzero_pd()) - -#define _mm512_add_round_ps(A, B, R) \ - (__m512)__builtin_ia32_addps512((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(R)) - -#define _mm512_mask_add_round_ps(W, U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_add_round_ps((A), (B), (R)), \ - (__v16sf)(__m512)(W)) - -#define _mm512_maskz_add_round_ps(U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_add_round_ps((A), (B), (R)), \ - (__v16sf)_mm512_setzero_ps()) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_sub_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { - __A = _mm_sub_ss(__A, __B); - return __builtin_ia32_selectss_128(__U, __A, __W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_sub_ss(__mmask8 __U,__m128 __A, __m128 __B) { - __A = _mm_sub_ss(__A, __B); - return __builtin_ia32_selectss_128(__U, __A, _mm_setzero_ps()); -} -#define _mm_sub_round_ss(A, B, R) \ - (__m128)__builtin_ia32_subss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_sub_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_subss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), (__mmask8)(U), \ - (int)(R)) - -#define _mm_maskz_sub_round_ss(U, A, B, R) \ - (__m128)__builtin_ia32_subss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_sub_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { - __A = _mm_sub_sd(__A, __B); - return __builtin_ia32_selectsd_128(__U, __A, __W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_sub_sd(__mmask8 __U,__m128d __A, __m128d __B) { - __A = _mm_sub_sd(__A, __B); - return __builtin_ia32_selectsd_128(__U, __A, _mm_setzero_pd()); -} - -#define _mm_sub_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_subsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_sub_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_subsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_sub_round_sd(U, A, B, R) \ - (__m128d)__builtin_ia32_subsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_sub_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_sub_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_sub_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_sub_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -#define _mm512_sub_round_pd(A, B, R) \ - (__m512d)__builtin_ia32_subpd512((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(R)) - -#define _mm512_mask_sub_round_pd(W, U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_sub_round_pd((A), (B), (R)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_sub_round_pd(U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_sub_round_pd((A), (B), (R)), \ - (__v8df)_mm512_setzero_pd()) - -#define _mm512_sub_round_ps(A, B, R) \ - (__m512)__builtin_ia32_subps512((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(R)) - -#define _mm512_mask_sub_round_ps(W, U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_sub_round_ps((A), (B), (R)), \ - (__v16sf)(__m512)(W)) - -#define _mm512_maskz_sub_round_ps(U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_sub_round_ps((A), (B), (R)), \ - (__v16sf)_mm512_setzero_ps()) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_mul_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { - __A = _mm_mul_ss(__A, __B); - return __builtin_ia32_selectss_128(__U, __A, __W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_mul_ss(__mmask8 __U,__m128 __A, __m128 __B) { - __A = _mm_mul_ss(__A, __B); - return __builtin_ia32_selectss_128(__U, __A, _mm_setzero_ps()); -} -#define _mm_mul_round_ss(A, B, R) \ - (__m128)__builtin_ia32_mulss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_mul_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_mulss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), (__mmask8)(U), \ - (int)(R)) - -#define _mm_maskz_mul_round_ss(U, A, B, R) \ - (__m128)__builtin_ia32_mulss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_mul_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { - __A = _mm_mul_sd(__A, __B); - return __builtin_ia32_selectsd_128(__U, __A, __W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_mul_sd(__mmask8 __U,__m128d __A, __m128d __B) { - __A = _mm_mul_sd(__A, __B); - return __builtin_ia32_selectsd_128(__U, __A, _mm_setzero_pd()); -} - -#define _mm_mul_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_mulsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_mul_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_mulsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_mul_round_sd(U, A, B, R) \ - (__m128d)__builtin_ia32_mulsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_mul_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_mul_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_mul_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_mul_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -#define _mm512_mul_round_pd(A, B, R) \ - (__m512d)__builtin_ia32_mulpd512((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(R)) - -#define _mm512_mask_mul_round_pd(W, U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_mul_round_pd((A), (B), (R)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_mul_round_pd(U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_mul_round_pd((A), (B), (R)), \ - (__v8df)_mm512_setzero_pd()) - -#define _mm512_mul_round_ps(A, B, R) \ - (__m512)__builtin_ia32_mulps512((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(R)) - -#define _mm512_mask_mul_round_ps(W, U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_mul_round_ps((A), (B), (R)), \ - (__v16sf)(__m512)(W)) - -#define _mm512_maskz_mul_round_ps(U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_mul_round_ps((A), (B), (R)), \ - (__v16sf)_mm512_setzero_ps()) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_div_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { - __A = _mm_div_ss(__A, __B); - return __builtin_ia32_selectss_128(__U, __A, __W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_div_ss(__mmask8 __U,__m128 __A, __m128 __B) { - __A = _mm_div_ss(__A, __B); - return __builtin_ia32_selectss_128(__U, __A, _mm_setzero_ps()); -} - -#define _mm_div_round_ss(A, B, R) \ - (__m128)__builtin_ia32_divss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_div_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_divss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), (__mmask8)(U), \ - (int)(R)) - -#define _mm_maskz_div_round_ss(U, A, B, R) \ - (__m128)__builtin_ia32_divss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_div_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { - __A = _mm_div_sd(__A, __B); - return __builtin_ia32_selectsd_128(__U, __A, __W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_div_sd(__mmask8 __U,__m128d __A, __m128d __B) { - __A = _mm_div_sd(__A, __B); - return __builtin_ia32_selectsd_128(__U, __A, _mm_setzero_pd()); -} - -#define _mm_div_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_divsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_div_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_divsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_div_round_sd(U, A, B, R) \ - (__m128d)__builtin_ia32_divsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_div_pd(__m512d __a, __m512d __b) -{ - return (__m512d)((__v8df)__a/(__v8df)__b); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_div_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_div_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) { - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_div_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_div_ps(__m512 __a, __m512 __b) -{ - return (__m512)((__v16sf)__a/(__v16sf)__b); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_div_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) { - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_div_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -#define _mm512_div_round_pd(A, B, R) \ - (__m512d)__builtin_ia32_divpd512((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(R)) - -#define _mm512_mask_div_round_pd(W, U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_div_round_pd((A), (B), (R)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_div_round_pd(U, A, B, R) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_div_round_pd((A), (B), (R)), \ - (__v8df)_mm512_setzero_pd()) - -#define _mm512_div_round_ps(A, B, R) \ - (__m512)__builtin_ia32_divps512((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(R)) - -#define _mm512_mask_div_round_ps(W, U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_div_round_ps((A), (B), (R)), \ - (__v16sf)(__m512)(W)) - -#define _mm512_maskz_div_round_ps(U, A, B, R) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_div_round_ps((A), (B), (R)), \ - (__v16sf)_mm512_setzero_ps()) - -#define _mm512_roundscale_ps(A, B) \ - (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(A), (int)(B), \ - (__v16sf)_mm512_undefined_ps(), \ - (__mmask16)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_roundscale_ps(A, B, C, imm) \ - (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(C), (int)(imm), \ - (__v16sf)(__m512)(A), (__mmask16)(B), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_roundscale_ps(A, B, imm) \ - (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(B), (int)(imm), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(A), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_roundscale_round_ps(A, B, C, imm, R) \ - (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(C), (int)(imm), \ - (__v16sf)(__m512)(A), (__mmask16)(B), \ - (int)(R)) - -#define _mm512_maskz_roundscale_round_ps(A, B, imm, R) \ - (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(B), (int)(imm), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(A), (int)(R)) - -#define _mm512_roundscale_round_ps(A, imm, R) \ - (__m512)__builtin_ia32_rndscaleps_mask((__v16sf)(__m512)(A), (int)(imm), \ - (__v16sf)_mm512_undefined_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_roundscale_pd(A, B) \ - (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(A), (int)(B), \ - (__v8df)_mm512_undefined_pd(), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_roundscale_pd(A, B, C, imm) \ - (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(C), (int)(imm), \ - (__v8df)(__m512d)(A), (__mmask8)(B), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_roundscale_pd(A, B, imm) \ - (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(B), (int)(imm), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(A), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_roundscale_round_pd(A, B, C, imm, R) \ - (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(C), (int)(imm), \ - (__v8df)(__m512d)(A), (__mmask8)(B), \ - (int)(R)) - -#define _mm512_maskz_roundscale_round_pd(A, B, imm, R) \ - (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(B), (int)(imm), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(A), (int)(R)) - -#define _mm512_roundscale_round_pd(A, imm, R) \ - (__m512d)__builtin_ia32_rndscalepd_mask((__v8df)(__m512d)(A), (int)(imm), \ - (__v8df)_mm512_undefined_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_fmadd_round_pd(A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)-1, (int)(R)) - - -#define _mm512_mask_fmadd_round_pd(A, U, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_mask3_fmadd_round_pd(A, B, C, U, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_mask3((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_maskz_fmadd_round_pd(U, A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_maskz((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_fmsub_round_pd(A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - -(__v8df)(__m512d)(C), \ - (__mmask8)-1, (int)(R)) - - -#define _mm512_mask_fmsub_round_pd(A, U, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - -(__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_maskz_fmsub_round_pd(U, A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_maskz((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - -(__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_fnmadd_round_pd(A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_mask(-(__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)-1, (int)(R)) - - -#define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_mask3(-(__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_fnmsub_round_pd(A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_mask(-(__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - -(__v8df)(__m512d)(C), \ - (__mmask8)-1, (int)(R)) - - -#define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_maskz(-(__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - -(__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, - (__v8df) __B, - -(__v8df) __C, - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, - (__v8df) __B, - -(__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A, - (__v8df) __B, - -(__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, - -(__v8df) __B, - (__v8df) __C, - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_maskz (-(__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, - -(__v8df) __B, - -(__v8df) __C, - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_maskz (-(__v8df) __A, - (__v8df) __B, - -(__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_fmadd_round_ps(A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)-1, (int)(R)) - - -#define _mm512_mask_fmadd_round_ps(A, U, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_mask3_fmadd_round_ps(A, B, C, U, R) \ - (__m512)__builtin_ia32_vfmaddps512_mask3((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_maskz_fmadd_round_ps(U, A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_maskz((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_fmsub_round_ps(A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - -(__v16sf)(__m512)(C), \ - (__mmask16)-1, (int)(R)) - - -#define _mm512_mask_fmsub_round_ps(A, U, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - -(__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_maskz_fmsub_round_ps(U, A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_maskz((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - -(__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_fnmadd_round_ps(A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \ - -(__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)-1, (int)(R)) - - -#define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R) \ - (__m512)__builtin_ia32_vfmaddps512_mask3(-(__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_maskz(-(__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_fnmsub_round_ps(A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \ - -(__v16sf)(__m512)(B), \ - -(__v16sf)(__m512)(C), \ - (__mmask16)-1, (int)(R)) - - -#define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_maskz(-(__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - -(__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) -{ - return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, - (__v16sf) __B, - -(__v16sf) __C, - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, - (__v16sf) __B, - -(__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A, - (__v16sf) __B, - -(__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, - -(__v16sf) __B, - (__v16sf) __C, - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) -{ - return (__m512) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_maskz (-(__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, - -(__v16sf) __B, - -(__v16sf) __C, - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_maskz (-(__v16sf) __A, - (__v16sf) __B, - -(__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_fmaddsub_round_pd(A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)-1, (int)(R)) - - -#define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R) \ - (__m512d)__builtin_ia32_vfmaddsubpd512_mask3((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddsubpd512_maskz((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_fmsubadd_round_pd(A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - -(__v8df)(__m512d)(C), \ - (__mmask8)-1, (int)(R)) - - -#define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddsubpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - -(__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddsubpd512_maskz((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - -(__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) -{ - return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, - (__v8df) __B, - -(__v8df) __C, - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, - (__v8df) __B, - -(__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A, - (__v8df) __B, - -(__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_fmaddsub_round_ps(A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)-1, (int)(R)) - - -#define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R) \ - (__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R) \ - (__m512)__builtin_ia32_vfmaddsubps512_mask3((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddsubps512_maskz((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_fmsubadd_round_ps(A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - -(__v16sf)(__m512)(C), \ - (__mmask16)-1, (int)(R)) - - -#define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R) \ - (__m512)__builtin_ia32_vfmaddsubps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - -(__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R) \ - (__m512)__builtin_ia32_vfmaddsubps512_maskz((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - -(__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) -{ - return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, - (__v16sf) __B, - -(__v16sf) __C, - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, - (__v16sf) __B, - -(__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A, - (__v16sf) __B, - -(__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_mask3_fmsub_round_pd(A, B, C, U, R) \ - (__m512d)__builtin_ia32_vfmsubpd512_mask3((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) -{ - return (__m512d)__builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_mask3_fmsub_round_ps(A, B, C, U, R) \ - (__m512)__builtin_ia32_vfmsubps512_mask3((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) -{ - return (__m512)__builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R) \ - (__m512d)__builtin_ia32_vfmsubaddpd512_mask3((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) -{ - return (__m512d)__builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R) \ - (__m512)__builtin_ia32_vfmsubaddps512_mask3((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) -{ - return (__m512)__builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_mask_fnmadd_round_pd(A, U, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \ - -(__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, - -(__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_mask_fnmadd_round_ps(A, U, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \ - -(__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, - -(__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_mask_fnmsub_round_pd(A, U, B, C, R) \ - (__m512d)__builtin_ia32_vfmaddpd512_mask((__v8df)(__m512d)(A), \ - -(__v8df)(__m512d)(B), \ - -(__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -#define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R) \ - (__m512d)__builtin_ia32_vfmsubpd512_mask3(-(__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(C), \ - (__mmask8)(U), (int)(R)) - - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) -{ - return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, - -(__v8df) __B, - -(__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) -{ - return (__m512d) __builtin_ia32_vfmsubpd512_mask3 (-(__v8df) __A, - (__v8df) __B, - (__v8df) __C, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_mask_fnmsub_round_ps(A, U, B, C, R) \ - (__m512)__builtin_ia32_vfmaddps512_mask((__v16sf)(__m512)(A), \ - -(__v16sf)(__m512)(B), \ - -(__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -#define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R) \ - (__m512)__builtin_ia32_vfmsubps512_mask3(-(__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(C), \ - (__mmask16)(U), (int)(R)) - - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) -{ - return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, - -(__v16sf) __B, - -(__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) -{ - return (__m512) __builtin_ia32_vfmsubps512_mask3 (-(__v16sf) __A, - (__v16sf) __B, - (__v16sf) __C, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - - - -/* Vector permutations */ - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_permutex2var_epi32(__m512i __A, __m512i __I, __m512i __B) -{ - return (__m512i)__builtin_ia32_vpermi2vard512((__v16si)__A, (__v16si) __I, - (__v16si) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_permutex2var_epi32(__m512i __A, __mmask16 __U, __m512i __I, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_permutex2var_epi32(__A, __I, __B), - (__v16si)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask2_permutex2var_epi32(__m512i __A, __m512i __I, __mmask16 __U, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_permutex2var_epi32(__A, __I, __B), - (__v16si)__I); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutex2var_epi32(__mmask16 __U, __m512i __A, __m512i __I, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_permutex2var_epi32(__A, __I, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_permutex2var_epi64(__m512i __A, __m512i __I, __m512i __B) -{ - return (__m512i)__builtin_ia32_vpermi2varq512((__v8di)__A, (__v8di) __I, - (__v8di) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_permutex2var_epi64(__m512i __A, __mmask8 __U, __m512i __I, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_permutex2var_epi64(__A, __I, __B), - (__v8di)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask2_permutex2var_epi64(__m512i __A, __m512i __I, __mmask8 __U, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_permutex2var_epi64(__A, __I, __B), - (__v8di)__I); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutex2var_epi64(__mmask8 __U, __m512i __A, __m512i __I, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_permutex2var_epi64(__A, __I, __B), - (__v8di)_mm512_setzero_si512()); -} - -#define _mm512_alignr_epi64(A, B, I) \ - (__m512i)__builtin_ia32_alignq512((__v8di)(__m512i)(A), \ - (__v8di)(__m512i)(B), (int)(I)) - -#define _mm512_mask_alignr_epi64(W, U, A, B, imm) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_alignr_epi64((A), (B), (imm)), \ - (__v8di)(__m512i)(W)) - -#define _mm512_maskz_alignr_epi64(U, A, B, imm) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_alignr_epi64((A), (B), (imm)), \ - (__v8di)_mm512_setzero_si512()) - -#define _mm512_alignr_epi32(A, B, I) \ - (__m512i)__builtin_ia32_alignd512((__v16si)(__m512i)(A), \ - (__v16si)(__m512i)(B), (int)(I)) - -#define _mm512_mask_alignr_epi32(W, U, A, B, imm) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_alignr_epi32((A), (B), (imm)), \ - (__v16si)(__m512i)(W)) - -#define _mm512_maskz_alignr_epi32(U, A, B, imm) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_alignr_epi32((A), (B), (imm)), \ - (__v16si)_mm512_setzero_si512()) -/* Vector Extract */ - -#define _mm512_extractf64x4_pd(A, I) \ - (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(A), (int)(I), \ - (__v4df)_mm256_undefined_pd(), \ - (__mmask8)-1) - -#define _mm512_mask_extractf64x4_pd(W, U, A, imm) \ - (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(A), (int)(imm), \ - (__v4df)(__m256d)(W), \ - (__mmask8)(U)) - -#define _mm512_maskz_extractf64x4_pd(U, A, imm) \ - (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(A), (int)(imm), \ - (__v4df)_mm256_setzero_pd(), \ - (__mmask8)(U)) - -#define _mm512_extractf32x4_ps(A, I) \ - (__m128)__builtin_ia32_extractf32x4_mask((__v16sf)(__m512)(A), (int)(I), \ - (__v4sf)_mm_undefined_ps(), \ - (__mmask8)-1) - -#define _mm512_mask_extractf32x4_ps(W, U, A, imm) \ - (__m128)__builtin_ia32_extractf32x4_mask((__v16sf)(__m512)(A), (int)(imm), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U)) - -#define _mm512_maskz_extractf32x4_ps(U, A, imm) \ - (__m128)__builtin_ia32_extractf32x4_mask((__v16sf)(__m512)(A), (int)(imm), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U)) - -/* Vector Blend */ - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_blend_pd(__mmask8 __U, __m512d __A, __m512d __W) -{ - return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U, - (__v8df) __W, - (__v8df) __A); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_blend_ps(__mmask16 __U, __m512 __A, __m512 __W) -{ - return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U, - (__v16sf) __W, - (__v16sf) __A); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_blend_epi64(__mmask8 __U, __m512i __A, __m512i __W) -{ - return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U, - (__v8di) __W, - (__v8di) __A); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_blend_epi32(__mmask16 __U, __m512i __A, __m512i __W) -{ - return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U, - (__v16si) __W, - (__v16si) __A); -} - -/* Compare */ - -#define _mm512_cmp_round_ps_mask(A, B, P, R) \ - (__mmask16)__builtin_ia32_cmpps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(P), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_cmp_round_ps_mask(U, A, B, P, R) \ - (__mmask16)__builtin_ia32_cmpps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(P), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_cmp_ps_mask(A, B, P) \ - _mm512_cmp_round_ps_mask((A), (B), (P), _MM_FROUND_CUR_DIRECTION) -#define _mm512_mask_cmp_ps_mask(U, A, B, P) \ - _mm512_mask_cmp_round_ps_mask((U), (A), (B), (P), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_cmpeq_ps_mask(A, B) \ - _mm512_cmp_ps_mask((A), (B), _CMP_EQ_OQ) -#define _mm512_mask_cmpeq_ps_mask(k, A, B) \ - _mm512_mask_cmp_ps_mask((k), (A), (B), _CMP_EQ_OQ) - -#define _mm512_cmplt_ps_mask(A, B) \ - _mm512_cmp_ps_mask((A), (B), _CMP_LT_OS) -#define _mm512_mask_cmplt_ps_mask(k, A, B) \ - _mm512_mask_cmp_ps_mask((k), (A), (B), _CMP_LT_OS) - -#define _mm512_cmple_ps_mask(A, B) \ - _mm512_cmp_ps_mask((A), (B), _CMP_LE_OS) -#define _mm512_mask_cmple_ps_mask(k, A, B) \ - _mm512_mask_cmp_ps_mask((k), (A), (B), _CMP_LE_OS) - -#define _mm512_cmpunord_ps_mask(A, B) \ - _mm512_cmp_ps_mask((A), (B), _CMP_UNORD_Q) -#define _mm512_mask_cmpunord_ps_mask(k, A, B) \ - _mm512_mask_cmp_ps_mask((k), (A), (B), _CMP_UNORD_Q) - -#define _mm512_cmpneq_ps_mask(A, B) \ - _mm512_cmp_ps_mask((A), (B), _CMP_NEQ_UQ) -#define _mm512_mask_cmpneq_ps_mask(k, A, B) \ - _mm512_mask_cmp_ps_mask((k), (A), (B), _CMP_NEQ_UQ) - -#define _mm512_cmpnlt_ps_mask(A, B) \ - _mm512_cmp_ps_mask((A), (B), _CMP_NLT_US) -#define _mm512_mask_cmpnlt_ps_mask(k, A, B) \ - _mm512_mask_cmp_ps_mask((k), (A), (B), _CMP_NLT_US) - -#define _mm512_cmpnle_ps_mask(A, B) \ - _mm512_cmp_ps_mask((A), (B), _CMP_NLE_US) -#define _mm512_mask_cmpnle_ps_mask(k, A, B) \ - _mm512_mask_cmp_ps_mask((k), (A), (B), _CMP_NLE_US) - -#define _mm512_cmpord_ps_mask(A, B) \ - _mm512_cmp_ps_mask((A), (B), _CMP_ORD_Q) -#define _mm512_mask_cmpord_ps_mask(k, A, B) \ - _mm512_mask_cmp_ps_mask((k), (A), (B), _CMP_ORD_Q) - -#define _mm512_cmp_round_pd_mask(A, B, P, R) \ - (__mmask8)__builtin_ia32_cmppd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(P), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cmp_round_pd_mask(U, A, B, P, R) \ - (__mmask8)__builtin_ia32_cmppd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(P), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_cmp_pd_mask(A, B, P) \ - _mm512_cmp_round_pd_mask((A), (B), (P), _MM_FROUND_CUR_DIRECTION) -#define _mm512_mask_cmp_pd_mask(U, A, B, P) \ - _mm512_mask_cmp_round_pd_mask((U), (A), (B), (P), _MM_FROUND_CUR_DIRECTION) - -#define _mm512_cmpeq_pd_mask(A, B) \ - _mm512_cmp_pd_mask((A), (B), _CMP_EQ_OQ) -#define _mm512_mask_cmpeq_pd_mask(k, A, B) \ - _mm512_mask_cmp_pd_mask((k), (A), (B), _CMP_EQ_OQ) - -#define _mm512_cmplt_pd_mask(A, B) \ - _mm512_cmp_pd_mask((A), (B), _CMP_LT_OS) -#define _mm512_mask_cmplt_pd_mask(k, A, B) \ - _mm512_mask_cmp_pd_mask((k), (A), (B), _CMP_LT_OS) - -#define _mm512_cmple_pd_mask(A, B) \ - _mm512_cmp_pd_mask((A), (B), _CMP_LE_OS) -#define _mm512_mask_cmple_pd_mask(k, A, B) \ - _mm512_mask_cmp_pd_mask((k), (A), (B), _CMP_LE_OS) - -#define _mm512_cmpunord_pd_mask(A, B) \ - _mm512_cmp_pd_mask((A), (B), _CMP_UNORD_Q) -#define _mm512_mask_cmpunord_pd_mask(k, A, B) \ - _mm512_mask_cmp_pd_mask((k), (A), (B), _CMP_UNORD_Q) - -#define _mm512_cmpneq_pd_mask(A, B) \ - _mm512_cmp_pd_mask((A), (B), _CMP_NEQ_UQ) -#define _mm512_mask_cmpneq_pd_mask(k, A, B) \ - _mm512_mask_cmp_pd_mask((k), (A), (B), _CMP_NEQ_UQ) - -#define _mm512_cmpnlt_pd_mask(A, B) \ - _mm512_cmp_pd_mask((A), (B), _CMP_NLT_US) -#define _mm512_mask_cmpnlt_pd_mask(k, A, B) \ - _mm512_mask_cmp_pd_mask((k), (A), (B), _CMP_NLT_US) - -#define _mm512_cmpnle_pd_mask(A, B) \ - _mm512_cmp_pd_mask((A), (B), _CMP_NLE_US) -#define _mm512_mask_cmpnle_pd_mask(k, A, B) \ - _mm512_mask_cmp_pd_mask((k), (A), (B), _CMP_NLE_US) - -#define _mm512_cmpord_pd_mask(A, B) \ - _mm512_cmp_pd_mask((A), (B), _CMP_ORD_Q) -#define _mm512_mask_cmpord_pd_mask(k, A, B) \ - _mm512_mask_cmp_pd_mask((k), (A), (B), _CMP_ORD_Q) - -/* Conversion */ - -#define _mm512_cvtt_roundps_epu32(A, R) \ - (__m512i)__builtin_ia32_cvttps2udq512_mask((__v16sf)(__m512)(A), \ - (__v16si)_mm512_undefined_epi32(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_cvtt_roundps_epu32(W, U, A, R) \ - (__m512i)__builtin_ia32_cvttps2udq512_mask((__v16sf)(__m512)(A), \ - (__v16si)(__m512i)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_cvtt_roundps_epu32(U, A, R) \ - (__m512i)__builtin_ia32_cvttps2udq512_mask((__v16sf)(__m512)(A), \ - (__v16si)_mm512_setzero_si512(), \ - (__mmask16)(U), (int)(R)) - - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvttps_epu32(__m512 __A) -{ - return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, - (__v16si) - _mm512_setzero_si512 (), - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A) -{ - return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, - (__v16si) __W, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A) -{ - return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, - (__v16si) _mm512_setzero_si512 (), - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundepi32_ps(A, R) \ - (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(__m512i)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_cvt_roundepi32_ps(W, U, A, R) \ - (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(__m512i)(A), \ - (__v16sf)(__m512)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundepi32_ps(U, A, R) \ - (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(__m512i)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_cvt_roundepu32_ps(A, R) \ - (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(__m512i)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_cvt_roundepu32_ps(W, U, A, R) \ - (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(__m512i)(A), \ - (__v16sf)(__m512)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundepu32_ps(U, A, R) \ - (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(__m512i)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), (int)(R)) - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_cvtepu32_ps (__m512i __A) -{ - return (__m512)__builtin_convertvector((__v16su)__A, __v16sf); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_cvtepu32_ps(__A), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_cvtepu32_ps(__A), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_cvtepi32_pd(__m256i __A) -{ - return (__m512d)__builtin_convertvector((__v8si)__A, __v8df); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, - (__v8df)_mm512_cvtepi32_pd(__A), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, - (__v8df)_mm512_cvtepi32_pd(__A), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_cvtepi32lo_pd(__m512i __A) -{ - return (__m512d) _mm512_cvtepi32_pd(_mm512_castsi512_si256(__A)); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi32lo_pd(__m512d __W, __mmask8 __U,__m512i __A) -{ - return (__m512d) _mm512_mask_cvtepi32_pd(__W, __U, _mm512_castsi512_si256(__A)); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_cvtepi32_ps (__m512i __A) -{ - return (__m512)__builtin_convertvector((__v16si)__A, __v16sf); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_cvtepi32_ps(__A), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_cvtepi32_ps(__A), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_cvtepu32_pd(__m256i __A) -{ - return (__m512d)__builtin_convertvector((__v8su)__A, __v8df); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, - (__v8df)_mm512_cvtepu32_pd(__A), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, - (__v8df)_mm512_cvtepu32_pd(__A), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_cvtepu32lo_pd(__m512i __A) -{ - return (__m512d) _mm512_cvtepu32_pd(_mm512_castsi512_si256(__A)); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu32lo_pd(__m512d __W, __mmask8 __U,__m512i __A) -{ - return (__m512d) _mm512_mask_cvtepu32_pd(__W, __U, _mm512_castsi512_si256(__A)); -} - -#define _mm512_cvt_roundpd_ps(A, R) \ - (__m256)__builtin_ia32_cvtpd2ps512_mask((__v8df)(__m512d)(A), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundpd_ps(W, U, A, R) \ - (__m256)__builtin_ia32_cvtpd2ps512_mask((__v8df)(__m512d)(A), \ - (__v8sf)(__m256)(W), (__mmask8)(U), \ - (int)(R)) - -#define _mm512_maskz_cvt_roundpd_ps(U, A, R) \ - (__m256)__builtin_ia32_cvtpd2ps512_mask((__v8df)(__m512d)(A), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m256 __DEFAULT_FN_ATTRS512 -_mm512_cvtpd_ps (__m512d __A) -{ - return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, - (__v8sf) _mm256_undefined_ps (), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A) -{ - return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, - (__v8sf) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A) -{ - return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, - (__v8sf) _mm256_setzero_ps (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_cvtpd_pslo (__m512d __A) -{ - return (__m512) __builtin_shufflevector((__v8sf) _mm512_cvtpd_ps(__A), - (__v8sf) _mm256_setzero_ps (), - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtpd_pslo (__m512 __W, __mmask8 __U,__m512d __A) -{ - return (__m512) __builtin_shufflevector ( - (__v8sf) _mm512_mask_cvtpd_ps (_mm512_castps512_ps256(__W), - __U, __A), - (__v8sf) _mm256_setzero_ps (), - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); -} - -#define _mm512_cvt_roundps_ph(A, I) \ - (__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \ - (__v16hi)_mm256_undefined_si256(), \ - (__mmask16)-1) - -#define _mm512_mask_cvt_roundps_ph(U, W, A, I) \ - (__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \ - (__v16hi)(__m256i)(U), \ - (__mmask16)(W)) - -#define _mm512_maskz_cvt_roundps_ph(W, A, I) \ - (__m256i)__builtin_ia32_vcvtps2ph512_mask((__v16sf)(__m512)(A), (int)(I), \ - (__v16hi)_mm256_setzero_si256(), \ - (__mmask16)(W)) - -#define _mm512_cvtps_ph _mm512_cvt_roundps_ph -#define _mm512_mask_cvtps_ph _mm512_mask_cvt_roundps_ph -#define _mm512_maskz_cvtps_ph _mm512_maskz_cvt_roundps_ph - -#define _mm512_cvt_roundph_ps(A, R) \ - (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(__m256i)(A), \ - (__v16sf)_mm512_undefined_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_cvt_roundph_ps(W, U, A, R) \ - (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(__m256i)(A), \ - (__v16sf)(__m512)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundph_ps(U, A, R) \ - (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(__m256i)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), (int)(R)) - - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_cvtph_ps(__m256i __A) -{ - return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, - (__v16sf) - _mm512_setzero_ps (), - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A) -{ - return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, - (__v16sf) __W, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A) -{ - return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, - (__v16sf) _mm512_setzero_ps (), - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvtt_roundpd_epi32(A, R) \ - (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df)(__m512d)(A), \ - (__v8si)_mm256_setzero_si256(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvtt_roundpd_epi32(W, U, A, R) \ - (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df)(__m512d)(A), \ - (__v8si)(__m256i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvtt_roundpd_epi32(U, A, R) \ - (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df)(__m512d)(A), \ - (__v8si)_mm256_setzero_si256(), \ - (__mmask8)(U), (int)(R)) - -static __inline __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvttpd_epi32(__m512d __a) -{ - return (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df) __a, - (__v8si)_mm256_setzero_si256(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A) -{ - return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A, - (__v8si) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A) -{ - return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A, - (__v8si) _mm256_setzero_si256 (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvtt_roundps_epi32(A, R) \ - (__m512i)__builtin_ia32_cvttps2dq512_mask((__v16sf)(__m512)(A), \ - (__v16si)_mm512_setzero_si512(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_cvtt_roundps_epi32(W, U, A, R) \ - (__m512i)__builtin_ia32_cvttps2dq512_mask((__v16sf)(__m512)(A), \ - (__v16si)(__m512i)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_cvtt_roundps_epi32(U, A, R) \ - (__m512i)__builtin_ia32_cvttps2dq512_mask((__v16sf)(__m512)(A), \ - (__v16si)_mm512_setzero_si512(), \ - (__mmask16)(U), (int)(R)) - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvttps_epi32(__m512 __a) -{ - return (__m512i) - __builtin_ia32_cvttps2dq512_mask((__v16sf) __a, - (__v16si) _mm512_setzero_si512 (), - (__mmask16) -1, _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A) -{ - return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A, - (__v16si) __W, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A) -{ - return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A, - (__v16si) _mm512_setzero_si512 (), - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundps_epi32(A, R) \ - (__m512i)__builtin_ia32_cvtps2dq512_mask((__v16sf)(__m512)(A), \ - (__v16si)_mm512_setzero_si512(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_cvt_roundps_epi32(W, U, A, R) \ - (__m512i)__builtin_ia32_cvtps2dq512_mask((__v16sf)(__m512)(A), \ - (__v16si)(__m512i)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundps_epi32(U, A, R) \ - (__m512i)__builtin_ia32_cvtps2dq512_mask((__v16sf)(__m512)(A), \ - (__v16si)_mm512_setzero_si512(), \ - (__mmask16)(U), (int)(R)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtps_epi32 (__m512 __A) -{ - return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, - (__v16si) _mm512_undefined_epi32 (), - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A) -{ - return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, - (__v16si) __W, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A) -{ - return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, - (__v16si) - _mm512_setzero_si512 (), - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundpd_epi32(A, R) \ - (__m256i)__builtin_ia32_cvtpd2dq512_mask((__v8df)(__m512d)(A), \ - (__v8si)_mm256_setzero_si256(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundpd_epi32(W, U, A, R) \ - (__m256i)__builtin_ia32_cvtpd2dq512_mask((__v8df)(__m512d)(A), \ - (__v8si)(__m256i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundpd_epi32(U, A, R) \ - (__m256i)__builtin_ia32_cvtpd2dq512_mask((__v8df)(__m512d)(A), \ - (__v8si)_mm256_setzero_si256(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtpd_epi32 (__m512d __A) -{ - return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, - (__v8si) - _mm256_undefined_si256 (), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A) -{ - return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, - (__v8si) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A) -{ - return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundps_epu32(A, R) \ - (__m512i)__builtin_ia32_cvtps2udq512_mask((__v16sf)(__m512)(A), \ - (__v16si)_mm512_setzero_si512(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_cvt_roundps_epu32(W, U, A, R) \ - (__m512i)__builtin_ia32_cvtps2udq512_mask((__v16sf)(__m512)(A), \ - (__v16si)(__m512i)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundps_epu32(U, A, R) \ - (__m512i)__builtin_ia32_cvtps2udq512_mask((__v16sf)(__m512)(A), \ - (__v16si)_mm512_setzero_si512(), \ - (__mmask16)(U), (int)(R)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtps_epu32 ( __m512 __A) -{ - return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,\ - (__v16si)\ - _mm512_undefined_epi32 (), - (__mmask16) -1,\ - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A) -{ - return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A, - (__v16si) __W, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtps_epu32 ( __mmask16 __U, __m512 __A) -{ - return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A, - (__v16si) - _mm512_setzero_si512 (), - (__mmask16) __U , - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_cvt_roundpd_epu32(A, R) \ - (__m256i)__builtin_ia32_cvtpd2udq512_mask((__v8df)(__m512d)(A), \ - (__v8si)_mm256_setzero_si256(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundpd_epu32(W, U, A, R) \ - (__m256i)__builtin_ia32_cvtpd2udq512_mask((__v8df)(__m512d)(A), \ - (__v8si)(__m256i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundpd_epu32(U, A, R) \ - (__m256i)__builtin_ia32_cvtpd2udq512_mask((__v8df)(__m512d)(A), \ - (__v8si)_mm256_setzero_si256(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtpd_epu32 (__m512d __A) -{ - return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, - (__v8si) - _mm256_undefined_si256 (), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A) -{ - return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, - (__v8si) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A) -{ - return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ double __DEFAULT_FN_ATTRS512 -_mm512_cvtsd_f64(__m512d __a) -{ - return __a[0]; -} - -static __inline__ float __DEFAULT_FN_ATTRS512 -_mm512_cvtss_f32(__m512 __a) -{ - return __a[0]; -} - -/* Unpack and Interleave */ - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_unpackhi_pd(__m512d __a, __m512d __b) -{ - return (__m512d)__builtin_shufflevector((__v8df)__a, (__v8df)__b, - 1, 9, 1+2, 9+2, 1+4, 9+4, 1+6, 9+6); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_unpackhi_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, - (__v8df)_mm512_unpackhi_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpackhi_pd(__mmask8 __U, __m512d __A, __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, - (__v8df)_mm512_unpackhi_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_unpacklo_pd(__m512d __a, __m512d __b) -{ - return (__m512d)__builtin_shufflevector((__v8df)__a, (__v8df)__b, - 0, 8, 0+2, 8+2, 0+4, 8+4, 0+6, 8+6); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_unpacklo_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, - (__v8df)_mm512_unpacklo_pd(__A, __B), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpacklo_pd (__mmask8 __U, __m512d __A, __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, - (__v8df)_mm512_unpacklo_pd(__A, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_unpackhi_ps(__m512 __a, __m512 __b) -{ - return (__m512)__builtin_shufflevector((__v16sf)__a, (__v16sf)__b, - 2, 18, 3, 19, - 2+4, 18+4, 3+4, 19+4, - 2+8, 18+8, 3+8, 19+8, - 2+12, 18+12, 3+12, 19+12); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_unpackhi_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16) __U, - (__v16sf)_mm512_unpackhi_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpackhi_ps (__mmask16 __U, __m512 __A, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16) __U, - (__v16sf)_mm512_unpackhi_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_unpacklo_ps(__m512 __a, __m512 __b) -{ - return (__m512)__builtin_shufflevector((__v16sf)__a, (__v16sf)__b, - 0, 16, 1, 17, - 0+4, 16+4, 1+4, 17+4, - 0+8, 16+8, 1+8, 17+8, - 0+12, 16+12, 1+12, 17+12); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_unpacklo_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16) __U, - (__v16sf)_mm512_unpacklo_ps(__A, __B), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpacklo_ps (__mmask16 __U, __m512 __A, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16) __U, - (__v16sf)_mm512_unpacklo_ps(__A, __B), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_unpackhi_epi32(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_shufflevector((__v16si)__A, (__v16si)__B, - 2, 18, 3, 19, - 2+4, 18+4, 3+4, 19+4, - 2+8, 18+8, 3+8, 19+8, - 2+12, 18+12, 3+12, 19+12); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_unpackhi_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U, - (__v16si)_mm512_unpackhi_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpackhi_epi32(__mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U, - (__v16si)_mm512_unpackhi_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_unpacklo_epi32(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_shufflevector((__v16si)__A, (__v16si)__B, - 0, 16, 1, 17, - 0+4, 16+4, 1+4, 17+4, - 0+8, 16+8, 1+8, 17+8, - 0+12, 16+12, 1+12, 17+12); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_unpacklo_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U, - (__v16si)_mm512_unpacklo_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpacklo_epi32(__mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U, - (__v16si)_mm512_unpacklo_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_unpackhi_epi64(__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_shufflevector((__v8di)__A, (__v8di)__B, - 1, 9, 1+2, 9+2, 1+4, 9+4, 1+6, 9+6); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_unpackhi_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U, - (__v8di)_mm512_unpackhi_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpackhi_epi64(__mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U, - (__v8di)_mm512_unpackhi_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_unpacklo_epi64 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_shufflevector((__v8di)__A, (__v8di)__B, - 0, 8, 0+2, 8+2, 0+4, 8+4, 0+6, 8+6); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_unpacklo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U, - (__v8di)_mm512_unpacklo_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_unpacklo_epi64 (__mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U, - (__v8di)_mm512_unpacklo_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - - -/* SIMD load ops */ - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_loadu_si512 (void const *__P) -{ - struct __loadu_si512 { - __m512i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_si512*)__P)->__v; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_loadu_epi32 (void const *__P) -{ - struct __loadu_epi32 { - __m512i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi32*)__P)->__v; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P, - (__v16si) __W, - (__mmask16) __U); -} - - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_loadu_epi32(__mmask16 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *)__P, - (__v16si) - _mm512_setzero_si512 (), - (__mmask16) __U); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_loadu_epi64 (void const *__P) -{ - struct __loadu_epi64 { - __m512i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi64*)__P)->__v; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P, - (__v8di) __W, - (__mmask8) __U); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_loadu_epi64(__mmask8 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *)__P, - (__v8di) - _mm512_setzero_si512 (), - (__mmask8) __U); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void const *__P) -{ - return (__m512) __builtin_ia32_loadups512_mask ((const float *) __P, - (__v16sf) __W, - (__mmask16) __U); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_loadu_ps(__mmask16 __U, void const *__P) -{ - return (__m512) __builtin_ia32_loadups512_mask ((const float *)__P, - (__v16sf) - _mm512_setzero_ps (), - (__mmask16) __U); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void const *__P) -{ - return (__m512d) __builtin_ia32_loadupd512_mask ((const double *) __P, - (__v8df) __W, - (__mmask8) __U); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_loadu_pd(__mmask8 __U, void const *__P) -{ - return (__m512d) __builtin_ia32_loadupd512_mask ((const double *)__P, - (__v8df) - _mm512_setzero_pd (), - (__mmask8) __U); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_loadu_pd(void const *__p) -{ - struct __loadu_pd { - __m512d_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_pd*)__p)->__v; -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_loadu_ps(void const *__p) -{ - struct __loadu_ps { - __m512_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_ps*)__p)->__v; -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_load_ps(void const *__p) -{ - return *(__m512*)__p; -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_load_ps (__m512 __W, __mmask16 __U, void const *__P) -{ - return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P, - (__v16sf) __W, - (__mmask16) __U); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_load_ps(__mmask16 __U, void const *__P) -{ - return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *)__P, - (__v16sf) - _mm512_setzero_ps (), - (__mmask16) __U); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_load_pd(void const *__p) -{ - return *(__m512d*)__p; -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_load_pd (__m512d __W, __mmask8 __U, void const *__P) -{ - return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P, - (__v8df) __W, - (__mmask8) __U); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_load_pd(__mmask8 __U, void const *__P) -{ - return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *)__P, - (__v8df) - _mm512_setzero_pd (), - (__mmask8) __U); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_load_si512 (void const *__P) -{ - return *(__m512i *) __P; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_load_epi32 (void const *__P) -{ - return *(__m512i *) __P; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_load_epi64 (void const *__P) -{ - return *(__m512i *) __P; -} - -/* SIMD store ops */ - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_storeu_epi64 (void *__P, __m512i __A) -{ - struct __storeu_epi64 { - __m512i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi64*)__P)->__v = __A; -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_mask_storeu_epi64(void *__P, __mmask8 __U, __m512i __A) -{ - __builtin_ia32_storedqudi512_mask ((long long *)__P, (__v8di) __A, - (__mmask8) __U); -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_storeu_si512 (void *__P, __m512i __A) -{ - struct __storeu_si512 { - __m512i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_si512*)__P)->__v = __A; -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_storeu_epi32 (void *__P, __m512i __A) -{ - struct __storeu_epi32 { - __m512i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi32*)__P)->__v = __A; -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_mask_storeu_epi32(void *__P, __mmask16 __U, __m512i __A) -{ - __builtin_ia32_storedqusi512_mask ((int *)__P, (__v16si) __A, - (__mmask16) __U); -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_mask_storeu_pd(void *__P, __mmask8 __U, __m512d __A) -{ - __builtin_ia32_storeupd512_mask ((double *)__P, (__v8df) __A, (__mmask8) __U); -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_storeu_pd(void *__P, __m512d __A) -{ - struct __storeu_pd { - __m512d_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_pd*)__P)->__v = __A; -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_mask_storeu_ps(void *__P, __mmask16 __U, __m512 __A) -{ - __builtin_ia32_storeups512_mask ((float *)__P, (__v16sf) __A, - (__mmask16) __U); -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_storeu_ps(void *__P, __m512 __A) -{ - struct __storeu_ps { - __m512_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_ps*)__P)->__v = __A; -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_mask_store_pd(void *__P, __mmask8 __U, __m512d __A) -{ - __builtin_ia32_storeapd512_mask ((__v8df *)__P, (__v8df) __A, (__mmask8) __U); -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_store_pd(void *__P, __m512d __A) -{ - *(__m512d*)__P = __A; -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_mask_store_ps(void *__P, __mmask16 __U, __m512 __A) -{ - __builtin_ia32_storeaps512_mask ((__v16sf *)__P, (__v16sf) __A, - (__mmask16) __U); -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_store_ps(void *__P, __m512 __A) -{ - *(__m512*)__P = __A; -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_store_si512 (void *__P, __m512i __A) -{ - *(__m512i *) __P = __A; -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_store_epi32 (void *__P, __m512i __A) -{ - *(__m512i *) __P = __A; -} - -static __inline void __DEFAULT_FN_ATTRS512 -_mm512_store_epi64 (void *__P, __m512i __A) -{ - *(__m512i *) __P = __A; -} - -/* Mask ops */ - -static __inline __mmask16 __DEFAULT_FN_ATTRS -_mm512_knot(__mmask16 __M) -{ - return __builtin_ia32_knothi(__M); -} - -/* Integer compare */ - -#define _mm512_cmpeq_epi32_mask(A, B) \ - _mm512_cmp_epi32_mask((A), (B), _MM_CMPINT_EQ) -#define _mm512_mask_cmpeq_epi32_mask(k, A, B) \ - _mm512_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm512_cmpge_epi32_mask(A, B) \ - _mm512_cmp_epi32_mask((A), (B), _MM_CMPINT_GE) -#define _mm512_mask_cmpge_epi32_mask(k, A, B) \ - _mm512_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm512_cmpgt_epi32_mask(A, B) \ - _mm512_cmp_epi32_mask((A), (B), _MM_CMPINT_GT) -#define _mm512_mask_cmpgt_epi32_mask(k, A, B) \ - _mm512_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm512_cmple_epi32_mask(A, B) \ - _mm512_cmp_epi32_mask((A), (B), _MM_CMPINT_LE) -#define _mm512_mask_cmple_epi32_mask(k, A, B) \ - _mm512_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm512_cmplt_epi32_mask(A, B) \ - _mm512_cmp_epi32_mask((A), (B), _MM_CMPINT_LT) -#define _mm512_mask_cmplt_epi32_mask(k, A, B) \ - _mm512_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm512_cmpneq_epi32_mask(A, B) \ - _mm512_cmp_epi32_mask((A), (B), _MM_CMPINT_NE) -#define _mm512_mask_cmpneq_epi32_mask(k, A, B) \ - _mm512_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm512_cmpeq_epu32_mask(A, B) \ - _mm512_cmp_epu32_mask((A), (B), _MM_CMPINT_EQ) -#define _mm512_mask_cmpeq_epu32_mask(k, A, B) \ - _mm512_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm512_cmpge_epu32_mask(A, B) \ - _mm512_cmp_epu32_mask((A), (B), _MM_CMPINT_GE) -#define _mm512_mask_cmpge_epu32_mask(k, A, B) \ - _mm512_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm512_cmpgt_epu32_mask(A, B) \ - _mm512_cmp_epu32_mask((A), (B), _MM_CMPINT_GT) -#define _mm512_mask_cmpgt_epu32_mask(k, A, B) \ - _mm512_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm512_cmple_epu32_mask(A, B) \ - _mm512_cmp_epu32_mask((A), (B), _MM_CMPINT_LE) -#define _mm512_mask_cmple_epu32_mask(k, A, B) \ - _mm512_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm512_cmplt_epu32_mask(A, B) \ - _mm512_cmp_epu32_mask((A), (B), _MM_CMPINT_LT) -#define _mm512_mask_cmplt_epu32_mask(k, A, B) \ - _mm512_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm512_cmpneq_epu32_mask(A, B) \ - _mm512_cmp_epu32_mask((A), (B), _MM_CMPINT_NE) -#define _mm512_mask_cmpneq_epu32_mask(k, A, B) \ - _mm512_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm512_cmpeq_epi64_mask(A, B) \ - _mm512_cmp_epi64_mask((A), (B), _MM_CMPINT_EQ) -#define _mm512_mask_cmpeq_epi64_mask(k, A, B) \ - _mm512_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm512_cmpge_epi64_mask(A, B) \ - _mm512_cmp_epi64_mask((A), (B), _MM_CMPINT_GE) -#define _mm512_mask_cmpge_epi64_mask(k, A, B) \ - _mm512_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm512_cmpgt_epi64_mask(A, B) \ - _mm512_cmp_epi64_mask((A), (B), _MM_CMPINT_GT) -#define _mm512_mask_cmpgt_epi64_mask(k, A, B) \ - _mm512_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm512_cmple_epi64_mask(A, B) \ - _mm512_cmp_epi64_mask((A), (B), _MM_CMPINT_LE) -#define _mm512_mask_cmple_epi64_mask(k, A, B) \ - _mm512_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm512_cmplt_epi64_mask(A, B) \ - _mm512_cmp_epi64_mask((A), (B), _MM_CMPINT_LT) -#define _mm512_mask_cmplt_epi64_mask(k, A, B) \ - _mm512_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm512_cmpneq_epi64_mask(A, B) \ - _mm512_cmp_epi64_mask((A), (B), _MM_CMPINT_NE) -#define _mm512_mask_cmpneq_epi64_mask(k, A, B) \ - _mm512_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm512_cmpeq_epu64_mask(A, B) \ - _mm512_cmp_epu64_mask((A), (B), _MM_CMPINT_EQ) -#define _mm512_mask_cmpeq_epu64_mask(k, A, B) \ - _mm512_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm512_cmpge_epu64_mask(A, B) \ - _mm512_cmp_epu64_mask((A), (B), _MM_CMPINT_GE) -#define _mm512_mask_cmpge_epu64_mask(k, A, B) \ - _mm512_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm512_cmpgt_epu64_mask(A, B) \ - _mm512_cmp_epu64_mask((A), (B), _MM_CMPINT_GT) -#define _mm512_mask_cmpgt_epu64_mask(k, A, B) \ - _mm512_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm512_cmple_epu64_mask(A, B) \ - _mm512_cmp_epu64_mask((A), (B), _MM_CMPINT_LE) -#define _mm512_mask_cmple_epu64_mask(k, A, B) \ - _mm512_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm512_cmplt_epu64_mask(A, B) \ - _mm512_cmp_epu64_mask((A), (B), _MM_CMPINT_LT) -#define _mm512_mask_cmplt_epu64_mask(k, A, B) \ - _mm512_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm512_cmpneq_epu64_mask(A, B) \ - _mm512_cmp_epu64_mask((A), (B), _MM_CMPINT_NE) -#define _mm512_mask_cmpneq_epu64_mask(k, A, B) \ - _mm512_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_NE) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi8_epi32(__m128i __A) -{ - /* This function always performs a signed extension, but __v16qi is a char - which may be signed or unsigned, so use __v16qs. */ - return (__m512i)__builtin_convertvector((__v16qs)__A, __v16si); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_cvtepi8_epi32(__A), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_cvtepi8_epi32(__A), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi8_epi64(__m128i __A) -{ - /* This function always performs a signed extension, but __v16qi is a char - which may be signed or unsigned, so use __v16qs. */ - return (__m512i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__A, (__v16qs)__A, 0, 1, 2, 3, 4, 5, 6, 7), __v8di); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepi8_epi64(__A), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepi8_epi64(__A), - (__v8di)_mm512_setzero_si512 ()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi32_epi64(__m256i __X) -{ - return (__m512i)__builtin_convertvector((__v8si)__X, __v8di); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepi32_epi64(__X), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepi32_epi64(__X), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi16_epi32(__m256i __A) -{ - return (__m512i)__builtin_convertvector((__v16hi)__A, __v16si); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_cvtepi16_epi32(__A), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_cvtepi16_epi32(__A), - (__v16si)_mm512_setzero_si512 ()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi16_epi64(__m128i __A) -{ - return (__m512i)__builtin_convertvector((__v8hi)__A, __v8di); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepi16_epi64(__A), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepi16_epi64(__A), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepu8_epi32(__m128i __A) -{ - return (__m512i)__builtin_convertvector((__v16qu)__A, __v16si); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_cvtepu8_epi32(__A), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_cvtepu8_epi32(__A), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepu8_epi64(__m128i __A) -{ - return (__m512i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__A, (__v16qu)__A, 0, 1, 2, 3, 4, 5, 6, 7), __v8di); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepu8_epi64(__A), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepu8_epi64(__A), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepu32_epi64(__m256i __X) -{ - return (__m512i)__builtin_convertvector((__v8su)__X, __v8di); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepu32_epi64(__X), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepu32_epi64(__X), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepu16_epi32(__m256i __A) -{ - return (__m512i)__builtin_convertvector((__v16hu)__A, __v16si); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_cvtepu16_epi32(__A), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_cvtepu16_epi32(__A), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_cvtepu16_epi64(__m128i __A) -{ - return (__m512i)__builtin_convertvector((__v8hu)__A, __v8di); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepu16_epi64(__A), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_cvtepu16_epi64(__A), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_rorv_epi32 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_prorvd512((__v16si)__A, (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_rorv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_rorv_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_rorv_epi32 (__mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_rorv_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_rorv_epi64 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_prorvq512((__v8di)__A, (__v8di)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_rorv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_rorv_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_rorv_epi64 (__mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_rorv_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - - - -#define _mm512_cmp_epi32_mask(a, b, p) \ - (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)(a), \ - (__v16si)(__m512i)(b), (int)(p), \ - (__mmask16)-1) - -#define _mm512_cmp_epu32_mask(a, b, p) \ - (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)(__m512i)(a), \ - (__v16si)(__m512i)(b), (int)(p), \ - (__mmask16)-1) - -#define _mm512_cmp_epi64_mask(a, b, p) \ - (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)(a), \ - (__v8di)(__m512i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm512_cmp_epu64_mask(a, b, p) \ - (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)(__m512i)(a), \ - (__v8di)(__m512i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm512_mask_cmp_epi32_mask(m, a, b, p) \ - (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)(a), \ - (__v16si)(__m512i)(b), (int)(p), \ - (__mmask16)(m)) - -#define _mm512_mask_cmp_epu32_mask(m, a, b, p) \ - (__mmask16)__builtin_ia32_ucmpd512_mask((__v16si)(__m512i)(a), \ - (__v16si)(__m512i)(b), (int)(p), \ - (__mmask16)(m)) - -#define _mm512_mask_cmp_epi64_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)(a), \ - (__v8di)(__m512i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm512_mask_cmp_epu64_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_ucmpq512_mask((__v8di)(__m512i)(a), \ - (__v8di)(__m512i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm512_rol_epi32(a, b) \ - (__m512i)__builtin_ia32_prold512((__v16si)(__m512i)(a), (int)(b)) - -#define _mm512_mask_rol_epi32(W, U, a, b) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_rol_epi32((a), (b)), \ - (__v16si)(__m512i)(W)) - -#define _mm512_maskz_rol_epi32(U, a, b) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_rol_epi32((a), (b)), \ - (__v16si)_mm512_setzero_si512()) - -#define _mm512_rol_epi64(a, b) \ - (__m512i)__builtin_ia32_prolq512((__v8di)(__m512i)(a), (int)(b)) - -#define _mm512_mask_rol_epi64(W, U, a, b) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_rol_epi64((a), (b)), \ - (__v8di)(__m512i)(W)) - -#define _mm512_maskz_rol_epi64(U, a, b) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_rol_epi64((a), (b)), \ - (__v8di)_mm512_setzero_si512()) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_rolv_epi32 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_prolvd512((__v16si)__A, (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_rolv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_rolv_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_rolv_epi32 (__mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_rolv_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_rolv_epi64 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_prolvq512((__v8di)__A, (__v8di)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_rolv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_rolv_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_rolv_epi64 (__mmask8 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_rolv_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -#define _mm512_ror_epi32(A, B) \ - (__m512i)__builtin_ia32_prord512((__v16si)(__m512i)(A), (int)(B)) - -#define _mm512_mask_ror_epi32(W, U, A, B) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_ror_epi32((A), (B)), \ - (__v16si)(__m512i)(W)) - -#define _mm512_maskz_ror_epi32(U, A, B) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_ror_epi32((A), (B)), \ - (__v16si)_mm512_setzero_si512()) - -#define _mm512_ror_epi64(A, B) \ - (__m512i)__builtin_ia32_prorq512((__v8di)(__m512i)(A), (int)(B)) - -#define _mm512_mask_ror_epi64(W, U, A, B) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_ror_epi64((A), (B)), \ - (__v8di)(__m512i)(W)) - -#define _mm512_maskz_ror_epi64(U, A, B) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_ror_epi64((A), (B)), \ - (__v8di)_mm512_setzero_si512()) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_slli_epi32(__m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_pslldi512((__v16si)__A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_slli_epi32(__m512i __W, __mmask16 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_slli_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_slli_epi32(__mmask16 __U, __m512i __A, int __B) { - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_slli_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_slli_epi64(__m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_psllqi512((__v8di)__A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_slli_epi64(__m512i __W, __mmask8 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_slli_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_slli_epi64(__mmask8 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_slli_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srli_epi32(__m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_psrldi512((__v16si)__A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srli_epi32(__m512i __W, __mmask16 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_srli_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srli_epi32(__mmask16 __U, __m512i __A, int __B) { - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_srli_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srli_epi64(__m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_psrlqi512((__v8di)__A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srli_epi64(__m512i __W, __mmask8 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_srli_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srli_epi64(__mmask8 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_srli_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_load_epi32 (__m512i __W, __mmask16 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P, - (__v16si) __W, - (__mmask16) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_load_epi32 (__mmask16 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P, - (__v16si) - _mm512_setzero_si512 (), - (__mmask16) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_store_epi32 (void *__P, __mmask16 __U, __m512i __A) -{ - __builtin_ia32_movdqa32store512_mask ((__v16si *) __P, (__v16si) __A, - (__mmask16) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mov_epi32 (__m512i __W, __mmask16 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U, - (__v16si) __A, - (__v16si) __W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mov_epi32 (__mmask16 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U, - (__v16si) __A, - (__v16si) _mm512_setzero_si512 ()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_mov_epi64 (__m512i __W, __mmask8 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U, - (__v8di) __A, - (__v8di) __W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_mov_epi64 (__mmask8 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U, - (__v8di) __A, - (__v8di) _mm512_setzero_si512 ()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_load_epi64 (__m512i __W, __mmask8 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P, - (__v8di) __W, - (__mmask8) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_load_epi64 (__mmask8 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P, - (__v8di) - _mm512_setzero_si512 (), - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_store_epi64 (void *__P, __mmask8 __U, __m512i __A) -{ - __builtin_ia32_movdqa64store512_mask ((__v8di *) __P, (__v8di) __A, - (__mmask8) __U); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_movedup_pd (__m512d __A) -{ - return (__m512d)__builtin_shufflevector((__v8df)__A, (__v8df)__A, - 0, 0, 2, 2, 4, 4, 6, 6); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_movedup_pd (__m512d __W, __mmask8 __U, __m512d __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_movedup_pd(__A), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_movedup_pd (__mmask8 __U, __m512d __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_movedup_pd(__A), - (__v8df)_mm512_setzero_pd()); -} - -#define _mm512_fixupimm_round_pd(A, B, C, imm, R) \ - (__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8di)(__m512i)(C), (int)(imm), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_fixupimm_round_pd(A, U, B, C, imm, R) \ - (__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8di)(__m512i)(C), (int)(imm), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_fixupimm_pd(A, B, C, imm) \ - (__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8di)(__m512i)(C), (int)(imm), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_fixupimm_pd(A, U, B, C, imm) \ - (__m512d)__builtin_ia32_fixupimmpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8di)(__m512i)(C), (int)(imm), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_fixupimm_round_pd(U, A, B, C, imm, R) \ - (__m512d)__builtin_ia32_fixupimmpd512_maskz((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8di)(__m512i)(C), \ - (int)(imm), (__mmask8)(U), \ - (int)(R)) - -#define _mm512_maskz_fixupimm_pd(U, A, B, C, imm) \ - (__m512d)__builtin_ia32_fixupimmpd512_maskz((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8di)(__m512i)(C), \ - (int)(imm), (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_fixupimm_round_ps(A, B, C, imm, R) \ - (__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16si)(__m512i)(C), (int)(imm), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_fixupimm_round_ps(A, U, B, C, imm, R) \ - (__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16si)(__m512i)(C), (int)(imm), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_fixupimm_ps(A, B, C, imm) \ - (__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16si)(__m512i)(C), (int)(imm), \ - (__mmask16)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_fixupimm_ps(A, U, B, C, imm) \ - (__m512)__builtin_ia32_fixupimmps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16si)(__m512i)(C), (int)(imm), \ - (__mmask16)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_fixupimm_round_ps(U, A, B, C, imm, R) \ - (__m512)__builtin_ia32_fixupimmps512_maskz((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16si)(__m512i)(C), \ - (int)(imm), (__mmask16)(U), \ - (int)(R)) - -#define _mm512_maskz_fixupimm_ps(U, A, B, C, imm) \ - (__m512)__builtin_ia32_fixupimmps512_maskz((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16si)(__m512i)(C), \ - (int)(imm), (__mmask16)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_fixupimm_round_sd(A, B, C, imm, R) \ - (__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_fixupimm_round_sd(A, U, B, C, imm, R) \ - (__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)(U), (int)(R)) - -#define _mm_fixupimm_sd(A, B, C, imm) \ - (__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_fixupimm_sd(A, U, B, C, imm) \ - (__m128d)__builtin_ia32_fixupimmsd_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_fixupimm_round_sd(U, A, B, C, imm, R) \ - (__m128d)__builtin_ia32_fixupimmsd_maskz((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_fixupimm_sd(U, A, B, C, imm) \ - (__m128d)__builtin_ia32_fixupimmsd_maskz((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_fixupimm_round_ss(A, B, C, imm, R) \ - (__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_fixupimm_round_ss(A, U, B, C, imm, R) \ - (__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)(U), (int)(R)) - -#define _mm_fixupimm_ss(A, B, C, imm) \ - (__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_fixupimm_ss(A, U, B, C, imm) \ - (__m128)__builtin_ia32_fixupimmss_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_fixupimm_round_ss(U, A, B, C, imm, R) \ - (__m128)__builtin_ia32_fixupimmss_maskz((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_fixupimm_ss(U, A, B, C, imm) \ - (__m128)__builtin_ia32_fixupimmss_maskz((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_getexp_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_getexpsd128_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_getexp_sd (__m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_getexpsd128_round_mask ((__v2df) __A, - (__v2df) __B, (__v2df) _mm_setzero_pd(), (__mmask8) -1, _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_getexp_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_getexpsd128_round_mask ( (__v2df) __A, - (__v2df) __B, - (__v2df) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask_getexp_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_getexpsd128_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_getexp_sd (__mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_getexpsd128_round_mask ( (__v2df) __A, - (__v2df) __B, - (__v2df) _mm_setzero_pd (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_getexp_round_sd(U, A, B, R) \ - (__m128d)__builtin_ia32_getexpsd128_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -#define _mm_getexp_round_ss(A, B, R) \ - (__m128)__builtin_ia32_getexpss128_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_getexp_ss (__m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A, - (__v4sf) __B, (__v4sf) _mm_setzero_ps(), (__mmask8) -1, _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_getexp_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask_getexp_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_getexpss128_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_getexp_ss (__mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) _mm_setzero_ps (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_getexp_round_ss(U, A, B, R) \ - (__m128)__builtin_ia32_getexpss128_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -#define _mm_getmant_round_sd(A, B, C, D, R) \ - (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (int)(((D)<<2) | (C)), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_getmant_sd(A, B, C, D) \ - (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (int)(((D)<<2) | (C)), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_getmant_sd(W, U, A, B, C, D) \ - (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (int)(((D)<<2) | (C)), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_getmant_round_sd(W, U, A, B, C, D, R) \ - (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (int)(((D)<<2) | (C)), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_getmant_sd(U, A, B, C, D) \ - (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (int)(((D)<<2) | (C)), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_getmant_round_sd(U, A, B, C, D, R) \ - (__m128d)__builtin_ia32_getmantsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (int)(((D)<<2) | (C)), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -#define _mm_getmant_round_ss(A, B, C, D, R) \ - (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (int)(((D)<<2) | (C)), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_getmant_ss(A, B, C, D) \ - (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (int)(((D)<<2) | (C)), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_getmant_ss(W, U, A, B, C, D) \ - (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (int)(((D)<<2) | (C)), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_getmant_round_ss(W, U, A, B, C, D, R) \ - (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (int)(((D)<<2) | (C)), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_getmant_ss(U, A, B, C, D) \ - (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (int)(((D)<<2) | (C)), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_getmant_round_ss(U, A, B, C, D, R) \ - (__m128)__builtin_ia32_getmantss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (int)(((D)<<2) | (C)), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_kmov (__mmask16 __A) -{ - return __A; -} - -#define _mm_comi_round_sd(A, B, P, R) \ - (int)__builtin_ia32_vcomisd((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), \ - (int)(P), (int)(R)) - -#define _mm_comi_round_ss(A, B, P, R) \ - (int)__builtin_ia32_vcomiss((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), \ - (int)(P), (int)(R)) - -#ifdef __x86_64__ -#define _mm_cvt_roundsd_si64(A, R) \ - (long long)__builtin_ia32_vcvtsd2si64((__v2df)(__m128d)(A), (int)(R)) -#endif - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sll_epi32(__m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_pslld512((__v16si) __A, (__v4si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sll_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_sll_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sll_epi32(__mmask16 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_sll_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sll_epi64(__m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_psllq512((__v8di)__A, (__v2di)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sll_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_sll_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sll_epi64(__mmask8 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_sll_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sllv_epi32(__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_psllv16si((__v16si)__X, (__v16si)__Y); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sllv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_sllv_epi32(__X, __Y), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sllv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_sllv_epi32(__X, __Y), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sllv_epi64(__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_psllv8di((__v8di)__X, (__v8di)__Y); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sllv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_sllv_epi64(__X, __Y), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sllv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_sllv_epi64(__X, __Y), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sra_epi32(__m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_psrad512((__v16si) __A, (__v4si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sra_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_sra_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sra_epi32(__mmask16 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_sra_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_sra_epi64(__m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_psraq512((__v8di)__A, (__v2di)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_sra_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_sra_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_sra_epi64(__mmask8 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_sra_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srav_epi32(__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_psrav16si((__v16si)__X, (__v16si)__Y); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srav_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_srav_epi32(__X, __Y), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srav_epi32(__mmask16 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_srav_epi32(__X, __Y), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srav_epi64(__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_psrav8di((__v8di)__X, (__v8di)__Y); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srav_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_srav_epi64(__X, __Y), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srav_epi64(__mmask8 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_srav_epi64(__X, __Y), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srl_epi32(__m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_psrld512((__v16si) __A, (__v4si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srl_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_srl_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srl_epi32(__mmask16 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_srl_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srl_epi64(__m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_psrlq512((__v8di)__A, (__v2di)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srl_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_srl_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srl_epi64(__mmask8 __U, __m512i __A, __m128i __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_srl_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srlv_epi32(__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_psrlv16si((__v16si)__X, (__v16si)__Y); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srlv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_srlv_epi32(__X, __Y), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srlv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_srlv_epi32(__X, __Y), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srlv_epi64 (__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_psrlv8di((__v8di)__X, (__v8di)__Y); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srlv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_srlv_epi64(__X, __Y), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srlv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_srlv_epi64(__X, __Y), - (__v8di)_mm512_setzero_si512()); -} - -#define _mm512_ternarylogic_epi32(A, B, C, imm) \ - (__m512i)__builtin_ia32_pternlogd512_mask((__v16si)(__m512i)(A), \ - (__v16si)(__m512i)(B), \ - (__v16si)(__m512i)(C), (int)(imm), \ - (__mmask16)-1) - -#define _mm512_mask_ternarylogic_epi32(A, U, B, C, imm) \ - (__m512i)__builtin_ia32_pternlogd512_mask((__v16si)(__m512i)(A), \ - (__v16si)(__m512i)(B), \ - (__v16si)(__m512i)(C), (int)(imm), \ - (__mmask16)(U)) - -#define _mm512_maskz_ternarylogic_epi32(U, A, B, C, imm) \ - (__m512i)__builtin_ia32_pternlogd512_maskz((__v16si)(__m512i)(A), \ - (__v16si)(__m512i)(B), \ - (__v16si)(__m512i)(C), \ - (int)(imm), (__mmask16)(U)) - -#define _mm512_ternarylogic_epi64(A, B, C, imm) \ - (__m512i)__builtin_ia32_pternlogq512_mask((__v8di)(__m512i)(A), \ - (__v8di)(__m512i)(B), \ - (__v8di)(__m512i)(C), (int)(imm), \ - (__mmask8)-1) - -#define _mm512_mask_ternarylogic_epi64(A, U, B, C, imm) \ - (__m512i)__builtin_ia32_pternlogq512_mask((__v8di)(__m512i)(A), \ - (__v8di)(__m512i)(B), \ - (__v8di)(__m512i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm512_maskz_ternarylogic_epi64(U, A, B, C, imm) \ - (__m512i)__builtin_ia32_pternlogq512_maskz((__v8di)(__m512i)(A), \ - (__v8di)(__m512i)(B), \ - (__v8di)(__m512i)(C), (int)(imm), \ - (__mmask8)(U)) - -#ifdef __x86_64__ -#define _mm_cvt_roundsd_i64(A, R) \ - (long long)__builtin_ia32_vcvtsd2si64((__v2df)(__m128d)(A), (int)(R)) -#endif - -#define _mm_cvt_roundsd_si32(A, R) \ - (int)__builtin_ia32_vcvtsd2si32((__v2df)(__m128d)(A), (int)(R)) - -#define _mm_cvt_roundsd_i32(A, R) \ - (int)__builtin_ia32_vcvtsd2si32((__v2df)(__m128d)(A), (int)(R)) - -#define _mm_cvt_roundsd_u32(A, R) \ - (unsigned int)__builtin_ia32_vcvtsd2usi32((__v2df)(__m128d)(A), (int)(R)) - -static __inline__ unsigned __DEFAULT_FN_ATTRS128 -_mm_cvtsd_u32 (__m128d __A) -{ - return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A, - _MM_FROUND_CUR_DIRECTION); -} - -#ifdef __x86_64__ -#define _mm_cvt_roundsd_u64(A, R) \ - (unsigned long long)__builtin_ia32_vcvtsd2usi64((__v2df)(__m128d)(A), \ - (int)(R)) - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS128 -_mm_cvtsd_u64 (__m128d __A) -{ - return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df) - __A, - _MM_FROUND_CUR_DIRECTION); -} -#endif - -#define _mm_cvt_roundss_si32(A, R) \ - (int)__builtin_ia32_vcvtss2si32((__v4sf)(__m128)(A), (int)(R)) - -#define _mm_cvt_roundss_i32(A, R) \ - (int)__builtin_ia32_vcvtss2si32((__v4sf)(__m128)(A), (int)(R)) - -#ifdef __x86_64__ -#define _mm_cvt_roundss_si64(A, R) \ - (long long)__builtin_ia32_vcvtss2si64((__v4sf)(__m128)(A), (int)(R)) - -#define _mm_cvt_roundss_i64(A, R) \ - (long long)__builtin_ia32_vcvtss2si64((__v4sf)(__m128)(A), (int)(R)) -#endif - -#define _mm_cvt_roundss_u32(A, R) \ - (unsigned int)__builtin_ia32_vcvtss2usi32((__v4sf)(__m128)(A), (int)(R)) - -static __inline__ unsigned __DEFAULT_FN_ATTRS128 -_mm_cvtss_u32 (__m128 __A) -{ - return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A, - _MM_FROUND_CUR_DIRECTION); -} - -#ifdef __x86_64__ -#define _mm_cvt_roundss_u64(A, R) \ - (unsigned long long)__builtin_ia32_vcvtss2usi64((__v4sf)(__m128)(A), \ - (int)(R)) - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS128 -_mm_cvtss_u64 (__m128 __A) -{ - return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf) - __A, - _MM_FROUND_CUR_DIRECTION); -} -#endif - -#define _mm_cvtt_roundsd_i32(A, R) \ - (int)__builtin_ia32_vcvttsd2si32((__v2df)(__m128d)(A), (int)(R)) - -#define _mm_cvtt_roundsd_si32(A, R) \ - (int)__builtin_ia32_vcvttsd2si32((__v2df)(__m128d)(A), (int)(R)) - -static __inline__ int __DEFAULT_FN_ATTRS128 -_mm_cvttsd_i32 (__m128d __A) -{ - return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, - _MM_FROUND_CUR_DIRECTION); -} - -#ifdef __x86_64__ -#define _mm_cvtt_roundsd_si64(A, R) \ - (long long)__builtin_ia32_vcvttsd2si64((__v2df)(__m128d)(A), (int)(R)) - -#define _mm_cvtt_roundsd_i64(A, R) \ - (long long)__builtin_ia32_vcvttsd2si64((__v2df)(__m128d)(A), (int)(R)) - -static __inline__ long long __DEFAULT_FN_ATTRS128 -_mm_cvttsd_i64 (__m128d __A) -{ - return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, - _MM_FROUND_CUR_DIRECTION); -} -#endif - -#define _mm_cvtt_roundsd_u32(A, R) \ - (unsigned int)__builtin_ia32_vcvttsd2usi32((__v2df)(__m128d)(A), (int)(R)) - -static __inline__ unsigned __DEFAULT_FN_ATTRS128 -_mm_cvttsd_u32 (__m128d __A) -{ - return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A, - _MM_FROUND_CUR_DIRECTION); -} - -#ifdef __x86_64__ -#define _mm_cvtt_roundsd_u64(A, R) \ - (unsigned long long)__builtin_ia32_vcvttsd2usi64((__v2df)(__m128d)(A), \ - (int)(R)) - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS128 -_mm_cvttsd_u64 (__m128d __A) -{ - return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df) - __A, - _MM_FROUND_CUR_DIRECTION); -} -#endif - -#define _mm_cvtt_roundss_i32(A, R) \ - (int)__builtin_ia32_vcvttss2si32((__v4sf)(__m128)(A), (int)(R)) - -#define _mm_cvtt_roundss_si32(A, R) \ - (int)__builtin_ia32_vcvttss2si32((__v4sf)(__m128)(A), (int)(R)) - -static __inline__ int __DEFAULT_FN_ATTRS128 -_mm_cvttss_i32 (__m128 __A) -{ - return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, - _MM_FROUND_CUR_DIRECTION); -} - -#ifdef __x86_64__ -#define _mm_cvtt_roundss_i64(A, R) \ - (long long)__builtin_ia32_vcvttss2si64((__v4sf)(__m128)(A), (int)(R)) - -#define _mm_cvtt_roundss_si64(A, R) \ - (long long)__builtin_ia32_vcvttss2si64((__v4sf)(__m128)(A), (int)(R)) - -static __inline__ long long __DEFAULT_FN_ATTRS128 -_mm_cvttss_i64 (__m128 __A) -{ - return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, - _MM_FROUND_CUR_DIRECTION); -} -#endif - -#define _mm_cvtt_roundss_u32(A, R) \ - (unsigned int)__builtin_ia32_vcvttss2usi32((__v4sf)(__m128)(A), (int)(R)) - -static __inline__ unsigned __DEFAULT_FN_ATTRS128 -_mm_cvttss_u32 (__m128 __A) -{ - return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A, - _MM_FROUND_CUR_DIRECTION); -} - -#ifdef __x86_64__ -#define _mm_cvtt_roundss_u64(A, R) \ - (unsigned long long)__builtin_ia32_vcvttss2usi64((__v4sf)(__m128)(A), \ - (int)(R)) - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS128 -_mm_cvttss_u64 (__m128 __A) -{ - return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf) - __A, - _MM_FROUND_CUR_DIRECTION); -} -#endif - -#define _mm512_permute_pd(X, C) \ - (__m512d)__builtin_ia32_vpermilpd512((__v8df)(__m512d)(X), (int)(C)) - -#define _mm512_mask_permute_pd(W, U, X, C) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_permute_pd((X), (C)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_permute_pd(U, X, C) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_permute_pd((X), (C)), \ - (__v8df)_mm512_setzero_pd()) - -#define _mm512_permute_ps(X, C) \ - (__m512)__builtin_ia32_vpermilps512((__v16sf)(__m512)(X), (int)(C)) - -#define _mm512_mask_permute_ps(W, U, X, C) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_permute_ps((X), (C)), \ - (__v16sf)(__m512)(W)) - -#define _mm512_maskz_permute_ps(U, X, C) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_permute_ps((X), (C)), \ - (__v16sf)_mm512_setzero_ps()) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_permutevar_pd(__m512d __A, __m512i __C) -{ - return (__m512d)__builtin_ia32_vpermilvarpd512((__v8df)__A, (__v8di)__C); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_permutevar_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512i __C) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_permutevar_pd(__A, __C), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutevar_pd(__mmask8 __U, __m512d __A, __m512i __C) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_permutevar_pd(__A, __C), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_permutevar_ps(__m512 __A, __m512i __C) -{ - return (__m512)__builtin_ia32_vpermilvarps512((__v16sf)__A, (__v16si)__C); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_permutevar_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512i __C) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_permutevar_ps(__A, __C), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutevar_ps(__mmask16 __U, __m512 __A, __m512i __C) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_permutevar_ps(__A, __C), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline __m512d __DEFAULT_FN_ATTRS512 -_mm512_permutex2var_pd(__m512d __A, __m512i __I, __m512d __B) -{ - return (__m512d)__builtin_ia32_vpermi2varpd512((__v8df)__A, (__v8di)__I, - (__v8df)__B); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_permutex2var_pd(__m512d __A, __mmask8 __U, __m512i __I, __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512(__U, - (__v8df)_mm512_permutex2var_pd(__A, __I, __B), - (__v8df)__A); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask2_permutex2var_pd(__m512d __A, __m512i __I, __mmask8 __U, - __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512(__U, - (__v8df)_mm512_permutex2var_pd(__A, __I, __B), - (__v8df)(__m512d)__I); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutex2var_pd(__mmask8 __U, __m512d __A, __m512i __I, - __m512d __B) -{ - return (__m512d)__builtin_ia32_selectpd_512(__U, - (__v8df)_mm512_permutex2var_pd(__A, __I, __B), - (__v8df)_mm512_setzero_pd()); -} - -static __inline __m512 __DEFAULT_FN_ATTRS512 -_mm512_permutex2var_ps(__m512 __A, __m512i __I, __m512 __B) -{ - return (__m512)__builtin_ia32_vpermi2varps512((__v16sf)__A, (__v16si)__I, - (__v16sf) __B); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_permutex2var_ps(__m512 __A, __mmask16 __U, __m512i __I, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512(__U, - (__v16sf)_mm512_permutex2var_ps(__A, __I, __B), - (__v16sf)__A); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask2_permutex2var_ps(__m512 __A, __m512i __I, __mmask16 __U, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512(__U, - (__v16sf)_mm512_permutex2var_ps(__A, __I, __B), - (__v16sf)(__m512)__I); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutex2var_ps(__mmask16 __U, __m512 __A, __m512i __I, __m512 __B) -{ - return (__m512)__builtin_ia32_selectps_512(__U, - (__v16sf)_mm512_permutex2var_ps(__A, __I, __B), - (__v16sf)_mm512_setzero_ps()); -} - - -#define _mm512_cvtt_roundpd_epu32(A, R) \ - (__m256i)__builtin_ia32_cvttpd2udq512_mask((__v8df)(__m512d)(A), \ - (__v8si)_mm256_undefined_si256(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvtt_roundpd_epu32(W, U, A, R) \ - (__m256i)__builtin_ia32_cvttpd2udq512_mask((__v8df)(__m512d)(A), \ - (__v8si)(__m256i)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvtt_roundpd_epu32(U, A, R) \ - (__m256i)__builtin_ia32_cvttpd2udq512_mask((__v8df)(__m512d)(A), \ - (__v8si)_mm256_setzero_si256(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvttpd_epu32 (__m512d __A) -{ - return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A, - (__v8si) - _mm256_undefined_si256 (), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvttpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A) -{ - return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A, - (__v8si) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvttpd_epu32 (__mmask8 __U, __m512d __A) -{ - return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_roundscale_round_sd(A, B, imm, R) \ - (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(imm), \ - (int)(R)) - -#define _mm_roundscale_sd(A, B, imm) \ - (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(imm), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_roundscale_sd(W, U, A, B, imm) \ - (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(imm), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_roundscale_round_sd(W, U, A, B, I, R) \ - (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(I), \ - (int)(R)) - -#define _mm_maskz_roundscale_sd(U, A, B, I) \ - (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(I), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_roundscale_round_sd(U, A, B, I, R) \ - (__m128d)__builtin_ia32_rndscalesd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(I), \ - (int)(R)) - -#define _mm_roundscale_round_ss(A, B, imm, R) \ - (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(imm), \ - (int)(R)) - -#define _mm_roundscale_ss(A, B, imm) \ - (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(imm), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_roundscale_ss(W, U, A, B, I) \ - (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U), (int)(I), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_roundscale_round_ss(W, U, A, B, I, R) \ - (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U), (int)(I), \ - (int)(R)) - -#define _mm_maskz_roundscale_ss(U, A, B, I) \ - (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(I), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_maskz_roundscale_round_ss(U, A, B, I, R) \ - (__m128)__builtin_ia32_rndscaless_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(I), \ - (int)(R)) - -#define _mm512_scalef_round_pd(A, B, R) \ - (__m512d)__builtin_ia32_scalefpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)_mm512_undefined_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_scalef_round_pd(W, U, A, B, R) \ - (__m512d)__builtin_ia32_scalefpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)(__m512d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_scalef_round_pd(U, A, B, R) \ - (__m512d)__builtin_ia32_scalefpd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_scalef_pd (__m512d __A, __m512d __B) -{ - return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A, - (__v8df) __B, - (__v8df) - _mm512_undefined_pd (), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_scalef_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) -{ - return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A, - (__v8df) __B, - (__v8df) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_scalef_pd (__mmask8 __U, __m512d __A, __m512d __B) -{ - return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A, - (__v8df) __B, - (__v8df) - _mm512_setzero_pd (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_scalef_round_ps(A, B, R) \ - (__m512)__builtin_ia32_scalefps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)_mm512_undefined_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_scalef_round_ps(W, U, A, B, R) \ - (__m512)__builtin_ia32_scalefps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)(__m512)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_scalef_round_ps(U, A, B, R) \ - (__m512)__builtin_ia32_scalefps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), (int)(R)) - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_scalef_ps (__m512 __A, __m512 __B) -{ - return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) - _mm512_undefined_ps (), - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_scalef_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) -{ - return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) __W, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_scalef_ps (__mmask16 __U, __m512 __A, __m512 __B) -{ - return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A, - (__v16sf) __B, - (__v16sf) - _mm512_setzero_ps (), - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_scalef_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_scalefsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_scalef_sd (__m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_scalefsd_round_mask ((__v2df) __A, - (__v2df)( __B), (__v2df) _mm_setzero_pd(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_scalef_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_scalefsd_round_mask ( (__v2df) __A, - (__v2df) __B, - (__v2df) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask_scalef_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_scalefsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_scalef_sd (__mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_scalefsd_round_mask ( (__v2df) __A, - (__v2df) __B, - (__v2df) _mm_setzero_pd (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_scalef_round_sd(U, A, B, R) \ - (__m128d)__builtin_ia32_scalefsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -#define _mm_scalef_round_ss(A, B, R) \ - (__m128)__builtin_ia32_scalefss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_scalef_ss (__m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_scalefss_round_mask ((__v4sf) __A, - (__v4sf)( __B), (__v4sf) _mm_setzero_ps(), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_scalef_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_scalefss_round_mask ( (__v4sf) __A, - (__v4sf) __B, - (__v4sf) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask_scalef_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_scalefss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_scalef_ss (__mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_scalefss_round_mask ( (__v4sf) __A, - (__v4sf) __B, - (__v4sf) _mm_setzero_ps (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_scalef_round_ss(U, A, B, R) \ - (__m128)__builtin_ia32_scalefss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srai_epi32(__m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_psradi512((__v16si)__A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srai_epi32(__m512i __W, __mmask16 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_srai_epi32(__A, __B), - (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srai_epi32(__mmask16 __U, __m512i __A, int __B) { - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, - (__v16si)_mm512_srai_epi32(__A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_srai_epi64(__m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_psraqi512((__v8di)__A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_srai_epi64(__m512i __W, __mmask8 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_srai_epi64(__A, __B), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_srai_epi64(__mmask8 __U, __m512i __A, int __B) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, - (__v8di)_mm512_srai_epi64(__A, __B), - (__v8di)_mm512_setzero_si512()); -} - -#define _mm512_shuffle_f32x4(A, B, imm) \ - (__m512)__builtin_ia32_shuf_f32x4((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(imm)) - -#define _mm512_mask_shuffle_f32x4(W, U, A, B, imm) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_shuffle_f32x4((A), (B), (imm)), \ - (__v16sf)(__m512)(W)) - -#define _mm512_maskz_shuffle_f32x4(U, A, B, imm) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_shuffle_f32x4((A), (B), (imm)), \ - (__v16sf)_mm512_setzero_ps()) - -#define _mm512_shuffle_f64x2(A, B, imm) \ - (__m512d)__builtin_ia32_shuf_f64x2((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(imm)) - -#define _mm512_mask_shuffle_f64x2(W, U, A, B, imm) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_shuffle_f64x2((A), (B), (imm)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_shuffle_f64x2(U, A, B, imm) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_shuffle_f64x2((A), (B), (imm)), \ - (__v8df)_mm512_setzero_pd()) - -#define _mm512_shuffle_i32x4(A, B, imm) \ - (__m512i)__builtin_ia32_shuf_i32x4((__v16si)(__m512i)(A), \ - (__v16si)(__m512i)(B), (int)(imm)) - -#define _mm512_mask_shuffle_i32x4(W, U, A, B, imm) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_shuffle_i32x4((A), (B), (imm)), \ - (__v16si)(__m512i)(W)) - -#define _mm512_maskz_shuffle_i32x4(U, A, B, imm) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_shuffle_i32x4((A), (B), (imm)), \ - (__v16si)_mm512_setzero_si512()) - -#define _mm512_shuffle_i64x2(A, B, imm) \ - (__m512i)__builtin_ia32_shuf_i64x2((__v8di)(__m512i)(A), \ - (__v8di)(__m512i)(B), (int)(imm)) - -#define _mm512_mask_shuffle_i64x2(W, U, A, B, imm) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_shuffle_i64x2((A), (B), (imm)), \ - (__v8di)(__m512i)(W)) - -#define _mm512_maskz_shuffle_i64x2(U, A, B, imm) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_shuffle_i64x2((A), (B), (imm)), \ - (__v8di)_mm512_setzero_si512()) - -#define _mm512_shuffle_pd(A, B, M) \ - (__m512d)__builtin_ia32_shufpd512((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(B), (int)(M)) - -#define _mm512_mask_shuffle_pd(W, U, A, B, M) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_shuffle_pd((A), (B), (M)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_shuffle_pd(U, A, B, M) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_shuffle_pd((A), (B), (M)), \ - (__v8df)_mm512_setzero_pd()) - -#define _mm512_shuffle_ps(A, B, M) \ - (__m512)__builtin_ia32_shufps512((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(B), (int)(M)) - -#define _mm512_mask_shuffle_ps(W, U, A, B, M) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_shuffle_ps((A), (B), (M)), \ - (__v16sf)(__m512)(W)) - -#define _mm512_maskz_shuffle_ps(U, A, B, M) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_shuffle_ps((A), (B), (M)), \ - (__v16sf)_mm512_setzero_ps()) - -#define _mm_sqrt_round_sd(A, B, R) \ - (__m128d)__builtin_ia32_sqrtsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1, (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_sqrt_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_sqrtsd_round_mask ( (__v2df) __A, - (__v2df) __B, - (__v2df) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask_sqrt_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_sqrtsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_sqrt_sd (__mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d) __builtin_ia32_sqrtsd_round_mask ( (__v2df) __A, - (__v2df) __B, - (__v2df) _mm_setzero_pd (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_sqrt_round_sd(U, A, B, R) \ - (__m128d)__builtin_ia32_sqrtsd_round_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -#define _mm_sqrt_round_ss(A, B, R) \ - (__m128)__builtin_ia32_sqrtss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1, (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_sqrt_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_sqrtss_round_mask ( (__v4sf) __A, - (__v4sf) __B, - (__v4sf) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask_sqrt_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_sqrtss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(W), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_sqrt_ss (__mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128) __builtin_ia32_sqrtss_round_mask ( (__v4sf) __A, - (__v4sf) __B, - (__v4sf) _mm_setzero_ps (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_sqrt_round_ss(U, A, B, R) \ - (__m128)__builtin_ia32_sqrtss_round_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_broadcast_f32x4(__m128 __A) -{ - return (__m512)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A, - 0, 1, 2, 3, 0, 1, 2, 3, - 0, 1, 2, 3, 0, 1, 2, 3); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcast_f32x4(__m512 __O, __mmask16 __M, __m128 __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, - (__v16sf)_mm512_broadcast_f32x4(__A), - (__v16sf)__O); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcast_f32x4(__mmask16 __M, __m128 __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, - (__v16sf)_mm512_broadcast_f32x4(__A), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_broadcast_f64x4(__m256d __A) -{ - return (__m512d)__builtin_shufflevector((__v4df)__A, (__v4df)__A, - 0, 1, 2, 3, 0, 1, 2, 3); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcast_f64x4(__m512d __O, __mmask8 __M, __m256d __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M, - (__v8df)_mm512_broadcast_f64x4(__A), - (__v8df)__O); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcast_f64x4(__mmask8 __M, __m256d __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M, - (__v8df)_mm512_broadcast_f64x4(__A), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_broadcast_i32x4(__m128i __A) -{ - return (__m512i)__builtin_shufflevector((__v4si)__A, (__v4si)__A, - 0, 1, 2, 3, 0, 1, 2, 3, - 0, 1, 2, 3, 0, 1, 2, 3); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcast_i32x4(__m512i __O, __mmask16 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_broadcast_i32x4(__A), - (__v16si)__O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcast_i32x4(__mmask16 __M, __m128i __A) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_broadcast_i32x4(__A), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_broadcast_i64x4(__m256i __A) -{ - return (__m512i)__builtin_shufflevector((__v4di)__A, (__v4di)__A, - 0, 1, 2, 3, 0, 1, 2, 3); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcast_i64x4(__m512i __O, __mmask8 __M, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_broadcast_i64x4(__A), - (__v8di)__O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcast_i64x4(__mmask8 __M, __m256i __A) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_broadcast_i64x4(__A), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcastsd_pd (__m512d __O, __mmask8 __M, __m128d __A) -{ - return (__m512d)__builtin_ia32_selectpd_512(__M, - (__v8df) _mm512_broadcastsd_pd(__A), - (__v8df) __O); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A) -{ - return (__m512d)__builtin_ia32_selectpd_512(__M, - (__v8df) _mm512_broadcastsd_pd(__A), - (__v8df) _mm512_setzero_pd()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_broadcastss_ps (__m512 __O, __mmask16 __M, __m128 __A) -{ - return (__m512)__builtin_ia32_selectps_512(__M, - (__v16sf) _mm512_broadcastss_ps(__A), - (__v16sf) __O); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_broadcastss_ps (__mmask16 __M, __m128 __A) -{ - return (__m512)__builtin_ia32_selectps_512(__M, - (__v16sf) _mm512_broadcastss_ps(__A), - (__v16sf) _mm512_setzero_ps()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_cvtsepi32_epi8 (__m512i __A) -{ - return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A, - (__v16qi) _mm_undefined_si128 (), - (__mmask16) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtsepi32_epi8 (__mmask16 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A) -{ - __builtin_ia32_pmovsdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtsepi32_epi16 (__m512i __A) -{ - return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A, - (__v16hi) _mm256_undefined_si256 (), - (__mmask16) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A, - (__v16hi) __O, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtsepi32_epi16 (__mmask16 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A, - (__v16hi) _mm256_setzero_si256 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A) -{ - __builtin_ia32_pmovsdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_cvtsepi64_epi8 (__m512i __A) -{ - return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A, - (__v16qi) _mm_undefined_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtsepi64_epi8 (__mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A) -{ - __builtin_ia32_pmovsqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtsepi64_epi32 (__m512i __A) -{ - return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A, - (__v8si) _mm256_undefined_si256 (), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A, - (__v8si) __O, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtsepi64_epi32 (__mmask8 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A, - (__v8si) _mm256_setzero_si256 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi64_storeu_epi32 (void *__P, __mmask8 __M, __m512i __A) -{ - __builtin_ia32_pmovsqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_cvtsepi64_epi16 (__m512i __A) -{ - return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A, - (__v8hi) _mm_undefined_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtsepi64_epi16 (__mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m512i __A) -{ - __builtin_ia32_pmovsqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_cvtusepi32_epi8 (__m512i __A) -{ - return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A, - (__v16qi) _mm_undefined_si128 (), - (__mmask16) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtusepi32_epi8 (__mmask16 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A) -{ - __builtin_ia32_pmovusdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtusepi32_epi16 (__m512i __A) -{ - return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A, - (__v16hi) _mm256_undefined_si256 (), - (__mmask16) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A, - (__v16hi) __O, - __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtusepi32_epi16 (__mmask16 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A, - (__v16hi) _mm256_setzero_si256 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A) -{ - __builtin_ia32_pmovusdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_cvtusepi64_epi8 (__m512i __A) -{ - return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A, - (__v16qi) _mm_undefined_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtusepi64_epi8 (__mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A) -{ - __builtin_ia32_pmovusqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtusepi64_epi32 (__m512i __A) -{ - return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A, - (__v8si) _mm256_undefined_si256 (), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A, - (__v8si) __O, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtusepi64_epi32 (__mmask8 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A, - (__v8si) _mm256_setzero_si256 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A) -{ - __builtin_ia32_pmovusqd512mem_mask ((__v8si*) __P, (__v8di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_cvtusepi64_epi16 (__m512i __A) -{ - return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A, - (__v8hi) _mm_undefined_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtusepi64_epi16 (__mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtusepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A) -{ - __builtin_ia32_pmovusqw512mem_mask ((__v8hi*) __P, (__v8di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi32_epi8 (__m512i __A) -{ - return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A, - (__v16qi) _mm_undefined_si128 (), - (__mmask16) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi32_epi8 (__mmask16 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A) -{ - __builtin_ia32_pmovdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi32_epi16 (__m512i __A) -{ - return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A, - (__v16hi) _mm256_undefined_si256 (), - (__mmask16) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A, - (__v16hi) __O, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi32_epi16 (__mmask16 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A, - (__v16hi) _mm256_setzero_si256 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi32_storeu_epi16 (void * __P, __mmask16 __M, __m512i __A) -{ - __builtin_ia32_pmovdw512mem_mask ((__v16hi *) __P, (__v16si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi64_epi8 (__m512i __A) -{ - return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A, - (__v16qi) _mm_undefined_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi64_epi8 (__mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A) -{ - __builtin_ia32_pmovqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi64_epi32 (__m512i __A) -{ - return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A, - (__v8si) _mm256_undefined_si256 (), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A, - (__v8si) __O, __M); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi64_epi32 (__mmask8 __M, __m512i __A) -{ - return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A, - (__v8si) _mm256_setzero_si256 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A) -{ - __builtin_ia32_pmovqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_cvtepi64_epi16 (__m512i __A) -{ - return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A, - (__v8hi) _mm_undefined_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtepi64_epi16 (__mmask8 __M, __m512i __A) -{ - return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A) -{ - __builtin_ia32_pmovqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M); -} - -#define _mm512_extracti32x4_epi32(A, imm) \ - (__m128i)__builtin_ia32_extracti32x4_mask((__v16si)(__m512i)(A), (int)(imm), \ - (__v4si)_mm_undefined_si128(), \ - (__mmask8)-1) - -#define _mm512_mask_extracti32x4_epi32(W, U, A, imm) \ - (__m128i)__builtin_ia32_extracti32x4_mask((__v16si)(__m512i)(A), (int)(imm), \ - (__v4si)(__m128i)(W), \ - (__mmask8)(U)) - -#define _mm512_maskz_extracti32x4_epi32(U, A, imm) \ - (__m128i)__builtin_ia32_extracti32x4_mask((__v16si)(__m512i)(A), (int)(imm), \ - (__v4si)_mm_setzero_si128(), \ - (__mmask8)(U)) - -#define _mm512_extracti64x4_epi64(A, imm) \ - (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(A), (int)(imm), \ - (__v4di)_mm256_undefined_si256(), \ - (__mmask8)-1) - -#define _mm512_mask_extracti64x4_epi64(W, U, A, imm) \ - (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(A), (int)(imm), \ - (__v4di)(__m256i)(W), \ - (__mmask8)(U)) - -#define _mm512_maskz_extracti64x4_epi64(U, A, imm) \ - (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(A), (int)(imm), \ - (__v4di)_mm256_setzero_si256(), \ - (__mmask8)(U)) - -#define _mm512_insertf64x4(A, B, imm) \ - (__m512d)__builtin_ia32_insertf64x4((__v8df)(__m512d)(A), \ - (__v4df)(__m256d)(B), (int)(imm)) - -#define _mm512_mask_insertf64x4(W, U, A, B, imm) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_insertf64x4((A), (B), (imm)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_insertf64x4(U, A, B, imm) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_insertf64x4((A), (B), (imm)), \ - (__v8df)_mm512_setzero_pd()) - -#define _mm512_inserti64x4(A, B, imm) \ - (__m512i)__builtin_ia32_inserti64x4((__v8di)(__m512i)(A), \ - (__v4di)(__m256i)(B), (int)(imm)) - -#define _mm512_mask_inserti64x4(W, U, A, B, imm) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_inserti64x4((A), (B), (imm)), \ - (__v8di)(__m512i)(W)) - -#define _mm512_maskz_inserti64x4(U, A, B, imm) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_inserti64x4((A), (B), (imm)), \ - (__v8di)_mm512_setzero_si512()) - -#define _mm512_insertf32x4(A, B, imm) \ - (__m512)__builtin_ia32_insertf32x4((__v16sf)(__m512)(A), \ - (__v4sf)(__m128)(B), (int)(imm)) - -#define _mm512_mask_insertf32x4(W, U, A, B, imm) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_insertf32x4((A), (B), (imm)), \ - (__v16sf)(__m512)(W)) - -#define _mm512_maskz_insertf32x4(U, A, B, imm) \ - (__m512)__builtin_ia32_selectps_512((__mmask16)(U), \ - (__v16sf)_mm512_insertf32x4((A), (B), (imm)), \ - (__v16sf)_mm512_setzero_ps()) - -#define _mm512_inserti32x4(A, B, imm) \ - (__m512i)__builtin_ia32_inserti32x4((__v16si)(__m512i)(A), \ - (__v4si)(__m128i)(B), (int)(imm)) - -#define _mm512_mask_inserti32x4(W, U, A, B, imm) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_inserti32x4((A), (B), (imm)), \ - (__v16si)(__m512i)(W)) - -#define _mm512_maskz_inserti32x4(U, A, B, imm) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_inserti32x4((A), (B), (imm)), \ - (__v16si)_mm512_setzero_si512()) - -#define _mm512_getmant_round_pd(A, B, C, R) \ - (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v8df)_mm512_undefined_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_getmant_round_pd(W, U, A, B, C, R) \ - (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v8df)(__m512d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_getmant_round_pd(U, A, B, C, R) \ - (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_getmant_pd(A, B, C) \ - (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_getmant_pd(W, U, A, B, C) \ - (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v8df)(__m512d)(W), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_getmant_pd(U, A, B, C) \ - (__m512d)__builtin_ia32_getmantpd512_mask((__v8df)(__m512d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_getmant_round_ps(A, B, C, R) \ - (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \ - (int)(((C)<<2) | (B)), \ - (__v16sf)_mm512_undefined_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_getmant_round_ps(W, U, A, B, C, R) \ - (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \ - (int)(((C)<<2) | (B)), \ - (__v16sf)(__m512)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_getmant_round_ps(U, A, B, C, R) \ - (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \ - (int)(((C)<<2) | (B)), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_getmant_ps(A, B, C) \ - (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \ - (int)(((C)<<2)|(B)), \ - (__v16sf)_mm512_undefined_ps(), \ - (__mmask16)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_mask_getmant_ps(W, U, A, B, C) \ - (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \ - (int)(((C)<<2)|(B)), \ - (__v16sf)(__m512)(W), \ - (__mmask16)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_maskz_getmant_ps(U, A, B, C) \ - (__m512)__builtin_ia32_getmantps512_mask((__v16sf)(__m512)(A), \ - (int)(((C)<<2)|(B)), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm512_getexp_round_pd(A, R) \ - (__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \ - (__v8df)_mm512_undefined_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_getexp_round_pd(W, U, A, R) \ - (__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \ - (__v8df)(__m512d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_getexp_round_pd(U, A, R) \ - (__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_getexp_pd (__m512d __A) -{ - return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A, - (__v8df) _mm512_undefined_pd (), - (__mmask8) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_getexp_pd (__m512d __W, __mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A, - (__v8df) __W, - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_getexp_pd (__mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A, - (__v8df) _mm512_setzero_pd (), - (__mmask8) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_getexp_round_ps(A, R) \ - (__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)_mm512_undefined_ps(), \ - (__mmask16)-1, (int)(R)) - -#define _mm512_mask_getexp_round_ps(W, U, A, R) \ - (__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)(__m512)(W), \ - (__mmask16)(U), (int)(R)) - -#define _mm512_maskz_getexp_round_ps(U, A, R) \ - (__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \ - (__v16sf)_mm512_setzero_ps(), \ - (__mmask16)(U), (int)(R)) - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_getexp_ps (__m512 __A) -{ - return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A, - (__v16sf) _mm512_undefined_ps (), - (__mmask16) -1, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_getexp_ps (__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A, - (__v16sf) __W, - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_getexp_ps (__mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A, - (__v16sf) _mm512_setzero_ps (), - (__mmask16) __U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm512_i64gather_ps(index, addr, scale) \ - (__m256)__builtin_ia32_gatherdiv16sf((__v8sf)_mm256_undefined_ps(), \ - (void const *)(addr), \ - (__v8di)(__m512i)(index), (__mmask8)-1, \ - (int)(scale)) - -#define _mm512_mask_i64gather_ps(v1_old, mask, index, addr, scale) \ - (__m256)__builtin_ia32_gatherdiv16sf((__v8sf)(__m256)(v1_old),\ - (void const *)(addr), \ - (__v8di)(__m512i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm512_i64gather_epi32(index, addr, scale) \ - (__m256i)__builtin_ia32_gatherdiv16si((__v8si)_mm256_undefined_si256(), \ - (void const *)(addr), \ - (__v8di)(__m512i)(index), \ - (__mmask8)-1, (int)(scale)) - -#define _mm512_mask_i64gather_epi32(v1_old, mask, index, addr, scale) \ - (__m256i)__builtin_ia32_gatherdiv16si((__v8si)(__m256i)(v1_old), \ - (void const *)(addr), \ - (__v8di)(__m512i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm512_i64gather_pd(index, addr, scale) \ - (__m512d)__builtin_ia32_gatherdiv8df((__v8df)_mm512_undefined_pd(), \ - (void const *)(addr), \ - (__v8di)(__m512i)(index), (__mmask8)-1, \ - (int)(scale)) - -#define _mm512_mask_i64gather_pd(v1_old, mask, index, addr, scale) \ - (__m512d)__builtin_ia32_gatherdiv8df((__v8df)(__m512d)(v1_old), \ - (void const *)(addr), \ - (__v8di)(__m512i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm512_i64gather_epi64(index, addr, scale) \ - (__m512i)__builtin_ia32_gatherdiv8di((__v8di)_mm512_undefined_epi32(), \ - (void const *)(addr), \ - (__v8di)(__m512i)(index), (__mmask8)-1, \ - (int)(scale)) - -#define _mm512_mask_i64gather_epi64(v1_old, mask, index, addr, scale) \ - (__m512i)__builtin_ia32_gatherdiv8di((__v8di)(__m512i)(v1_old), \ - (void const *)(addr), \ - (__v8di)(__m512i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm512_i32gather_ps(index, addr, scale) \ - (__m512)__builtin_ia32_gathersiv16sf((__v16sf)_mm512_undefined_ps(), \ - (void const *)(addr), \ - (__v16sf)(__m512)(index), \ - (__mmask16)-1, (int)(scale)) - -#define _mm512_mask_i32gather_ps(v1_old, mask, index, addr, scale) \ - (__m512)__builtin_ia32_gathersiv16sf((__v16sf)(__m512)(v1_old), \ - (void const *)(addr), \ - (__v16sf)(__m512)(index), \ - (__mmask16)(mask), (int)(scale)) - -#define _mm512_i32gather_epi32(index, addr, scale) \ - (__m512i)__builtin_ia32_gathersiv16si((__v16si)_mm512_undefined_epi32(), \ - (void const *)(addr), \ - (__v16si)(__m512i)(index), \ - (__mmask16)-1, (int)(scale)) - -#define _mm512_mask_i32gather_epi32(v1_old, mask, index, addr, scale) \ - (__m512i)__builtin_ia32_gathersiv16si((__v16si)(__m512i)(v1_old), \ - (void const *)(addr), \ - (__v16si)(__m512i)(index), \ - (__mmask16)(mask), (int)(scale)) - -#define _mm512_i32gather_pd(index, addr, scale) \ - (__m512d)__builtin_ia32_gathersiv8df((__v8df)_mm512_undefined_pd(), \ - (void const *)(addr), \ - (__v8si)(__m256i)(index), (__mmask8)-1, \ - (int)(scale)) - -#define _mm512_mask_i32gather_pd(v1_old, mask, index, addr, scale) \ - (__m512d)__builtin_ia32_gathersiv8df((__v8df)(__m512d)(v1_old), \ - (void const *)(addr), \ - (__v8si)(__m256i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm512_i32gather_epi64(index, addr, scale) \ - (__m512i)__builtin_ia32_gathersiv8di((__v8di)_mm512_undefined_epi32(), \ - (void const *)(addr), \ - (__v8si)(__m256i)(index), (__mmask8)-1, \ - (int)(scale)) - -#define _mm512_mask_i32gather_epi64(v1_old, mask, index, addr, scale) \ - (__m512i)__builtin_ia32_gathersiv8di((__v8di)(__m512i)(v1_old), \ - (void const *)(addr), \ - (__v8si)(__m256i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm512_i64scatter_ps(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv16sf((void *)(addr), (__mmask8)-1, \ - (__v8di)(__m512i)(index), \ - (__v8sf)(__m256)(v1), (int)(scale)) - -#define _mm512_mask_i64scatter_ps(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv16sf((void *)(addr), (__mmask8)(mask), \ - (__v8di)(__m512i)(index), \ - (__v8sf)(__m256)(v1), (int)(scale)) - -#define _mm512_i64scatter_epi32(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv16si((void *)(addr), (__mmask8)-1, \ - (__v8di)(__m512i)(index), \ - (__v8si)(__m256i)(v1), (int)(scale)) - -#define _mm512_mask_i64scatter_epi32(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv16si((void *)(addr), (__mmask8)(mask), \ - (__v8di)(__m512i)(index), \ - (__v8si)(__m256i)(v1), (int)(scale)) - -#define _mm512_i64scatter_pd(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv8df((void *)(addr), (__mmask8)-1, \ - (__v8di)(__m512i)(index), \ - (__v8df)(__m512d)(v1), (int)(scale)) - -#define _mm512_mask_i64scatter_pd(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv8df((void *)(addr), (__mmask8)(mask), \ - (__v8di)(__m512i)(index), \ - (__v8df)(__m512d)(v1), (int)(scale)) - -#define _mm512_i64scatter_epi64(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv8di((void *)(addr), (__mmask8)-1, \ - (__v8di)(__m512i)(index), \ - (__v8di)(__m512i)(v1), (int)(scale)) - -#define _mm512_mask_i64scatter_epi64(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv8di((void *)(addr), (__mmask8)(mask), \ - (__v8di)(__m512i)(index), \ - (__v8di)(__m512i)(v1), (int)(scale)) - -#define _mm512_i32scatter_ps(addr, index, v1, scale) \ - __builtin_ia32_scattersiv16sf((void *)(addr), (__mmask16)-1, \ - (__v16si)(__m512i)(index), \ - (__v16sf)(__m512)(v1), (int)(scale)) - -#define _mm512_mask_i32scatter_ps(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv16sf((void *)(addr), (__mmask16)(mask), \ - (__v16si)(__m512i)(index), \ - (__v16sf)(__m512)(v1), (int)(scale)) - -#define _mm512_i32scatter_epi32(addr, index, v1, scale) \ - __builtin_ia32_scattersiv16si((void *)(addr), (__mmask16)-1, \ - (__v16si)(__m512i)(index), \ - (__v16si)(__m512i)(v1), (int)(scale)) - -#define _mm512_mask_i32scatter_epi32(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv16si((void *)(addr), (__mmask16)(mask), \ - (__v16si)(__m512i)(index), \ - (__v16si)(__m512i)(v1), (int)(scale)) - -#define _mm512_i32scatter_pd(addr, index, v1, scale) \ - __builtin_ia32_scattersiv8df((void *)(addr), (__mmask8)-1, \ - (__v8si)(__m256i)(index), \ - (__v8df)(__m512d)(v1), (int)(scale)) - -#define _mm512_mask_i32scatter_pd(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv8df((void *)(addr), (__mmask8)(mask), \ - (__v8si)(__m256i)(index), \ - (__v8df)(__m512d)(v1), (int)(scale)) - -#define _mm512_i32scatter_epi64(addr, index, v1, scale) \ - __builtin_ia32_scattersiv8di((void *)(addr), (__mmask8)-1, \ - (__v8si)(__m256i)(index), \ - (__v8di)(__m512i)(v1), (int)(scale)) - -#define _mm512_mask_i32scatter_epi64(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv8di((void *)(addr), (__mmask8)(mask), \ - (__v8si)(__m256i)(index), \ - (__v8di)(__m512i)(v1), (int)(scale)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_fmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return __builtin_ia32_vfmaddss3_mask((__v4sf)__W, - (__v4sf)__A, - (__v4sf)__B, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_fmadd_round_ss(A, B, C, R) \ - (__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(C), (__mmask8)-1, \ - (int)(R)) - -#define _mm_mask_fmadd_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(W), \ - (__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_fmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) -{ - return __builtin_ia32_vfmaddss3_maskz((__v4sf)__A, - (__v4sf)__B, - (__v4sf)__C, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_fmadd_round_ss(U, A, B, C, R) \ - (__m128)__builtin_ia32_vfmaddss3_maskz((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(C), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask3_fmadd_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) -{ - return __builtin_ia32_vfmaddss3_mask3((__v4sf)__W, - (__v4sf)__X, - (__v4sf)__Y, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask3_fmadd_round_ss(W, X, Y, U, R) \ - (__m128)__builtin_ia32_vfmaddss3_mask3((__v4sf)(__m128)(W), \ - (__v4sf)(__m128)(X), \ - (__v4sf)(__m128)(Y), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_fmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return __builtin_ia32_vfmaddss3_mask((__v4sf)__W, - (__v4sf)__A, - -(__v4sf)__B, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_fmsub_round_ss(A, B, C, R) \ - (__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - -(__v4sf)(__m128)(C), (__mmask8)-1, \ - (int)(R)) - -#define _mm_mask_fmsub_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(W), \ - (__v4sf)(__m128)(A), \ - -(__v4sf)(__m128)(B), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_fmsub_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) -{ - return __builtin_ia32_vfmaddss3_maskz((__v4sf)__A, - (__v4sf)__B, - -(__v4sf)__C, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_fmsub_round_ss(U, A, B, C, R) \ - (__m128)__builtin_ia32_vfmaddss3_maskz((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - -(__v4sf)(__m128)(C), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask3_fmsub_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) -{ - return __builtin_ia32_vfmsubss3_mask3((__v4sf)__W, - (__v4sf)__X, - (__v4sf)__Y, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask3_fmsub_round_ss(W, X, Y, U, R) \ - (__m128)__builtin_ia32_vfmsubss3_mask3((__v4sf)(__m128)(W), \ - (__v4sf)(__m128)(X), \ - (__v4sf)(__m128)(Y), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_fnmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return __builtin_ia32_vfmaddss3_mask((__v4sf)__W, - -(__v4sf)__A, - (__v4sf)__B, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_fnmadd_round_ss(A, B, C, R) \ - (__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(A), \ - -(__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(C), (__mmask8)-1, \ - (int)(R)) - -#define _mm_mask_fnmadd_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(W), \ - -(__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_fnmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) -{ - return __builtin_ia32_vfmaddss3_maskz((__v4sf)__A, - -(__v4sf)__B, - (__v4sf)__C, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_fnmadd_round_ss(U, A, B, C, R) \ - (__m128)__builtin_ia32_vfmaddss3_maskz((__v4sf)(__m128)(A), \ - -(__v4sf)(__m128)(B), \ - (__v4sf)(__m128)(C), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask3_fnmadd_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) -{ - return __builtin_ia32_vfmaddss3_mask3((__v4sf)__W, - -(__v4sf)__X, - (__v4sf)__Y, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask3_fnmadd_round_ss(W, X, Y, U, R) \ - (__m128)__builtin_ia32_vfmaddss3_mask3((__v4sf)(__m128)(W), \ - -(__v4sf)(__m128)(X), \ - (__v4sf)(__m128)(Y), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_fnmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return __builtin_ia32_vfmaddss3_mask((__v4sf)__W, - -(__v4sf)__A, - -(__v4sf)__B, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_fnmsub_round_ss(A, B, C, R) \ - (__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(A), \ - -(__v4sf)(__m128)(B), \ - -(__v4sf)(__m128)(C), (__mmask8)-1, \ - (int)(R)) - -#define _mm_mask_fnmsub_round_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_vfmaddss3_mask((__v4sf)(__m128)(W), \ - -(__v4sf)(__m128)(A), \ - -(__v4sf)(__m128)(B), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_fnmsub_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) -{ - return __builtin_ia32_vfmaddss3_maskz((__v4sf)__A, - -(__v4sf)__B, - -(__v4sf)__C, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_fnmsub_round_ss(U, A, B, C, R) \ - (__m128)__builtin_ia32_vfmaddss3_maskz((__v4sf)(__m128)(A), \ - -(__v4sf)(__m128)(B), \ - -(__v4sf)(__m128)(C), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask3_fnmsub_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) -{ - return __builtin_ia32_vfmsubss3_mask3((__v4sf)__W, - -(__v4sf)__X, - (__v4sf)__Y, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask3_fnmsub_round_ss(W, X, Y, U, R) \ - (__m128)__builtin_ia32_vfmsubss3_mask3((__v4sf)(__m128)(W), \ - -(__v4sf)(__m128)(X), \ - (__v4sf)(__m128)(Y), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_fmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return __builtin_ia32_vfmaddsd3_mask((__v2df)__W, - (__v2df)__A, - (__v2df)__B, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_fmadd_round_sd(A, B, C, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(C), (__mmask8)-1, \ - (int)(R)) - -#define _mm_mask_fmadd_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(W), \ - (__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_fmadd_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) -{ - return __builtin_ia32_vfmaddsd3_maskz((__v2df)__A, - (__v2df)__B, - (__v2df)__C, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_fmadd_round_sd(U, A, B, C, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_maskz((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(C), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask3_fmadd_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U) -{ - return __builtin_ia32_vfmaddsd3_mask3((__v2df)__W, - (__v2df)__X, - (__v2df)__Y, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask3_fmadd_round_sd(W, X, Y, U, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_mask3((__v2df)(__m128d)(W), \ - (__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_fmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return __builtin_ia32_vfmaddsd3_mask((__v2df)__W, - (__v2df)__A, - -(__v2df)__B, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_fmsub_round_sd(A, B, C, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - -(__v2df)(__m128d)(C), (__mmask8)-1, \ - (int)(R)) - -#define _mm_mask_fmsub_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(W), \ - (__v2df)(__m128d)(A), \ - -(__v2df)(__m128d)(B), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_fmsub_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) -{ - return __builtin_ia32_vfmaddsd3_maskz((__v2df)__A, - (__v2df)__B, - -(__v2df)__C, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_fmsub_round_sd(U, A, B, C, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_maskz((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - -(__v2df)(__m128d)(C), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask3_fmsub_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U) -{ - return __builtin_ia32_vfmsubsd3_mask3((__v2df)__W, - (__v2df)__X, - (__v2df)__Y, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask3_fmsub_round_sd(W, X, Y, U, R) \ - (__m128d)__builtin_ia32_vfmsubsd3_mask3((__v2df)(__m128d)(W), \ - (__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_fnmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return __builtin_ia32_vfmaddsd3_mask((__v2df)__W, - -(__v2df)__A, - (__v2df)__B, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_fnmadd_round_sd(A, B, C, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(A), \ - -(__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(C), (__mmask8)-1, \ - (int)(R)) - -#define _mm_mask_fnmadd_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(W), \ - -(__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_fnmadd_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) -{ - return __builtin_ia32_vfmaddsd3_maskz((__v2df)__A, - -(__v2df)__B, - (__v2df)__C, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_fnmadd_round_sd(U, A, B, C, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_maskz((__v2df)(__m128d)(A), \ - -(__v2df)(__m128d)(B), \ - (__v2df)(__m128d)(C), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask3_fnmadd_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U) -{ - return __builtin_ia32_vfmaddsd3_mask3((__v2df)__W, - -(__v2df)__X, - (__v2df)__Y, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask3_fnmadd_round_sd(W, X, Y, U, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_mask3((__v2df)(__m128d)(W), \ - -(__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_fnmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return __builtin_ia32_vfmaddsd3_mask((__v2df)__W, - -(__v2df)__A, - -(__v2df)__B, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_fnmsub_round_sd(A, B, C, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(A), \ - -(__v2df)(__m128d)(B), \ - -(__v2df)(__m128d)(C), (__mmask8)-1, \ - (int)(R)) - -#define _mm_mask_fnmsub_round_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_mask((__v2df)(__m128d)(W), \ - -(__v2df)(__m128d)(A), \ - -(__v2df)(__m128d)(B), (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_fnmsub_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) -{ - return __builtin_ia32_vfmaddsd3_maskz((__v2df)__A, - -(__v2df)__B, - -(__v2df)__C, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_maskz_fnmsub_round_sd(U, A, B, C, R) \ - (__m128d)__builtin_ia32_vfmaddsd3_maskz((__v2df)(__m128d)(A), \ - -(__v2df)(__m128d)(B), \ - -(__v2df)(__m128d)(C), \ - (__mmask8)(U), \ - (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask3_fnmsub_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U) -{ - return __builtin_ia32_vfmsubsd3_mask3((__v2df)__W, - -(__v2df)__X, - (__v2df)__Y, - (__mmask8)__U, - _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_mask3_fnmsub_round_sd(W, X, Y, U, R) \ - (__m128d)__builtin_ia32_vfmsubsd3_mask3((__v2df)(__m128d)(W), \ - -(__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_permutex_pd(X, C) \ - (__m512d)__builtin_ia32_permdf512((__v8df)(__m512d)(X), (int)(C)) - -#define _mm512_mask_permutex_pd(W, U, X, C) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_permutex_pd((X), (C)), \ - (__v8df)(__m512d)(W)) - -#define _mm512_maskz_permutex_pd(U, X, C) \ - (__m512d)__builtin_ia32_selectpd_512((__mmask8)(U), \ - (__v8df)_mm512_permutex_pd((X), (C)), \ - (__v8df)_mm512_setzero_pd()) - -#define _mm512_permutex_epi64(X, C) \ - (__m512i)__builtin_ia32_permdi512((__v8di)(__m512i)(X), (int)(C)) - -#define _mm512_mask_permutex_epi64(W, U, X, C) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_permutex_epi64((X), (C)), \ - (__v8di)(__m512i)(W)) - -#define _mm512_maskz_permutex_epi64(U, X, C) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_permutex_epi64((X), (C)), \ - (__v8di)_mm512_setzero_si512()) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_permutexvar_pd (__m512i __X, __m512d __Y) -{ - return (__m512d)__builtin_ia32_permvardf512((__v8df) __Y, (__v8di) __X); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_permutexvar_pd(__X, __Y), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_permutexvar_pd(__X, __Y), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_permutexvar_epi64 (__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_permvardi512((__v8di)__Y, (__v8di)__X); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_permutexvar_epi64(__X, __Y), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X, - __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, - (__v8di)_mm512_permutexvar_epi64(__X, __Y), - (__v8di)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_permutexvar_ps (__m512i __X, __m512 __Y) -{ - return (__m512)__builtin_ia32_permvarsf512((__v16sf)__Y, (__v16si)__X); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_permutexvar_ps(__X, __Y), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_permutexvar_ps(__X, __Y), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_permutexvar_epi32 (__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_permvarsi512((__v16si)__Y, (__v16si)__X); -} - -#define _mm512_permutevar_epi32 _mm512_permutexvar_epi32 - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_permutexvar_epi32(__X, __Y), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X, - __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, - (__v16si)_mm512_permutexvar_epi32(__X, __Y), - (__v16si)__W); -} - -#define _mm512_mask_permutevar_epi32 _mm512_mask_permutexvar_epi32 - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_kand (__mmask16 __A, __mmask16 __B) -{ - return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_kandn (__mmask16 __A, __mmask16 __B) -{ - return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A, (__mmask16) __B); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_kor (__mmask16 __A, __mmask16 __B) -{ - return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B); -} - -static __inline__ int __DEFAULT_FN_ATTRS -_mm512_kortestc (__mmask16 __A, __mmask16 __B) -{ - return __builtin_ia32_kortestchi ((__mmask16) __A, (__mmask16) __B); -} - -static __inline__ int __DEFAULT_FN_ATTRS -_mm512_kortestz (__mmask16 __A, __mmask16 __B) -{ - return __builtin_ia32_kortestzhi ((__mmask16) __A, (__mmask16) __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortestc_mask16_u8(__mmask16 __A, __mmask16 __B) -{ - return (unsigned char)__builtin_ia32_kortestchi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortestz_mask16_u8(__mmask16 __A, __mmask16 __B) -{ - return (unsigned char)__builtin_ia32_kortestzhi(__A, __B); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_kortest_mask16_u8(__mmask16 __A, __mmask16 __B, unsigned char *__C) { - *__C = (unsigned char)__builtin_ia32_kortestchi(__A, __B); - return (unsigned char)__builtin_ia32_kortestzhi(__A, __B); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_kunpackb (__mmask16 __A, __mmask16 __B) -{ - return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_kxnor (__mmask16 __A, __mmask16 __B) -{ - return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_mm512_kxor (__mmask16 __A, __mmask16 __B) -{ - return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B); -} - -#define _kand_mask16 _mm512_kand -#define _kandn_mask16 _mm512_kandn -#define _knot_mask16 _mm512_knot -#define _kor_mask16 _mm512_kor -#define _kxnor_mask16 _mm512_kxnor -#define _kxor_mask16 _mm512_kxor - -#define _kshiftli_mask16(A, I) \ - (__mmask16)__builtin_ia32_kshiftlihi((__mmask16)(A), (unsigned int)(I)) - -#define _kshiftri_mask16(A, I) \ - (__mmask16)__builtin_ia32_kshiftrihi((__mmask16)(A), (unsigned int)(I)) - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_cvtmask16_u32(__mmask16 __A) { - return (unsigned int)__builtin_ia32_kmovw((__mmask16)__A); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_cvtu32_mask16(unsigned int __A) { - return (__mmask16)__builtin_ia32_kmovw((__mmask16)__A); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS -_load_mask16(__mmask16 *__A) { - return (__mmask16)__builtin_ia32_kmovw(*(__mmask16 *)__A); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_store_mask16(__mmask16 *__A, __mmask16 __B) { - *(__mmask16 *)__A = __builtin_ia32_kmovw((__mmask16)__B); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_stream_si512 (__m512i * __P, __m512i __A) -{ - typedef __v8di __v8di_aligned __attribute__((aligned(64))); - __builtin_nontemporal_store((__v8di_aligned)__A, (__v8di_aligned*)__P); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_stream_load_si512 (void const *__P) -{ - typedef __v8di __v8di_aligned __attribute__((aligned(64))); - return (__m512i) __builtin_nontemporal_load((const __v8di_aligned *)__P); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_stream_pd (double *__P, __m512d __A) -{ - typedef __v8df __v8df_aligned __attribute__((aligned(64))); - __builtin_nontemporal_store((__v8df_aligned)__A, (__v8df_aligned*)__P); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_stream_ps (float *__P, __m512 __A) -{ - typedef __v16sf __v16sf_aligned __attribute__((aligned(64))); - __builtin_nontemporal_store((__v16sf_aligned)__A, (__v16sf_aligned*)__P); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_compress_pd (__m512d __W, __mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A, - (__v8df) __W, - (__mmask8) __U); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_compress_pd (__mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A, - (__v8df) - _mm512_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_compress_epi64 (__m512i __W, __mmask8 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A, - (__v8di) __W, - (__mmask8) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_compress_epi64 (__mmask8 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A, - (__v8di) - _mm512_setzero_si512 (), - (__mmask8) __U); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_compress_ps (__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A, - (__v16sf) __W, - (__mmask16) __U); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_compress_ps (__mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A, - (__v16sf) - _mm512_setzero_ps (), - (__mmask16) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_compress_epi32 (__m512i __W, __mmask16 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A, - (__v16si) __W, - (__mmask16) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_compress_epi32 (__mmask16 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A, - (__v16si) - _mm512_setzero_si512 (), - (__mmask16) __U); -} - -#define _mm_cmp_round_ss_mask(X, Y, P, R) \ - (__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \ - (__v4sf)(__m128)(Y), (int)(P), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) \ - (__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \ - (__v4sf)(__m128)(Y), (int)(P), \ - (__mmask8)(M), (int)(R)) - -#define _mm_cmp_ss_mask(X, Y, P) \ - (__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \ - (__v4sf)(__m128)(Y), (int)(P), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_cmp_ss_mask(M, X, Y, P) \ - (__mmask8)__builtin_ia32_cmpss_mask((__v4sf)(__m128)(X), \ - (__v4sf)(__m128)(Y), (int)(P), \ - (__mmask8)(M), \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_cmp_round_sd_mask(X, Y, P, R) \ - (__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), (int)(P), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) \ - (__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), (int)(P), \ - (__mmask8)(M), (int)(R)) - -#define _mm_cmp_sd_mask(X, Y, P) \ - (__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), (int)(P), \ - (__mmask8)-1, \ - _MM_FROUND_CUR_DIRECTION) - -#define _mm_mask_cmp_sd_mask(M, X, Y, P) \ - (__mmask8)__builtin_ia32_cmpsd_mask((__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), (int)(P), \ - (__mmask8)(M), \ - _MM_FROUND_CUR_DIRECTION) - -/* Bit Test */ - -static __inline __mmask16 __DEFAULT_FN_ATTRS512 -_mm512_test_epi32_mask (__m512i __A, __m512i __B) -{ - return _mm512_cmpneq_epi32_mask (_mm512_and_epi32(__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS512 -_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) -{ - return _mm512_mask_cmpneq_epi32_mask (__U, _mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline __mmask8 __DEFAULT_FN_ATTRS512 -_mm512_test_epi64_mask (__m512i __A, __m512i __B) -{ - return _mm512_cmpneq_epi64_mask (_mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS512 -_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) -{ - return _mm512_mask_cmpneq_epi64_mask (__U, _mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS512 -_mm512_testn_epi32_mask (__m512i __A, __m512i __B) -{ - return _mm512_cmpeq_epi32_mask (_mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS512 -_mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) -{ - return _mm512_mask_cmpeq_epi32_mask (__U, _mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS512 -_mm512_testn_epi64_mask (__m512i __A, __m512i __B) -{ - return _mm512_cmpeq_epi64_mask (_mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS512 -_mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) -{ - return _mm512_mask_cmpeq_epi64_mask (__U, _mm512_and_epi32 (__A, __B), - _mm512_setzero_si512()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_movehdup_ps (__m512 __A) -{ - return (__m512)__builtin_shufflevector((__v16sf)__A, (__v16sf)__A, - 1, 1, 3, 3, 5, 5, 7, 7, 9, 9, 11, 11, 13, 13, 15, 15); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_movehdup_ps (__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_movehdup_ps(__A), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_movehdup_ps (__mmask16 __U, __m512 __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_movehdup_ps(__A), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_moveldup_ps (__m512 __A) -{ - return (__m512)__builtin_shufflevector((__v16sf)__A, (__v16sf)__A, - 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_moveldup_ps (__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_moveldup_ps(__A), - (__v16sf)__W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_moveldup_ps (__mmask16 __U, __m512 __A) -{ - return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, - (__v16sf)_mm512_moveldup_ps(__A), - (__v16sf)_mm512_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_move_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return __builtin_ia32_selectss_128(__U, _mm_move_ss(__A, __B), __W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_move_ss (__mmask8 __U, __m128 __A, __m128 __B) -{ - return __builtin_ia32_selectss_128(__U, _mm_move_ss(__A, __B), - _mm_setzero_ps()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_move_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return __builtin_ia32_selectsd_128(__U, _mm_move_sd(__A, __B), __W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_move_sd (__mmask8 __U, __m128d __A, __m128d __B) -{ - return __builtin_ia32_selectsd_128(__U, _mm_move_sd(__A, __B), - _mm_setzero_pd()); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_store_ss (float * __W, __mmask8 __U, __m128 __A) -{ - __builtin_ia32_storess128_mask ((__v4sf *)__W, __A, __U & 1); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_store_sd (double * __W, __mmask8 __U, __m128d __A) -{ - __builtin_ia32_storesd128_mask ((__v2df *)__W, __A, __U & 1); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_load_ss (__m128 __W, __mmask8 __U, const float* __A) -{ - __m128 src = (__v4sf) __builtin_shufflevector((__v4sf) __W, - (__v4sf)_mm_setzero_ps(), - 0, 4, 4, 4); - - return (__m128) __builtin_ia32_loadss128_mask ((__v4sf *) __A, src, __U & 1); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_load_ss (__mmask8 __U, const float* __A) -{ - return (__m128)__builtin_ia32_loadss128_mask ((__v4sf *) __A, - (__v4sf) _mm_setzero_ps(), - __U & 1); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_load_sd (__m128d __W, __mmask8 __U, const double* __A) -{ - __m128d src = (__v2df) __builtin_shufflevector((__v2df) __W, - (__v2df)_mm_setzero_pd(), - 0, 2); - - return (__m128d) __builtin_ia32_loadsd128_mask ((__v2df *) __A, src, __U & 1); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_load_sd (__mmask8 __U, const double* __A) -{ - return (__m128d) __builtin_ia32_loadsd128_mask ((__v2df *) __A, - (__v2df) _mm_setzero_pd(), - __U & 1); -} - -#define _mm512_shuffle_epi32(A, I) \ - (__m512i)__builtin_ia32_pshufd512((__v16si)(__m512i)(A), (int)(I)) - -#define _mm512_mask_shuffle_epi32(W, U, A, I) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_shuffle_epi32((A), (I)), \ - (__v16si)(__m512i)(W)) - -#define _mm512_maskz_shuffle_epi32(U, A, I) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_shuffle_epi32((A), (I)), \ - (__v16si)_mm512_setzero_si512()) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_expand_pd (__m512d __W, __mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A, - (__v8df) __W, - (__mmask8) __U); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_expand_pd (__mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A, - (__v8df) _mm512_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_expand_epi64 (__m512i __W, __mmask8 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A, - (__v8di) __W, - (__mmask8) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_expand_epi64 ( __mmask8 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A, - (__v8di) _mm512_setzero_si512 (), - (__mmask8) __U); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_expandloadu_pd(__m512d __W, __mmask8 __U, void const *__P) -{ - return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *)__P, - (__v8df) __W, - (__mmask8) __U); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_expandloadu_pd(__mmask8 __U, void const *__P) -{ - return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *)__P, - (__v8df) _mm512_setzero_pd(), - (__mmask8) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_expandloadu_epi64(__m512i __W, __mmask8 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *)__P, - (__v8di) __W, - (__mmask8) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *)__P, - (__v8di) _mm512_setzero_si512(), - (__mmask8) __U); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_expandloadu_ps(__m512 __W, __mmask16 __U, void const *__P) -{ - return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *)__P, - (__v16sf) __W, - (__mmask16) __U); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_expandloadu_ps(__mmask16 __U, void const *__P) -{ - return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *)__P, - (__v16sf) _mm512_setzero_ps(), - (__mmask16) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_expandloadu_epi32(__m512i __W, __mmask16 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *)__P, - (__v16si) __W, - (__mmask16) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *)__P, - (__v16si) _mm512_setzero_si512(), - (__mmask16) __U); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_expand_ps (__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A, - (__v16sf) __W, - (__mmask16) __U); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_expand_ps (__mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A, - (__v16sf) _mm512_setzero_ps(), - (__mmask16) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_expand_epi32 (__m512i __W, __mmask16 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A, - (__v16si) __W, - (__mmask16) __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_maskz_expand_epi32 (__mmask16 __U, __m512i __A) -{ - return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A, - (__v16si) _mm512_setzero_si512(), - (__mmask16) __U); -} - -#define _mm512_cvt_roundps_pd(A, R) \ - (__m512d)__builtin_ia32_cvtps2pd512_mask((__v8sf)(__m256)(A), \ - (__v8df)_mm512_undefined_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm512_mask_cvt_roundps_pd(W, U, A, R) \ - (__m512d)__builtin_ia32_cvtps2pd512_mask((__v8sf)(__m256)(A), \ - (__v8df)(__m512d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm512_maskz_cvt_roundps_pd(U, A, R) \ - (__m512d)__builtin_ia32_cvtps2pd512_mask((__v8sf)(__m256)(A), \ - (__v8df)_mm512_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_cvtps_pd (__m256 __A) -{ - return (__m512d) __builtin_convertvector((__v8sf)__A, __v8df); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtps_pd (__m512d __W, __mmask8 __U, __m256 __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_cvtps_pd(__A), - (__v8df)__W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_cvtps_pd (__mmask8 __U, __m256 __A) -{ - return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, - (__v8df)_mm512_cvtps_pd(__A), - (__v8df)_mm512_setzero_pd()); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_cvtpslo_pd (__m512 __A) -{ - return (__m512d) _mm512_cvtps_pd(_mm512_castps512_ps256(__A)); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_cvtpslo_pd (__m512d __W, __mmask8 __U, __m512 __A) -{ - return (__m512d) _mm512_mask_cvtps_pd(__W, __U, _mm512_castps512_ps256(__A)); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_mov_pd (__m512d __W, __mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U, - (__v8df) __A, - (__v8df) __W); -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_maskz_mov_pd (__mmask8 __U, __m512d __A) -{ - return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U, - (__v8df) __A, - (__v8df) _mm512_setzero_pd ()); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_mov_ps (__m512 __W, __mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U, - (__v16sf) __A, - (__v16sf) __W); -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_maskz_mov_ps (__mmask16 __U, __m512 __A) -{ - return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U, - (__v16sf) __A, - (__v16sf) _mm512_setzero_ps ()); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m512d __A) -{ - __builtin_ia32_compressstoredf512_mask ((__v8df *) __P, (__v8df) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m512i __A) -{ - __builtin_ia32_compressstoredi512_mask ((__v8di *) __P, (__v8di) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_compressstoreu_ps (void *__P, __mmask16 __U, __m512 __A) -{ - __builtin_ia32_compressstoresf512_mask ((__v16sf *) __P, (__v16sf) __A, - (__mmask16) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS512 -_mm512_mask_compressstoreu_epi32 (void *__P, __mmask16 __U, __m512i __A) -{ - __builtin_ia32_compressstoresi512_mask ((__v16si *) __P, (__v16si) __A, - (__mmask16) __U); -} - -#define _mm_cvt_roundsd_ss(A, B, R) \ - (__m128)__builtin_ia32_cvtsd2ss_round_mask((__v4sf)(__m128)(A), \ - (__v2df)(__m128d)(B), \ - (__v4sf)_mm_undefined_ps(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_cvt_roundsd_ss(W, U, A, B, R) \ - (__m128)__builtin_ia32_cvtsd2ss_round_mask((__v4sf)(__m128)(A), \ - (__v2df)(__m128d)(B), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_cvt_roundsd_ss(U, A, B, R) \ - (__m128)__builtin_ia32_cvtsd2ss_round_mask((__v4sf)(__m128)(A), \ - (__v2df)(__m128d)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128d __B) -{ - return __builtin_ia32_cvtsd2ss_round_mask ((__v4sf)__A, - (__v2df)__B, - (__v4sf)__W, - (__mmask8)__U, _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtsd_ss (__mmask8 __U, __m128 __A, __m128d __B) -{ - return __builtin_ia32_cvtsd2ss_round_mask ((__v4sf)__A, - (__v2df)__B, - (__v4sf)_mm_setzero_ps(), - (__mmask8)__U, _MM_FROUND_CUR_DIRECTION); -} - -#define _mm_cvtss_i32 _mm_cvtss_si32 -#define _mm_cvtsd_i32 _mm_cvtsd_si32 -#define _mm_cvti32_sd _mm_cvtsi32_sd -#define _mm_cvti32_ss _mm_cvtsi32_ss -#ifdef __x86_64__ -#define _mm_cvtss_i64 _mm_cvtss_si64 -#define _mm_cvtsd_i64 _mm_cvtsd_si64 -#define _mm_cvti64_sd _mm_cvtsi64_sd -#define _mm_cvti64_ss _mm_cvtsi64_ss -#endif - -#ifdef __x86_64__ -#define _mm_cvt_roundi64_sd(A, B, R) \ - (__m128d)__builtin_ia32_cvtsi2sd64((__v2df)(__m128d)(A), (long long)(B), \ - (int)(R)) - -#define _mm_cvt_roundsi64_sd(A, B, R) \ - (__m128d)__builtin_ia32_cvtsi2sd64((__v2df)(__m128d)(A), (long long)(B), \ - (int)(R)) -#endif - -#define _mm_cvt_roundsi32_ss(A, B, R) \ - (__m128)__builtin_ia32_cvtsi2ss32((__v4sf)(__m128)(A), (int)(B), (int)(R)) - -#define _mm_cvt_roundi32_ss(A, B, R) \ - (__m128)__builtin_ia32_cvtsi2ss32((__v4sf)(__m128)(A), (int)(B), (int)(R)) - -#ifdef __x86_64__ -#define _mm_cvt_roundsi64_ss(A, B, R) \ - (__m128)__builtin_ia32_cvtsi2ss64((__v4sf)(__m128)(A), (long long)(B), \ - (int)(R)) - -#define _mm_cvt_roundi64_ss(A, B, R) \ - (__m128)__builtin_ia32_cvtsi2ss64((__v4sf)(__m128)(A), (long long)(B), \ - (int)(R)) -#endif - -#define _mm_cvt_roundss_sd(A, B, R) \ - (__m128d)__builtin_ia32_cvtss2sd_round_mask((__v2df)(__m128d)(A), \ - (__v4sf)(__m128)(B), \ - (__v2df)_mm_undefined_pd(), \ - (__mmask8)-1, (int)(R)) - -#define _mm_mask_cvt_roundss_sd(W, U, A, B, R) \ - (__m128d)__builtin_ia32_cvtss2sd_round_mask((__v2df)(__m128d)(A), \ - (__v4sf)(__m128)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U), (int)(R)) - -#define _mm_maskz_cvt_roundss_sd(U, A, B, R) \ - (__m128d)__builtin_ia32_cvtss2sd_round_mask((__v2df)(__m128d)(A), \ - (__v4sf)(__m128)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_cvtss_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128 __B) -{ - return __builtin_ia32_cvtss2sd_round_mask((__v2df)__A, - (__v4sf)__B, - (__v2df)__W, - (__mmask8)__U, _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtss_sd (__mmask8 __U, __m128d __A, __m128 __B) -{ - return __builtin_ia32_cvtss2sd_round_mask((__v2df)__A, - (__v4sf)__B, - (__v2df)_mm_setzero_pd(), - (__mmask8)__U, _MM_FROUND_CUR_DIRECTION); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_cvtu32_sd (__m128d __A, unsigned __B) -{ - __A[0] = __B; - return __A; -} - -#ifdef __x86_64__ -#define _mm_cvt_roundu64_sd(A, B, R) \ - (__m128d)__builtin_ia32_cvtusi2sd64((__v2df)(__m128d)(A), \ - (unsigned long long)(B), (int)(R)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_cvtu64_sd (__m128d __A, unsigned long long __B) -{ - __A[0] = __B; - return __A; -} -#endif - -#define _mm_cvt_roundu32_ss(A, B, R) \ - (__m128)__builtin_ia32_cvtusi2ss32((__v4sf)(__m128)(A), (unsigned int)(B), \ - (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_cvtu32_ss (__m128 __A, unsigned __B) -{ - __A[0] = __B; - return __A; -} - -#ifdef __x86_64__ -#define _mm_cvt_roundu64_ss(A, B, R) \ - (__m128)__builtin_ia32_cvtusi2ss64((__v4sf)(__m128)(A), \ - (unsigned long long)(B), (int)(R)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_cvtu64_ss (__m128 __A, unsigned long long __B) -{ - __A[0] = __B; - return __A; -} -#endif - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A) -{ - return (__m512i) __builtin_ia32_selectd_512(__M, - (__v16si) _mm512_set1_epi32(__A), - (__v16si) __O); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A) -{ - return (__m512i) __builtin_ia32_selectq_512(__M, - (__v8di) _mm512_set1_epi64(__A), - (__v8di) __O); -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_set_epi8 (char __e63, char __e62, char __e61, char __e60, char __e59, - char __e58, char __e57, char __e56, char __e55, char __e54, char __e53, - char __e52, char __e51, char __e50, char __e49, char __e48, char __e47, - char __e46, char __e45, char __e44, char __e43, char __e42, char __e41, - char __e40, char __e39, char __e38, char __e37, char __e36, char __e35, - char __e34, char __e33, char __e32, char __e31, char __e30, char __e29, - char __e28, char __e27, char __e26, char __e25, char __e24, char __e23, - char __e22, char __e21, char __e20, char __e19, char __e18, char __e17, - char __e16, char __e15, char __e14, char __e13, char __e12, char __e11, - char __e10, char __e9, char __e8, char __e7, char __e6, char __e5, - char __e4, char __e3, char __e2, char __e1, char __e0) { - - return __extension__ (__m512i)(__v64qi) - {__e0, __e1, __e2, __e3, __e4, __e5, __e6, __e7, - __e8, __e9, __e10, __e11, __e12, __e13, __e14, __e15, - __e16, __e17, __e18, __e19, __e20, __e21, __e22, __e23, - __e24, __e25, __e26, __e27, __e28, __e29, __e30, __e31, - __e32, __e33, __e34, __e35, __e36, __e37, __e38, __e39, - __e40, __e41, __e42, __e43, __e44, __e45, __e46, __e47, - __e48, __e49, __e50, __e51, __e52, __e53, __e54, __e55, - __e56, __e57, __e58, __e59, __e60, __e61, __e62, __e63}; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_set_epi16(short __e31, short __e30, short __e29, short __e28, - short __e27, short __e26, short __e25, short __e24, short __e23, - short __e22, short __e21, short __e20, short __e19, short __e18, - short __e17, short __e16, short __e15, short __e14, short __e13, - short __e12, short __e11, short __e10, short __e9, short __e8, - short __e7, short __e6, short __e5, short __e4, short __e3, - short __e2, short __e1, short __e0) { - return __extension__ (__m512i)(__v32hi) - {__e0, __e1, __e2, __e3, __e4, __e5, __e6, __e7, - __e8, __e9, __e10, __e11, __e12, __e13, __e14, __e15, - __e16, __e17, __e18, __e19, __e20, __e21, __e22, __e23, - __e24, __e25, __e26, __e27, __e28, __e29, __e30, __e31 }; -} - -static __inline __m512i __DEFAULT_FN_ATTRS512 -_mm512_set_epi32 (int __A, int __B, int __C, int __D, - int __E, int __F, int __G, int __H, - int __I, int __J, int __K, int __L, - int __M, int __N, int __O, int __P) -{ - return __extension__ (__m512i)(__v16si) - { __P, __O, __N, __M, __L, __K, __J, __I, - __H, __G, __F, __E, __D, __C, __B, __A }; -} - -#define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7, \ - e8,e9,e10,e11,e12,e13,e14,e15) \ - _mm512_set_epi32((e15),(e14),(e13),(e12),(e11),(e10),(e9),(e8),(e7),(e6), \ - (e5),(e4),(e3),(e2),(e1),(e0)) - -static __inline__ __m512i __DEFAULT_FN_ATTRS512 -_mm512_set_epi64 (long long __A, long long __B, long long __C, - long long __D, long long __E, long long __F, - long long __G, long long __H) -{ - return __extension__ (__m512i) (__v8di) - { __H, __G, __F, __E, __D, __C, __B, __A }; -} - -#define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7) \ - _mm512_set_epi64((e7),(e6),(e5),(e4),(e3),(e2),(e1),(e0)) - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_set_pd (double __A, double __B, double __C, double __D, - double __E, double __F, double __G, double __H) -{ - return __extension__ (__m512d) - { __H, __G, __F, __E, __D, __C, __B, __A }; -} - -#define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7) \ - _mm512_set_pd((e7),(e6),(e5),(e4),(e3),(e2),(e1),(e0)) - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_set_ps (float __A, float __B, float __C, float __D, - float __E, float __F, float __G, float __H, - float __I, float __J, float __K, float __L, - float __M, float __N, float __O, float __P) -{ - return __extension__ (__m512) - { __P, __O, __N, __M, __L, __K, __J, __I, - __H, __G, __F, __E, __D, __C, __B, __A }; -} - -#define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \ - _mm512_set_ps((e15),(e14),(e13),(e12),(e11),(e10),(e9),(e8),(e7),(e6),(e5), \ - (e4),(e3),(e2),(e1),(e0)) - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_abs_ps(__m512 __A) -{ - return (__m512)_mm512_and_epi32(_mm512_set1_epi32(0x7FFFFFFF),(__m512i)__A) ; -} - -static __inline__ __m512 __DEFAULT_FN_ATTRS512 -_mm512_mask_abs_ps(__m512 __W, __mmask16 __K, __m512 __A) -{ - return (__m512)_mm512_mask_and_epi32((__m512i)__W, __K, _mm512_set1_epi32(0x7FFFFFFF),(__m512i)__A) ; -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_abs_pd(__m512d __A) -{ - return (__m512d)_mm512_and_epi64(_mm512_set1_epi64(0x7FFFFFFFFFFFFFFF),(__v8di)__A) ; -} - -static __inline__ __m512d __DEFAULT_FN_ATTRS512 -_mm512_mask_abs_pd(__m512d __W, __mmask8 __K, __m512d __A) -{ - return (__m512d)_mm512_mask_and_epi64((__v8di)__W, __K, _mm512_set1_epi64(0x7FFFFFFFFFFFFFFF),(__v8di)__A); -} - -/* Vector-reduction arithmetic accepts vectors as inputs and produces scalars as - * outputs. This class of vector operation forms the basis of many scientific - * computations. In vector-reduction arithmetic, the evaluation off is - * independent of the order of the input elements of V. - - * Used bisection method. At each step, we partition the vector with previous - * step in half, and the operation is performed on its two halves. - * This takes log2(n) steps where n is the number of elements in the vector. - */ - -#define _mm512_mask_reduce_operator(op) \ - __v4du __t1 = (__v4du)_mm512_extracti64x4_epi64(__W, 0); \ - __v4du __t2 = (__v4du)_mm512_extracti64x4_epi64(__W, 1); \ - __m256i __t3 = (__m256i)(__t1 op __t2); \ - __v2du __t4 = (__v2du)_mm256_extracti128_si256(__t3, 0); \ - __v2du __t5 = (__v2du)_mm256_extracti128_si256(__t3, 1); \ - __v2du __t6 = __t4 op __t5; \ - __v2du __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); \ - __v2du __t8 = __t6 op __t7; \ - return __t8[0] - -static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_add_epi64(__m512i __W) { - _mm512_mask_reduce_operator(+); -} - -static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_mul_epi64(__m512i __W) { - _mm512_mask_reduce_operator(*); -} - -static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_and_epi64(__m512i __W) { - _mm512_mask_reduce_operator(&); -} - -static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_or_epi64(__m512i __W) { - _mm512_mask_reduce_operator(|); -} - -static __inline__ long long __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_add_epi64(__mmask8 __M, __m512i __W) { - __W = _mm512_maskz_mov_epi64(__M, __W); - _mm512_mask_reduce_operator(+); -} - -static __inline__ long long __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_mul_epi64(__mmask8 __M, __m512i __W) { - __W = _mm512_mask_mov_epi64(_mm512_set1_epi64(1), __M, __W); - _mm512_mask_reduce_operator(*); -} - -static __inline__ long long __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_and_epi64(__mmask8 __M, __m512i __W) { - __W = _mm512_mask_mov_epi64(_mm512_set1_epi64(~0ULL), __M, __W); - _mm512_mask_reduce_operator(&); -} - -static __inline__ long long __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_or_epi64(__mmask8 __M, __m512i __W) { - __W = _mm512_maskz_mov_epi64(__M, __W); - _mm512_mask_reduce_operator(|); -} -#undef _mm512_mask_reduce_operator - -#define _mm512_mask_reduce_operator(op) \ - __m256d __t1 = _mm512_extractf64x4_pd(__W, 0); \ - __m256d __t2 = _mm512_extractf64x4_pd(__W, 1); \ - __m256d __t3 = __t1 op __t2; \ - __m128d __t4 = _mm256_extractf128_pd(__t3, 0); \ - __m128d __t5 = _mm256_extractf128_pd(__t3, 1); \ - __m128d __t6 = __t4 op __t5; \ - __m128d __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); \ - __m128d __t8 = __t6 op __t7; \ - return __t8[0] - -static __inline__ double __DEFAULT_FN_ATTRS512 _mm512_reduce_add_pd(__m512d __W) { - _mm512_mask_reduce_operator(+); -} - -static __inline__ double __DEFAULT_FN_ATTRS512 _mm512_reduce_mul_pd(__m512d __W) { - _mm512_mask_reduce_operator(*); -} - -static __inline__ double __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_add_pd(__mmask8 __M, __m512d __W) { - __W = _mm512_maskz_mov_pd(__M, __W); - _mm512_mask_reduce_operator(+); -} - -static __inline__ double __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_mul_pd(__mmask8 __M, __m512d __W) { - __W = _mm512_mask_mov_pd(_mm512_set1_pd(1.0), __M, __W); - _mm512_mask_reduce_operator(*); -} -#undef _mm512_mask_reduce_operator - -#define _mm512_mask_reduce_operator(op) \ - __v8su __t1 = (__v8su)_mm512_extracti64x4_epi64(__W, 0); \ - __v8su __t2 = (__v8su)_mm512_extracti64x4_epi64(__W, 1); \ - __m256i __t3 = (__m256i)(__t1 op __t2); \ - __v4su __t4 = (__v4su)_mm256_extracti128_si256(__t3, 0); \ - __v4su __t5 = (__v4su)_mm256_extracti128_si256(__t3, 1); \ - __v4su __t6 = __t4 op __t5; \ - __v4su __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); \ - __v4su __t8 = __t6 op __t7; \ - __v4su __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); \ - __v4su __t10 = __t8 op __t9; \ - return __t10[0] - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_reduce_add_epi32(__m512i __W) { - _mm512_mask_reduce_operator(+); -} - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_reduce_mul_epi32(__m512i __W) { - _mm512_mask_reduce_operator(*); -} - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_reduce_and_epi32(__m512i __W) { - _mm512_mask_reduce_operator(&); -} - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_reduce_or_epi32(__m512i __W) { - _mm512_mask_reduce_operator(|); -} - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_add_epi32( __mmask16 __M, __m512i __W) { - __W = _mm512_maskz_mov_epi32(__M, __W); - _mm512_mask_reduce_operator(+); -} - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_mul_epi32( __mmask16 __M, __m512i __W) { - __W = _mm512_mask_mov_epi32(_mm512_set1_epi32(1), __M, __W); - _mm512_mask_reduce_operator(*); -} - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_and_epi32( __mmask16 __M, __m512i __W) { - __W = _mm512_mask_mov_epi32(_mm512_set1_epi32(~0U), __M, __W); - _mm512_mask_reduce_operator(&); -} - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_or_epi32(__mmask16 __M, __m512i __W) { - __W = _mm512_maskz_mov_epi32(__M, __W); - _mm512_mask_reduce_operator(|); -} -#undef _mm512_mask_reduce_operator - -#define _mm512_mask_reduce_operator(op) \ - __m256 __t1 = (__m256)_mm512_extractf64x4_pd((__m512d)__W, 0); \ - __m256 __t2 = (__m256)_mm512_extractf64x4_pd((__m512d)__W, 1); \ - __m256 __t3 = __t1 op __t2; \ - __m128 __t4 = _mm256_extractf128_ps(__t3, 0); \ - __m128 __t5 = _mm256_extractf128_ps(__t3, 1); \ - __m128 __t6 = __t4 op __t5; \ - __m128 __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); \ - __m128 __t8 = __t6 op __t7; \ - __m128 __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); \ - __m128 __t10 = __t8 op __t9; \ - return __t10[0] - -static __inline__ float __DEFAULT_FN_ATTRS512 -_mm512_reduce_add_ps(__m512 __W) { - _mm512_mask_reduce_operator(+); -} - -static __inline__ float __DEFAULT_FN_ATTRS512 -_mm512_reduce_mul_ps(__m512 __W) { - _mm512_mask_reduce_operator(*); -} - -static __inline__ float __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_add_ps(__mmask16 __M, __m512 __W) { - __W = _mm512_maskz_mov_ps(__M, __W); - _mm512_mask_reduce_operator(+); -} - -static __inline__ float __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_mul_ps(__mmask16 __M, __m512 __W) { - __W = _mm512_mask_mov_ps(_mm512_set1_ps(1.0f), __M, __W); - _mm512_mask_reduce_operator(*); -} -#undef _mm512_mask_reduce_operator - -#define _mm512_mask_reduce_operator(op) \ - __m512i __t1 = (__m512i)__builtin_shufflevector((__v8di)__V, (__v8di)__V, 4, 5, 6, 7, 0, 1, 2, 3); \ - __m512i __t2 = _mm512_##op(__V, __t1); \ - __m512i __t3 = (__m512i)__builtin_shufflevector((__v8di)__t2, (__v8di)__t2, 2, 3, 0, 1, 6, 7, 4, 5); \ - __m512i __t4 = _mm512_##op(__t2, __t3); \ - __m512i __t5 = (__m512i)__builtin_shufflevector((__v8di)__t4, (__v8di)__t4, 1, 0, 3, 2, 5, 4, 7, 6); \ - __v8di __t6 = (__v8di)_mm512_##op(__t4, __t5); \ - return __t6[0] - -static __inline__ long long __DEFAULT_FN_ATTRS512 -_mm512_reduce_max_epi64(__m512i __V) { - _mm512_mask_reduce_operator(max_epi64); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS512 -_mm512_reduce_max_epu64(__m512i __V) { - _mm512_mask_reduce_operator(max_epu64); -} - -static __inline__ long long __DEFAULT_FN_ATTRS512 -_mm512_reduce_min_epi64(__m512i __V) { - _mm512_mask_reduce_operator(min_epi64); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS512 -_mm512_reduce_min_epu64(__m512i __V) { - _mm512_mask_reduce_operator(min_epu64); -} - -static __inline__ long long __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_max_epi64(__mmask8 __M, __m512i __V) { - __V = _mm512_mask_mov_epi64(_mm512_set1_epi64(-__LONG_LONG_MAX__ - 1LL), __M, __V); - _mm512_mask_reduce_operator(max_epi64); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_max_epu64(__mmask8 __M, __m512i __V) { - __V = _mm512_maskz_mov_epi64(__M, __V); - _mm512_mask_reduce_operator(max_epu64); -} - -static __inline__ long long __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_min_epi64(__mmask8 __M, __m512i __V) { - __V = _mm512_mask_mov_epi64(_mm512_set1_epi64(__LONG_LONG_MAX__), __M, __V); - _mm512_mask_reduce_operator(min_epi64); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_min_epu64(__mmask8 __M, __m512i __V) { - __V = _mm512_mask_mov_epi64(_mm512_set1_epi64(~0ULL), __M, __V); - _mm512_mask_reduce_operator(min_epu64); -} -#undef _mm512_mask_reduce_operator - -#define _mm512_mask_reduce_operator(op) \ - __m256i __t1 = _mm512_extracti64x4_epi64(__V, 0); \ - __m256i __t2 = _mm512_extracti64x4_epi64(__V, 1); \ - __m256i __t3 = _mm256_##op(__t1, __t2); \ - __m128i __t4 = _mm256_extracti128_si256(__t3, 0); \ - __m128i __t5 = _mm256_extracti128_si256(__t3, 1); \ - __m128i __t6 = _mm_##op(__t4, __t5); \ - __m128i __t7 = (__m128i)__builtin_shufflevector((__v4si)__t6, (__v4si)__t6, 2, 3, 0, 1); \ - __m128i __t8 = _mm_##op(__t6, __t7); \ - __m128i __t9 = (__m128i)__builtin_shufflevector((__v4si)__t8, (__v4si)__t8, 1, 0, 3, 2); \ - __v4si __t10 = (__v4si)_mm_##op(__t8, __t9); \ - return __t10[0] - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_reduce_max_epi32(__m512i __V) { - _mm512_mask_reduce_operator(max_epi32); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS512 -_mm512_reduce_max_epu32(__m512i __V) { - _mm512_mask_reduce_operator(max_epu32); -} - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_reduce_min_epi32(__m512i __V) { - _mm512_mask_reduce_operator(min_epi32); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS512 -_mm512_reduce_min_epu32(__m512i __V) { - _mm512_mask_reduce_operator(min_epu32); -} - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_max_epi32(__mmask16 __M, __m512i __V) { - __V = _mm512_mask_mov_epi32(_mm512_set1_epi32(-__INT_MAX__ - 1), __M, __V); - _mm512_mask_reduce_operator(max_epi32); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_max_epu32(__mmask16 __M, __m512i __V) { - __V = _mm512_maskz_mov_epi32(__M, __V); - _mm512_mask_reduce_operator(max_epu32); -} - -static __inline__ int __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_min_epi32(__mmask16 __M, __m512i __V) { - __V = _mm512_mask_mov_epi32(_mm512_set1_epi32(__INT_MAX__), __M, __V); - _mm512_mask_reduce_operator(min_epi32); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_min_epu32(__mmask16 __M, __m512i __V) { - __V = _mm512_mask_mov_epi32(_mm512_set1_epi32(~0U), __M, __V); - _mm512_mask_reduce_operator(min_epu32); -} -#undef _mm512_mask_reduce_operator - -#define _mm512_mask_reduce_operator(op) \ - __m256d __t1 = _mm512_extractf64x4_pd(__V, 0); \ - __m256d __t2 = _mm512_extractf64x4_pd(__V, 1); \ - __m256d __t3 = _mm256_##op(__t1, __t2); \ - __m128d __t4 = _mm256_extractf128_pd(__t3, 0); \ - __m128d __t5 = _mm256_extractf128_pd(__t3, 1); \ - __m128d __t6 = _mm_##op(__t4, __t5); \ - __m128d __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); \ - __m128d __t8 = _mm_##op(__t6, __t7); \ - return __t8[0] - -static __inline__ double __DEFAULT_FN_ATTRS512 -_mm512_reduce_max_pd(__m512d __V) { - _mm512_mask_reduce_operator(max_pd); -} - -static __inline__ double __DEFAULT_FN_ATTRS512 -_mm512_reduce_min_pd(__m512d __V) { - _mm512_mask_reduce_operator(min_pd); -} - -static __inline__ double __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_max_pd(__mmask8 __M, __m512d __V) { - __V = _mm512_mask_mov_pd(_mm512_set1_pd(-__builtin_inf()), __M, __V); - _mm512_mask_reduce_operator(max_pd); -} - -static __inline__ double __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_min_pd(__mmask8 __M, __m512d __V) { - __V = _mm512_mask_mov_pd(_mm512_set1_pd(__builtin_inf()), __M, __V); - _mm512_mask_reduce_operator(min_pd); -} -#undef _mm512_mask_reduce_operator - -#define _mm512_mask_reduce_operator(op) \ - __m256 __t1 = (__m256)_mm512_extractf64x4_pd((__m512d)__V, 0); \ - __m256 __t2 = (__m256)_mm512_extractf64x4_pd((__m512d)__V, 1); \ - __m256 __t3 = _mm256_##op(__t1, __t2); \ - __m128 __t4 = _mm256_extractf128_ps(__t3, 0); \ - __m128 __t5 = _mm256_extractf128_ps(__t3, 1); \ - __m128 __t6 = _mm_##op(__t4, __t5); \ - __m128 __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); \ - __m128 __t8 = _mm_##op(__t6, __t7); \ - __m128 __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); \ - __m128 __t10 = _mm_##op(__t8, __t9); \ - return __t10[0] - -static __inline__ float __DEFAULT_FN_ATTRS512 -_mm512_reduce_max_ps(__m512 __V) { - _mm512_mask_reduce_operator(max_ps); -} - -static __inline__ float __DEFAULT_FN_ATTRS512 -_mm512_reduce_min_ps(__m512 __V) { - _mm512_mask_reduce_operator(min_ps); -} - -static __inline__ float __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_max_ps(__mmask16 __M, __m512 __V) { - __V = _mm512_mask_mov_ps(_mm512_set1_ps(-__builtin_inff()), __M, __V); - _mm512_mask_reduce_operator(max_ps); -} - -static __inline__ float __DEFAULT_FN_ATTRS512 -_mm512_mask_reduce_min_ps(__mmask16 __M, __m512 __V) { - __V = _mm512_mask_mov_ps(_mm512_set1_ps(__builtin_inff()), __M, __V); - _mm512_mask_reduce_operator(min_ps); -} -#undef _mm512_mask_reduce_operator - -#undef __DEFAULT_FN_ATTRS512 -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS - -#endif /* __AVX512FINTRIN_H */ diff --git a/bin/app/data/cxx/include/avx512ifmaintrin.h b/bin/app/data/cxx/include/avx512ifmaintrin.h deleted file mode 100644 index 5f7da52f..00000000 --- a/bin/app/data/cxx/include/avx512ifmaintrin.h +++ /dev/null @@ -1,68 +0,0 @@ -/*===------------- avx512ifmaintrin.h - IFMA intrinsics ------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __IFMAINTRIN_H -#define __IFMAINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma"), __min_vector_width__(512))) - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_madd52hi_epu64 (__m512i __X, __m512i __Y, __m512i __Z) -{ - return (__m512i)__builtin_ia32_vpmadd52huq512((__v8di) __X, (__v8di) __Y, - (__v8di) __Z); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_madd52hi_epu64 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512(__M, - (__v8di)_mm512_madd52hi_epu64(__W, __X, __Y), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_madd52hi_epu64 (__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) -{ - return (__m512i)__builtin_ia32_selectq_512(__M, - (__v8di)_mm512_madd52hi_epu64(__X, __Y, __Z), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_madd52lo_epu64 (__m512i __X, __m512i __Y, __m512i __Z) -{ - return (__m512i)__builtin_ia32_vpmadd52luq512((__v8di) __X, (__v8di) __Y, - (__v8di) __Z); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_madd52lo_epu64 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectq_512(__M, - (__v8di)_mm512_madd52lo_epu64(__W, __X, __Y), - (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_madd52lo_epu64 (__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) -{ - return (__m512i)__builtin_ia32_selectq_512(__M, - (__v8di)_mm512_madd52lo_epu64(__X, __Y, __Z), - (__v8di)_mm512_setzero_si512()); -} - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/avx512ifmavlintrin.h b/bin/app/data/cxx/include/avx512ifmavlintrin.h deleted file mode 100644 index 5889401d..00000000 --- a/bin/app/data/cxx/include/avx512ifmavlintrin.h +++ /dev/null @@ -1,119 +0,0 @@ -/*===------------- avx512ifmavlintrin.h - IFMA intrinsics ------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __IFMAVLINTRIN_H -#define __IFMAVLINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(256))) - - - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_madd52hi_epu64 (__m128i __X, __m128i __Y, __m128i __Z) -{ - return (__m128i)__builtin_ia32_vpmadd52huq128((__v2di) __X, (__v2di) __Y, - (__v2di) __Z); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_madd52hi_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128(__M, - (__v2di)_mm_madd52hi_epu64(__W, __X, __Y), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_madd52hi_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) -{ - return (__m128i)__builtin_ia32_selectq_128(__M, - (__v2di)_mm_madd52hi_epu64(__X, __Y, __Z), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_madd52hi_epu64 (__m256i __X, __m256i __Y, __m256i __Z) -{ - return (__m256i)__builtin_ia32_vpmadd52huq256((__v4di)__X, (__v4di)__Y, - (__v4di)__Z); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_madd52hi_epu64 (__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256(__M, - (__v4di)_mm256_madd52hi_epu64(__W, __X, __Y), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_madd52hi_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) -{ - return (__m256i)__builtin_ia32_selectq_256(__M, - (__v4di)_mm256_madd52hi_epu64(__X, __Y, __Z), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_madd52lo_epu64 (__m128i __X, __m128i __Y, __m128i __Z) -{ - return (__m128i)__builtin_ia32_vpmadd52luq128((__v2di)__X, (__v2di)__Y, - (__v2di)__Z); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_madd52lo_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128(__M, - (__v2di)_mm_madd52lo_epu64(__W, __X, __Y), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_madd52lo_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) -{ - return (__m128i)__builtin_ia32_selectq_128(__M, - (__v2di)_mm_madd52lo_epu64(__X, __Y, __Z), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_madd52lo_epu64 (__m256i __X, __m256i __Y, __m256i __Z) -{ - return (__m256i)__builtin_ia32_vpmadd52luq256((__v4di)__X, (__v4di)__Y, - (__v4di)__Z); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_madd52lo_epu64 (__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256(__M, - (__v4di)_mm256_madd52lo_epu64(__W, __X, __Y), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_madd52lo_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) -{ - return (__m256i)__builtin_ia32_selectq_256(__M, - (__v4di)_mm256_madd52lo_epu64(__X, __Y, __Z), - (__v4di)_mm256_setzero_si256()); -} - - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif diff --git a/bin/app/data/cxx/include/avx512pfintrin.h b/bin/app/data/cxx/include/avx512pfintrin.h deleted file mode 100644 index b8bcf49c..00000000 --- a/bin/app/data/cxx/include/avx512pfintrin.h +++ /dev/null @@ -1,97 +0,0 @@ -/*===------------- avx512pfintrin.h - PF intrinsics ------------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512PFINTRIN_H -#define __AVX512PFINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512pf"))) - -#define _mm512_mask_prefetch_i32gather_pd(index, mask, addr, scale, hint) \ - __builtin_ia32_gatherpfdpd((__mmask8)(mask), (__v8si)(__m256i)(index), \ - (void const *)(addr), (int)(scale), \ - (int)(hint)) - -#define _mm512_prefetch_i32gather_pd(index, addr, scale, hint) \ - __builtin_ia32_gatherpfdpd((__mmask8) -1, (__v8si)(__m256i)(index), \ - (void const *)(addr), (int)(scale), \ - (int)(hint)) - -#define _mm512_mask_prefetch_i32gather_ps(index, mask, addr, scale, hint) \ - __builtin_ia32_gatherpfdps((__mmask16)(mask), \ - (__v16si)(__m512i)(index), (void const *)(addr), \ - (int)(scale), (int)(hint)) - -#define _mm512_prefetch_i32gather_ps(index, addr, scale, hint) \ - __builtin_ia32_gatherpfdps((__mmask16) -1, \ - (__v16si)(__m512i)(index), (void const *)(addr), \ - (int)(scale), (int)(hint)) - -#define _mm512_mask_prefetch_i64gather_pd(index, mask, addr, scale, hint) \ - __builtin_ia32_gatherpfqpd((__mmask8)(mask), (__v8di)(__m512i)(index), \ - (void const *)(addr), (int)(scale), \ - (int)(hint)) - -#define _mm512_prefetch_i64gather_pd(index, addr, scale, hint) \ - __builtin_ia32_gatherpfqpd((__mmask8) -1, (__v8di)(__m512i)(index), \ - (void const *)(addr), (int)(scale), \ - (int)(hint)) - -#define _mm512_mask_prefetch_i64gather_ps(index, mask, addr, scale, hint) \ - __builtin_ia32_gatherpfqps((__mmask8)(mask), (__v8di)(__m512i)(index), \ - (void const *)(addr), (int)(scale), (int)(hint)) - -#define _mm512_prefetch_i64gather_ps(index, addr, scale, hint) \ - __builtin_ia32_gatherpfqps((__mmask8) -1, (__v8di)(__m512i)(index), \ - (void const *)(addr), (int)(scale), (int)(hint)) - -#define _mm512_prefetch_i32scatter_pd(addr, index, scale, hint) \ - __builtin_ia32_scatterpfdpd((__mmask8)-1, (__v8si)(__m256i)(index), \ - (void *)(addr), (int)(scale), \ - (int)(hint)) - -#define _mm512_mask_prefetch_i32scatter_pd(addr, mask, index, scale, hint) \ - __builtin_ia32_scatterpfdpd((__mmask8)(mask), (__v8si)(__m256i)(index), \ - (void *)(addr), (int)(scale), \ - (int)(hint)) - -#define _mm512_prefetch_i32scatter_ps(addr, index, scale, hint) \ - __builtin_ia32_scatterpfdps((__mmask16)-1, (__v16si)(__m512i)(index), \ - (void *)(addr), (int)(scale), (int)(hint)) - -#define _mm512_mask_prefetch_i32scatter_ps(addr, mask, index, scale, hint) \ - __builtin_ia32_scatterpfdps((__mmask16)(mask), \ - (__v16si)(__m512i)(index), (void *)(addr), \ - (int)(scale), (int)(hint)) - -#define _mm512_prefetch_i64scatter_pd(addr, index, scale, hint) \ - __builtin_ia32_scatterpfqpd((__mmask8)-1, (__v8di)(__m512i)(index), \ - (void *)(addr), (int)(scale), \ - (int)(hint)) - -#define _mm512_mask_prefetch_i64scatter_pd(addr, mask, index, scale, hint) \ - __builtin_ia32_scatterpfqpd((__mmask8)(mask), (__v8di)(__m512i)(index), \ - (void *)(addr), (int)(scale), \ - (int)(hint)) - -#define _mm512_prefetch_i64scatter_ps(addr, index, scale, hint) \ - __builtin_ia32_scatterpfqps((__mmask8)-1, (__v8di)(__m512i)(index), \ - (void *)(addr), (int)(scale), (int)(hint)) - -#define _mm512_mask_prefetch_i64scatter_ps(addr, mask, index, scale, hint) \ - __builtin_ia32_scatterpfqps((__mmask8)(mask), (__v8di)(__m512i)(index), \ - (void *)(addr), (int)(scale), (int)(hint)) - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/avx512vbmi2intrin.h b/bin/app/data/cxx/include/avx512vbmi2intrin.h deleted file mode 100644 index a2314461..00000000 --- a/bin/app/data/cxx/include/avx512vbmi2intrin.h +++ /dev/null @@ -1,357 +0,0 @@ -/*===------------- avx512vbmi2intrin.h - VBMI2 intrinsics ------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512VBMI2INTRIN_H -#define __AVX512VBMI2INTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) - - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_compress_epi16(__m512i __S, __mmask32 __U, __m512i __D) -{ - return (__m512i) __builtin_ia32_compresshi512_mask ((__v32hi) __D, - (__v32hi) __S, - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_compress_epi16(__mmask32 __U, __m512i __D) -{ - return (__m512i) __builtin_ia32_compresshi512_mask ((__v32hi) __D, - (__v32hi) _mm512_setzero_si512(), - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_compress_epi8(__m512i __S, __mmask64 __U, __m512i __D) -{ - return (__m512i) __builtin_ia32_compressqi512_mask ((__v64qi) __D, - (__v64qi) __S, - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_compress_epi8(__mmask64 __U, __m512i __D) -{ - return (__m512i) __builtin_ia32_compressqi512_mask ((__v64qi) __D, - (__v64qi) _mm512_setzero_si512(), - __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_mm512_mask_compressstoreu_epi16(void *__P, __mmask32 __U, __m512i __D) -{ - __builtin_ia32_compressstorehi512_mask ((__v32hi *) __P, (__v32hi) __D, - __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_mm512_mask_compressstoreu_epi8(void *__P, __mmask64 __U, __m512i __D) -{ - __builtin_ia32_compressstoreqi512_mask ((__v64qi *) __P, (__v64qi) __D, - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_expand_epi16(__m512i __S, __mmask32 __U, __m512i __D) -{ - return (__m512i) __builtin_ia32_expandhi512_mask ((__v32hi) __D, - (__v32hi) __S, - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_expand_epi16(__mmask32 __U, __m512i __D) -{ - return (__m512i) __builtin_ia32_expandhi512_mask ((__v32hi) __D, - (__v32hi) _mm512_setzero_si512(), - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_expand_epi8(__m512i __S, __mmask64 __U, __m512i __D) -{ - return (__m512i) __builtin_ia32_expandqi512_mask ((__v64qi) __D, - (__v64qi) __S, - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_expand_epi8(__mmask64 __U, __m512i __D) -{ - return (__m512i) __builtin_ia32_expandqi512_mask ((__v64qi) __D, - (__v64qi) _mm512_setzero_si512(), - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_expandloadu_epi16(__m512i __S, __mmask32 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_expandloadhi512_mask ((const __v32hi *)__P, - (__v32hi) __S, - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_expandloadu_epi16(__mmask32 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_expandloadhi512_mask ((const __v32hi *)__P, - (__v32hi) _mm512_setzero_si512(), - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_expandloadu_epi8(__m512i __S, __mmask64 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_expandloadqi512_mask ((const __v64qi *)__P, - (__v64qi) __S, - __U); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_expandloadu_epi8(__mmask64 __U, void const *__P) -{ - return (__m512i) __builtin_ia32_expandloadqi512_mask ((const __v64qi *)__P, - (__v64qi) _mm512_setzero_si512(), - __U); -} - -#define _mm512_shldi_epi64(A, B, I) \ - (__m512i)__builtin_ia32_vpshldq512((__v8di)(__m512i)(A), \ - (__v8di)(__m512i)(B), (int)(I)) - -#define _mm512_mask_shldi_epi64(S, U, A, B, I) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_shldi_epi64((A), (B), (I)), \ - (__v8di)(__m512i)(S)) - -#define _mm512_maskz_shldi_epi64(U, A, B, I) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_shldi_epi64((A), (B), (I)), \ - (__v8di)_mm512_setzero_si512()) - -#define _mm512_shldi_epi32(A, B, I) \ - (__m512i)__builtin_ia32_vpshldd512((__v16si)(__m512i)(A), \ - (__v16si)(__m512i)(B), (int)(I)) - -#define _mm512_mask_shldi_epi32(S, U, A, B, I) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_shldi_epi32((A), (B), (I)), \ - (__v16si)(__m512i)(S)) - -#define _mm512_maskz_shldi_epi32(U, A, B, I) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_shldi_epi32((A), (B), (I)), \ - (__v16si)_mm512_setzero_si512()) - -#define _mm512_shldi_epi16(A, B, I) \ - (__m512i)__builtin_ia32_vpshldw512((__v32hi)(__m512i)(A), \ - (__v32hi)(__m512i)(B), (int)(I)) - -#define _mm512_mask_shldi_epi16(S, U, A, B, I) \ - (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \ - (__v32hi)_mm512_shldi_epi16((A), (B), (I)), \ - (__v32hi)(__m512i)(S)) - -#define _mm512_maskz_shldi_epi16(U, A, B, I) \ - (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \ - (__v32hi)_mm512_shldi_epi16((A), (B), (I)), \ - (__v32hi)_mm512_setzero_si512()) - -#define _mm512_shrdi_epi64(A, B, I) \ - (__m512i)__builtin_ia32_vpshrdq512((__v8di)(__m512i)(A), \ - (__v8di)(__m512i)(B), (int)(I)) - -#define _mm512_mask_shrdi_epi64(S, U, A, B, I) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_shrdi_epi64((A), (B), (I)), \ - (__v8di)(__m512i)(S)) - -#define _mm512_maskz_shrdi_epi64(U, A, B, I) \ - (__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \ - (__v8di)_mm512_shrdi_epi64((A), (B), (I)), \ - (__v8di)_mm512_setzero_si512()) - -#define _mm512_shrdi_epi32(A, B, I) \ - (__m512i)__builtin_ia32_vpshrdd512((__v16si)(__m512i)(A), \ - (__v16si)(__m512i)(B), (int)(I)) - -#define _mm512_mask_shrdi_epi32(S, U, A, B, I) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_shrdi_epi32((A), (B), (I)), \ - (__v16si)(__m512i)(S)) - -#define _mm512_maskz_shrdi_epi32(U, A, B, I) \ - (__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \ - (__v16si)_mm512_shrdi_epi32((A), (B), (I)), \ - (__v16si)_mm512_setzero_si512()) - -#define _mm512_shrdi_epi16(A, B, I) \ - (__m512i)__builtin_ia32_vpshrdw512((__v32hi)(__m512i)(A), \ - (__v32hi)(__m512i)(B), (int)(I)) - -#define _mm512_mask_shrdi_epi16(S, U, A, B, I) \ - (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \ - (__v32hi)_mm512_shrdi_epi16((A), (B), (I)), \ - (__v32hi)(__m512i)(S)) - -#define _mm512_maskz_shrdi_epi16(U, A, B, I) \ - (__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \ - (__v32hi)_mm512_shrdi_epi16((A), (B), (I)), \ - (__v32hi)_mm512_setzero_si512()) - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_shldv_epi64(__m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_vpshldvq512((__v8di)__A, (__v8di)__B, - (__v8di)__C); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_shldv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_shldv_epi64(__A, __B, __C), - (__v8di)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_shldv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_shldv_epi64(__A, __B, __C), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_shldv_epi32(__m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_vpshldvd512((__v16si)__A, (__v16si)__B, - (__v16si)__C); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_shldv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_shldv_epi32(__A, __B, __C), - (__v16si)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_shldv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_shldv_epi32(__A, __B, __C), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_shldv_epi16(__m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_vpshldvw512((__v32hi)__A, (__v32hi)__B, - (__v32hi)__C); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_shldv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_selectw_512(__U, - (__v32hi)_mm512_shldv_epi16(__A, __B, __C), - (__v32hi)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_shldv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_selectw_512(__U, - (__v32hi)_mm512_shldv_epi16(__A, __B, __C), - (__v32hi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_shrdv_epi64(__m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_vpshrdvq512((__v8di)__A, (__v8di)__B, - (__v8di)__C); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_shrdv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_shrdv_epi64(__A, __B, __C), - (__v8di)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_shrdv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_selectq_512(__U, - (__v8di)_mm512_shrdv_epi64(__A, __B, __C), - (__v8di)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_shrdv_epi32(__m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_vpshrdvd512((__v16si)__A, (__v16si)__B, - (__v16si)__C); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_shrdv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) -{ - return (__m512i) __builtin_ia32_selectd_512(__U, - (__v16si)_mm512_shrdv_epi32(__A, __B, __C), - (__v16si)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_shrdv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i) __builtin_ia32_selectd_512(__U, - (__v16si)_mm512_shrdv_epi32(__A, __B, __C), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_shrdv_epi16(__m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_vpshrdvw512((__v32hi)__A, (__v32hi)__B, - (__v32hi)__C); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_shrdv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_selectw_512(__U, - (__v32hi)_mm512_shrdv_epi16(__A, __B, __C), - (__v32hi)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_shrdv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C) -{ - return (__m512i)__builtin_ia32_selectw_512(__U, - (__v32hi)_mm512_shrdv_epi16(__A, __B, __C), - (__v32hi)_mm512_setzero_si512()); -} - - -#undef __DEFAULT_FN_ATTRS - -#endif - diff --git a/bin/app/data/cxx/include/avx512vbmiintrin.h b/bin/app/data/cxx/include/avx512vbmiintrin.h deleted file mode 100644 index c0e0f94d..00000000 --- a/bin/app/data/cxx/include/avx512vbmiintrin.h +++ /dev/null @@ -1,105 +0,0 @@ -/*===------------- avx512vbmiintrin.h - VBMI intrinsics ------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __VBMIINTRIN_H -#define __VBMIINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) - - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_permutex2var_epi8(__m512i __A, __m512i __I, __m512i __B) -{ - return (__m512i)__builtin_ia32_vpermi2varqi512((__v64qi)__A, (__v64qi)__I, - (__v64qi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_permutex2var_epi8(__m512i __A, __mmask64 __U, __m512i __I, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512(__U, - (__v64qi)_mm512_permutex2var_epi8(__A, __I, __B), - (__v64qi)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask2_permutex2var_epi8(__m512i __A, __m512i __I, __mmask64 __U, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512(__U, - (__v64qi)_mm512_permutex2var_epi8(__A, __I, __B), - (__v64qi)__I); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_permutex2var_epi8(__mmask64 __U, __m512i __A, __m512i __I, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512(__U, - (__v64qi)_mm512_permutex2var_epi8(__A, __I, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_permutexvar_epi8 (__m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_permvarqi512((__v64qi) __B, (__v64qi) __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_permutexvar_epi8 (__mmask64 __M, __m512i __A, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_permutexvar_epi8(__A, __B), - (__v64qi)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_permutexvar_epi8 (__m512i __W, __mmask64 __M, __m512i __A, - __m512i __B) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_permutexvar_epi8(__A, __B), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_multishift_epi64_epi8(__m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_vpmultishiftqb512((__v64qi)__X, (__v64qi) __Y); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_multishift_epi64_epi8(__m512i __W, __mmask64 __M, __m512i __X, - __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_multishift_epi64_epi8(__X, __Y), - (__v64qi)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_multishift_epi64_epi8(__mmask64 __M, __m512i __X, __m512i __Y) -{ - return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, - (__v64qi)_mm512_multishift_epi64_epi8(__X, __Y), - (__v64qi)_mm512_setzero_si512()); -} - - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/avx512vbmivlintrin.h b/bin/app/data/cxx/include/avx512vbmivlintrin.h deleted file mode 100644 index c5b96ae8..00000000 --- a/bin/app/data/cxx/include/avx512vbmivlintrin.h +++ /dev/null @@ -1,188 +0,0 @@ -/*===------------- avx512vbmivlintrin.h - VBMI intrinsics ------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __VBMIVLINTRIN_H -#define __VBMIVLINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) - - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_permutex2var_epi8(__m128i __A, __m128i __I, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpermi2varqi128((__v16qi)__A, - (__v16qi)__I, - (__v16qi)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_permutex2var_epi8(__m128i __A, __mmask16 __U, __m128i __I, - __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128(__U, - (__v16qi)_mm_permutex2var_epi8(__A, __I, __B), - (__v16qi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask2_permutex2var_epi8(__m128i __A, __m128i __I, __mmask16 __U, - __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128(__U, - (__v16qi)_mm_permutex2var_epi8(__A, __I, __B), - (__v16qi)__I); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_permutex2var_epi8(__mmask16 __U, __m128i __A, __m128i __I, - __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128(__U, - (__v16qi)_mm_permutex2var_epi8(__A, __I, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_permutex2var_epi8(__m256i __A, __m256i __I, __m256i __B) -{ - return (__m256i)__builtin_ia32_vpermi2varqi256((__v32qi)__A, (__v32qi)__I, - (__v32qi)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_permutex2var_epi8(__m256i __A, __mmask32 __U, __m256i __I, - __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256(__U, - (__v32qi)_mm256_permutex2var_epi8(__A, __I, __B), - (__v32qi)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask2_permutex2var_epi8(__m256i __A, __m256i __I, __mmask32 __U, - __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256(__U, - (__v32qi)_mm256_permutex2var_epi8(__A, __I, __B), - (__v32qi)__I); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_permutex2var_epi8(__mmask32 __U, __m256i __A, __m256i __I, - __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256(__U, - (__v32qi)_mm256_permutex2var_epi8(__A, __I, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_permutexvar_epi8 (__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_permvarqi128((__v16qi)__B, (__v16qi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_permutexvar_epi8 (__mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_permutexvar_epi8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_permutexvar_epi8 (__m128i __W, __mmask16 __M, __m128i __A, - __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_permutexvar_epi8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_permutexvar_epi8 (__m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_permvarqi256((__v32qi) __B, (__v32qi) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_permutexvar_epi8 (__mmask32 __M, __m256i __A, - __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_permutexvar_epi8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_permutexvar_epi8 (__m256i __W, __mmask32 __M, __m256i __A, - __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_permutexvar_epi8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_multishift_epi64_epi8(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_vpmultishiftqb128((__v16qi)__X, (__v16qi)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_multishift_epi64_epi8(__m128i __W, __mmask16 __M, __m128i __X, - __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_multishift_epi64_epi8(__X, __Y), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_multishift_epi64_epi8(__mmask16 __M, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_multishift_epi64_epi8(__X, __Y), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_multishift_epi64_epi8(__m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_vpmultishiftqb256((__v32qi)__X, (__v32qi)__Y); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_multishift_epi64_epi8(__m256i __W, __mmask32 __M, __m256i __X, - __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_multishift_epi64_epi8(__X, __Y), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_multishift_epi64_epi8(__mmask32 __M, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_multishift_epi64_epi8(__X, __Y), - (__v32qi)_mm256_setzero_si256()); -} - - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif diff --git a/bin/app/data/cxx/include/avx512vlbf16intrin.h b/bin/app/data/cxx/include/avx512vlbf16intrin.h deleted file mode 100644 index 1b1a744b..00000000 --- a/bin/app/data/cxx/include/avx512vlbf16intrin.h +++ /dev/null @@ -1,474 +0,0 @@ -/*===--------- avx512vlbf16intrin.h - AVX512_BF16 intrinsics ---------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512VLBF16INTRIN_H -#define __AVX512VLBF16INTRIN_H - -typedef short __m128bh __attribute__((__vector_size__(16), __aligned__(16))); - -#define __DEFAULT_FN_ATTRS128 \ - __attribute__((__always_inline__, __nodebug__, \ - __target__("avx512vl, avx512bf16"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 \ - __attribute__((__always_inline__, __nodebug__, \ - __target__("avx512vl, avx512bf16"), __min_vector_width__(256))) - -/// Convert Two Packed Single Data to One Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNE2PS2BF16 instructions. -/// -/// \param __A -/// A 128-bit vector of [4 x float]. -/// \param __B -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from -/// conversion of __B, and higher 64 bits come from conversion of __A. -static __inline__ __m128bh __DEFAULT_FN_ATTRS128 -_mm_cvtne2ps_pbh(__m128 __A, __m128 __B) { - return (__m128bh)__builtin_ia32_cvtne2ps2bf16_128((__v4sf) __A, - (__v4sf) __B); -} - -/// Convert Two Packed Single Data to One Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNE2PS2BF16 instructions. -/// -/// \param __A -/// A 128-bit vector of [4 x float]. -/// \param __B -/// A 128-bit vector of [4 x float]. -/// \param __W -/// A 128-bit vector of [8 x bfloat]. -/// \param __U -/// A 8-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A or __B. A 0 means element from __W. -/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from -/// conversion of __B, and higher 64 bits come from conversion of __A. -static __inline__ __m128bh __DEFAULT_FN_ATTRS128 -_mm_mask_cvtne2ps_pbh(__m128bh __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128bh)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_cvtne2ps_pbh(__A, __B), - (__v8hi)__W); -} - -/// Convert Two Packed Single Data to One Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNE2PS2BF16 instructions. -/// -/// \param __A -/// A 128-bit vector of [4 x float]. -/// \param __B -/// A 128-bit vector of [4 x float]. -/// \param __U -/// A 8-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A or __B. A 0 means element is zero. -/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from -/// conversion of __B, and higher 64 bits come from conversion of __A. -static __inline__ __m128bh __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtne2ps_pbh(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128bh)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_cvtne2ps_pbh(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -/// Convert Two Packed Single Data to One Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNE2PS2BF16 instructions. -/// -/// \param __A -/// A 256-bit vector of [8 x float]. -/// \param __B -/// A 256-bit vector of [8 x float]. -/// \returns A 256-bit vector of [16 x bfloat] whose lower 128 bits come from -/// conversion of __B, and higher 128 bits come from conversion of __A. -static __inline__ __m256bh __DEFAULT_FN_ATTRS256 -_mm256_cvtne2ps_pbh(__m256 __A, __m256 __B) { - return (__m256bh)__builtin_ia32_cvtne2ps2bf16_256((__v8sf) __A, - (__v8sf) __B); -} - -/// Convert Two Packed Single Data to One Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNE2PS2BF16 instructions. -/// -/// \param __A -/// A 256-bit vector of [8 x float]. -/// \param __B -/// A 256-bit vector of [8 x float]. -/// \param __W -/// A 256-bit vector of [16 x bfloat]. -/// \param __U -/// A 16-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A or __B. A 0 means element from __W. -/// \returns A 256-bit vector of [16 x bfloat] whose lower 128 bits come from -/// conversion of __B, and higher 128 bits come from conversion of __A. -static __inline__ __m256bh __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtne2ps_pbh(__m256bh __W, __mmask16 __U, __m256 __A, __m256 __B) { - return (__m256bh)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_cvtne2ps_pbh(__A, __B), - (__v16hi)__W); -} - -/// Convert Two Packed Single Data to One Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNE2PS2BF16 instructions. -/// -/// \param __A -/// A 256-bit vector of [8 x float]. -/// \param __B -/// A 256-bit vector of [8 x float]. -/// \param __U -/// A 16-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A or __B. A 0 means element is zero. -/// \returns A 256-bit vector of [16 x bfloat] whose lower 128 bits come from -/// conversion of __B, and higher 128 bits come from conversion of __A. -static __inline__ __m256bh __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtne2ps_pbh(__mmask16 __U, __m256 __A, __m256 __B) { - return (__m256bh)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_cvtne2ps_pbh(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -/// Convert Packed Single Data to Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNEPS2BF16 instructions. -/// -/// \param __A -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from -/// conversion of __A, and higher 64 bits are 0. -static __inline__ __m128bh __DEFAULT_FN_ATTRS128 -_mm_cvtneps_pbh(__m128 __A) { - return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A, - (__v8hi)_mm_undefined_si128(), - (__mmask8)-1); -} - -/// Convert Packed Single Data to Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNEPS2BF16 instructions. -/// -/// \param __A -/// A 128-bit vector of [4 x float]. -/// \param __W -/// A 128-bit vector of [8 x bfloat]. -/// \param __U -/// A 4-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A. A 0 means element from __W. -/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from -/// conversion of __A, and higher 64 bits are 0. -static __inline__ __m128bh __DEFAULT_FN_ATTRS128 -_mm_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m128 __A) { - return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A, - (__v8hi)__W, - (__mmask8)__U); -} - -/// Convert Packed Single Data to Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNEPS2BF16 instructions. -/// -/// \param __A -/// A 128-bit vector of [4 x float]. -/// \param __U -/// A 4-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A. A 0 means element is zero. -/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from -/// conversion of __A, and higher 64 bits are 0. -static __inline__ __m128bh __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtneps_pbh(__mmask8 __U, __m128 __A) { - return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A, - (__v8hi)_mm_setzero_si128(), - (__mmask8)__U); -} - -/// Convert Packed Single Data to Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNEPS2BF16 instructions. -/// -/// \param __A -/// A 256-bit vector of [8 x float]. -/// \returns A 128-bit vector of [8 x bfloat] comes from conversion of __A. -static __inline__ __m128bh __DEFAULT_FN_ATTRS256 -_mm256_cvtneps_pbh(__m256 __A) { - return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A, - (__v8hi)_mm_undefined_si128(), - (__mmask8)-1); -} - -/// Convert Packed Single Data to Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNEPS2BF16 instructions. -/// -/// \param __A -/// A 256-bit vector of [8 x float]. -/// \param __W -/// A 256-bit vector of [8 x bfloat]. -/// \param __U -/// A 8-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A. A 0 means element from __W. -/// \returns A 128-bit vector of [8 x bfloat] comes from conversion of __A. -static __inline__ __m128bh __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m256 __A) { - return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A, - (__v8hi)__W, - (__mmask8)__U); -} - -/// Convert Packed Single Data to Packed BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNEPS2BF16 instructions. -/// -/// \param __A -/// A 256-bit vector of [8 x float]. -/// \param __U -/// A 8-bit mask value specifying what is chosen for each element. -/// A 1 means conversion of __A. A 0 means element is zero. -/// \returns A 128-bit vector of [8 x bfloat] comes from conversion of __A. -static __inline__ __m128bh __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtneps_pbh(__mmask8 __U, __m256 __A) { - return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A, - (__v8hi)_mm_setzero_si128(), - (__mmask8)__U); -} - -/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDPBF16PS instructions. -/// -/// \param __A -/// A 128-bit vector of [8 x bfloat]. -/// \param __B -/// A 128-bit vector of [8 x bfloat]. -/// \param __D -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] comes from Dot Product of -/// __A, __B and __D -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_dpbf16_ps(__m128 __D, __m128bh __A, __m128bh __B) { - return (__m128)__builtin_ia32_dpbf16ps_128((__v4sf)__D, - (__v4si)__A, - (__v4si)__B); -} - -/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDPBF16PS instructions. -/// -/// \param __A -/// A 128-bit vector of [8 x bfloat]. -/// \param __B -/// A 128-bit vector of [8 x bfloat]. -/// \param __D -/// A 128-bit vector of [4 x float]. -/// \param __U -/// A 8-bit mask value specifying what is chosen for each element. -/// A 1 means __A and __B's dot product accumulated with __D. A 0 means __D. -/// \returns A 128-bit vector of [4 x float] comes from Dot Product of -/// __A, __B and __D -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_dpbf16_ps(__m128 __D, __mmask8 __U, __m128bh __A, __m128bh __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_dpbf16_ps(__D, __A, __B), - (__v4sf)__D); -} - -/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDPBF16PS instructions. -/// -/// \param __A -/// A 128-bit vector of [8 x bfloat]. -/// \param __B -/// A 128-bit vector of [8 x bfloat]. -/// \param __D -/// A 128-bit vector of [4 x float]. -/// \param __U -/// A 8-bit mask value specifying what is chosen for each element. -/// A 1 means __A and __B's dot product accumulated with __D. A 0 means 0. -/// \returns A 128-bit vector of [4 x float] comes from Dot Product of -/// __A, __B and __D -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_dpbf16_ps(__mmask8 __U, __m128 __D, __m128bh __A, __m128bh __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_dpbf16_ps(__D, __A, __B), - (__v4sf)_mm_setzero_si128()); -} - -/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDPBF16PS instructions. -/// -/// \param __A -/// A 256-bit vector of [16 x bfloat]. -/// \param __B -/// A 256-bit vector of [16 x bfloat]. -/// \param __D -/// A 256-bit vector of [8 x float]. -/// \returns A 256-bit vector of [8 x float] comes from Dot Product of -/// __A, __B and __D -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_dpbf16_ps(__m256 __D, __m256bh __A, __m256bh __B) { - return (__m256)__builtin_ia32_dpbf16ps_256((__v8sf)__D, - (__v8si)__A, - (__v8si)__B); -} - -/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDPBF16PS instructions. -/// -/// \param __A -/// A 256-bit vector of [16 x bfloat]. -/// \param __B -/// A 256-bit vector of [16 x bfloat]. -/// \param __D -/// A 256-bit vector of [8 x float]. -/// \param __U -/// A 16-bit mask value specifying what is chosen for each element. -/// A 1 means __A and __B's dot product accumulated with __D. A 0 means __D. -/// \returns A 256-bit vector of [8 x float] comes from Dot Product of -/// __A, __B and __D -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_dpbf16_ps(__m256 __D, __mmask8 __U, __m256bh __A, __m256bh __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_dpbf16_ps(__D, __A, __B), - (__v8sf)__D); -} - -/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDPBF16PS instructions. -/// -/// \param __A -/// A 256-bit vector of [16 x bfloat]. -/// \param __B -/// A 256-bit vector of [16 x bfloat]. -/// \param __D -/// A 256-bit vector of [8 x float]. -/// \param __U -/// A 8-bit mask value specifying what is chosen for each element. -/// A 1 means __A and __B's dot product accumulated with __D. A 0 means 0. -/// \returns A 256-bit vector of [8 x float] comes from Dot Product of -/// __A, __B and __D -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_dpbf16_ps(__mmask8 __U, __m256 __D, __m256bh __A, __m256bh __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_dpbf16_ps(__D, __A, __B), - (__v8sf)_mm256_setzero_si256()); -} - -/// Convert One Single float Data to One BF16 Data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTNEPS2BF16 instructions. -/// -/// \param __A -/// A float data. -/// \returns A bf16 data whose sign field and exponent field keep unchanged, -/// and fraction field is truncated to 7 bits. -static __inline__ __bfloat16 __DEFAULT_FN_ATTRS128 _mm_cvtness_sbh(float __A) { - __v4sf __V = {__A, 0, 0, 0}; - __v8hi __R = __builtin_ia32_cvtneps2bf16_128_mask( - (__v4sf)__V, (__v8hi)_mm_undefined_si128(), (__mmask8)-1); - return __R[0]; -} - -/// Convert Packed BF16 Data to Packed float Data. -/// -/// \headerfile -/// -/// \param __A -/// A 128-bit vector of [8 x bfloat]. -/// \returns A 256-bit vector of [8 x float] come from convertion of __A -static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_cvtpbh_ps(__m128bh __A) { - return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32( - (__m256i)_mm256_cvtepi16_epi32((__m128i)__A), 16)); -} - -/// Convert Packed BF16 Data to Packed float Data using zeroing mask. -/// -/// \headerfile -/// -/// \param __U -/// A 8-bit mask. Elements are zeroed out when the corresponding mask -/// bit is not set. -/// \param __A -/// A 128-bit vector of [8 x bfloat]. -/// \returns A 256-bit vector of [8 x float] come from convertion of __A -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) { - return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32( - (__m256i)_mm256_maskz_cvtepi16_epi32((__mmask8)__U, (__m128i)__A), 16)); -} - -/// Convert Packed BF16 Data to Packed float Data using merging mask. -/// -/// \headerfile -/// -/// \param __S -/// A 256-bit vector of [8 x float]. Elements are copied from __S when -/// the corresponding mask bit is not set. -/// \param __U -/// A 8-bit mask. Elements are zeroed out when the corresponding mask -/// bit is not set. -/// \param __A -/// A 128-bit vector of [8 x bfloat]. -/// \returns A 256-bit vector of [8 x float] come from convertion of __A -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtpbh_ps(__m256 __S, __mmask8 __U, __m128bh __A) { - return _mm256_castsi256_ps((__m256i)_mm256_mask_slli_epi32( - (__m256i)__S, (__mmask8)__U, (__m256i)_mm256_cvtepi16_epi32((__m128i)__A), - 16)); -} - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif diff --git a/bin/app/data/cxx/include/avx512vlbitalgintrin.h b/bin/app/data/cxx/include/avx512vlbitalgintrin.h deleted file mode 100644 index 5154eae1..00000000 --- a/bin/app/data/cxx/include/avx512vlbitalgintrin.h +++ /dev/null @@ -1,145 +0,0 @@ -/*===---- avx512vlbitalgintrin.h - BITALG intrinsics -----------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512VLBITALGINTRIN_H -#define __AVX512VLBITALGINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(256))) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_popcnt_epi16(__m256i __A) -{ - return (__m256i) __builtin_ia32_vpopcntw_256((__v16hi) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_popcnt_epi16(__m256i __A, __mmask16 __U, __m256i __B) -{ - return (__m256i) __builtin_ia32_selectw_256((__mmask16) __U, - (__v16hi) _mm256_popcnt_epi16(__B), - (__v16hi) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_popcnt_epi16(__mmask16 __U, __m256i __B) -{ - return _mm256_mask_popcnt_epi16((__m256i) _mm256_setzero_si256(), - __U, - __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_popcnt_epi16(__m128i __A) -{ - return (__m128i) __builtin_ia32_vpopcntw_128((__v8hi) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_popcnt_epi16(__m128i __A, __mmask8 __U, __m128i __B) -{ - return (__m128i) __builtin_ia32_selectw_128((__mmask8) __U, - (__v8hi) _mm_popcnt_epi16(__B), - (__v8hi) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_popcnt_epi16(__mmask8 __U, __m128i __B) -{ - return _mm_mask_popcnt_epi16((__m128i) _mm_setzero_si128(), - __U, - __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_popcnt_epi8(__m256i __A) -{ - return (__m256i) __builtin_ia32_vpopcntb_256((__v32qi) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_popcnt_epi8(__m256i __A, __mmask32 __U, __m256i __B) -{ - return (__m256i) __builtin_ia32_selectb_256((__mmask32) __U, - (__v32qi) _mm256_popcnt_epi8(__B), - (__v32qi) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_popcnt_epi8(__mmask32 __U, __m256i __B) -{ - return _mm256_mask_popcnt_epi8((__m256i) _mm256_setzero_si256(), - __U, - __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_popcnt_epi8(__m128i __A) -{ - return (__m128i) __builtin_ia32_vpopcntb_128((__v16qi) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_popcnt_epi8(__m128i __A, __mmask16 __U, __m128i __B) -{ - return (__m128i) __builtin_ia32_selectb_128((__mmask16) __U, - (__v16qi) _mm_popcnt_epi8(__B), - (__v16qi) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_popcnt_epi8(__mmask16 __U, __m128i __B) -{ - return _mm_mask_popcnt_epi8((__m128i) _mm_setzero_si128(), - __U, - __B); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS256 -_mm256_mask_bitshuffle_epi64_mask(__mmask32 __U, __m256i __A, __m256i __B) -{ - return (__mmask32) __builtin_ia32_vpshufbitqmb256_mask((__v32qi) __A, - (__v32qi) __B, - __U); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS256 -_mm256_bitshuffle_epi64_mask(__m256i __A, __m256i __B) -{ - return _mm256_mask_bitshuffle_epi64_mask((__mmask32) -1, - __A, - __B); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS128 -_mm_mask_bitshuffle_epi64_mask(__mmask16 __U, __m128i __A, __m128i __B) -{ - return (__mmask16) __builtin_ia32_vpshufbitqmb128_mask((__v16qi) __A, - (__v16qi) __B, - __U); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS128 -_mm_bitshuffle_epi64_mask(__m128i __A, __m128i __B) -{ - return _mm_mask_bitshuffle_epi64_mask((__mmask16) -1, - __A, - __B); -} - - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif diff --git a/bin/app/data/cxx/include/avx512vlbwintrin.h b/bin/app/data/cxx/include/avx512vlbwintrin.h deleted file mode 100644 index ead09466..00000000 --- a/bin/app/data/cxx/include/avx512vlbwintrin.h +++ /dev/null @@ -1,2807 +0,0 @@ -/*===---- avx512vlbwintrin.h - AVX512VL and AVX512BW intrinsics ------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512VLBWINTRIN_H -#define __AVX512VLBWINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) - -/* Integer compare */ - -#define _mm_cmp_epi8_mask(a, b, p) \ - (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \ - (__v16qi)(__m128i)(b), (int)(p), \ - (__mmask16)-1) - -#define _mm_mask_cmp_epi8_mask(m, a, b, p) \ - (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)(a), \ - (__v16qi)(__m128i)(b), (int)(p), \ - (__mmask16)(m)) - -#define _mm_cmp_epu8_mask(a, b, p) \ - (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \ - (__v16qi)(__m128i)(b), (int)(p), \ - (__mmask16)-1) - -#define _mm_mask_cmp_epu8_mask(m, a, b, p) \ - (__mmask16)__builtin_ia32_ucmpb128_mask((__v16qi)(__m128i)(a), \ - (__v16qi)(__m128i)(b), (int)(p), \ - (__mmask16)(m)) - -#define _mm256_cmp_epi8_mask(a, b, p) \ - (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \ - (__v32qi)(__m256i)(b), (int)(p), \ - (__mmask32)-1) - -#define _mm256_mask_cmp_epi8_mask(m, a, b, p) \ - (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)(a), \ - (__v32qi)(__m256i)(b), (int)(p), \ - (__mmask32)(m)) - -#define _mm256_cmp_epu8_mask(a, b, p) \ - (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \ - (__v32qi)(__m256i)(b), (int)(p), \ - (__mmask32)-1) - -#define _mm256_mask_cmp_epu8_mask(m, a, b, p) \ - (__mmask32)__builtin_ia32_ucmpb256_mask((__v32qi)(__m256i)(a), \ - (__v32qi)(__m256i)(b), (int)(p), \ - (__mmask32)(m)) - -#define _mm_cmp_epi16_mask(a, b, p) \ - (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \ - (__v8hi)(__m128i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm_mask_cmp_epi16_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)(a), \ - (__v8hi)(__m128i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm_cmp_epu16_mask(a, b, p) \ - (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \ - (__v8hi)(__m128i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm_mask_cmp_epu16_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_ucmpw128_mask((__v8hi)(__m128i)(a), \ - (__v8hi)(__m128i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm256_cmp_epi16_mask(a, b, p) \ - (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \ - (__v16hi)(__m256i)(b), (int)(p), \ - (__mmask16)-1) - -#define _mm256_mask_cmp_epi16_mask(m, a, b, p) \ - (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)(a), \ - (__v16hi)(__m256i)(b), (int)(p), \ - (__mmask16)(m)) - -#define _mm256_cmp_epu16_mask(a, b, p) \ - (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \ - (__v16hi)(__m256i)(b), (int)(p), \ - (__mmask16)-1) - -#define _mm256_mask_cmp_epu16_mask(m, a, b, p) \ - (__mmask16)__builtin_ia32_ucmpw256_mask((__v16hi)(__m256i)(a), \ - (__v16hi)(__m256i)(b), (int)(p), \ - (__mmask16)(m)) - -#define _mm_cmpeq_epi8_mask(A, B) \ - _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_EQ) -#define _mm_mask_cmpeq_epi8_mask(k, A, B) \ - _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm_cmpge_epi8_mask(A, B) \ - _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_GE) -#define _mm_mask_cmpge_epi8_mask(k, A, B) \ - _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm_cmpgt_epi8_mask(A, B) \ - _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_GT) -#define _mm_mask_cmpgt_epi8_mask(k, A, B) \ - _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm_cmple_epi8_mask(A, B) \ - _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_LE) -#define _mm_mask_cmple_epi8_mask(k, A, B) \ - _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm_cmplt_epi8_mask(A, B) \ - _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_LT) -#define _mm_mask_cmplt_epi8_mask(k, A, B) \ - _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm_cmpneq_epi8_mask(A, B) \ - _mm_cmp_epi8_mask((A), (B), _MM_CMPINT_NE) -#define _mm_mask_cmpneq_epi8_mask(k, A, B) \ - _mm_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm256_cmpeq_epi8_mask(A, B) \ - _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_EQ) -#define _mm256_mask_cmpeq_epi8_mask(k, A, B) \ - _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm256_cmpge_epi8_mask(A, B) \ - _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_GE) -#define _mm256_mask_cmpge_epi8_mask(k, A, B) \ - _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm256_cmpgt_epi8_mask(A, B) \ - _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_GT) -#define _mm256_mask_cmpgt_epi8_mask(k, A, B) \ - _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm256_cmple_epi8_mask(A, B) \ - _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_LE) -#define _mm256_mask_cmple_epi8_mask(k, A, B) \ - _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm256_cmplt_epi8_mask(A, B) \ - _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_LT) -#define _mm256_mask_cmplt_epi8_mask(k, A, B) \ - _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm256_cmpneq_epi8_mask(A, B) \ - _mm256_cmp_epi8_mask((A), (B), _MM_CMPINT_NE) -#define _mm256_mask_cmpneq_epi8_mask(k, A, B) \ - _mm256_mask_cmp_epi8_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm_cmpeq_epu8_mask(A, B) \ - _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_EQ) -#define _mm_mask_cmpeq_epu8_mask(k, A, B) \ - _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm_cmpge_epu8_mask(A, B) \ - _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_GE) -#define _mm_mask_cmpge_epu8_mask(k, A, B) \ - _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm_cmpgt_epu8_mask(A, B) \ - _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_GT) -#define _mm_mask_cmpgt_epu8_mask(k, A, B) \ - _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm_cmple_epu8_mask(A, B) \ - _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_LE) -#define _mm_mask_cmple_epu8_mask(k, A, B) \ - _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm_cmplt_epu8_mask(A, B) \ - _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_LT) -#define _mm_mask_cmplt_epu8_mask(k, A, B) \ - _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm_cmpneq_epu8_mask(A, B) \ - _mm_cmp_epu8_mask((A), (B), _MM_CMPINT_NE) -#define _mm_mask_cmpneq_epu8_mask(k, A, B) \ - _mm_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm256_cmpeq_epu8_mask(A, B) \ - _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_EQ) -#define _mm256_mask_cmpeq_epu8_mask(k, A, B) \ - _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm256_cmpge_epu8_mask(A, B) \ - _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_GE) -#define _mm256_mask_cmpge_epu8_mask(k, A, B) \ - _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm256_cmpgt_epu8_mask(A, B) \ - _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_GT) -#define _mm256_mask_cmpgt_epu8_mask(k, A, B) \ - _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm256_cmple_epu8_mask(A, B) \ - _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_LE) -#define _mm256_mask_cmple_epu8_mask(k, A, B) \ - _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm256_cmplt_epu8_mask(A, B) \ - _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_LT) -#define _mm256_mask_cmplt_epu8_mask(k, A, B) \ - _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm256_cmpneq_epu8_mask(A, B) \ - _mm256_cmp_epu8_mask((A), (B), _MM_CMPINT_NE) -#define _mm256_mask_cmpneq_epu8_mask(k, A, B) \ - _mm256_mask_cmp_epu8_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm_cmpeq_epi16_mask(A, B) \ - _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_EQ) -#define _mm_mask_cmpeq_epi16_mask(k, A, B) \ - _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm_cmpge_epi16_mask(A, B) \ - _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_GE) -#define _mm_mask_cmpge_epi16_mask(k, A, B) \ - _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm_cmpgt_epi16_mask(A, B) \ - _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_GT) -#define _mm_mask_cmpgt_epi16_mask(k, A, B) \ - _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm_cmple_epi16_mask(A, B) \ - _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_LE) -#define _mm_mask_cmple_epi16_mask(k, A, B) \ - _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm_cmplt_epi16_mask(A, B) \ - _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_LT) -#define _mm_mask_cmplt_epi16_mask(k, A, B) \ - _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm_cmpneq_epi16_mask(A, B) \ - _mm_cmp_epi16_mask((A), (B), _MM_CMPINT_NE) -#define _mm_mask_cmpneq_epi16_mask(k, A, B) \ - _mm_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm256_cmpeq_epi16_mask(A, B) \ - _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_EQ) -#define _mm256_mask_cmpeq_epi16_mask(k, A, B) \ - _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm256_cmpge_epi16_mask(A, B) \ - _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_GE) -#define _mm256_mask_cmpge_epi16_mask(k, A, B) \ - _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm256_cmpgt_epi16_mask(A, B) \ - _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_GT) -#define _mm256_mask_cmpgt_epi16_mask(k, A, B) \ - _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm256_cmple_epi16_mask(A, B) \ - _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_LE) -#define _mm256_mask_cmple_epi16_mask(k, A, B) \ - _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm256_cmplt_epi16_mask(A, B) \ - _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_LT) -#define _mm256_mask_cmplt_epi16_mask(k, A, B) \ - _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm256_cmpneq_epi16_mask(A, B) \ - _mm256_cmp_epi16_mask((A), (B), _MM_CMPINT_NE) -#define _mm256_mask_cmpneq_epi16_mask(k, A, B) \ - _mm256_mask_cmp_epi16_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm_cmpeq_epu16_mask(A, B) \ - _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_EQ) -#define _mm_mask_cmpeq_epu16_mask(k, A, B) \ - _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm_cmpge_epu16_mask(A, B) \ - _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_GE) -#define _mm_mask_cmpge_epu16_mask(k, A, B) \ - _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm_cmpgt_epu16_mask(A, B) \ - _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_GT) -#define _mm_mask_cmpgt_epu16_mask(k, A, B) \ - _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm_cmple_epu16_mask(A, B) \ - _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_LE) -#define _mm_mask_cmple_epu16_mask(k, A, B) \ - _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm_cmplt_epu16_mask(A, B) \ - _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_LT) -#define _mm_mask_cmplt_epu16_mask(k, A, B) \ - _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm_cmpneq_epu16_mask(A, B) \ - _mm_cmp_epu16_mask((A), (B), _MM_CMPINT_NE) -#define _mm_mask_cmpneq_epu16_mask(k, A, B) \ - _mm_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm256_cmpeq_epu16_mask(A, B) \ - _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_EQ) -#define _mm256_mask_cmpeq_epu16_mask(k, A, B) \ - _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm256_cmpge_epu16_mask(A, B) \ - _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_GE) -#define _mm256_mask_cmpge_epu16_mask(k, A, B) \ - _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm256_cmpgt_epu16_mask(A, B) \ - _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_GT) -#define _mm256_mask_cmpgt_epu16_mask(k, A, B) \ - _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm256_cmple_epu16_mask(A, B) \ - _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_LE) -#define _mm256_mask_cmple_epu16_mask(k, A, B) \ - _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm256_cmplt_epu16_mask(A, B) \ - _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_LT) -#define _mm256_mask_cmplt_epu16_mask(k, A, B) \ - _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm256_cmpneq_epu16_mask(A, B) \ - _mm256_cmp_epu16_mask((A), (B), _MM_CMPINT_NE) -#define _mm256_mask_cmpneq_epu16_mask(k, A, B) \ - _mm256_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_add_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_add_epi8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_add_epi8(__mmask32 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_add_epi8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_add_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_add_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_add_epi16(__mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_add_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sub_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_sub_epi8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sub_epi8(__mmask32 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_sub_epi8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sub_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_sub_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sub_epi16(__mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_sub_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_add_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_add_epi8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_add_epi8(__mmask16 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_add_epi8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_add_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_add_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_add_epi16(__mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_add_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sub_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_sub_epi8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sub_epi8(__mmask16 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_sub_epi8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sub_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_sub_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sub_epi16(__mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_sub_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mullo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_mullo_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mullo_epi16(__mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_mullo_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mullo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_mullo_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mullo_epi16(__mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_mullo_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W) -{ - return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U, - (__v16qi) __W, - (__v16qi) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W) -{ - return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U, - (__v32qi) __W, - (__v32qi) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W) -{ - return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U, - (__v8hi) __W, - (__v8hi) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W) -{ - return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U, - (__v16hi) __W, - (__v16hi) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_abs_epi8(__A), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_abs_epi8(__mmask16 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_abs_epi8(__A), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_abs_epi8(__A), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_abs_epi8(__A), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_abs_epi16(__A), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_abs_epi16(__mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_abs_epi16(__A), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_abs_epi16(__A), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_abs_epi16(__A), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_packs_epi32(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_packs_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_packs_epi32(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_packs_epi32(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_packs_epi32(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_packs_epi16(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_packs_epi16(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_packs_epi16(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_packs_epi16(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_packus_epi32(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_packus_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_packus_epi32(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_packus_epi32(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_packus_epi32(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_packus_epi16(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_packus_epi16(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_packus_epi16(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_packus_epi16(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_adds_epi8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_adds_epi8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_adds_epi8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_adds_epi8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_adds_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_adds_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_adds_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_adds_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_adds_epu8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_adds_epu8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_adds_epu8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_adds_epu8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_adds_epu16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_adds_epu16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_adds_epu16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_adds_epu16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_avg_epu8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_avg_epu8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_avg_epu8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_avg_epu8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_avg_epu16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_avg_epu16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_avg_epu16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_avg_epu16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_max_epi8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_max_epi8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_max_epi8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_max_epi8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_max_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_max_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_max_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_max_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_max_epu8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_max_epu8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_max_epu8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_max_epu8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_max_epu16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_max_epu16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_max_epu16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_max_epu16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_min_epi8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_min_epi8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_min_epi8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_min_epi8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_min_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_min_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_min_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_min_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_min_epu8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm_min_epu8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_min_epu8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, - (__v32qi)_mm256_min_epu8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_min_epu16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_min_epu16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_min_epu16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_min_epu16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_shuffle_epi8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_shuffle_epi8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_shuffle_epi8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_shuffle_epi8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_subs_epi8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_subs_epi8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_subs_epi8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_subs_epi8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_subs_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_subs_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_subs_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_subs_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_subs_epu8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_subs_epu8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_subs_epu8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_subs_epu8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_subs_epu16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_subs_epu16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A, - __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_subs_epu16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_subs_epu16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_permutex2var_epi16(__m128i __A, __m128i __I, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpermi2varhi128((__v8hi)__A, (__v8hi)__I, - (__v8hi) __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_permutex2var_epi16(__m128i __A, __mmask8 __U, __m128i __I, - __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128(__U, - (__v8hi)_mm_permutex2var_epi16(__A, __I, __B), - (__v8hi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask2_permutex2var_epi16(__m128i __A, __m128i __I, __mmask8 __U, - __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128(__U, - (__v8hi)_mm_permutex2var_epi16(__A, __I, __B), - (__v8hi)__I); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I, - __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128(__U, - (__v8hi)_mm_permutex2var_epi16(__A, __I, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_permutex2var_epi16(__m256i __A, __m256i __I, __m256i __B) -{ - return (__m256i)__builtin_ia32_vpermi2varhi256((__v16hi)__A, (__v16hi)__I, - (__v16hi)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_permutex2var_epi16(__m256i __A, __mmask16 __U, __m256i __I, - __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256(__U, - (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B), - (__v16hi)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask2_permutex2var_epi16(__m256i __A, __m256i __I, __mmask16 __U, - __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256(__U, - (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B), - (__v16hi)__I); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A, __m256i __I, - __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256(__U, - (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_maddubs_epi16(__X, __Y), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_maddubs_epi16(__X, __Y), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X, - __m256i __Y) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_maddubs_epi16(__X, __Y), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_maddubs_epi16(__X, __Y), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_madd_epi16(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_madd_epi16(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_madd_epi16(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_madd_epi16(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtsepi16_epi8 (__m128i __A) { - return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, - (__v16qi) _mm_setzero_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { - return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) { - return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, - (__v16qi) _mm_setzero_si128(), - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtsepi16_epi8 (__m256i __A) { - return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, - (__v16qi) _mm_setzero_si128(), - (__mmask16) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { - return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) { - return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, - (__v16qi) _mm_setzero_si128(), - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtusepi16_epi8 (__m128i __A) { - return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, - (__v16qi) _mm_setzero_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { - return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) { - return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, - (__v16qi) _mm_setzero_si128(), - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtusepi16_epi8 (__m256i __A) { - return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, - (__v16qi) _mm_setzero_si128(), - (__mmask16) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { - return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) { - return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, - (__v16qi) _mm_setzero_si128(), - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtepi16_epi8 (__m128i __A) { - return (__m128i)__builtin_shufflevector( - __builtin_convertvector((__v8hi)__A, __v8qi), - (__v8qi){0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { - return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) { - return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, - (__v16qi) _mm_setzero_si128(), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovwb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M); -} - - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi16_epi8 (__m256i __A) { - return (__m128i)__builtin_convertvector((__v16hi) __A, __v16qi); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm256_cvtepi16_epi8(__A), - (__v16qi)__O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) { - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, - (__v16qi)_mm256_cvtepi16_epi8(__A), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A) -{ - __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A) -{ - __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A) -{ - __builtin_ia32_pmovuswb256mem_mask ((__v16qi*) __P, (__v16hi) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_mulhrs_epi16(__X, __Y), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_mulhrs_epi16(__X, __Y), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_mulhrs_epi16(__X, __Y), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_mulhrs_epi16(__X, __Y), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_mulhi_epu16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_mulhi_epu16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_mulhi_epu16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_mulhi_epu16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_mulhi_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_mulhi_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_mulhi_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_mulhi_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_unpackhi_epi8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_unpackhi_epi8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_unpackhi_epi8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_unpackhi_epi8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_unpackhi_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_unpackhi_epi16(__A, __B), - (__v8hi) _mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_unpackhi_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_unpackhi_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_unpacklo_epi8(__A, __B), - (__v16qi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, - (__v16qi)_mm_unpacklo_epi8(__A, __B), - (__v16qi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_unpacklo_epi8(__A, __B), - (__v32qi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, - (__v32qi)_mm256_unpacklo_epi8(__A, __B), - (__v32qi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_unpacklo_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_unpacklo_epi16(__A, __B), - (__v8hi) _mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_unpacklo_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_unpacklo_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi8_epi16(__m128i __W, __mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_cvtepi8_epi16(__A), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_cvtepi8_epi16(__A), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi8_epi16(__m256i __W, __mmask16 __U, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_cvtepi8_epi16(__A), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_cvtepi8_epi16(__A), - (__v16hi)_mm256_setzero_si256()); -} - - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepu8_epi16(__m128i __W, __mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_cvtepu8_epi16(__A), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_cvtepu8_epi16(__A), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepu8_epi16(__m256i __W, __mmask16 __U, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_cvtepu8_epi16(__A), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_cvtepu8_epi16(__A), - (__v16hi)_mm256_setzero_si256()); -} - - -#define _mm_mask_shufflehi_epi16(W, U, A, imm) \ - (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ - (__v8hi)_mm_shufflehi_epi16((A), (imm)), \ - (__v8hi)(__m128i)(W)) - -#define _mm_maskz_shufflehi_epi16(U, A, imm) \ - (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ - (__v8hi)_mm_shufflehi_epi16((A), (imm)), \ - (__v8hi)_mm_setzero_si128()) - -#define _mm256_mask_shufflehi_epi16(W, U, A, imm) \ - (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ - (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \ - (__v16hi)(__m256i)(W)) - -#define _mm256_maskz_shufflehi_epi16(U, A, imm) \ - (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ - (__v16hi)_mm256_shufflehi_epi16((A), (imm)), \ - (__v16hi)_mm256_setzero_si256()) - -#define _mm_mask_shufflelo_epi16(W, U, A, imm) \ - (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ - (__v8hi)_mm_shufflelo_epi16((A), (imm)), \ - (__v8hi)(__m128i)(W)) - -#define _mm_maskz_shufflelo_epi16(U, A, imm) \ - (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ - (__v8hi)_mm_shufflelo_epi16((A), (imm)), \ - (__v8hi)_mm_setzero_si128()) - -#define _mm256_mask_shufflelo_epi16(W, U, A, imm) \ - (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ - (__v16hi)_mm256_shufflelo_epi16((A), \ - (imm)), \ - (__v16hi)(__m256i)(W)) - -#define _mm256_maskz_shufflelo_epi16(U, A, imm) \ - (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ - (__v16hi)_mm256_shufflelo_epi16((A), \ - (imm)), \ - (__v16hi)_mm256_setzero_si256()) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sllv_epi16(__m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_psllv16hi((__v16hi)__A, (__v16hi)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sllv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_sllv_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sllv_epi16(__mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_sllv_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_sllv_epi16(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_psllv8hi((__v8hi)__A, (__v8hi)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sllv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_sllv_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sllv_epi16(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_sllv_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sll_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_sll_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_sll_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sll_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_sll_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sll_epi16(__mmask16 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_sll_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_slli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_slli_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_slli_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_slli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_slli_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_slli_epi16(__mmask16 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_slli_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srlv_epi16(__m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_psrlv16hi((__v16hi)__A, (__v16hi)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srlv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_srlv_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srlv_epi16(__mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_srlv_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_srlv_epi16(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_psrlv8hi((__v8hi)__A, (__v8hi)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srlv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_srlv_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srlv_epi16(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_srlv_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srav_epi16(__m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_psrav16hi((__v16hi)__A, (__v16hi)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srav_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_srav_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srav_epi16(__mmask16 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_srav_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_srav_epi16(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_psrav8hi((__v8hi)__A, (__v8hi)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srav_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_srav_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srav_epi16(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_srav_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sra_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_sra_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sra_epi16(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_sra_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sra_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_sra_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sra_epi16(__mmask16 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_sra_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srai_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_srai_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srai_epi16(__mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_srai_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srai_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_srai_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srai_epi16(__mmask16 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_srai_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srl_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_srl_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_srl_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srl_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_srl_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srl_epi16(__mmask16 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_srl_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_srli_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, - (__v8hi)_mm_srli_epi16(__A, __B), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_srli_epi16(__A, __B), - (__v16hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srli_epi16(__mmask16 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, - (__v16hi)_mm256_srli_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A) -{ - return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U, - (__v8hi) __A, - (__v8hi) __W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A) -{ - return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U, - (__v8hi) __A, - (__v8hi) _mm_setzero_si128 ()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A) -{ - return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U, - (__v16hi) __A, - (__v16hi) __W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A) -{ - return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U, - (__v16hi) __A, - (__v16hi) _mm256_setzero_si256 ()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A) -{ - return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U, - (__v16qi) __A, - (__v16qi) __W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A) -{ - return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U, - (__v16qi) __A, - (__v16qi) _mm_setzero_si128 ()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A) -{ - return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U, - (__v32qi) __A, - (__v32qi) __W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A) -{ - return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U, - (__v32qi) __A, - (__v32qi) _mm256_setzero_si256 ()); -} - - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A) -{ - return (__m128i) __builtin_ia32_selectb_128(__M, - (__v16qi) _mm_set1_epi8(__A), - (__v16qi) __O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_set1_epi8 (__mmask16 __M, char __A) -{ - return (__m128i) __builtin_ia32_selectb_128(__M, - (__v16qi) _mm_set1_epi8(__A), - (__v16qi) _mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A) -{ - return (__m256i) __builtin_ia32_selectb_256(__M, - (__v32qi) _mm256_set1_epi8(__A), - (__v32qi) __O); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_set1_epi8 (__mmask32 __M, char __A) -{ - return (__m256i) __builtin_ia32_selectb_256(__M, - (__v32qi) _mm256_set1_epi8(__A), - (__v32qi) _mm256_setzero_si256()); -} - -static __inline __m128i __DEFAULT_FN_ATTRS128 -_mm_loadu_epi16 (void const *__P) -{ - struct __loadu_epi16 { - __m128i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi16*)__P)->__v; -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P, - (__v8hi) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P, - (__v8hi) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline __m256i __DEFAULT_FN_ATTRS256 -_mm256_loadu_epi16 (void const *__P) -{ - struct __loadu_epi16 { - __m256i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi16*)__P)->__v; -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P, - (__v16hi) __W, - (__mmask16) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P, - (__v16hi) - _mm256_setzero_si256 (), - (__mmask16) __U); -} - -static __inline __m128i __DEFAULT_FN_ATTRS128 -_mm_loadu_epi8 (void const *__P) -{ - struct __loadu_epi8 { - __m128i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi8*)__P)->__v; -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P, - (__v16qi) __W, - (__mmask16) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P, - (__v16qi) - _mm_setzero_si128 (), - (__mmask16) __U); -} - -static __inline __m256i __DEFAULT_FN_ATTRS256 -_mm256_loadu_epi8 (void const *__P) -{ - struct __loadu_epi8 { - __m256i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi8*)__P)->__v; -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P, - (__v32qi) __W, - (__mmask32) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P, - (__v32qi) - _mm256_setzero_si256 (), - (__mmask32) __U); -} - -static __inline void __DEFAULT_FN_ATTRS128 -_mm_storeu_epi16 (void *__P, __m128i __A) -{ - struct __storeu_epi16 { - __m128i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi16*)__P)->__v = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A) -{ - __builtin_ia32_storedquhi128_mask ((__v8hi *) __P, - (__v8hi) __A, - (__mmask8) __U); -} - -static __inline void __DEFAULT_FN_ATTRS256 -_mm256_storeu_epi16 (void *__P, __m256i __A) -{ - struct __storeu_epi16 { - __m256i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi16*)__P)->__v = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A) -{ - __builtin_ia32_storedquhi256_mask ((__v16hi *) __P, - (__v16hi) __A, - (__mmask16) __U); -} - -static __inline void __DEFAULT_FN_ATTRS128 -_mm_storeu_epi8 (void *__P, __m128i __A) -{ - struct __storeu_epi8 { - __m128i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi8*)__P)->__v = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A) -{ - __builtin_ia32_storedquqi128_mask ((__v16qi *) __P, - (__v16qi) __A, - (__mmask16) __U); -} - -static __inline void __DEFAULT_FN_ATTRS256 -_mm256_storeu_epi8 (void *__P, __m256i __A) -{ - struct __storeu_epi8 { - __m256i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi8*)__P)->__v = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A) -{ - __builtin_ia32_storedquqi256_mask ((__v32qi *) __P, - (__v32qi) __A, - (__mmask32) __U); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS128 -_mm_test_epi8_mask (__m128i __A, __m128i __B) -{ - return _mm_cmpneq_epi8_mask (_mm_and_si128(__A, __B), _mm_setzero_si128()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS128 -_mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) -{ - return _mm_mask_cmpneq_epi8_mask (__U, _mm_and_si128 (__A, __B), - _mm_setzero_si128()); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS256 -_mm256_test_epi8_mask (__m256i __A, __m256i __B) -{ - return _mm256_cmpneq_epi8_mask (_mm256_and_si256(__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS256 -_mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) -{ - return _mm256_mask_cmpneq_epi8_mask (__U, _mm256_and_si256(__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_test_epi16_mask (__m128i __A, __m128i __B) -{ - return _mm_cmpneq_epi16_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) -{ - return _mm_mask_cmpneq_epi16_mask (__U, _mm_and_si128 (__A, __B), - _mm_setzero_si128()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS256 -_mm256_test_epi16_mask (__m256i __A, __m256i __B) -{ - return _mm256_cmpneq_epi16_mask (_mm256_and_si256 (__A, __B), - _mm256_setzero_si256 ()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS256 -_mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) -{ - return _mm256_mask_cmpneq_epi16_mask (__U, _mm256_and_si256(__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS128 -_mm_testn_epi8_mask (__m128i __A, __m128i __B) -{ - return _mm_cmpeq_epi8_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS128 -_mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) -{ - return _mm_mask_cmpeq_epi8_mask (__U, _mm_and_si128 (__A, __B), - _mm_setzero_si128()); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS256 -_mm256_testn_epi8_mask (__m256i __A, __m256i __B) -{ - return _mm256_cmpeq_epi8_mask (_mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS256 -_mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) -{ - return _mm256_mask_cmpeq_epi8_mask (__U, _mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_testn_epi16_mask (__m128i __A, __m128i __B) -{ - return _mm_cmpeq_epi16_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) -{ - return _mm_mask_cmpeq_epi16_mask (__U, _mm_and_si128(__A, __B), _mm_setzero_si128()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS256 -_mm256_testn_epi16_mask (__m256i __A, __m256i __B) -{ - return _mm256_cmpeq_epi16_mask (_mm256_and_si256(__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS256 -_mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) -{ - return _mm256_mask_cmpeq_epi16_mask (__U, _mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS128 -_mm_movepi8_mask (__m128i __A) -{ - return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A); -} - -static __inline__ __mmask32 __DEFAULT_FN_ATTRS256 -_mm256_movepi8_mask (__m256i __A) -{ - return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_movepi16_mask (__m128i __A) -{ - return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A); -} - -static __inline__ __mmask16 __DEFAULT_FN_ATTRS256 -_mm256_movepi16_mask (__m256i __A) -{ - return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_movm_epi8 (__mmask16 __A) -{ - return (__m128i) __builtin_ia32_cvtmask2b128 (__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_movm_epi8 (__mmask32 __A) -{ - return (__m256i) __builtin_ia32_cvtmask2b256 (__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_movm_epi16 (__mmask8 __A) -{ - return (__m128i) __builtin_ia32_cvtmask2w128 (__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_movm_epi16 (__mmask16 __A) -{ - return (__m256i) __builtin_ia32_cvtmask2w256 (__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectb_128(__M, - (__v16qi) _mm_broadcastb_epi8(__A), - (__v16qi) __O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectb_128(__M, - (__v16qi) _mm_broadcastb_epi8(__A), - (__v16qi) _mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectb_256(__M, - (__v32qi) _mm256_broadcastb_epi8(__A), - (__v32qi) __O); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectb_256(__M, - (__v32qi) _mm256_broadcastb_epi8(__A), - (__v32qi) _mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectw_128(__M, - (__v8hi) _mm_broadcastw_epi16(__A), - (__v8hi) __O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectw_128(__M, - (__v8hi) _mm_broadcastw_epi16(__A), - (__v8hi) _mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectw_256(__M, - (__v16hi) _mm256_broadcastw_epi16(__A), - (__v16hi) __O); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectw_256(__M, - (__v16hi) _mm256_broadcastw_epi16(__A), - (__v16hi) _mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A) -{ - return (__m256i) __builtin_ia32_selectw_256 (__M, - (__v16hi) _mm256_set1_epi16(__A), - (__v16hi) __O); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_set1_epi16 (__mmask16 __M, short __A) -{ - return (__m256i) __builtin_ia32_selectw_256(__M, - (__v16hi)_mm256_set1_epi16(__A), - (__v16hi) _mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A) -{ - return (__m128i) __builtin_ia32_selectw_128(__M, - (__v8hi) _mm_set1_epi16(__A), - (__v8hi) __O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_set1_epi16 (__mmask8 __M, short __A) -{ - return (__m128i) __builtin_ia32_selectw_128(__M, - (__v8hi) _mm_set1_epi16(__A), - (__v8hi) _mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_permutexvar_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_permvarhi128((__v8hi) __B, (__v8hi) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_permutexvar_epi16(__A, __B), - (__v8hi) _mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A, - __m128i __B) -{ - return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, - (__v8hi)_mm_permutexvar_epi16(__A, __B), - (__v8hi)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_permutexvar_epi16 (__m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_permvarhi256((__v16hi) __B, (__v16hi) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A, - __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_permutexvar_epi16(__A, __B), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A, - __m256i __B) -{ - return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, - (__v16hi)_mm256_permutexvar_epi16(__A, __B), - (__v16hi)__W); -} - -#define _mm_mask_alignr_epi8(W, U, A, B, N) \ - (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \ - (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \ - (__v16qi)(__m128i)(W)) - -#define _mm_maskz_alignr_epi8(U, A, B, N) \ - (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \ - (__v16qi)_mm_alignr_epi8((A), (B), (int)(N)), \ - (__v16qi)_mm_setzero_si128()) - -#define _mm256_mask_alignr_epi8(W, U, A, B, N) \ - (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \ - (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \ - (__v32qi)(__m256i)(W)) - -#define _mm256_maskz_alignr_epi8(U, A, B, N) \ - (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \ - (__v32qi)_mm256_alignr_epi8((A), (B), (int)(N)), \ - (__v32qi)_mm256_setzero_si256()) - -#define _mm_dbsad_epu8(A, B, imm) \ - (__m128i)__builtin_ia32_dbpsadbw128((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (int)(imm)) - -#define _mm_mask_dbsad_epu8(W, U, A, B, imm) \ - (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ - (__v8hi)_mm_dbsad_epu8((A), (B), (imm)), \ - (__v8hi)(__m128i)(W)) - -#define _mm_maskz_dbsad_epu8(U, A, B, imm) \ - (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ - (__v8hi)_mm_dbsad_epu8((A), (B), (imm)), \ - (__v8hi)_mm_setzero_si128()) - -#define _mm256_dbsad_epu8(A, B, imm) \ - (__m256i)__builtin_ia32_dbpsadbw256((__v32qi)(__m256i)(A), \ - (__v32qi)(__m256i)(B), (int)(imm)) - -#define _mm256_mask_dbsad_epu8(W, U, A, B, imm) \ - (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ - (__v16hi)_mm256_dbsad_epu8((A), (B), (imm)), \ - (__v16hi)(__m256i)(W)) - -#define _mm256_maskz_dbsad_epu8(U, A, B, imm) \ - (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ - (__v16hi)_mm256_dbsad_epu8((A), (B), (imm)), \ - (__v16hi)_mm256_setzero_si256()) - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif /* __AVX512VLBWINTRIN_H */ diff --git a/bin/app/data/cxx/include/avx512vlcdintrin.h b/bin/app/data/cxx/include/avx512vlcdintrin.h deleted file mode 100644 index cc8b7252..00000000 --- a/bin/app/data/cxx/include/avx512vlcdintrin.h +++ /dev/null @@ -1,225 +0,0 @@ -/*===---- avx512vlcdintrin.h - AVX512VL and AVX512CD intrinsics ------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512VLCDINTRIN_H -#define __AVX512VLCDINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) - - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_broadcastmb_epi64 (__mmask8 __A) -{ - return (__m128i) _mm_set1_epi64x((long long) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_broadcastmb_epi64 (__mmask8 __A) -{ - return (__m256i) _mm256_set1_epi64x((long long)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_broadcastmw_epi32 (__mmask16 __A) -{ - return (__m128i) _mm_set1_epi32((int)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_broadcastmw_epi32 (__mmask16 __A) -{ - return (__m256i) _mm256_set1_epi32((int)__A); -} - - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_conflict_epi64 (__m128i __A) -{ - return (__m128i) __builtin_ia32_vpconflictdi_128 ((__v2di) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_conflict_epi64 (__m128i __W, __mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_conflict_epi64(__A), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_conflict_epi64 (__mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_conflict_epi64(__A), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_conflict_epi64 (__m256i __A) -{ - return (__m256i) __builtin_ia32_vpconflictdi_256 ((__v4di) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_conflict_epi64 (__m256i __W, __mmask8 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_conflict_epi64(__A), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_conflict_epi64 (__mmask8 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_conflict_epi64(__A), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_conflict_epi32 (__m128i __A) -{ - return (__m128i) __builtin_ia32_vpconflictsi_128 ((__v4si) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_conflict_epi32 (__m128i __W, __mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_conflict_epi32(__A), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_conflict_epi32 (__mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_conflict_epi32(__A), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_conflict_epi32 (__m256i __A) -{ - return (__m256i) __builtin_ia32_vpconflictsi_256 ((__v8si) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_conflict_epi32 (__m256i __W, __mmask8 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_conflict_epi32(__A), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_conflict_epi32 (__mmask8 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_conflict_epi32(__A), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_lzcnt_epi32 (__m128i __A) -{ - return (__m128i) __builtin_ia32_vplzcntd_128 ((__v4si) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_lzcnt_epi32 (__m128i __W, __mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_lzcnt_epi32(__A), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_lzcnt_epi32 (__mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_lzcnt_epi32(__A), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_lzcnt_epi32 (__m256i __A) -{ - return (__m256i) __builtin_ia32_vplzcntd_256 ((__v8si) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_lzcnt_epi32 (__m256i __W, __mmask8 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_lzcnt_epi32(__A), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_lzcnt_epi32 (__mmask8 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_lzcnt_epi32(__A), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_lzcnt_epi64 (__m128i __A) -{ - return (__m128i) __builtin_ia32_vplzcntq_128 ((__v2di) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_lzcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_lzcnt_epi64(__A), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_lzcnt_epi64 (__mmask8 __U, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_lzcnt_epi64(__A), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_lzcnt_epi64 (__m256i __A) -{ - return (__m256i) __builtin_ia32_vplzcntq_256 ((__v4di) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_lzcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_lzcnt_epi64(__A), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_lzcnt_epi64 (__mmask8 __U, __m256i __A) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_lzcnt_epi64(__A), - (__v4di)_mm256_setzero_si256()); -} - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif /* __AVX512VLCDINTRIN_H */ diff --git a/bin/app/data/cxx/include/avx512vldqintrin.h b/bin/app/data/cxx/include/avx512vldqintrin.h deleted file mode 100644 index 95ba574e..00000000 --- a/bin/app/data/cxx/include/avx512vldqintrin.h +++ /dev/null @@ -1,1167 +0,0 @@ -/*===---- avx512vldqintrin.h - AVX512VL and AVX512DQ intrinsics ------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512VLDQINTRIN_H -#define __AVX512VLDQINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mullo_epi64 (__m256i __A, __m256i __B) { - return (__m256i) ((__v4du) __A * (__v4du) __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mullo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_mullo_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mullo_epi64(__mmask8 __U, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_mullo_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mullo_epi64 (__m128i __A, __m128i __B) { - return (__m128i) ((__v2du) __A * (__v2du) __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mullo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_mullo_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mullo_epi64(__mmask8 __U, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_mullo_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_andnot_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_andnot_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_andnot_pd(__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_andnot_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_andnot_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_andnot_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_andnot_pd(__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_andnot_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_andnot_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_andnot_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_andnot_ps(__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_andnot_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_andnot_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_andnot_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_andnot_ps(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_andnot_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_and_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_and_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_and_pd(__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_and_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_and_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_and_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_and_pd(__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_and_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_and_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_and_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_and_ps(__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_and_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_and_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_and_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_and_ps(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_and_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_xor_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_xor_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_xor_pd(__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_xor_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_xor_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_xor_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_xor_pd (__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_xor_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_xor_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_xor_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_xor_ps(__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_xor_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_xor_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_xor_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_xor_ps(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_xor_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_or_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_or_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_or_pd(__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_or_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_or_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_or_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_or_pd(__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_or_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_or_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_or_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_or_ps(__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_or_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_or_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_or_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_or_ps(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_or_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtpd_epi64 (__m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2qq128_mask ((__v2df) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtpd_epi64 (__m128i __W, __mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2qq128_mask ((__v2df) __A, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtpd_epi64 (__mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2qq128_mask ((__v2df) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtpd_epi64 (__m256d __A) { - return (__m256i) __builtin_ia32_cvtpd2qq256_mask ((__v4df) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtpd_epi64 (__m256i __W, __mmask8 __U, __m256d __A) { - return (__m256i) __builtin_ia32_cvtpd2qq256_mask ((__v4df) __A, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtpd_epi64 (__mmask8 __U, __m256d __A) { - return (__m256i) __builtin_ia32_cvtpd2qq256_mask ((__v4df) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtpd_epu64 (__m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2uqq128_mask ((__v2df) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtpd_epu64 (__m128i __W, __mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2uqq128_mask ((__v2df) __A, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtpd_epu64 (__mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2uqq128_mask ((__v2df) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtpd_epu64 (__m256d __A) { - return (__m256i) __builtin_ia32_cvtpd2uqq256_mask ((__v4df) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtpd_epu64 (__m256i __W, __mmask8 __U, __m256d __A) { - return (__m256i) __builtin_ia32_cvtpd2uqq256_mask ((__v4df) __A, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtpd_epu64 (__mmask8 __U, __m256d __A) { - return (__m256i) __builtin_ia32_cvtpd2uqq256_mask ((__v4df) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtps_epi64 (__m128 __A) { - return (__m128i) __builtin_ia32_cvtps2qq128_mask ((__v4sf) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtps_epi64 (__m128i __W, __mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvtps2qq128_mask ((__v4sf) __A, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtps_epi64 (__mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvtps2qq128_mask ((__v4sf) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtps_epi64 (__m128 __A) { - return (__m256i) __builtin_ia32_cvtps2qq256_mask ((__v4sf) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtps_epi64 (__m256i __W, __mmask8 __U, __m128 __A) { - return (__m256i) __builtin_ia32_cvtps2qq256_mask ((__v4sf) __A, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtps_epi64 (__mmask8 __U, __m128 __A) { - return (__m256i) __builtin_ia32_cvtps2qq256_mask ((__v4sf) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtps_epu64 (__m128 __A) { - return (__m128i) __builtin_ia32_cvtps2uqq128_mask ((__v4sf) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtps_epu64 (__m128i __W, __mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvtps2uqq128_mask ((__v4sf) __A, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtps_epu64 (__mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvtps2uqq128_mask ((__v4sf) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtps_epu64 (__m128 __A) { - return (__m256i) __builtin_ia32_cvtps2uqq256_mask ((__v4sf) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtps_epu64 (__m256i __W, __mmask8 __U, __m128 __A) { - return (__m256i) __builtin_ia32_cvtps2uqq256_mask ((__v4sf) __A, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtps_epu64 (__mmask8 __U, __m128 __A) { - return (__m256i) __builtin_ia32_cvtps2uqq256_mask ((__v4sf) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_cvtepi64_pd (__m128i __A) { - return (__m128d)__builtin_convertvector((__v2di)__A, __v2df); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi64_pd (__m128d __W, __mmask8 __U, __m128i __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_cvtepi64_pd(__A), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi64_pd (__mmask8 __U, __m128i __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_cvtepi64_pd(__A), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_cvtepi64_pd (__m256i __A) { - return (__m256d)__builtin_convertvector((__v4di)__A, __v4df); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi64_pd (__m256d __W, __mmask8 __U, __m256i __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_cvtepi64_pd(__A), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi64_pd (__mmask8 __U, __m256i __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_cvtepi64_pd(__A), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_cvtepi64_ps (__m128i __A) { - return (__m128) __builtin_ia32_cvtqq2ps128_mask ((__v2di) __A, - (__v4sf) _mm_setzero_ps(), - (__mmask8) -1); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi64_ps (__m128 __W, __mmask8 __U, __m128i __A) { - return (__m128) __builtin_ia32_cvtqq2ps128_mask ((__v2di) __A, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi64_ps (__mmask8 __U, __m128i __A) { - return (__m128) __builtin_ia32_cvtqq2ps128_mask ((__v2di) __A, - (__v4sf) _mm_setzero_ps(), - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS256 -_mm256_cvtepi64_ps (__m256i __A) { - return (__m128)__builtin_convertvector((__v4di)__A, __v4sf); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi64_ps (__m128 __W, __mmask8 __U, __m256i __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm256_cvtepi64_ps(__A), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi64_ps (__mmask8 __U, __m256i __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm256_cvtepi64_ps(__A), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvttpd_epi64 (__m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2qq128_mask ((__v2df) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvttpd_epi64 (__m128i __W, __mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2qq128_mask ((__v2df) __A, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvttpd_epi64 (__mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2qq128_mask ((__v2df) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvttpd_epi64 (__m256d __A) { - return (__m256i) __builtin_ia32_cvttpd2qq256_mask ((__v4df) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvttpd_epi64 (__m256i __W, __mmask8 __U, __m256d __A) { - return (__m256i) __builtin_ia32_cvttpd2qq256_mask ((__v4df) __A, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvttpd_epi64 (__mmask8 __U, __m256d __A) { - return (__m256i) __builtin_ia32_cvttpd2qq256_mask ((__v4df) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvttpd_epu64 (__m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2uqq128_mask ((__v2df) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvttpd_epu64 (__m128i __W, __mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2uqq128_mask ((__v2df) __A, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvttpd_epu64 (__mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2uqq128_mask ((__v2df) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvttpd_epu64 (__m256d __A) { - return (__m256i) __builtin_ia32_cvttpd2uqq256_mask ((__v4df) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvttpd_epu64 (__m256i __W, __mmask8 __U, __m256d __A) { - return (__m256i) __builtin_ia32_cvttpd2uqq256_mask ((__v4df) __A, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvttpd_epu64 (__mmask8 __U, __m256d __A) { - return (__m256i) __builtin_ia32_cvttpd2uqq256_mask ((__v4df) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvttps_epi64 (__m128 __A) { - return (__m128i) __builtin_ia32_cvttps2qq128_mask ((__v4sf) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvttps_epi64 (__m128i __W, __mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvttps2qq128_mask ((__v4sf) __A, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvttps_epi64 (__mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvttps2qq128_mask ((__v4sf) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvttps_epi64 (__m128 __A) { - return (__m256i) __builtin_ia32_cvttps2qq256_mask ((__v4sf) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvttps_epi64 (__m256i __W, __mmask8 __U, __m128 __A) { - return (__m256i) __builtin_ia32_cvttps2qq256_mask ((__v4sf) __A, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvttps_epi64 (__mmask8 __U, __m128 __A) { - return (__m256i) __builtin_ia32_cvttps2qq256_mask ((__v4sf) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvttps_epu64 (__m128 __A) { - return (__m128i) __builtin_ia32_cvttps2uqq128_mask ((__v4sf) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvttps_epu64 (__m128i __W, __mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvttps2uqq128_mask ((__v4sf) __A, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvttps_epu64 (__mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvttps2uqq128_mask ((__v4sf) __A, - (__v2di) _mm_setzero_si128(), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvttps_epu64 (__m128 __A) { - return (__m256i) __builtin_ia32_cvttps2uqq256_mask ((__v4sf) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvttps_epu64 (__m256i __W, __mmask8 __U, __m128 __A) { - return (__m256i) __builtin_ia32_cvttps2uqq256_mask ((__v4sf) __A, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvttps_epu64 (__mmask8 __U, __m128 __A) { - return (__m256i) __builtin_ia32_cvttps2uqq256_mask ((__v4sf) __A, - (__v4di) _mm256_setzero_si256(), - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_cvtepu64_pd (__m128i __A) { - return (__m128d)__builtin_convertvector((__v2du)__A, __v2df); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepu64_pd (__m128d __W, __mmask8 __U, __m128i __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_cvtepu64_pd(__A), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepu64_pd (__mmask8 __U, __m128i __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_cvtepu64_pd(__A), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_cvtepu64_pd (__m256i __A) { - return (__m256d)__builtin_convertvector((__v4du)__A, __v4df); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepu64_pd (__m256d __W, __mmask8 __U, __m256i __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_cvtepu64_pd(__A), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepu64_pd (__mmask8 __U, __m256i __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_cvtepu64_pd(__A), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_cvtepu64_ps (__m128i __A) { - return (__m128) __builtin_ia32_cvtuqq2ps128_mask ((__v2di) __A, - (__v4sf) _mm_setzero_ps(), - (__mmask8) -1); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepu64_ps (__m128 __W, __mmask8 __U, __m128i __A) { - return (__m128) __builtin_ia32_cvtuqq2ps128_mask ((__v2di) __A, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepu64_ps (__mmask8 __U, __m128i __A) { - return (__m128) __builtin_ia32_cvtuqq2ps128_mask ((__v2di) __A, - (__v4sf) _mm_setzero_ps(), - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS256 -_mm256_cvtepu64_ps (__m256i __A) { - return (__m128)__builtin_convertvector((__v4du)__A, __v4sf); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepu64_ps (__m128 __W, __mmask8 __U, __m256i __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm256_cvtepu64_ps(__A), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepu64_ps (__mmask8 __U, __m256i __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm256_cvtepu64_ps(__A), - (__v4sf)_mm_setzero_ps()); -} - -#define _mm_range_pd(A, B, C) \ - (__m128d)__builtin_ia32_rangepd128_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), (int)(C), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1) - -#define _mm_mask_range_pd(W, U, A, B, C) \ - (__m128d)__builtin_ia32_rangepd128_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), (int)(C), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U)) - -#define _mm_maskz_range_pd(U, A, B, C) \ - (__m128d)__builtin_ia32_rangepd128_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), (int)(C), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U)) - -#define _mm256_range_pd(A, B, C) \ - (__m256d)__builtin_ia32_rangepd256_mask((__v4df)(__m256d)(A), \ - (__v4df)(__m256d)(B), (int)(C), \ - (__v4df)_mm256_setzero_pd(), \ - (__mmask8)-1) - -#define _mm256_mask_range_pd(W, U, A, B, C) \ - (__m256d)__builtin_ia32_rangepd256_mask((__v4df)(__m256d)(A), \ - (__v4df)(__m256d)(B), (int)(C), \ - (__v4df)(__m256d)(W), \ - (__mmask8)(U)) - -#define _mm256_maskz_range_pd(U, A, B, C) \ - (__m256d)__builtin_ia32_rangepd256_mask((__v4df)(__m256d)(A), \ - (__v4df)(__m256d)(B), (int)(C), \ - (__v4df)_mm256_setzero_pd(), \ - (__mmask8)(U)) - -#define _mm_range_ps(A, B, C) \ - (__m128)__builtin_ia32_rangeps128_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), (int)(C), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1) - -#define _mm_mask_range_ps(W, U, A, B, C) \ - (__m128)__builtin_ia32_rangeps128_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), (int)(C), \ - (__v4sf)(__m128)(W), (__mmask8)(U)) - -#define _mm_maskz_range_ps(U, A, B, C) \ - (__m128)__builtin_ia32_rangeps128_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), (int)(C), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U)) - -#define _mm256_range_ps(A, B, C) \ - (__m256)__builtin_ia32_rangeps256_mask((__v8sf)(__m256)(A), \ - (__v8sf)(__m256)(B), (int)(C), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)-1) - -#define _mm256_mask_range_ps(W, U, A, B, C) \ - (__m256)__builtin_ia32_rangeps256_mask((__v8sf)(__m256)(A), \ - (__v8sf)(__m256)(B), (int)(C), \ - (__v8sf)(__m256)(W), (__mmask8)(U)) - -#define _mm256_maskz_range_ps(U, A, B, C) \ - (__m256)__builtin_ia32_rangeps256_mask((__v8sf)(__m256)(A), \ - (__v8sf)(__m256)(B), (int)(C), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)(U)) - -#define _mm_reduce_pd(A, B) \ - (__m128d)__builtin_ia32_reducepd128_mask((__v2df)(__m128d)(A), (int)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1) - -#define _mm_mask_reduce_pd(W, U, A, B) \ - (__m128d)__builtin_ia32_reducepd128_mask((__v2df)(__m128d)(A), (int)(B), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U)) - -#define _mm_maskz_reduce_pd(U, A, B) \ - (__m128d)__builtin_ia32_reducepd128_mask((__v2df)(__m128d)(A), (int)(B), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U)) - -#define _mm256_reduce_pd(A, B) \ - (__m256d)__builtin_ia32_reducepd256_mask((__v4df)(__m256d)(A), (int)(B), \ - (__v4df)_mm256_setzero_pd(), \ - (__mmask8)-1) - -#define _mm256_mask_reduce_pd(W, U, A, B) \ - (__m256d)__builtin_ia32_reducepd256_mask((__v4df)(__m256d)(A), (int)(B), \ - (__v4df)(__m256d)(W), \ - (__mmask8)(U)) - -#define _mm256_maskz_reduce_pd(U, A, B) \ - (__m256d)__builtin_ia32_reducepd256_mask((__v4df)(__m256d)(A), (int)(B), \ - (__v4df)_mm256_setzero_pd(), \ - (__mmask8)(U)) - -#define _mm_reduce_ps(A, B) \ - (__m128)__builtin_ia32_reduceps128_mask((__v4sf)(__m128)(A), (int)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1) - -#define _mm_mask_reduce_ps(W, U, A, B) \ - (__m128)__builtin_ia32_reduceps128_mask((__v4sf)(__m128)(A), (int)(B), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U)) - -#define _mm_maskz_reduce_ps(U, A, B) \ - (__m128)__builtin_ia32_reduceps128_mask((__v4sf)(__m128)(A), (int)(B), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U)) - -#define _mm256_reduce_ps(A, B) \ - (__m256)__builtin_ia32_reduceps256_mask((__v8sf)(__m256)(A), (int)(B), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)-1) - -#define _mm256_mask_reduce_ps(W, U, A, B) \ - (__m256)__builtin_ia32_reduceps256_mask((__v8sf)(__m256)(A), (int)(B), \ - (__v8sf)(__m256)(W), \ - (__mmask8)(U)) - -#define _mm256_maskz_reduce_ps(U, A, B) \ - (__m256)__builtin_ia32_reduceps256_mask((__v8sf)(__m256)(A), (int)(B), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)(U)) - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_movepi32_mask (__m128i __A) -{ - return (__mmask8) __builtin_ia32_cvtd2mask128 ((__v4si) __A); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS256 -_mm256_movepi32_mask (__m256i __A) -{ - return (__mmask8) __builtin_ia32_cvtd2mask256 ((__v8si) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_movm_epi32 (__mmask8 __A) -{ - return (__m128i) __builtin_ia32_cvtmask2d128 (__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_movm_epi32 (__mmask8 __A) -{ - return (__m256i) __builtin_ia32_cvtmask2d256 (__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_movm_epi64 (__mmask8 __A) -{ - return (__m128i) __builtin_ia32_cvtmask2q128 (__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_movm_epi64 (__mmask8 __A) -{ - return (__m256i) __builtin_ia32_cvtmask2q256 (__A); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_movepi64_mask (__m128i __A) -{ - return (__mmask8) __builtin_ia32_cvtq2mask128 ((__v2di) __A); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS256 -_mm256_movepi64_mask (__m256i __A) -{ - return (__mmask8) __builtin_ia32_cvtq2mask256 ((__v4di) __A); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_broadcast_f32x2 (__m128 __A) -{ - return (__m256)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A, - 0, 1, 0, 1, 0, 1, 0, 1); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcast_f32x2 (__m256 __O, __mmask8 __M, __m128 __A) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__M, - (__v8sf)_mm256_broadcast_f32x2(__A), - (__v8sf)__O); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcast_f32x2 (__mmask8 __M, __m128 __A) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__M, - (__v8sf)_mm256_broadcast_f32x2(__A), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_broadcast_f64x2(__m128d __A) -{ - return (__m256d)__builtin_shufflevector((__v2df)__A, (__v2df)__A, - 0, 1, 0, 1); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcast_f64x2(__m256d __O, __mmask8 __M, __m128d __A) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__M, - (__v4df)_mm256_broadcast_f64x2(__A), - (__v4df)__O); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__M, - (__v4df)_mm256_broadcast_f64x2(__A), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_broadcast_i32x2 (__m128i __A) -{ - return (__m128i)__builtin_shufflevector((__v4si)__A, (__v4si)__A, - 0, 1, 0, 1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_broadcast_i32x2 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_broadcast_i32x2(__A), - (__v4si)__O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_broadcast_i32x2(__A), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_broadcast_i32x2 (__m128i __A) -{ - return (__m256i)__builtin_shufflevector((__v4si)__A, (__v4si)__A, - 0, 1, 0, 1, 0, 1, 0, 1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcast_i32x2 (__m256i __O, __mmask8 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_broadcast_i32x2(__A), - (__v8si)__O); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_broadcast_i32x2(__A), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_broadcast_i64x2(__m128i __A) -{ - return (__m256i)__builtin_shufflevector((__v2di)__A, (__v2di)__A, - 0, 1, 0, 1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcast_i64x2(__m256i __O, __mmask8 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_broadcast_i64x2(__A), - (__v4di)__O); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_broadcast_i64x2(__A), - (__v4di)_mm256_setzero_si256()); -} - -#define _mm256_extractf64x2_pd(A, imm) \ - (__m128d)__builtin_ia32_extractf64x2_256_mask((__v4df)(__m256d)(A), \ - (int)(imm), \ - (__v2df)_mm_undefined_pd(), \ - (__mmask8)-1) - -#define _mm256_mask_extractf64x2_pd(W, U, A, imm) \ - (__m128d)__builtin_ia32_extractf64x2_256_mask((__v4df)(__m256d)(A), \ - (int)(imm), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U)) - -#define _mm256_maskz_extractf64x2_pd(U, A, imm) \ - (__m128d)__builtin_ia32_extractf64x2_256_mask((__v4df)(__m256d)(A), \ - (int)(imm), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U)) - -#define _mm256_extracti64x2_epi64(A, imm) \ - (__m128i)__builtin_ia32_extracti64x2_256_mask((__v4di)(__m256i)(A), \ - (int)(imm), \ - (__v2di)_mm_undefined_si128(), \ - (__mmask8)-1) - -#define _mm256_mask_extracti64x2_epi64(W, U, A, imm) \ - (__m128i)__builtin_ia32_extracti64x2_256_mask((__v4di)(__m256i)(A), \ - (int)(imm), \ - (__v2di)(__m128i)(W), \ - (__mmask8)(U)) - -#define _mm256_maskz_extracti64x2_epi64(U, A, imm) \ - (__m128i)__builtin_ia32_extracti64x2_256_mask((__v4di)(__m256i)(A), \ - (int)(imm), \ - (__v2di)_mm_setzero_si128(), \ - (__mmask8)(U)) - -#define _mm256_insertf64x2(A, B, imm) \ - (__m256d)__builtin_ia32_insertf64x2_256((__v4df)(__m256d)(A), \ - (__v2df)(__m128d)(B), (int)(imm)) - -#define _mm256_mask_insertf64x2(W, U, A, B, imm) \ - (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ - (__v4df)_mm256_insertf64x2((A), (B), (imm)), \ - (__v4df)(__m256d)(W)) - -#define _mm256_maskz_insertf64x2(U, A, B, imm) \ - (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ - (__v4df)_mm256_insertf64x2((A), (B), (imm)), \ - (__v4df)_mm256_setzero_pd()) - -#define _mm256_inserti64x2(A, B, imm) \ - (__m256i)__builtin_ia32_inserti64x2_256((__v4di)(__m256i)(A), \ - (__v2di)(__m128i)(B), (int)(imm)) - -#define _mm256_mask_inserti64x2(W, U, A, B, imm) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_inserti64x2((A), (B), (imm)), \ - (__v4di)(__m256i)(W)) - -#define _mm256_maskz_inserti64x2(U, A, B, imm) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_inserti64x2((A), (B), (imm)), \ - (__v4di)_mm256_setzero_si256()) - -#define _mm_mask_fpclass_pd_mask(U, A, imm) \ - (__mmask8)__builtin_ia32_fpclasspd128_mask((__v2df)(__m128d)(A), (int)(imm), \ - (__mmask8)(U)) - -#define _mm_fpclass_pd_mask(A, imm) \ - (__mmask8)__builtin_ia32_fpclasspd128_mask((__v2df)(__m128d)(A), (int)(imm), \ - (__mmask8)-1) - -#define _mm256_mask_fpclass_pd_mask(U, A, imm) \ - (__mmask8)__builtin_ia32_fpclasspd256_mask((__v4df)(__m256d)(A), (int)(imm), \ - (__mmask8)(U)) - -#define _mm256_fpclass_pd_mask(A, imm) \ - (__mmask8)__builtin_ia32_fpclasspd256_mask((__v4df)(__m256d)(A), (int)(imm), \ - (__mmask8)-1) - -#define _mm_mask_fpclass_ps_mask(U, A, imm) \ - (__mmask8)__builtin_ia32_fpclassps128_mask((__v4sf)(__m128)(A), (int)(imm), \ - (__mmask8)(U)) - -#define _mm_fpclass_ps_mask(A, imm) \ - (__mmask8)__builtin_ia32_fpclassps128_mask((__v4sf)(__m128)(A), (int)(imm), \ - (__mmask8)-1) - -#define _mm256_mask_fpclass_ps_mask(U, A, imm) \ - (__mmask8)__builtin_ia32_fpclassps256_mask((__v8sf)(__m256)(A), (int)(imm), \ - (__mmask8)(U)) - -#define _mm256_fpclass_ps_mask(A, imm) \ - (__mmask8)__builtin_ia32_fpclassps256_mask((__v8sf)(__m256)(A), (int)(imm), \ - (__mmask8)-1) - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif diff --git a/bin/app/data/cxx/include/avx512vlintrin.h b/bin/app/data/cxx/include/avx512vlintrin.h deleted file mode 100644 index 9494fc8a..00000000 --- a/bin/app/data/cxx/include/avx512vlintrin.h +++ /dev/null @@ -1,8444 +0,0 @@ -/*===---- avx512vlintrin.h - AVX512VL intrinsics ---------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512VLINTRIN_H -#define __AVX512VLINTRIN_H - -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) - -typedef short __v2hi __attribute__((__vector_size__(4))); -typedef char __v4qi __attribute__((__vector_size__(4))); -typedef char __v2qi __attribute__((__vector_size__(2))); - -/* Integer compare */ - -#define _mm_cmpeq_epi32_mask(A, B) \ - _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_EQ) -#define _mm_mask_cmpeq_epi32_mask(k, A, B) \ - _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm_cmpge_epi32_mask(A, B) \ - _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_GE) -#define _mm_mask_cmpge_epi32_mask(k, A, B) \ - _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm_cmpgt_epi32_mask(A, B) \ - _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_GT) -#define _mm_mask_cmpgt_epi32_mask(k, A, B) \ - _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm_cmple_epi32_mask(A, B) \ - _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_LE) -#define _mm_mask_cmple_epi32_mask(k, A, B) \ - _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm_cmplt_epi32_mask(A, B) \ - _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_LT) -#define _mm_mask_cmplt_epi32_mask(k, A, B) \ - _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm_cmpneq_epi32_mask(A, B) \ - _mm_cmp_epi32_mask((A), (B), _MM_CMPINT_NE) -#define _mm_mask_cmpneq_epi32_mask(k, A, B) \ - _mm_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm256_cmpeq_epi32_mask(A, B) \ - _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_EQ) -#define _mm256_mask_cmpeq_epi32_mask(k, A, B) \ - _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm256_cmpge_epi32_mask(A, B) \ - _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_GE) -#define _mm256_mask_cmpge_epi32_mask(k, A, B) \ - _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm256_cmpgt_epi32_mask(A, B) \ - _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_GT) -#define _mm256_mask_cmpgt_epi32_mask(k, A, B) \ - _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm256_cmple_epi32_mask(A, B) \ - _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_LE) -#define _mm256_mask_cmple_epi32_mask(k, A, B) \ - _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm256_cmplt_epi32_mask(A, B) \ - _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_LT) -#define _mm256_mask_cmplt_epi32_mask(k, A, B) \ - _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm256_cmpneq_epi32_mask(A, B) \ - _mm256_cmp_epi32_mask((A), (B), _MM_CMPINT_NE) -#define _mm256_mask_cmpneq_epi32_mask(k, A, B) \ - _mm256_mask_cmp_epi32_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm_cmpeq_epu32_mask(A, B) \ - _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_EQ) -#define _mm_mask_cmpeq_epu32_mask(k, A, B) \ - _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm_cmpge_epu32_mask(A, B) \ - _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_GE) -#define _mm_mask_cmpge_epu32_mask(k, A, B) \ - _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm_cmpgt_epu32_mask(A, B) \ - _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_GT) -#define _mm_mask_cmpgt_epu32_mask(k, A, B) \ - _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm_cmple_epu32_mask(A, B) \ - _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_LE) -#define _mm_mask_cmple_epu32_mask(k, A, B) \ - _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm_cmplt_epu32_mask(A, B) \ - _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_LT) -#define _mm_mask_cmplt_epu32_mask(k, A, B) \ - _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm_cmpneq_epu32_mask(A, B) \ - _mm_cmp_epu32_mask((A), (B), _MM_CMPINT_NE) -#define _mm_mask_cmpneq_epu32_mask(k, A, B) \ - _mm_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm256_cmpeq_epu32_mask(A, B) \ - _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_EQ) -#define _mm256_mask_cmpeq_epu32_mask(k, A, B) \ - _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm256_cmpge_epu32_mask(A, B) \ - _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_GE) -#define _mm256_mask_cmpge_epu32_mask(k, A, B) \ - _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm256_cmpgt_epu32_mask(A, B) \ - _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_GT) -#define _mm256_mask_cmpgt_epu32_mask(k, A, B) \ - _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm256_cmple_epu32_mask(A, B) \ - _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_LE) -#define _mm256_mask_cmple_epu32_mask(k, A, B) \ - _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm256_cmplt_epu32_mask(A, B) \ - _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_LT) -#define _mm256_mask_cmplt_epu32_mask(k, A, B) \ - _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm256_cmpneq_epu32_mask(A, B) \ - _mm256_cmp_epu32_mask((A), (B), _MM_CMPINT_NE) -#define _mm256_mask_cmpneq_epu32_mask(k, A, B) \ - _mm256_mask_cmp_epu32_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm_cmpeq_epi64_mask(A, B) \ - _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_EQ) -#define _mm_mask_cmpeq_epi64_mask(k, A, B) \ - _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm_cmpge_epi64_mask(A, B) \ - _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_GE) -#define _mm_mask_cmpge_epi64_mask(k, A, B) \ - _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm_cmpgt_epi64_mask(A, B) \ - _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_GT) -#define _mm_mask_cmpgt_epi64_mask(k, A, B) \ - _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm_cmple_epi64_mask(A, B) \ - _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_LE) -#define _mm_mask_cmple_epi64_mask(k, A, B) \ - _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm_cmplt_epi64_mask(A, B) \ - _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_LT) -#define _mm_mask_cmplt_epi64_mask(k, A, B) \ - _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm_cmpneq_epi64_mask(A, B) \ - _mm_cmp_epi64_mask((A), (B), _MM_CMPINT_NE) -#define _mm_mask_cmpneq_epi64_mask(k, A, B) \ - _mm_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm256_cmpeq_epi64_mask(A, B) \ - _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_EQ) -#define _mm256_mask_cmpeq_epi64_mask(k, A, B) \ - _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm256_cmpge_epi64_mask(A, B) \ - _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_GE) -#define _mm256_mask_cmpge_epi64_mask(k, A, B) \ - _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm256_cmpgt_epi64_mask(A, B) \ - _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_GT) -#define _mm256_mask_cmpgt_epi64_mask(k, A, B) \ - _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm256_cmple_epi64_mask(A, B) \ - _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_LE) -#define _mm256_mask_cmple_epi64_mask(k, A, B) \ - _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm256_cmplt_epi64_mask(A, B) \ - _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_LT) -#define _mm256_mask_cmplt_epi64_mask(k, A, B) \ - _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm256_cmpneq_epi64_mask(A, B) \ - _mm256_cmp_epi64_mask((A), (B), _MM_CMPINT_NE) -#define _mm256_mask_cmpneq_epi64_mask(k, A, B) \ - _mm256_mask_cmp_epi64_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm_cmpeq_epu64_mask(A, B) \ - _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_EQ) -#define _mm_mask_cmpeq_epu64_mask(k, A, B) \ - _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm_cmpge_epu64_mask(A, B) \ - _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_GE) -#define _mm_mask_cmpge_epu64_mask(k, A, B) \ - _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm_cmpgt_epu64_mask(A, B) \ - _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_GT) -#define _mm_mask_cmpgt_epu64_mask(k, A, B) \ - _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm_cmple_epu64_mask(A, B) \ - _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_LE) -#define _mm_mask_cmple_epu64_mask(k, A, B) \ - _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm_cmplt_epu64_mask(A, B) \ - _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_LT) -#define _mm_mask_cmplt_epu64_mask(k, A, B) \ - _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm_cmpneq_epu64_mask(A, B) \ - _mm_cmp_epu64_mask((A), (B), _MM_CMPINT_NE) -#define _mm_mask_cmpneq_epu64_mask(k, A, B) \ - _mm_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_NE) - -#define _mm256_cmpeq_epu64_mask(A, B) \ - _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_EQ) -#define _mm256_mask_cmpeq_epu64_mask(k, A, B) \ - _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_EQ) -#define _mm256_cmpge_epu64_mask(A, B) \ - _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_GE) -#define _mm256_mask_cmpge_epu64_mask(k, A, B) \ - _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GE) -#define _mm256_cmpgt_epu64_mask(A, B) \ - _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_GT) -#define _mm256_mask_cmpgt_epu64_mask(k, A, B) \ - _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_GT) -#define _mm256_cmple_epu64_mask(A, B) \ - _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_LE) -#define _mm256_mask_cmple_epu64_mask(k, A, B) \ - _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LE) -#define _mm256_cmplt_epu64_mask(A, B) \ - _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_LT) -#define _mm256_mask_cmplt_epu64_mask(k, A, B) \ - _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_LT) -#define _mm256_cmpneq_epu64_mask(A, B) \ - _mm256_cmp_epu64_mask((A), (B), _MM_CMPINT_NE) -#define _mm256_mask_cmpneq_epu64_mask(k, A, B) \ - _mm256_mask_cmp_epu64_mask((k), (A), (B), _MM_CMPINT_NE) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_add_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_add_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_add_epi32(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_add_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_add_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_add_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_add_epi64(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_add_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sub_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_sub_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sub_epi32(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_sub_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sub_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_sub_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sub_epi64(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_sub_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_add_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_add_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_add_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_add_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_add_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_add_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_add_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_add_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sub_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_sub_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sub_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_sub_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sub_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_sub_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sub_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_sub_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mul_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_mul_epi32(__X, __Y), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mul_epi32(__mmask8 __M, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_mul_epi32(__X, __Y), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mul_epi32(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_mul_epi32(__X, __Y), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mul_epi32(__mmask8 __M, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_mul_epi32(__X, __Y), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mul_epu32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_mul_epu32(__X, __Y), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mul_epu32(__mmask8 __M, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_mul_epu32(__X, __Y), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mul_epu32(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_mul_epu32(__X, __Y), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mul_epu32(__mmask8 __M, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_mul_epu32(__X, __Y), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mullo_epi32(__mmask8 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_mullo_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mullo_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_mullo_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mullo_epi32(__mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_mullo_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mullo_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_mullo_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_and_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)((__v8su)__a & (__v8su)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_and_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_and_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_and_epi32(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)_mm256_mask_and_epi32(_mm256_setzero_si256(), __U, __A, __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_and_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)((__v4su)__a & (__v4su)__b); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_and_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_and_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_and_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)_mm_mask_and_epi32(_mm_setzero_si128(), __U, __A, __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_andnot_epi32(__m256i __A, __m256i __B) -{ - return (__m256i)(~(__v8su)__A & (__v8su)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_andnot_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_andnot_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_andnot_epi32(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)_mm256_mask_andnot_epi32(_mm256_setzero_si256(), - __U, __A, __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_andnot_epi32(__m128i __A, __m128i __B) -{ - return (__m128i)(~(__v4su)__A & (__v4su)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_andnot_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_andnot_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_andnot_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)_mm_mask_andnot_epi32(_mm_setzero_si128(), __U, __A, __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_or_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)((__v8su)__a | (__v8su)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_or_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_or_epi32(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)_mm256_mask_or_epi32(_mm256_setzero_si256(), __U, __A, __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_or_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)((__v4su)__a | (__v4su)__b); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_or_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_or_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_or_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)_mm_mask_or_epi32(_mm_setzero_si128(), __U, __A, __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_xor_epi32(__m256i __a, __m256i __b) -{ - return (__m256i)((__v8su)__a ^ (__v8su)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_xor_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_xor_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_xor_epi32(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)_mm256_mask_xor_epi32(_mm256_setzero_si256(), __U, __A, __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_xor_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)((__v4su)__a ^ (__v4su)__b); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_xor_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_xor_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)_mm_mask_xor_epi32(_mm_setzero_si128(), __U, __A, __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_and_epi64(__m256i __a, __m256i __b) -{ - return (__m256i)((__v4du)__a & (__v4du)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_and_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_and_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_and_epi64(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)_mm256_mask_and_epi64(_mm256_setzero_si256(), __U, __A, __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_and_epi64(__m128i __a, __m128i __b) -{ - return (__m128i)((__v2du)__a & (__v2du)__b); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_and_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_and_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_and_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)_mm_mask_and_epi64(_mm_setzero_si128(), __U, __A, __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_andnot_epi64(__m256i __A, __m256i __B) -{ - return (__m256i)(~(__v4du)__A & (__v4du)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_andnot_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_andnot_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_andnot_epi64(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)_mm256_mask_andnot_epi64(_mm256_setzero_si256(), - __U, __A, __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_andnot_epi64(__m128i __A, __m128i __B) -{ - return (__m128i)(~(__v2du)__A & (__v2du)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_andnot_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_andnot_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_andnot_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)_mm_mask_andnot_epi64(_mm_setzero_si128(), __U, __A, __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_or_epi64(__m256i __a, __m256i __b) -{ - return (__m256i)((__v4du)__a | (__v4du)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_or_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_or_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_or_epi64(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)_mm256_mask_or_epi64(_mm256_setzero_si256(), __U, __A, __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_or_epi64(__m128i __a, __m128i __b) -{ - return (__m128i)((__v2du)__a | (__v2du)__b); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_or_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_or_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_or_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)_mm_mask_or_epi64(_mm_setzero_si128(), __U, __A, __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_xor_epi64(__m256i __a, __m256i __b) -{ - return (__m256i)((__v4du)__a ^ (__v4du)__b); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_xor_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_xor_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_xor_epi64(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)_mm256_mask_xor_epi64(_mm256_setzero_si256(), __U, __A, __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_xor_epi64(__m128i __a, __m128i __b) -{ - return (__m128i)((__v2du)__a ^ (__v2du)__b); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_xor_epi64(__m128i __W, __mmask8 __U, __m128i __A, - __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_xor_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_xor_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)_mm_mask_xor_epi64(_mm_setzero_si128(), __U, __A, __B); -} - -#define _mm_cmp_epi32_mask(a, b, p) \ - (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \ - (__v4si)(__m128i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm_mask_cmp_epi32_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)(a), \ - (__v4si)(__m128i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm_cmp_epu32_mask(a, b, p) \ - (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \ - (__v4si)(__m128i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm_mask_cmp_epu32_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_ucmpd128_mask((__v4si)(__m128i)(a), \ - (__v4si)(__m128i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm256_cmp_epi32_mask(a, b, p) \ - (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \ - (__v8si)(__m256i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm256_mask_cmp_epi32_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)(a), \ - (__v8si)(__m256i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm256_cmp_epu32_mask(a, b, p) \ - (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \ - (__v8si)(__m256i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm256_mask_cmp_epu32_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_ucmpd256_mask((__v8si)(__m256i)(a), \ - (__v8si)(__m256i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm_cmp_epi64_mask(a, b, p) \ - (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \ - (__v2di)(__m128i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm_mask_cmp_epi64_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)(a), \ - (__v2di)(__m128i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm_cmp_epu64_mask(a, b, p) \ - (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \ - (__v2di)(__m128i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm_mask_cmp_epu64_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_ucmpq128_mask((__v2di)(__m128i)(a), \ - (__v2di)(__m128i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm256_cmp_epi64_mask(a, b, p) \ - (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \ - (__v4di)(__m256i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm256_mask_cmp_epi64_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)(a), \ - (__v4di)(__m256i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm256_cmp_epu64_mask(a, b, p) \ - (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \ - (__v4di)(__m256i)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm256_mask_cmp_epu64_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_ucmpq256_mask((__v4di)(__m256i)(a), \ - (__v4di)(__m256i)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm256_cmp_ps_mask(a, b, p) \ - (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \ - (__v8sf)(__m256)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm256_mask_cmp_ps_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_cmpps256_mask((__v8sf)(__m256)(a), \ - (__v8sf)(__m256)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm256_cmp_pd_mask(a, b, p) \ - (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \ - (__v4df)(__m256d)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm256_mask_cmp_pd_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_cmppd256_mask((__v4df)(__m256d)(a), \ - (__v4df)(__m256d)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm_cmp_ps_mask(a, b, p) \ - (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \ - (__v4sf)(__m128)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm_mask_cmp_ps_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_cmpps128_mask((__v4sf)(__m128)(a), \ - (__v4sf)(__m128)(b), (int)(p), \ - (__mmask8)(m)) - -#define _mm_cmp_pd_mask(a, b, p) \ - (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \ - (__v2df)(__m128d)(b), (int)(p), \ - (__mmask8)-1) - -#define _mm_mask_cmp_pd_mask(m, a, b, p) \ - (__mmask8)__builtin_ia32_cmppd128_mask((__v2df)(__m128d)(a), \ - (__v2df)(__m128d)(b), (int)(p), \ - (__mmask8)(m)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd ((__v2df) __A, - (__v2df) __B, - (__v2df) __C), - (__v2df) __A); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd ((__v2df) __A, - (__v2df) __B, - (__v2df) __C), - (__v2df) __C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd ((__v2df) __A, - (__v2df) __B, - (__v2df) __C), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd ((__v2df) __A, - (__v2df) __B, - -(__v2df) __C), - (__v2df) __A); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd ((__v2df) __A, - (__v2df) __B, - -(__v2df) __C), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd (-(__v2df) __A, - (__v2df) __B, - (__v2df) __C), - (__v2df) __C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd (-(__v2df) __A, - (__v2df) __B, - (__v2df) __C), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd (-(__v2df) __A, - (__v2df) __B, - -(__v2df) __C), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 ((__v4df) __A, - (__v4df) __B, - (__v4df) __C), - (__v4df) __A); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 ((__v4df) __A, - (__v4df) __B, - (__v4df) __C), - (__v4df) __C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 ((__v4df) __A, - (__v4df) __B, - (__v4df) __C), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 ((__v4df) __A, - (__v4df) __B, - -(__v4df) __C), - (__v4df) __A); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 ((__v4df) __A, - (__v4df) __B, - -(__v4df) __C), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 (-(__v4df) __A, - (__v4df) __B, - (__v4df) __C), - (__v4df) __C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 (-(__v4df) __A, - (__v4df) __B, - (__v4df) __C), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 (-(__v4df) __A, - (__v4df) __B, - -(__v4df) __C), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __C), - (__v4sf) __A); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __C), - (__v4sf) __C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __C), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps ((__v4sf) __A, - (__v4sf) __B, - -(__v4sf) __C), - (__v4sf) __A); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps ((__v4sf) __A, - (__v4sf) __B, - -(__v4sf) __C), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps (-(__v4sf) __A, - (__v4sf) __B, - (__v4sf) __C), - (__v4sf) __C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps (-(__v4sf) __A, - (__v4sf) __B, - (__v4sf) __C), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps (-(__v4sf) __A, - (__v4sf) __B, - -(__v4sf) __C), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 ((__v8sf) __A, - (__v8sf) __B, - (__v8sf) __C), - (__v8sf) __A); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 ((__v8sf) __A, - (__v8sf) __B, - (__v8sf) __C), - (__v8sf) __C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 ((__v8sf) __A, - (__v8sf) __B, - (__v8sf) __C), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 ((__v8sf) __A, - (__v8sf) __B, - -(__v8sf) __C), - (__v8sf) __A); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 ((__v8sf) __A, - (__v8sf) __B, - -(__v8sf) __C), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 (-(__v8sf) __A, - (__v8sf) __B, - (__v8sf) __C), - (__v8sf) __C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 (-(__v8sf) __A, - (__v8sf) __B, - (__v8sf) __C), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 (-(__v8sf) __A, - (__v8sf) __B, - -(__v8sf) __C), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddsubpd ((__v2df) __A, - (__v2df) __B, - (__v2df) __C), - (__v2df) __A); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddsubpd ((__v2df) __A, - (__v2df) __B, - (__v2df) __C), - (__v2df) __C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddsubpd ((__v2df) __A, - (__v2df) __B, - (__v2df) __C), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddsubpd ((__v2df) __A, - (__v2df) __B, - -(__v2df) __C), - (__v2df) __A); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddsubpd ((__v2df) __A, - (__v2df) __B, - -(__v2df) __C), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, - (__v4df) __B, - (__v4df) __C), - (__v4df) __A); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, - (__v4df) __B, - (__v4df) __C), - (__v4df) __C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, - (__v4df) __B, - (__v4df) __C), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, - (__v4df) __B, - -(__v4df) __C), - (__v4df) __A); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, - (__v4df) __B, - -(__v4df) __C), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddsubps ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __C), - (__v4sf) __A); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddsubps ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __C), - (__v4sf) __C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddsubps ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __C), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddsubps ((__v4sf) __A, - (__v4sf) __B, - -(__v4sf) __C), - (__v4sf) __A); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddsubps ((__v4sf) __A, - (__v4sf) __B, - -(__v4sf) __C), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B, - __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, - (__v8sf) __B, - (__v8sf) __C), - (__v8sf) __A); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, - (__v8sf) __B, - (__v8sf) __C), - (__v8sf) __C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, - (__v8sf) __B, - (__v8sf) __C), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, - (__v8sf) __B, - -(__v8sf) __C), - (__v8sf) __A); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, - (__v8sf) __B, - -(__v8sf) __C), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd ((__v2df) __A, - (__v2df) __B, - -(__v2df) __C), - (__v2df) __C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 ((__v4df) __A, - (__v4df) __B, - -(__v4df) __C), - (__v4df) __C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps ((__v4sf) __A, - (__v4sf) __B, - -(__v4sf) __C), - (__v4sf) __C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 ((__v8sf) __A, - (__v8sf) __B, - -(__v8sf) __C), - (__v8sf) __C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddsubpd ((__v2df) __A, - (__v2df) __B, - -(__v2df) __C), - (__v2df) __C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, - (__v4df) __B, - -(__v4df) __C), - (__v4df) __C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddsubps ((__v4sf) __A, - (__v4sf) __B, - -(__v4sf) __C), - (__v4sf) __C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, - (__v8sf) __B, - -(__v8sf) __C), - (__v8sf) __C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd ((__v2df) __A, - -(__v2df) __B, - (__v2df) __C), - (__v2df) __A); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 ((__v4df) __A, - -(__v4df) __B, - (__v4df) __C), - (__v4df) __A); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps ((__v4sf) __A, - -(__v4sf) __B, - (__v4sf) __C), - (__v4sf) __A); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 ((__v8sf) __A, - -(__v8sf) __B, - (__v8sf) __C), - (__v8sf) __A); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd ((__v2df) __A, - -(__v2df) __B, - -(__v2df) __C), - (__v2df) __A); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) -{ - return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, - __builtin_ia32_vfmaddpd ((__v2df) __A, - -(__v2df) __B, - -(__v2df) __C), - (__v2df) __C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 ((__v4df) __A, - -(__v4df) __B, - -(__v4df) __C), - (__v4df) __A); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) -{ - return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, - __builtin_ia32_vfmaddpd256 ((__v4df) __A, - -(__v4df) __B, - -(__v4df) __C), - (__v4df) __C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps ((__v4sf) __A, - -(__v4sf) __B, - -(__v4sf) __C), - (__v4sf) __A); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) -{ - return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, - __builtin_ia32_vfmaddps ((__v4sf) __A, - -(__v4sf) __B, - -(__v4sf) __C), - (__v4sf) __C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 ((__v8sf) __A, - -(__v8sf) __B, - -(__v8sf) __C), - (__v8sf) __A); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) -{ - return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, - __builtin_ia32_vfmaddps256 ((__v8sf) __A, - -(__v8sf) __B, - -(__v8sf) __C), - (__v8sf) __C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_add_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_add_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_add_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_add_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_add_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_add_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_add_ps(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_add_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_add_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_add_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_add_ps(__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_add_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) { - return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U, - (__v4si) __W, - (__v4si) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) { - return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U, - (__v8si) __W, - (__v8si) __A); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) { - return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U, - (__v2df) __W, - (__v2df) __A); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) { - return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U, - (__v4df) __W, - (__v4df) __A); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) { - return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U, - (__v4sf) __W, - (__v4sf) __A); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) { - return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U, - (__v8sf) __W, - (__v8sf) __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) { - return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U, - (__v2di) __W, - (__v2di) __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) { - return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U, - (__v4di) __W, - (__v4di) __A); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) { - return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A, - (__v2df) __W, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_compress_pd (__mmask8 __U, __m128d __A) { - return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A, - (__v2df) - _mm_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) { - return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A, - (__v4df) __W, - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) { - return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { - return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) { - return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A, - (__v2di) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { - return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) { - return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A, - (__v4di) - _mm256_setzero_si256 (), - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) { - return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_compress_ps (__mmask8 __U, __m128 __A) { - return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) { - return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A, - (__v8sf) __W, - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) { - return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { - return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) { - return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { - return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A, - (__v8si) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) { - return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) { - __builtin_ia32_compressstoredf128_mask ((__v2df *) __P, - (__v2df) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) { - __builtin_ia32_compressstoredf256_mask ((__v4df *) __P, - (__v4df) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) { - __builtin_ia32_compressstoredi128_mask ((__v2di *) __P, - (__v2di) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) { - __builtin_ia32_compressstoredi256_mask ((__v4di *) __P, - (__v4di) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) { - __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P, - (__v4sf) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) { - __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P, - (__v8sf) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) { - __builtin_ia32_compressstoresi128_mask ((__v4si *) __P, - (__v4si) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) { - __builtin_ia32_compressstoresi256_mask ((__v8si *) __P, - (__v8si) __A, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U, - (__v2df)_mm_cvtepi32_pd(__A), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U, - (__v2df)_mm_cvtepi32_pd(__A), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U, - (__v4df)_mm256_cvtepi32_pd(__A), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U, - (__v4df)_mm256_cvtepi32_pd(__A), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_cvtepi32_ps(__A), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi32_ps (__mmask8 __U, __m128i __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_cvtepi32_ps(__A), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_cvtepi32_ps(__A), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi32_ps (__mmask8 __U, __m256i __A) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_cvtepi32_ps(__A), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm256_cvtpd_epi32(__A), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm256_cvtpd_epi32(__A), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) { - return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) { - return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm256_cvtpd_ps(__A), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm256_cvtpd_ps(__A), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtpd_epu32 (__m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtpd_epu32 (__m256d __A) { - return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) { - return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) { - return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvtps_epi32(__A), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvtps_epi32(__A), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvtps_epi32(__A), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvtps_epi32(__A), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_cvtps_pd(__A), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_cvtps_pd(__A), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_cvtps_pd(__A), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_cvtps_pd(__A), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtps_epu32 (__m128 __A) { - return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvtps_epu32 (__m256 __A) { - return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) { - return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, - (__v8si) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) { - return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm256_cvttpd_epi32(__A), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm256_cvttpd_epi32(__A), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvttpd_epu32 (__m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) { - return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvttpd_epu32 (__m256d __A) { - return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) { - return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) { - return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvttps_epi32(__A), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvttps_epi32(__A), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvttps_epi32(__A), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvttps_epi32(__A), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvttps_epu32 (__m128 __A) { - return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) { - return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cvttps_epu32 (__m256 __A) { - return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) -1); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) { - return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, - (__v8si) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) { - return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_cvtepu32_pd (__m128i __A) { - return (__m128d) __builtin_convertvector( - __builtin_shufflevector((__v4su)__A, (__v4su)__A, 0, 1), __v2df); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U, - (__v2df)_mm_cvtepu32_pd(__A), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U, - (__v2df)_mm_cvtepu32_pd(__A), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_cvtepu32_pd (__m128i __A) { - return (__m256d)__builtin_convertvector((__v4su)__A, __v4df); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U, - (__v4df)_mm256_cvtepu32_pd(__A), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U, - (__v4df)_mm256_cvtepu32_pd(__A), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_cvtepu32_ps (__m128i __A) { - return (__m128)__builtin_convertvector((__v4su)__A, __v4sf); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_cvtepu32_ps(__A), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_cvtepu32_ps(__A), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_cvtepu32_ps (__m256i __A) { - return (__m256)__builtin_convertvector((__v8su)__A, __v8sf); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_cvtepu32_ps(__A), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_cvtepu32_ps(__A), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_div_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_div_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_div_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_div_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_div_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_div_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_div_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_div_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) { - return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A, - (__v2df) __W, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_expand_pd (__mmask8 __U, __m128d __A) { - return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A, - (__v2df) - _mm_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) { - return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A, - (__v4df) __W, - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) { - return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { - return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) { - return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A, - (__v2di) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { - return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) { - return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A, - (__v4di) - _mm256_setzero_si256 (), - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) { - return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, - (__v2df) __W, - (__mmask8) - __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) { - return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, - (__v2df) - _mm_setzero_pd (), - (__mmask8) - __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) { - return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, - (__v4df) __W, - (__mmask8) - __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) { - return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, - (__v2di) __W, - (__mmask8) - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, - (__v2di) - _mm_setzero_si128 (), - (__mmask8) - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U, - void const *__P) { - return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, - (__v4di) __W, - (__mmask8) - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, - (__v4di) - _mm256_setzero_si256 (), - (__mmask8) - __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) { - return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) { - return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) - __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) { - return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, - (__v8sf) __W, - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) { - return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, - (__v4si) __W, - (__mmask8) - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U, - void const *__P) { - return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, - (__v8si) __W, - (__mmask8) - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) - __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) { - return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_expand_ps (__mmask8 __U, __m128 __A) { - return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) { - return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A, - (__v8sf) __W, - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) { - return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { - return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) { - return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { - return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A, - (__v8si) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) { - return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_getexp_pd (__m128d __A) { - return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, - (__v2df) - _mm_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) { - return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, - (__v2df) __W, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) { - return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, - (__v2df) - _mm_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_getexp_pd (__m256d __A) { - return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) { - return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, - (__v4df) __W, - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) { - return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_getexp_ps (__m128 __A) { - return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) -1); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) { - return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) { - return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_getexp_ps (__m256 __A) { - return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) -1); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) { - return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, - (__v8sf) __W, - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) { - return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_max_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_max_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_max_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_max_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_max_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_max_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_max_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_max_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_min_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_min_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_min_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_min_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_min_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_min_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_min_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_min_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_mul_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_mul_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_mul_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_mul_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_mul_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_mul_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_mul_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_mul_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_abs_epi32(__A), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_abs_epi32(__A), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_abs_epi32(__A), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_abs_epi32(__A), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_abs_epi64 (__m128i __A) { - return (__m128i)__builtin_ia32_pabsq128((__v2di)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_abs_epi64(__A), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_abs_epi64(__A), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_abs_epi64 (__m256i __A) { - return (__m256i)__builtin_ia32_pabsq256 ((__v4di)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_abs_epi64(__A), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_abs_epi64(__A), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_max_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_max_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_max_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_max_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_max_epi64 (__m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_pmaxsq128((__v2di)__A, (__v2di)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_max_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_max_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_max_epi64 (__m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_pmaxsq256((__v4di)__A, (__v4di)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_max_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_max_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_max_epu32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_max_epu32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_max_epu32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_max_epu32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_max_epu64 (__m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_pmaxuq128((__v2di)__A, (__v2di)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_max_epu64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_max_epu64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_max_epu64 (__m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_pmaxuq256((__v4di)__A, (__v4di)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_max_epu64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_max_epu64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_min_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_min_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_min_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_min_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_min_epi64 (__m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_pminsq128((__v2di)__A, (__v2di)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_min_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_min_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_min_epi64 (__m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_pminsq256((__v4di)__A, (__v4di)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_min_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_min_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_min_epu32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm_min_epu32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_min_epu32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_min_epu32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_min_epu64 (__m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_pminuq128((__v2di)__A, (__v2di)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_min_epu64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, - (__v2di)_mm_min_epu64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_min_epu64 (__m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_pminuq256((__v4di)__A, (__v4di)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_min_epu64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_min_epu64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -#define _mm_roundscale_pd(A, imm) \ - (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \ - (int)(imm), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1) - - -#define _mm_mask_roundscale_pd(W, U, A, imm) \ - (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \ - (int)(imm), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U)) - - -#define _mm_maskz_roundscale_pd(U, A, imm) \ - (__m128d)__builtin_ia32_rndscalepd_128_mask((__v2df)(__m128d)(A), \ - (int)(imm), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U)) - - -#define _mm256_roundscale_pd(A, imm) \ - (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \ - (int)(imm), \ - (__v4df)_mm256_setzero_pd(), \ - (__mmask8)-1) - - -#define _mm256_mask_roundscale_pd(W, U, A, imm) \ - (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \ - (int)(imm), \ - (__v4df)(__m256d)(W), \ - (__mmask8)(U)) - - -#define _mm256_maskz_roundscale_pd(U, A, imm) \ - (__m256d)__builtin_ia32_rndscalepd_256_mask((__v4df)(__m256d)(A), \ - (int)(imm), \ - (__v4df)_mm256_setzero_pd(), \ - (__mmask8)(U)) - -#define _mm_roundscale_ps(A, imm) \ - (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1) - - -#define _mm_mask_roundscale_ps(W, U, A, imm) \ - (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U)) - - -#define _mm_maskz_roundscale_ps(U, A, imm) \ - (__m128)__builtin_ia32_rndscaleps_128_mask((__v4sf)(__m128)(A), (int)(imm), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U)) - -#define _mm256_roundscale_ps(A, imm) \ - (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)-1) - -#define _mm256_mask_roundscale_ps(W, U, A, imm) \ - (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \ - (__v8sf)(__m256)(W), \ - (__mmask8)(U)) - - -#define _mm256_maskz_roundscale_ps(U, A, imm) \ - (__m256)__builtin_ia32_rndscaleps_256_mask((__v8sf)(__m256)(A), (int)(imm), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)(U)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_scalef_pd (__m128d __A, __m128d __B) { - return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, - (__v2df) __B, - (__v2df) - _mm_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A, - __m128d __B) { - return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, - (__v2df) __B, - (__v2df) __W, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, - (__v2df) __B, - (__v2df) - _mm_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_scalef_pd (__m256d __A, __m256d __B) { - return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, - (__v4df) __B, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A, - __m256d __B) { - return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, - (__v4df) __B, - (__v4df) __W, - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, - (__v4df) __B, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_scalef_ps (__m128 __A, __m128 __B) { - return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) -1); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, - (__v4sf) __B, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_scalef_ps (__m256 __A, __m256 __B) { - return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, - (__v8sf) __B, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) -1); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A, - __m256 __B) { - return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, - (__v8sf) __B, - (__v8sf) __W, - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, - (__v8sf) __B, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) __U); -} - -#define _mm_i64scatter_pd(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv2df((void *)(addr), (__mmask8)-1, \ - (__v2di)(__m128i)(index), \ - (__v2df)(__m128d)(v1), (int)(scale)) - -#define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv2df((void *)(addr), (__mmask8)(mask), \ - (__v2di)(__m128i)(index), \ - (__v2df)(__m128d)(v1), (int)(scale)) - -#define _mm_i64scatter_epi64(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv2di((void *)(addr), (__mmask8)-1, \ - (__v2di)(__m128i)(index), \ - (__v2di)(__m128i)(v1), (int)(scale)) - -#define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv2di((void *)(addr), (__mmask8)(mask), \ - (__v2di)(__m128i)(index), \ - (__v2di)(__m128i)(v1), (int)(scale)) - -#define _mm256_i64scatter_pd(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv4df((void *)(addr), (__mmask8)-1, \ - (__v4di)(__m256i)(index), \ - (__v4df)(__m256d)(v1), (int)(scale)) - -#define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv4df((void *)(addr), (__mmask8)(mask), \ - (__v4di)(__m256i)(index), \ - (__v4df)(__m256d)(v1), (int)(scale)) - -#define _mm256_i64scatter_epi64(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv4di((void *)(addr), (__mmask8)-1, \ - (__v4di)(__m256i)(index), \ - (__v4di)(__m256i)(v1), (int)(scale)) - -#define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv4di((void *)(addr), (__mmask8)(mask), \ - (__v4di)(__m256i)(index), \ - (__v4di)(__m256i)(v1), (int)(scale)) - -#define _mm_i64scatter_ps(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv4sf((void *)(addr), (__mmask8)-1, \ - (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \ - (int)(scale)) - -#define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv4sf((void *)(addr), (__mmask8)(mask), \ - (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \ - (int)(scale)) - -#define _mm_i64scatter_epi32(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv4si((void *)(addr), (__mmask8)-1, \ - (__v2di)(__m128i)(index), \ - (__v4si)(__m128i)(v1), (int)(scale)) - -#define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv4si((void *)(addr), (__mmask8)(mask), \ - (__v2di)(__m128i)(index), \ - (__v4si)(__m128i)(v1), (int)(scale)) - -#define _mm256_i64scatter_ps(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv8sf((void *)(addr), (__mmask8)-1, \ - (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \ - (int)(scale)) - -#define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv8sf((void *)(addr), (__mmask8)(mask), \ - (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \ - (int)(scale)) - -#define _mm256_i64scatter_epi32(addr, index, v1, scale) \ - __builtin_ia32_scatterdiv8si((void *)(addr), (__mmask8)-1, \ - (__v4di)(__m256i)(index), \ - (__v4si)(__m128i)(v1), (int)(scale)) - -#define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) \ - __builtin_ia32_scatterdiv8si((void *)(addr), (__mmask8)(mask), \ - (__v4di)(__m256i)(index), \ - (__v4si)(__m128i)(v1), (int)(scale)) - -#define _mm_i32scatter_pd(addr, index, v1, scale) \ - __builtin_ia32_scattersiv2df((void *)(addr), (__mmask8)-1, \ - (__v4si)(__m128i)(index), \ - (__v2df)(__m128d)(v1), (int)(scale)) - -#define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv2df((void *)(addr), (__mmask8)(mask), \ - (__v4si)(__m128i)(index), \ - (__v2df)(__m128d)(v1), (int)(scale)) - -#define _mm_i32scatter_epi64(addr, index, v1, scale) \ - __builtin_ia32_scattersiv2di((void *)(addr), (__mmask8)-1, \ - (__v4si)(__m128i)(index), \ - (__v2di)(__m128i)(v1), (int)(scale)) - -#define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv2di((void *)(addr), (__mmask8)(mask), \ - (__v4si)(__m128i)(index), \ - (__v2di)(__m128i)(v1), (int)(scale)) - -#define _mm256_i32scatter_pd(addr, index, v1, scale) \ - __builtin_ia32_scattersiv4df((void *)(addr), (__mmask8)-1, \ - (__v4si)(__m128i)(index), \ - (__v4df)(__m256d)(v1), (int)(scale)) - -#define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv4df((void *)(addr), (__mmask8)(mask), \ - (__v4si)(__m128i)(index), \ - (__v4df)(__m256d)(v1), (int)(scale)) - -#define _mm256_i32scatter_epi64(addr, index, v1, scale) \ - __builtin_ia32_scattersiv4di((void *)(addr), (__mmask8)-1, \ - (__v4si)(__m128i)(index), \ - (__v4di)(__m256i)(v1), (int)(scale)) - -#define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv4di((void *)(addr), (__mmask8)(mask), \ - (__v4si)(__m128i)(index), \ - (__v4di)(__m256i)(v1), (int)(scale)) - -#define _mm_i32scatter_ps(addr, index, v1, scale) \ - __builtin_ia32_scattersiv4sf((void *)(addr), (__mmask8)-1, \ - (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \ - (int)(scale)) - -#define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv4sf((void *)(addr), (__mmask8)(mask), \ - (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \ - (int)(scale)) - -#define _mm_i32scatter_epi32(addr, index, v1, scale) \ - __builtin_ia32_scattersiv4si((void *)(addr), (__mmask8)-1, \ - (__v4si)(__m128i)(index), \ - (__v4si)(__m128i)(v1), (int)(scale)) - -#define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv4si((void *)(addr), (__mmask8)(mask), \ - (__v4si)(__m128i)(index), \ - (__v4si)(__m128i)(v1), (int)(scale)) - -#define _mm256_i32scatter_ps(addr, index, v1, scale) \ - __builtin_ia32_scattersiv8sf((void *)(addr), (__mmask8)-1, \ - (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \ - (int)(scale)) - -#define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv8sf((void *)(addr), (__mmask8)(mask), \ - (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \ - (int)(scale)) - -#define _mm256_i32scatter_epi32(addr, index, v1, scale) \ - __builtin_ia32_scattersiv8si((void *)(addr), (__mmask8)-1, \ - (__v8si)(__m256i)(index), \ - (__v8si)(__m256i)(v1), (int)(scale)) - -#define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) \ - __builtin_ia32_scattersiv8si((void *)(addr), (__mmask8)(mask), \ - (__v8si)(__m256i)(index), \ - (__v8si)(__m256i)(v1), (int)(scale)) - - static __inline__ __m128d __DEFAULT_FN_ATTRS128 - _mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_sqrt_pd(__A), - (__v2df)__W); - } - - static __inline__ __m128d __DEFAULT_FN_ATTRS128 - _mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_sqrt_pd(__A), - (__v2df)_mm_setzero_pd()); - } - - static __inline__ __m256d __DEFAULT_FN_ATTRS256 - _mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_sqrt_pd(__A), - (__v4df)__W); - } - - static __inline__ __m256d __DEFAULT_FN_ATTRS256 - _mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_sqrt_pd(__A), - (__v4df)_mm256_setzero_pd()); - } - - static __inline__ __m128 __DEFAULT_FN_ATTRS128 - _mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_sqrt_ps(__A), - (__v4sf)__W); - } - - static __inline__ __m128 __DEFAULT_FN_ATTRS128 - _mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_sqrt_ps(__A), - (__v4sf)_mm_setzero_ps()); - } - - static __inline__ __m256 __DEFAULT_FN_ATTRS256 - _mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_sqrt_ps(__A), - (__v8sf)__W); - } - - static __inline__ __m256 __DEFAULT_FN_ATTRS256 - _mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_sqrt_ps(__A), - (__v8sf)_mm256_setzero_ps()); - } - - static __inline__ __m128d __DEFAULT_FN_ATTRS128 - _mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_sub_pd(__A, __B), - (__v2df)__W); - } - - static __inline__ __m128d __DEFAULT_FN_ATTRS128 - _mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_sub_pd(__A, __B), - (__v2df)_mm_setzero_pd()); - } - - static __inline__ __m256d __DEFAULT_FN_ATTRS256 - _mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_sub_pd(__A, __B), - (__v4df)__W); - } - - static __inline__ __m256d __DEFAULT_FN_ATTRS256 - _mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_sub_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); - } - - static __inline__ __m128 __DEFAULT_FN_ATTRS128 - _mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_sub_ps(__A, __B), - (__v4sf)__W); - } - - static __inline__ __m128 __DEFAULT_FN_ATTRS128 - _mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_sub_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); - } - - static __inline__ __m256 __DEFAULT_FN_ATTRS256 - _mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_sub_ps(__A, __B), - (__v8sf)__W); - } - - static __inline__ __m256 __DEFAULT_FN_ATTRS256 - _mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_sub_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_permutex2var_epi32(__m128i __A, __m128i __I, __m128i __B) { - return (__m128i)__builtin_ia32_vpermi2vard128((__v4si) __A, (__v4si)__I, - (__v4si)__B); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_permutex2var_epi32(__m128i __A, __mmask8 __U, __m128i __I, - __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_permutex2var_epi32(__A, __I, __B), - (__v4si)__A); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask2_permutex2var_epi32(__m128i __A, __m128i __I, __mmask8 __U, - __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_permutex2var_epi32(__A, __I, __B), - (__v4si)__I); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_permutex2var_epi32(__mmask8 __U, __m128i __A, __m128i __I, - __m128i __B) { - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_permutex2var_epi32(__A, __I, __B), - (__v4si)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_permutex2var_epi32(__m256i __A, __m256i __I, __m256i __B) { - return (__m256i)__builtin_ia32_vpermi2vard256((__v8si)__A, (__v8si) __I, - (__v8si) __B); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_permutex2var_epi32(__m256i __A, __mmask8 __U, __m256i __I, - __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_permutex2var_epi32(__A, __I, __B), - (__v8si)__A); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask2_permutex2var_epi32(__m256i __A, __m256i __I, __mmask8 __U, - __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_permutex2var_epi32(__A, __I, __B), - (__v8si)__I); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_permutex2var_epi32(__mmask8 __U, __m256i __A, __m256i __I, - __m256i __B) { - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_permutex2var_epi32(__A, __I, __B), - (__v8si)_mm256_setzero_si256()); - } - - static __inline__ __m128d __DEFAULT_FN_ATTRS128 - _mm_permutex2var_pd(__m128d __A, __m128i __I, __m128d __B) { - return (__m128d)__builtin_ia32_vpermi2varpd128((__v2df)__A, (__v2di)__I, - (__v2df)__B); - } - - static __inline__ __m128d __DEFAULT_FN_ATTRS128 - _mm_mask_permutex2var_pd(__m128d __A, __mmask8 __U, __m128i __I, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128(__U, - (__v2df)_mm_permutex2var_pd(__A, __I, __B), - (__v2df)__A); - } - - static __inline__ __m128d __DEFAULT_FN_ATTRS128 - _mm_mask2_permutex2var_pd(__m128d __A, __m128i __I, __mmask8 __U, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128(__U, - (__v2df)_mm_permutex2var_pd(__A, __I, __B), - (__v2df)(__m128d)__I); - } - - static __inline__ __m128d __DEFAULT_FN_ATTRS128 - _mm_maskz_permutex2var_pd(__mmask8 __U, __m128d __A, __m128i __I, __m128d __B) { - return (__m128d)__builtin_ia32_selectpd_128(__U, - (__v2df)_mm_permutex2var_pd(__A, __I, __B), - (__v2df)_mm_setzero_pd()); - } - - static __inline__ __m256d __DEFAULT_FN_ATTRS256 - _mm256_permutex2var_pd(__m256d __A, __m256i __I, __m256d __B) { - return (__m256d)__builtin_ia32_vpermi2varpd256((__v4df)__A, (__v4di)__I, - (__v4df)__B); - } - - static __inline__ __m256d __DEFAULT_FN_ATTRS256 - _mm256_mask_permutex2var_pd(__m256d __A, __mmask8 __U, __m256i __I, - __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256(__U, - (__v4df)_mm256_permutex2var_pd(__A, __I, __B), - (__v4df)__A); - } - - static __inline__ __m256d __DEFAULT_FN_ATTRS256 - _mm256_mask2_permutex2var_pd(__m256d __A, __m256i __I, __mmask8 __U, - __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256(__U, - (__v4df)_mm256_permutex2var_pd(__A, __I, __B), - (__v4df)(__m256d)__I); - } - - static __inline__ __m256d __DEFAULT_FN_ATTRS256 - _mm256_maskz_permutex2var_pd(__mmask8 __U, __m256d __A, __m256i __I, - __m256d __B) { - return (__m256d)__builtin_ia32_selectpd_256(__U, - (__v4df)_mm256_permutex2var_pd(__A, __I, __B), - (__v4df)_mm256_setzero_pd()); - } - - static __inline__ __m128 __DEFAULT_FN_ATTRS128 - _mm_permutex2var_ps(__m128 __A, __m128i __I, __m128 __B) { - return (__m128)__builtin_ia32_vpermi2varps128((__v4sf)__A, (__v4si)__I, - (__v4sf)__B); - } - - static __inline__ __m128 __DEFAULT_FN_ATTRS128 - _mm_mask_permutex2var_ps(__m128 __A, __mmask8 __U, __m128i __I, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128(__U, - (__v4sf)_mm_permutex2var_ps(__A, __I, __B), - (__v4sf)__A); - } - - static __inline__ __m128 __DEFAULT_FN_ATTRS128 - _mm_mask2_permutex2var_ps(__m128 __A, __m128i __I, __mmask8 __U, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128(__U, - (__v4sf)_mm_permutex2var_ps(__A, __I, __B), - (__v4sf)(__m128)__I); - } - - static __inline__ __m128 __DEFAULT_FN_ATTRS128 - _mm_maskz_permutex2var_ps(__mmask8 __U, __m128 __A, __m128i __I, __m128 __B) { - return (__m128)__builtin_ia32_selectps_128(__U, - (__v4sf)_mm_permutex2var_ps(__A, __I, __B), - (__v4sf)_mm_setzero_ps()); - } - - static __inline__ __m256 __DEFAULT_FN_ATTRS256 - _mm256_permutex2var_ps(__m256 __A, __m256i __I, __m256 __B) { - return (__m256)__builtin_ia32_vpermi2varps256((__v8sf)__A, (__v8si)__I, - (__v8sf) __B); - } - - static __inline__ __m256 __DEFAULT_FN_ATTRS256 - _mm256_mask_permutex2var_ps(__m256 __A, __mmask8 __U, __m256i __I, __m256 __B) { - return (__m256)__builtin_ia32_selectps_256(__U, - (__v8sf)_mm256_permutex2var_ps(__A, __I, __B), - (__v8sf)__A); - } - - static __inline__ __m256 __DEFAULT_FN_ATTRS256 - _mm256_mask2_permutex2var_ps(__m256 __A, __m256i __I, __mmask8 __U, - __m256 __B) { - return (__m256)__builtin_ia32_selectps_256(__U, - (__v8sf)_mm256_permutex2var_ps(__A, __I, __B), - (__v8sf)(__m256)__I); - } - - static __inline__ __m256 __DEFAULT_FN_ATTRS256 - _mm256_maskz_permutex2var_ps(__mmask8 __U, __m256 __A, __m256i __I, - __m256 __B) { - return (__m256)__builtin_ia32_selectps_256(__U, - (__v8sf)_mm256_permutex2var_ps(__A, __I, __B), - (__v8sf)_mm256_setzero_ps()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_permutex2var_epi64(__m128i __A, __m128i __I, __m128i __B) { - return (__m128i)__builtin_ia32_vpermi2varq128((__v2di)__A, (__v2di)__I, - (__v2di)__B); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_permutex2var_epi64(__m128i __A, __mmask8 __U, __m128i __I, - __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_permutex2var_epi64(__A, __I, __B), - (__v2di)__A); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask2_permutex2var_epi64(__m128i __A, __m128i __I, __mmask8 __U, - __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_permutex2var_epi64(__A, __I, __B), - (__v2di)__I); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_permutex2var_epi64(__mmask8 __U, __m128i __A, __m128i __I, - __m128i __B) { - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_permutex2var_epi64(__A, __I, __B), - (__v2di)_mm_setzero_si128()); - } - - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_permutex2var_epi64(__m256i __A, __m256i __I, __m256i __B) { - return (__m256i)__builtin_ia32_vpermi2varq256((__v4di)__A, (__v4di) __I, - (__v4di) __B); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_permutex2var_epi64(__m256i __A, __mmask8 __U, __m256i __I, - __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_permutex2var_epi64(__A, __I, __B), - (__v4di)__A); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask2_permutex2var_epi64(__m256i __A, __m256i __I, __mmask8 __U, - __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_permutex2var_epi64(__A, __I, __B), - (__v4di)__I); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i __I, - __m256i __B) { - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_permutex2var_epi64(__A, __I, __B), - (__v4di)_mm256_setzero_si256()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvtepi8_epi32(__A), - (__v4si)__W); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvtepi8_epi32(__A), - (__v4si)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvtepi8_epi32(__A), - (__v8si)__W); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvtepi8_epi32(__A), - (__v8si)_mm256_setzero_si256()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepi8_epi64(__A), - (__v2di)__W); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepi8_epi64(__A), - (__v2di)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepi8_epi64(__A), - (__v4di)__W); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepi8_epi64(__A), - (__v4di)_mm256_setzero_si256()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepi32_epi64(__X), - (__v2di)__W); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepi32_epi64(__X), - (__v2di)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepi32_epi64(__X), - (__v4di)__W); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepi32_epi64(__X), - (__v4di)_mm256_setzero_si256()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvtepi16_epi32(__A), - (__v4si)__W); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvtepi16_epi32(__A), - (__v4si)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvtepi16_epi32(__A), - (__v8si)__W); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvtepi16_epi32(__A), - (__v8si)_mm256_setzero_si256()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepi16_epi64(__A), - (__v2di)__W); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepi16_epi64(__A), - (__v2di)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepi16_epi64(__A), - (__v4di)__W); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepi16_epi64(__A), - (__v4di)_mm256_setzero_si256()); - } - - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvtepu8_epi32(__A), - (__v4si)__W); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvtepu8_epi32(__A), - (__v4si)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvtepu8_epi32(__A), - (__v8si)__W); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvtepu8_epi32(__A), - (__v8si)_mm256_setzero_si256()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepu8_epi64(__A), - (__v2di)__W); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepu8_epi64(__A), - (__v2di)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepu8_epi64(__A), - (__v4di)__W); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepu8_epi64(__A), - (__v4di)_mm256_setzero_si256()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepu32_epi64(__X), - (__v2di)__W); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepu32_epi64(__X), - (__v2di)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepu32_epi64(__X), - (__v4di)__W); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepu32_epi64(__X), - (__v4di)_mm256_setzero_si256()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvtepu16_epi32(__A), - (__v4si)__W); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_cvtepu16_epi32(__A), - (__v4si)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvtepu16_epi32(__A), - (__v8si)__W); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_cvtepu16_epi32(__A), - (__v8si)_mm256_setzero_si256()); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepu16_epi64(__A), - (__v2di)__W); - } - - static __inline__ __m128i __DEFAULT_FN_ATTRS128 - _mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) - { - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_cvtepu16_epi64(__A), - (__v2di)_mm_setzero_si128()); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepu16_epi64(__A), - (__v4di)__W); - } - - static __inline__ __m256i __DEFAULT_FN_ATTRS256 - _mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) - { - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_cvtepu16_epi64(__A), - (__v4di)_mm256_setzero_si256()); - } - - -#define _mm_rol_epi32(a, b) \ - (__m128i)__builtin_ia32_prold128((__v4si)(__m128i)(a), (int)(b)) - -#define _mm_mask_rol_epi32(w, u, a, b) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \ - (__v4si)_mm_rol_epi32((a), (b)), \ - (__v4si)(__m128i)(w)) - -#define _mm_maskz_rol_epi32(u, a, b) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \ - (__v4si)_mm_rol_epi32((a), (b)), \ - (__v4si)_mm_setzero_si128()) - -#define _mm256_rol_epi32(a, b) \ - (__m256i)__builtin_ia32_prold256((__v8si)(__m256i)(a), (int)(b)) - -#define _mm256_mask_rol_epi32(w, u, a, b) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \ - (__v8si)_mm256_rol_epi32((a), (b)), \ - (__v8si)(__m256i)(w)) - -#define _mm256_maskz_rol_epi32(u, a, b) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \ - (__v8si)_mm256_rol_epi32((a), (b)), \ - (__v8si)_mm256_setzero_si256()) - -#define _mm_rol_epi64(a, b) \ - (__m128i)__builtin_ia32_prolq128((__v2di)(__m128i)(a), (int)(b)) - -#define _mm_mask_rol_epi64(w, u, a, b) \ - (__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \ - (__v2di)_mm_rol_epi64((a), (b)), \ - (__v2di)(__m128i)(w)) - -#define _mm_maskz_rol_epi64(u, a, b) \ - (__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \ - (__v2di)_mm_rol_epi64((a), (b)), \ - (__v2di)_mm_setzero_si128()) - -#define _mm256_rol_epi64(a, b) \ - (__m256i)__builtin_ia32_prolq256((__v4di)(__m256i)(a), (int)(b)) - -#define _mm256_mask_rol_epi64(w, u, a, b) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \ - (__v4di)_mm256_rol_epi64((a), (b)), \ - (__v4di)(__m256i)(w)) - -#define _mm256_maskz_rol_epi64(u, a, b) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \ - (__v4di)_mm256_rol_epi64((a), (b)), \ - (__v4di)_mm256_setzero_si256()) - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_rolv_epi32 (__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_prolvd128((__v4si)__A, (__v4si)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_rolv_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_rolv_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_rolv_epi32 (__m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_prolvd256((__v8si)__A, (__v8si)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_rolv_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_rolv_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_rolv_epi64 (__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_prolvq128((__v2di)__A, (__v2di)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_rolv_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_rolv_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_rolv_epi64 (__m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_prolvq256((__v4di)__A, (__v4di)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_rolv_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_rolv_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -#define _mm_ror_epi32(a, b) \ - (__m128i)__builtin_ia32_prord128((__v4si)(__m128i)(a), (int)(b)) - -#define _mm_mask_ror_epi32(w, u, a, b) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \ - (__v4si)_mm_ror_epi32((a), (b)), \ - (__v4si)(__m128i)(w)) - -#define _mm_maskz_ror_epi32(u, a, b) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(u), \ - (__v4si)_mm_ror_epi32((a), (b)), \ - (__v4si)_mm_setzero_si128()) - -#define _mm256_ror_epi32(a, b) \ - (__m256i)__builtin_ia32_prord256((__v8si)(__m256i)(a), (int)(b)) - -#define _mm256_mask_ror_epi32(w, u, a, b) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \ - (__v8si)_mm256_ror_epi32((a), (b)), \ - (__v8si)(__m256i)(w)) - -#define _mm256_maskz_ror_epi32(u, a, b) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(u), \ - (__v8si)_mm256_ror_epi32((a), (b)), \ - (__v8si)_mm256_setzero_si256()) - -#define _mm_ror_epi64(a, b) \ - (__m128i)__builtin_ia32_prorq128((__v2di)(__m128i)(a), (int)(b)) - -#define _mm_mask_ror_epi64(w, u, a, b) \ - (__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \ - (__v2di)_mm_ror_epi64((a), (b)), \ - (__v2di)(__m128i)(w)) - -#define _mm_maskz_ror_epi64(u, a, b) \ - (__m128i)__builtin_ia32_selectq_128((__mmask8)(u), \ - (__v2di)_mm_ror_epi64((a), (b)), \ - (__v2di)_mm_setzero_si128()) - -#define _mm256_ror_epi64(a, b) \ - (__m256i)__builtin_ia32_prorq256((__v4di)(__m256i)(a), (int)(b)) - -#define _mm256_mask_ror_epi64(w, u, a, b) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \ - (__v4di)_mm256_ror_epi64((a), (b)), \ - (__v4di)(__m256i)(w)) - -#define _mm256_maskz_ror_epi64(u, a, b) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(u), \ - (__v4di)_mm256_ror_epi64((a), (b)), \ - (__v4di)_mm256_setzero_si256()) - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sll_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_sll_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sll_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_sll_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sll_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_sll_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sll_epi32(__mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_sll_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_slli_epi32(__m128i __W, __mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_slli_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_slli_epi32(__mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_slli_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_slli_epi32(__m256i __W, __mmask8 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_slli_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_slli_epi32(__mmask8 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_slli_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sll_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_sll_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sll_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_sll_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sll_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_sll_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sll_epi64(__mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_sll_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_slli_epi64(__m128i __W, __mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_slli_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_slli_epi64(__mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_slli_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_slli_epi64(__m256i __W, __mmask8 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_slli_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_slli_epi64(__mmask8 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_slli_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_rorv_epi32 (__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_prorvd128((__v4si)__A, (__v4si)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_rorv_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_rorv_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_rorv_epi32 (__m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_prorvd256((__v8si)__A, (__v8si)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_rorv_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_rorv_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_rorv_epi64 (__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_prorvq128((__v2di)__A, (__v2di)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_rorv_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_rorv_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_rorv_epi64 (__m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_prorvq256((__v4di)__A, (__v4di)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_rorv_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_rorv_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_sllv_epi64(__X, __Y), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_sllv_epi64(__X, __Y), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_sllv_epi64(__X, __Y), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_sllv_epi64(__X, __Y), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_sllv_epi32(__X, __Y), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_sllv_epi32(__X, __Y), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_sllv_epi32(__X, __Y), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_sllv_epi32(__X, __Y), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_srlv_epi64(__X, __Y), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_srlv_epi64(__X, __Y), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_srlv_epi64(__X, __Y), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_srlv_epi64(__X, __Y), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_srlv_epi32(__X, __Y), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_srlv_epi32(__X, __Y), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_srlv_epi32(__X, __Y), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_srlv_epi32(__X, __Y), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_srl_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_srl_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_srl_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_srl_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_srli_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srli_epi32(__mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_srli_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_srli_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_srli_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_srl_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_srl_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_srl_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_srl_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_srli_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srli_epi64(__mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_srli_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_srli_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_srli_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_srav_epi32(__X, __Y), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_srav_epi32(__X, __Y), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_srav_epi32(__X, __Y), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_srav_epi32(__X, __Y), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_srav_epi64(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_psravq128((__v2di)__X, (__v2di)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_srav_epi64(__X, __Y), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_srav_epi64(__X, __Y), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srav_epi64(__m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_psravq256((__v4di)__X, (__v4di) __Y); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_srav_epi64(__X, __Y), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_srav_epi64(__X, __Y), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A) -{ - return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U, - (__v4si) __A, - (__v4si) __W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A) -{ - return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U, - (__v4si) __A, - (__v4si) _mm_setzero_si128 ()); -} - - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A) -{ - return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U, - (__v8si) __A, - (__v8si) __W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A) -{ - return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U, - (__v8si) __A, - (__v8si) _mm256_setzero_si256 ()); -} - -static __inline __m128i __DEFAULT_FN_ATTRS128 -_mm_load_epi32 (void const *__P) -{ - return *(__m128i *) __P; -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P, - (__v4si) __W, - (__mmask8) - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_load_epi32 (__mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) - __U); -} - -static __inline __m256i __DEFAULT_FN_ATTRS256 -_mm256_load_epi32 (void const *__P) -{ - return *(__m256i *) __P; -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P, - (__v8si) __W, - (__mmask8) - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_load_epi32 (__mmask8 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) - __U); -} - -static __inline void __DEFAULT_FN_ATTRS128 -_mm_store_epi32 (void *__P, __m128i __A) -{ - *(__m128i *) __P = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A) -{ - __builtin_ia32_movdqa32store128_mask ((__v4si *) __P, - (__v4si) __A, - (__mmask8) __U); -} - -static __inline void __DEFAULT_FN_ATTRS256 -_mm256_store_epi32 (void *__P, __m256i __A) -{ - *(__m256i *) __P = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A) -{ - __builtin_ia32_movdqa32store256_mask ((__v8si *) __P, - (__v8si) __A, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A) -{ - return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U, - (__v2di) __A, - (__v2di) __W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A) -{ - return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U, - (__v2di) __A, - (__v2di) _mm_setzero_si128 ()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A) -{ - return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U, - (__v4di) __A, - (__v4di) __W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A) -{ - return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U, - (__v4di) __A, - (__v4di) _mm256_setzero_si256 ()); -} - -static __inline __m128i __DEFAULT_FN_ATTRS128 -_mm_load_epi64 (void const *__P) -{ - return *(__m128i *) __P; -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P, - (__v2di) __W, - (__mmask8) - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_load_epi64 (__mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P, - (__v2di) - _mm_setzero_si128 (), - (__mmask8) - __U); -} - -static __inline __m256i __DEFAULT_FN_ATTRS256 -_mm256_load_epi64 (void const *__P) -{ - return *(__m256i *) __P; -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P, - (__v4di) __W, - (__mmask8) - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_load_epi64 (__mmask8 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P, - (__v4di) - _mm256_setzero_si256 (), - (__mmask8) - __U); -} - -static __inline void __DEFAULT_FN_ATTRS128 -_mm_store_epi64 (void *__P, __m128i __A) -{ - *(__m128i *) __P = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A) -{ - __builtin_ia32_movdqa64store128_mask ((__v2di *) __P, - (__v2di) __A, - (__mmask8) __U); -} - -static __inline void __DEFAULT_FN_ATTRS256 -_mm256_store_epi64 (void *__P, __m256i __A) -{ - *(__m256i *) __P = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A) -{ - __builtin_ia32_movdqa64store256_mask ((__v4di *) __P, - (__v4di) __A, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A) -{ - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_movedup_pd(__A), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_movedup_pd (__mmask8 __U, __m128d __A) -{ - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_movedup_pd(__A), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_movedup_pd(__A), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_movedup_pd(__A), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_set1_epi32(__m128i __O, __mmask8 __M, int __A) -{ - return (__m128i)__builtin_ia32_selectd_128(__M, - (__v4si) _mm_set1_epi32(__A), - (__v4si)__O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_set1_epi32( __mmask8 __M, int __A) -{ - return (__m128i)__builtin_ia32_selectd_128(__M, - (__v4si) _mm_set1_epi32(__A), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_set1_epi32(__m256i __O, __mmask8 __M, int __A) -{ - return (__m256i)__builtin_ia32_selectd_256(__M, - (__v8si) _mm256_set1_epi32(__A), - (__v8si)__O); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_set1_epi32( __mmask8 __M, int __A) -{ - return (__m256i)__builtin_ia32_selectd_256(__M, - (__v8si) _mm256_set1_epi32(__A), - (__v8si)_mm256_setzero_si256()); -} - - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A) -{ - return (__m128i) __builtin_ia32_selectq_128(__M, - (__v2di) _mm_set1_epi64x(__A), - (__v2di) __O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_set1_epi64 (__mmask8 __M, long long __A) -{ - return (__m128i) __builtin_ia32_selectq_128(__M, - (__v2di) _mm_set1_epi64x(__A), - (__v2di) _mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A) -{ - return (__m256i) __builtin_ia32_selectq_256(__M, - (__v4di) _mm256_set1_epi64x(__A), - (__v4di) __O) ; -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_set1_epi64 (__mmask8 __M, long long __A) -{ - return (__m256i) __builtin_ia32_selectq_256(__M, - (__v4di) _mm256_set1_epi64x(__A), - (__v4di) _mm256_setzero_si256()); -} - -#define _mm_fixupimm_pd(A, B, C, imm) \ - (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)-1) - -#define _mm_mask_fixupimm_pd(A, U, B, C, imm) \ - (__m128d)__builtin_ia32_fixupimmpd128_mask((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm_maskz_fixupimm_pd(U, A, B, C, imm) \ - (__m128d)__builtin_ia32_fixupimmpd128_maskz((__v2df)(__m128d)(A), \ - (__v2df)(__m128d)(B), \ - (__v2di)(__m128i)(C), \ - (int)(imm), (__mmask8)(U)) - -#define _mm256_fixupimm_pd(A, B, C, imm) \ - (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \ - (__v4df)(__m256d)(B), \ - (__v4di)(__m256i)(C), (int)(imm), \ - (__mmask8)-1) - -#define _mm256_mask_fixupimm_pd(A, U, B, C, imm) \ - (__m256d)__builtin_ia32_fixupimmpd256_mask((__v4df)(__m256d)(A), \ - (__v4df)(__m256d)(B), \ - (__v4di)(__m256i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm256_maskz_fixupimm_pd(U, A, B, C, imm) \ - (__m256d)__builtin_ia32_fixupimmpd256_maskz((__v4df)(__m256d)(A), \ - (__v4df)(__m256d)(B), \ - (__v4di)(__m256i)(C), \ - (int)(imm), (__mmask8)(U)) - -#define _mm_fixupimm_ps(A, B, C, imm) \ - (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)-1) - -#define _mm_mask_fixupimm_ps(A, U, B, C, imm) \ - (__m128)__builtin_ia32_fixupimmps128_mask((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm_maskz_fixupimm_ps(U, A, B, C, imm) \ - (__m128)__builtin_ia32_fixupimmps128_maskz((__v4sf)(__m128)(A), \ - (__v4sf)(__m128)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm256_fixupimm_ps(A, B, C, imm) \ - (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \ - (__v8sf)(__m256)(B), \ - (__v8si)(__m256i)(C), (int)(imm), \ - (__mmask8)-1) - -#define _mm256_mask_fixupimm_ps(A, U, B, C, imm) \ - (__m256)__builtin_ia32_fixupimmps256_mask((__v8sf)(__m256)(A), \ - (__v8sf)(__m256)(B), \ - (__v8si)(__m256i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm256_maskz_fixupimm_ps(U, A, B, C, imm) \ - (__m256)__builtin_ia32_fixupimmps256_maskz((__v8sf)(__m256)(A), \ - (__v8sf)(__m256)(B), \ - (__v8si)(__m256i)(C), (int)(imm), \ - (__mmask8)(U)) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P) -{ - return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P, - (__v2df) __W, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_load_pd (__mmask8 __U, void const *__P) -{ - return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P, - (__v2df) - _mm_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P) -{ - return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P, - (__v4df) __W, - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_load_pd (__mmask8 __U, void const *__P) -{ - return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P) -{ - return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_load_ps (__mmask8 __U, void const *__P) -{ - return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P) -{ - return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P, - (__v8sf) __W, - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_load_ps (__mmask8 __U, void const *__P) -{ - return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) __U); -} - -static __inline __m128i __DEFAULT_FN_ATTRS128 -_mm_loadu_epi64 (void const *__P) -{ - struct __loadu_epi64 { - __m128i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi64*)__P)->__v; -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P, - (__v2di) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P, - (__v2di) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline __m256i __DEFAULT_FN_ATTRS256 -_mm256_loadu_epi64 (void const *__P) -{ - struct __loadu_epi64 { - __m256i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi64*)__P)->__v; -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P, - (__v4di) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P, - (__v4di) - _mm256_setzero_si256 (), - (__mmask8) __U); -} - -static __inline __m128i __DEFAULT_FN_ATTRS128 -_mm_loadu_epi32 (void const *__P) -{ - struct __loadu_epi32 { - __m128i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi32*)__P)->__v; -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P, - (__v4si) __W, - (__mmask8) __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P, - (__v4si) - _mm_setzero_si128 (), - (__mmask8) __U); -} - -static __inline __m256i __DEFAULT_FN_ATTRS256 -_mm256_loadu_epi32 (void const *__P) -{ - struct __loadu_epi32 { - __m256i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi32*)__P)->__v; -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P, - (__v8si) __W, - (__mmask8) __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P, - (__v8si) - _mm256_setzero_si256 (), - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P) -{ - return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P, - (__v2df) __W, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_loadu_pd (__mmask8 __U, void const *__P) -{ - return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P, - (__v2df) - _mm_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P) -{ - return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P, - (__v4df) __W, - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_loadu_pd (__mmask8 __U, void const *__P) -{ - return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P) -{ - return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_loadu_ps (__mmask8 __U, void const *__P) -{ - return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P) -{ - return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P, - (__v8sf) __W, - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_loadu_ps (__mmask8 __U, void const *__P) -{ - return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A) -{ - __builtin_ia32_storeapd128_mask ((__v2df *) __P, - (__v2df) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A) -{ - __builtin_ia32_storeapd256_mask ((__v4df *) __P, - (__v4df) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A) -{ - __builtin_ia32_storeaps128_mask ((__v4sf *) __P, - (__v4sf) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A) -{ - __builtin_ia32_storeaps256_mask ((__v8sf *) __P, - (__v8sf) __A, - (__mmask8) __U); -} - -static __inline void __DEFAULT_FN_ATTRS128 -_mm_storeu_epi64 (void *__P, __m128i __A) -{ - struct __storeu_epi64 { - __m128i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi64*)__P)->__v = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A) -{ - __builtin_ia32_storedqudi128_mask ((__v2di *) __P, - (__v2di) __A, - (__mmask8) __U); -} - -static __inline void __DEFAULT_FN_ATTRS256 -_mm256_storeu_epi64 (void *__P, __m256i __A) -{ - struct __storeu_epi64 { - __m256i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi64*)__P)->__v = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A) -{ - __builtin_ia32_storedqudi256_mask ((__v4di *) __P, - (__v4di) __A, - (__mmask8) __U); -} - -static __inline void __DEFAULT_FN_ATTRS128 -_mm_storeu_epi32 (void *__P, __m128i __A) -{ - struct __storeu_epi32 { - __m128i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi32*)__P)->__v = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A) -{ - __builtin_ia32_storedqusi128_mask ((__v4si *) __P, - (__v4si) __A, - (__mmask8) __U); -} - -static __inline void __DEFAULT_FN_ATTRS256 -_mm256_storeu_epi32 (void *__P, __m256i __A) -{ - struct __storeu_epi32 { - __m256i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_epi32*)__P)->__v = __A; -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A) -{ - __builtin_ia32_storedqusi256_mask ((__v8si *) __P, - (__v8si) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A) -{ - __builtin_ia32_storeupd128_mask ((__v2df *) __P, - (__v2df) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A) -{ - __builtin_ia32_storeupd256_mask ((__v4df *) __P, - (__v4df) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A) -{ - __builtin_ia32_storeups128_mask ((__v4sf *) __P, - (__v4sf) __A, - (__mmask8) __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A) -{ - __builtin_ia32_storeups256_mask ((__v8sf *) __P, - (__v8sf) __A, - (__mmask8) __U); -} - - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_unpackhi_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_unpackhi_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_unpackhi_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_unpackhi_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_unpackhi_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_unpackhi_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_unpackhi_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_unpackhi_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_unpacklo_pd(__A, __B), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B) -{ - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_unpacklo_pd(__A, __B), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_unpacklo_pd(__A, __B), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_unpacklo_pd(__A, __B), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_unpacklo_ps(__A, __B), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B) -{ - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_unpacklo_ps(__A, __B), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_unpacklo_ps(__A, __B), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_unpacklo_ps(__A, __B), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_rcp14_pd (__m128d __A) -{ - return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, - (__v2df) - _mm_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A) -{ - return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, - (__v2df) __W, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A) -{ - return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, - (__v2df) - _mm_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_rcp14_pd (__m256d __A) -{ - return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A) -{ - return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, - (__v4df) __W, - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A) -{ - return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_rcp14_ps (__m128 __A) -{ - return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) -1); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A) -{ - return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A) -{ - return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_rcp14_ps (__m256 __A) -{ - return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) -1); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A) -{ - return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, - (__v8sf) __W, - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A) -{ - return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) __U); -} - -#define _mm_mask_permute_pd(W, U, X, C) \ - (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \ - (__v2df)_mm_permute_pd((X), (C)), \ - (__v2df)(__m128d)(W)) - -#define _mm_maskz_permute_pd(U, X, C) \ - (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \ - (__v2df)_mm_permute_pd((X), (C)), \ - (__v2df)_mm_setzero_pd()) - -#define _mm256_mask_permute_pd(W, U, X, C) \ - (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ - (__v4df)_mm256_permute_pd((X), (C)), \ - (__v4df)(__m256d)(W)) - -#define _mm256_maskz_permute_pd(U, X, C) \ - (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ - (__v4df)_mm256_permute_pd((X), (C)), \ - (__v4df)_mm256_setzero_pd()) - -#define _mm_mask_permute_ps(W, U, X, C) \ - (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \ - (__v4sf)_mm_permute_ps((X), (C)), \ - (__v4sf)(__m128)(W)) - -#define _mm_maskz_permute_ps(U, X, C) \ - (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \ - (__v4sf)_mm_permute_ps((X), (C)), \ - (__v4sf)_mm_setzero_ps()) - -#define _mm256_mask_permute_ps(W, U, X, C) \ - (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ - (__v8sf)_mm256_permute_ps((X), (C)), \ - (__v8sf)(__m256)(W)) - -#define _mm256_maskz_permute_ps(U, X, C) \ - (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ - (__v8sf)_mm256_permute_ps((X), (C)), \ - (__v8sf)_mm256_setzero_ps()) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C) -{ - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_permutevar_pd(__A, __C), - (__v2df)__W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C) -{ - return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, - (__v2df)_mm_permutevar_pd(__A, __C), - (__v2df)_mm_setzero_pd()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_permutevar_pd(__A, __C), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_permutevar_pd(__A, __C), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C) -{ - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_permutevar_ps(__A, __C), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C) -{ - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_permutevar_ps(__A, __C), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_permutevar_ps(__A, __C), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_permutevar_ps(__A, __C), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_test_epi32_mask (__m128i __A, __m128i __B) -{ - return _mm_cmpneq_epi32_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) -{ - return _mm_mask_cmpneq_epi32_mask (__U, _mm_and_si128 (__A, __B), - _mm_setzero_si128()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS256 -_mm256_test_epi32_mask (__m256i __A, __m256i __B) -{ - return _mm256_cmpneq_epi32_mask (_mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS256 -_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) -{ - return _mm256_mask_cmpneq_epi32_mask (__U, _mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_test_epi64_mask (__m128i __A, __m128i __B) -{ - return _mm_cmpneq_epi64_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) -{ - return _mm_mask_cmpneq_epi64_mask (__U, _mm_and_si128 (__A, __B), - _mm_setzero_si128()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS256 -_mm256_test_epi64_mask (__m256i __A, __m256i __B) -{ - return _mm256_cmpneq_epi64_mask (_mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS256 -_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) -{ - return _mm256_mask_cmpneq_epi64_mask (__U, _mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_testn_epi32_mask (__m128i __A, __m128i __B) -{ - return _mm_cmpeq_epi32_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) -{ - return _mm_mask_cmpeq_epi32_mask (__U, _mm_and_si128 (__A, __B), - _mm_setzero_si128()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS256 -_mm256_testn_epi32_mask (__m256i __A, __m256i __B) -{ - return _mm256_cmpeq_epi32_mask (_mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS256 -_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) -{ - return _mm256_mask_cmpeq_epi32_mask (__U, _mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_testn_epi64_mask (__m128i __A, __m128i __B) -{ - return _mm_cmpeq_epi64_mask (_mm_and_si128 (__A, __B), _mm_setzero_si128()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS128 -_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) -{ - return _mm_mask_cmpeq_epi64_mask (__U, _mm_and_si128 (__A, __B), - _mm_setzero_si128()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS256 -_mm256_testn_epi64_mask (__m256i __A, __m256i __B) -{ - return _mm256_cmpeq_epi64_mask (_mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __mmask8 __DEFAULT_FN_ATTRS256 -_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) -{ - return _mm256_mask_cmpeq_epi64_mask (__U, _mm256_and_si256 (__A, __B), - _mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_unpackhi_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_unpackhi_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_unpackhi_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_unpackhi_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_unpackhi_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_unpackhi_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_unpackhi_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_unpackhi_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_unpacklo_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_unpacklo_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_unpacklo_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_unpacklo_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_unpacklo_epi64(__A, __B), - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, - (__v2di)_mm_unpacklo_epi64(__A, __B), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_unpacklo_epi64(__A, __B), - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, - (__v4di)_mm256_unpacklo_epi64(__A, __B), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_sra_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_sra_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_sra_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_sra_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_srai_epi32(__A, __B), - (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srai_epi32(__mmask8 __U, __m128i __A, int __B) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, - (__v4si)_mm_srai_epi32(__A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_srai_epi32(__A, __B), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A, int __B) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, - (__v8si)_mm256_srai_epi32(__A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_sra_epi64(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_psraq128((__v2di)__A, (__v2di)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \ - (__v2di)_mm_sra_epi64(__A, __B), \ - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \ - (__v2di)_mm_sra_epi64(__A, __B), \ - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_sra_epi64(__m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_psraq256((__v4di) __A, (__v2di) __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \ - (__v4di)_mm256_sra_epi64(__A, __B), \ - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \ - (__v4di)_mm256_sra_epi64(__A, __B), \ - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_srai_epi64(__m128i __A, int __imm) -{ - return (__m128i)__builtin_ia32_psraqi128((__v2di)__A, __imm); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A, int __imm) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \ - (__v2di)_mm_srai_epi64(__A, __imm), \ - (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_srai_epi64(__mmask8 __U, __m128i __A, int __imm) -{ - return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, \ - (__v2di)_mm_srai_epi64(__A, __imm), \ - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_srai_epi64(__m256i __A, int __imm) -{ - return (__m256i)__builtin_ia32_psraqi256((__v4di)__A, __imm); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A, int __imm) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \ - (__v4di)_mm256_srai_epi64(__A, __imm), \ - (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A, int __imm) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, \ - (__v4di)_mm256_srai_epi64(__A, __imm), \ - (__v4di)_mm256_setzero_si256()); -} - -#define _mm_ternarylogic_epi32(A, B, C, imm) \ - (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \ - (__v4si)(__m128i)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)-1) - -#define _mm_mask_ternarylogic_epi32(A, U, B, C, imm) \ - (__m128i)__builtin_ia32_pternlogd128_mask((__v4si)(__m128i)(A), \ - (__v4si)(__m128i)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm_maskz_ternarylogic_epi32(U, A, B, C, imm) \ - (__m128i)__builtin_ia32_pternlogd128_maskz((__v4si)(__m128i)(A), \ - (__v4si)(__m128i)(B), \ - (__v4si)(__m128i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm256_ternarylogic_epi32(A, B, C, imm) \ - (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \ - (__v8si)(__m256i)(B), \ - (__v8si)(__m256i)(C), (int)(imm), \ - (__mmask8)-1) - -#define _mm256_mask_ternarylogic_epi32(A, U, B, C, imm) \ - (__m256i)__builtin_ia32_pternlogd256_mask((__v8si)(__m256i)(A), \ - (__v8si)(__m256i)(B), \ - (__v8si)(__m256i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm256_maskz_ternarylogic_epi32(U, A, B, C, imm) \ - (__m256i)__builtin_ia32_pternlogd256_maskz((__v8si)(__m256i)(A), \ - (__v8si)(__m256i)(B), \ - (__v8si)(__m256i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm_ternarylogic_epi64(A, B, C, imm) \ - (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \ - (__v2di)(__m128i)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)-1) - -#define _mm_mask_ternarylogic_epi64(A, U, B, C, imm) \ - (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \ - (__v2di)(__m128i)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm_maskz_ternarylogic_epi64(U, A, B, C, imm) \ - (__m128i)__builtin_ia32_pternlogq128_maskz((__v2di)(__m128i)(A), \ - (__v2di)(__m128i)(B), \ - (__v2di)(__m128i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm256_ternarylogic_epi64(A, B, C, imm) \ - (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \ - (__v4di)(__m256i)(B), \ - (__v4di)(__m256i)(C), (int)(imm), \ - (__mmask8)-1) - -#define _mm256_mask_ternarylogic_epi64(A, U, B, C, imm) \ - (__m256i)__builtin_ia32_pternlogq256_mask((__v4di)(__m256i)(A), \ - (__v4di)(__m256i)(B), \ - (__v4di)(__m256i)(C), (int)(imm), \ - (__mmask8)(U)) - -#define _mm256_maskz_ternarylogic_epi64(U, A, B, C, imm) \ - (__m256i)__builtin_ia32_pternlogq256_maskz((__v4di)(__m256i)(A), \ - (__v4di)(__m256i)(B), \ - (__v4di)(__m256i)(C), (int)(imm), \ - (__mmask8)(U)) - - - -#define _mm256_shuffle_f32x4(A, B, imm) \ - (__m256)__builtin_ia32_shuf_f32x4_256((__v8sf)(__m256)(A), \ - (__v8sf)(__m256)(B), (int)(imm)) - -#define _mm256_mask_shuffle_f32x4(W, U, A, B, imm) \ - (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ - (__v8sf)_mm256_shuffle_f32x4((A), (B), (imm)), \ - (__v8sf)(__m256)(W)) - -#define _mm256_maskz_shuffle_f32x4(U, A, B, imm) \ - (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ - (__v8sf)_mm256_shuffle_f32x4((A), (B), (imm)), \ - (__v8sf)_mm256_setzero_ps()) - -#define _mm256_shuffle_f64x2(A, B, imm) \ - (__m256d)__builtin_ia32_shuf_f64x2_256((__v4df)(__m256d)(A), \ - (__v4df)(__m256d)(B), (int)(imm)) - -#define _mm256_mask_shuffle_f64x2(W, U, A, B, imm) \ - (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ - (__v4df)_mm256_shuffle_f64x2((A), (B), (imm)), \ - (__v4df)(__m256d)(W)) - -#define _mm256_maskz_shuffle_f64x2(U, A, B, imm) \ - (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ - (__v4df)_mm256_shuffle_f64x2((A), (B), (imm)), \ - (__v4df)_mm256_setzero_pd()) - -#define _mm256_shuffle_i32x4(A, B, imm) \ - (__m256i)__builtin_ia32_shuf_i32x4_256((__v8si)(__m256i)(A), \ - (__v8si)(__m256i)(B), (int)(imm)) - -#define _mm256_mask_shuffle_i32x4(W, U, A, B, imm) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_shuffle_i32x4((A), (B), (imm)), \ - (__v8si)(__m256i)(W)) - -#define _mm256_maskz_shuffle_i32x4(U, A, B, imm) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_shuffle_i32x4((A), (B), (imm)), \ - (__v8si)_mm256_setzero_si256()) - -#define _mm256_shuffle_i64x2(A, B, imm) \ - (__m256i)__builtin_ia32_shuf_i64x2_256((__v4di)(__m256i)(A), \ - (__v4di)(__m256i)(B), (int)(imm)) - -#define _mm256_mask_shuffle_i64x2(W, U, A, B, imm) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_shuffle_i64x2((A), (B), (imm)), \ - (__v4di)(__m256i)(W)) - - -#define _mm256_maskz_shuffle_i64x2(U, A, B, imm) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_shuffle_i64x2((A), (B), (imm)), \ - (__v4di)_mm256_setzero_si256()) - -#define _mm_mask_shuffle_pd(W, U, A, B, M) \ - (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \ - (__v2df)_mm_shuffle_pd((A), (B), (M)), \ - (__v2df)(__m128d)(W)) - -#define _mm_maskz_shuffle_pd(U, A, B, M) \ - (__m128d)__builtin_ia32_selectpd_128((__mmask8)(U), \ - (__v2df)_mm_shuffle_pd((A), (B), (M)), \ - (__v2df)_mm_setzero_pd()) - -#define _mm256_mask_shuffle_pd(W, U, A, B, M) \ - (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ - (__v4df)_mm256_shuffle_pd((A), (B), (M)), \ - (__v4df)(__m256d)(W)) - -#define _mm256_maskz_shuffle_pd(U, A, B, M) \ - (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ - (__v4df)_mm256_shuffle_pd((A), (B), (M)), \ - (__v4df)_mm256_setzero_pd()) - -#define _mm_mask_shuffle_ps(W, U, A, B, M) \ - (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \ - (__v4sf)_mm_shuffle_ps((A), (B), (M)), \ - (__v4sf)(__m128)(W)) - -#define _mm_maskz_shuffle_ps(U, A, B, M) \ - (__m128)__builtin_ia32_selectps_128((__mmask8)(U), \ - (__v4sf)_mm_shuffle_ps((A), (B), (M)), \ - (__v4sf)_mm_setzero_ps()) - -#define _mm256_mask_shuffle_ps(W, U, A, B, M) \ - (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ - (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \ - (__v8sf)(__m256)(W)) - -#define _mm256_maskz_shuffle_ps(U, A, B, M) \ - (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ - (__v8sf)_mm256_shuffle_ps((A), (B), (M)), \ - (__v8sf)_mm256_setzero_ps()) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_rsqrt14_pd (__m128d __A) -{ - return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, - (__v2df) - _mm_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A) -{ - return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, - (__v2df) __W, - (__mmask8) __U); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A) -{ - return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, - (__v2df) - _mm_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_rsqrt14_pd (__m256d __A) -{ - return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) -1); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A) -{ - return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, - (__v4df) __W, - (__mmask8) __U); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A) -{ - return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, - (__v4df) - _mm256_setzero_pd (), - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_rsqrt14_ps (__m128 __A) -{ - return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) -1); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A) -{ - return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A) -{ - return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_rsqrt14_ps (__m256 __A) -{ - return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) -1); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A) -{ - return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, - (__v8sf) __W, - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A) -{ - return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_broadcast_f32x4(__m128 __A) -{ - return (__m256)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A, - 0, 1, 2, 3, 0, 1, 2, 3); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__M, - (__v8sf)_mm256_broadcast_f32x4(__A), - (__v8sf)__O); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__M, - (__v8sf)_mm256_broadcast_f32x4(__A), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_broadcast_i32x4(__m128i __A) -{ - return (__m256i)__builtin_shufflevector((__v4si)__A, (__v4si)__A, - 0, 1, 2, 3, 0, 1, 2, 3); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_broadcast_i32x4(__A), - (__v8si)__O); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_broadcast_i32x4(__A), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A) -{ - return (__m256d)__builtin_ia32_selectpd_256(__M, - (__v4df) _mm256_broadcastsd_pd(__A), - (__v4df) __O); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A) -{ - return (__m256d)__builtin_ia32_selectpd_256(__M, - (__v4df) _mm256_broadcastsd_pd(__A), - (__v4df) _mm256_setzero_pd()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A) -{ - return (__m128)__builtin_ia32_selectps_128(__M, - (__v4sf) _mm_broadcastss_ps(__A), - (__v4sf) __O); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A) -{ - return (__m128)__builtin_ia32_selectps_128(__M, - (__v4sf) _mm_broadcastss_ps(__A), - (__v4sf) _mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A) -{ - return (__m256)__builtin_ia32_selectps_256(__M, - (__v8sf) _mm256_broadcastss_ps(__A), - (__v8sf) __O); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A) -{ - return (__m256)__builtin_ia32_selectps_256(__M, - (__v8sf) _mm256_broadcastss_ps(__A), - (__v8sf) _mm256_setzero_ps()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectd_128(__M, - (__v4si) _mm_broadcastd_epi32(__A), - (__v4si) __O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectd_128(__M, - (__v4si) _mm_broadcastd_epi32(__A), - (__v4si) _mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectd_256(__M, - (__v8si) _mm256_broadcastd_epi32(__A), - (__v8si) __O); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectd_256(__M, - (__v8si) _mm256_broadcastd_epi32(__A), - (__v8si) _mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectq_128(__M, - (__v2di) _mm_broadcastq_epi64(__A), - (__v2di) __O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) -{ - return (__m128i)__builtin_ia32_selectq_128(__M, - (__v2di) _mm_broadcastq_epi64(__A), - (__v2di) _mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectq_256(__M, - (__v4di) _mm256_broadcastq_epi64(__A), - (__v4di) __O); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) -{ - return (__m256i)__builtin_ia32_selectq_256(__M, - (__v4di) _mm256_broadcastq_epi64(__A), - (__v4di) _mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtsepi32_epi8 (__m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, - (__v16qi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtsepi32_epi8 (__m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, - (__v16qi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtsepi32_epi16 (__m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, - (__v8hi)_mm_setzero_si128 (), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, - (__v8hi)__O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtsepi32_epi16 (__m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, - (__v8hi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtsepi64_epi8 (__m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, - (__v16qi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtsepi64_epi8 (__m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, - (__v16qi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtsepi64_epi32 (__m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, - (__v4si)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, - (__v4si) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, - (__v4si) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtsepi64_epi32 (__m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, - (__v4si)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, - (__v4si)__O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, - (__v4si) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtsepi64_epi16 (__m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, - (__v8hi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtsepi64_epi16 (__m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, - (__v8hi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtusepi32_epi8 (__m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, - (__v16qi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtusepi32_epi8 (__m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, - (__v16qi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtusepi32_epi16 (__m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, - (__v8hi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtusepi32_epi16 (__m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, - (__v8hi) _mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtusepi64_epi8 (__m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, - (__v16qi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtusepi64_epi8 (__m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, - (__v16qi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, - (__v16qi) __O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtusepi64_epi32 (__m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, - (__v4si)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, - (__v4si) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, - (__v4si) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtusepi64_epi32 (__m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, - (__v4si)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, - (__v4si) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, - (__v4si) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtusepi64_epi16 (__m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, - (__v8hi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtusepi64_epi16 (__m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, - (__v8hi)_mm_undefined_si128(), - (__mmask8) -1); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtepi32_epi8 (__m128i __A) -{ - return (__m128i)__builtin_shufflevector( - __builtin_convertvector((__v4si)__A, __v4qi), (__v4qi){0, 0, 0, 0}, 0, 1, - 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A, - (__v16qi) - _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi32_epi8 (__m256i __A) -{ - return (__m128i)__builtin_shufflevector( - __builtin_convertvector((__v8si)__A, __v8qi), - (__v8qi){0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtepi32_epi16 (__m128i __A) -{ - return (__m128i)__builtin_shufflevector( - __builtin_convertvector((__v4si)__A, __v4hi), (__v4hi){0, 0, 0, 0}, 0, 1, - 2, 3, 4, 5, 6, 7); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi32_epi16 (__m256i __A) -{ - return (__m128i)__builtin_convertvector((__v8si)__A, __v8hi); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtepi64_epi8 (__m128i __A) -{ - return (__m128i)__builtin_shufflevector( - __builtin_convertvector((__v2di)__A, __v2qi), (__v2qi){0, 0}, 0, 1, 2, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi64_epi8 (__m256i __A) -{ - return (__m128i)__builtin_shufflevector( - __builtin_convertvector((__v4di)__A, __v4qi), (__v4qi){0, 0, 0, 0}, 0, 1, - 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A, - (__v16qi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A, - (__v16qi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtepi64_epi32 (__m128i __A) -{ - return (__m128i)__builtin_shufflevector( - __builtin_convertvector((__v2di)__A, __v2si), (__v2si){0, 0}, 0, 1, 2, 3); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A, - (__v4si) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A, - (__v4si) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi64_epi32 (__m256i __A) -{ - return (__m128i)__builtin_convertvector((__v4di)__A, __v4si); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm256_cvtepi64_epi32(__A), - (__v4si)__O); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A) -{ - return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, - (__v4si)_mm256_cvtepi64_epi32(__A), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_cvtepi64_epi16 (__m128i __A) -{ - return (__m128i)__builtin_shufflevector( - __builtin_convertvector((__v2di)__A, __v2hi), (__v2hi){0, 0}, 0, 1, 2, 3, - 3, 3, 3, 3); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A, - (__v8hi)__O, - __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A) -{ - return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) -{ - __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_cvtepi64_epi16 (__m256i __A) -{ - return (__m128i)__builtin_shufflevector( - __builtin_convertvector((__v4di)__A, __v4hi), (__v4hi){0, 0, 0, 0}, 0, 1, - 2, 3, 4, 5, 6, 7); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A, - (__v8hi) __O, __M); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A) -{ - return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A, - (__v8hi) _mm_setzero_si128 (), - __M); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) -{ - __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); -} - -#define _mm256_extractf32x4_ps(A, imm) \ - (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \ - (int)(imm), \ - (__v4sf)_mm_undefined_ps(), \ - (__mmask8)-1) - -#define _mm256_mask_extractf32x4_ps(W, U, A, imm) \ - (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \ - (int)(imm), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U)) - -#define _mm256_maskz_extractf32x4_ps(U, A, imm) \ - (__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \ - (int)(imm), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U)) - -#define _mm256_extracti32x4_epi32(A, imm) \ - (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \ - (int)(imm), \ - (__v4si)_mm_undefined_si128(), \ - (__mmask8)-1) - -#define _mm256_mask_extracti32x4_epi32(W, U, A, imm) \ - (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \ - (int)(imm), \ - (__v4si)(__m128i)(W), \ - (__mmask8)(U)) - -#define _mm256_maskz_extracti32x4_epi32(U, A, imm) \ - (__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \ - (int)(imm), \ - (__v4si)_mm_setzero_si128(), \ - (__mmask8)(U)) - -#define _mm256_insertf32x4(A, B, imm) \ - (__m256)__builtin_ia32_insertf32x4_256((__v8sf)(__m256)(A), \ - (__v4sf)(__m128)(B), (int)(imm)) - -#define _mm256_mask_insertf32x4(W, U, A, B, imm) \ - (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ - (__v8sf)_mm256_insertf32x4((A), (B), (imm)), \ - (__v8sf)(__m256)(W)) - -#define _mm256_maskz_insertf32x4(U, A, B, imm) \ - (__m256)__builtin_ia32_selectps_256((__mmask8)(U), \ - (__v8sf)_mm256_insertf32x4((A), (B), (imm)), \ - (__v8sf)_mm256_setzero_ps()) - -#define _mm256_inserti32x4(A, B, imm) \ - (__m256i)__builtin_ia32_inserti32x4_256((__v8si)(__m256i)(A), \ - (__v4si)(__m128i)(B), (int)(imm)) - -#define _mm256_mask_inserti32x4(W, U, A, B, imm) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_inserti32x4((A), (B), (imm)), \ - (__v8si)(__m256i)(W)) - -#define _mm256_maskz_inserti32x4(U, A, B, imm) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_inserti32x4((A), (B), (imm)), \ - (__v8si)_mm256_setzero_si256()) - -#define _mm_getmant_pd(A, B, C) \ - (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)-1) - -#define _mm_mask_getmant_pd(W, U, A, B, C) \ - (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v2df)(__m128d)(W), \ - (__mmask8)(U)) - -#define _mm_maskz_getmant_pd(U, A, B, C) \ - (__m128d)__builtin_ia32_getmantpd128_mask((__v2df)(__m128d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v2df)_mm_setzero_pd(), \ - (__mmask8)(U)) - -#define _mm256_getmant_pd(A, B, C) \ - (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v4df)_mm256_setzero_pd(), \ - (__mmask8)-1) - -#define _mm256_mask_getmant_pd(W, U, A, B, C) \ - (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v4df)(__m256d)(W), \ - (__mmask8)(U)) - -#define _mm256_maskz_getmant_pd(U, A, B, C) \ - (__m256d)__builtin_ia32_getmantpd256_mask((__v4df)(__m256d)(A), \ - (int)(((C)<<2) | (B)), \ - (__v4df)_mm256_setzero_pd(), \ - (__mmask8)(U)) - -#define _mm_getmant_ps(A, B, C) \ - (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \ - (int)(((C)<<2) | (B)), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)-1) - -#define _mm_mask_getmant_ps(W, U, A, B, C) \ - (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \ - (int)(((C)<<2) | (B)), \ - (__v4sf)(__m128)(W), \ - (__mmask8)(U)) - -#define _mm_maskz_getmant_ps(U, A, B, C) \ - (__m128)__builtin_ia32_getmantps128_mask((__v4sf)(__m128)(A), \ - (int)(((C)<<2) | (B)), \ - (__v4sf)_mm_setzero_ps(), \ - (__mmask8)(U)) - -#define _mm256_getmant_ps(A, B, C) \ - (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \ - (int)(((C)<<2) | (B)), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)-1) - -#define _mm256_mask_getmant_ps(W, U, A, B, C) \ - (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \ - (int)(((C)<<2) | (B)), \ - (__v8sf)(__m256)(W), \ - (__mmask8)(U)) - -#define _mm256_maskz_getmant_ps(U, A, B, C) \ - (__m256)__builtin_ia32_getmantps256_mask((__v8sf)(__m256)(A), \ - (int)(((C)<<2) | (B)), \ - (__v8sf)_mm256_setzero_ps(), \ - (__mmask8)(U)) - -#define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) \ - (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \ - (void const *)(addr), \ - (__v2di)(__m128i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) \ - (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \ - (void const *)(addr), \ - (__v2di)(__m128i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) \ - (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \ - (void const *)(addr), \ - (__v4di)(__m256i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) \ - (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \ - (void const *)(addr), \ - (__v4di)(__m256i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) \ - (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \ - (void const *)(addr), \ - (__v2di)(__m128i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) \ - (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \ - (void const *)(addr), \ - (__v2di)(__m128i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) \ - (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \ - (void const *)(addr), \ - (__v4di)(__m256i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) \ - (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \ - (void const *)(addr), \ - (__v4di)(__m256i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) \ - (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \ - (void const *)(addr), \ - (__v4si)(__m128i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) \ - (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \ - (void const *)(addr), \ - (__v4si)(__m128i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) \ - (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \ - (void const *)(addr), \ - (__v4si)(__m128i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) \ - (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \ - (void const *)(addr), \ - (__v4si)(__m128i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) \ - (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \ - (void const *)(addr), \ - (__v4si)(__m128i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) \ - (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \ - (void const *)(addr), \ - (__v4si)(__m128i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) \ - (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \ - (void const *)(addr), \ - (__v8si)(__m256i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) \ - (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \ - (void const *)(addr), \ - (__v8si)(__m256i)(index), \ - (__mmask8)(mask), (int)(scale)) - -#define _mm256_permutex_pd(X, C) \ - (__m256d)__builtin_ia32_permdf256((__v4df)(__m256d)(X), (int)(C)) - -#define _mm256_mask_permutex_pd(W, U, X, C) \ - (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ - (__v4df)_mm256_permutex_pd((X), (C)), \ - (__v4df)(__m256d)(W)) - -#define _mm256_maskz_permutex_pd(U, X, C) \ - (__m256d)__builtin_ia32_selectpd_256((__mmask8)(U), \ - (__v4df)_mm256_permutex_pd((X), (C)), \ - (__v4df)_mm256_setzero_pd()) - -#define _mm256_permutex_epi64(X, C) \ - (__m256i)__builtin_ia32_permdi256((__v4di)(__m256i)(X), (int)(C)) - -#define _mm256_mask_permutex_epi64(W, U, X, C) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_permutex_epi64((X), (C)), \ - (__v4di)(__m256i)(W)) - -#define _mm256_maskz_permutex_epi64(U, X, C) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_permutex_epi64((X), (C)), \ - (__v4di)_mm256_setzero_si256()) - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_permutexvar_pd (__m256i __X, __m256d __Y) -{ - return (__m256d)__builtin_ia32_permvardf256((__v4df)__Y, (__v4di)__X); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X, - __m256d __Y) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_permutexvar_pd(__X, __Y), - (__v4df)__W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y) -{ - return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, - (__v4df)_mm256_permutexvar_pd(__X, __Y), - (__v4df)_mm256_setzero_pd()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_permvardi256((__v4di) __Y, (__v4di) __X); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_permutexvar_epi64(__X, __Y), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X, - __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, - (__v4di)_mm256_permutexvar_epi64(__X, __Y), - (__v4di)__W); -} - -#define _mm256_permutexvar_ps(A, B) _mm256_permutevar8x32_ps((B), (A)) - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_permutexvar_ps(__X, __Y), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_permutexvar_ps(__X, __Y), - (__v8sf)_mm256_setzero_ps()); -} - -#define _mm256_permutexvar_epi32(A, B) _mm256_permutevar8x32_epi32((B), (A)) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X, - __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_permutexvar_epi32(__X, __Y), - (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y) -{ - return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, - (__v8si)_mm256_permutexvar_epi32(__X, __Y), - (__v8si)_mm256_setzero_si256()); -} - -#define _mm_alignr_epi32(A, B, imm) \ - (__m128i)__builtin_ia32_alignd128((__v4si)(__m128i)(A), \ - (__v4si)(__m128i)(B), (int)(imm)) - -#define _mm_mask_alignr_epi32(W, U, A, B, imm) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ - (__v4si)_mm_alignr_epi32((A), (B), (imm)), \ - (__v4si)(__m128i)(W)) - -#define _mm_maskz_alignr_epi32(U, A, B, imm) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ - (__v4si)_mm_alignr_epi32((A), (B), (imm)), \ - (__v4si)_mm_setzero_si128()) - -#define _mm256_alignr_epi32(A, B, imm) \ - (__m256i)__builtin_ia32_alignd256((__v8si)(__m256i)(A), \ - (__v8si)(__m256i)(B), (int)(imm)) - -#define _mm256_mask_alignr_epi32(W, U, A, B, imm) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_alignr_epi32((A), (B), (imm)), \ - (__v8si)(__m256i)(W)) - -#define _mm256_maskz_alignr_epi32(U, A, B, imm) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_alignr_epi32((A), (B), (imm)), \ - (__v8si)_mm256_setzero_si256()) - -#define _mm_alignr_epi64(A, B, imm) \ - (__m128i)__builtin_ia32_alignq128((__v2di)(__m128i)(A), \ - (__v2di)(__m128i)(B), (int)(imm)) - -#define _mm_mask_alignr_epi64(W, U, A, B, imm) \ - (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \ - (__v2di)_mm_alignr_epi64((A), (B), (imm)), \ - (__v2di)(__m128i)(W)) - -#define _mm_maskz_alignr_epi64(U, A, B, imm) \ - (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \ - (__v2di)_mm_alignr_epi64((A), (B), (imm)), \ - (__v2di)_mm_setzero_si128()) - -#define _mm256_alignr_epi64(A, B, imm) \ - (__m256i)__builtin_ia32_alignq256((__v4di)(__m256i)(A), \ - (__v4di)(__m256i)(B), (int)(imm)) - -#define _mm256_mask_alignr_epi64(W, U, A, B, imm) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_alignr_epi64((A), (B), (imm)), \ - (__v4di)(__m256i)(W)) - -#define _mm256_maskz_alignr_epi64(U, A, B, imm) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_alignr_epi64((A), (B), (imm)), \ - (__v4di)_mm256_setzero_si256()) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A) -{ - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_movehdup_ps(__A), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A) -{ - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_movehdup_ps(__A), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_movehdup_ps(__A), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_movehdup_ps(__A), - (__v8sf)_mm256_setzero_ps()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A) -{ - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_moveldup_ps(__A), - (__v4sf)__W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A) -{ - return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, - (__v4sf)_mm_moveldup_ps(__A), - (__v4sf)_mm_setzero_ps()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_moveldup_ps(__A), - (__v8sf)__W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A) -{ - return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, - (__v8sf)_mm256_moveldup_ps(__A), - (__v8sf)_mm256_setzero_ps()); -} - -#define _mm256_mask_shuffle_epi32(W, U, A, I) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_shuffle_epi32((A), (I)), \ - (__v8si)(__m256i)(W)) - -#define _mm256_maskz_shuffle_epi32(U, A, I) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_shuffle_epi32((A), (I)), \ - (__v8si)_mm256_setzero_si256()) - -#define _mm_mask_shuffle_epi32(W, U, A, I) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ - (__v4si)_mm_shuffle_epi32((A), (I)), \ - (__v4si)(__m128i)(W)) - -#define _mm_maskz_shuffle_epi32(U, A, I) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ - (__v4si)_mm_shuffle_epi32((A), (I)), \ - (__v4si)_mm_setzero_si128()) - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A) -{ - return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U, - (__v2df) __A, - (__v2df) __W); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maskz_mov_pd (__mmask8 __U, __m128d __A) -{ - return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U, - (__v2df) __A, - (__v2df) _mm_setzero_pd ()); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A) -{ - return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U, - (__v4df) __A, - (__v4df) __W); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maskz_mov_pd (__mmask8 __U, __m256d __A) -{ - return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U, - (__v4df) __A, - (__v4df) _mm256_setzero_pd ()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A) -{ - return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U, - (__v4sf) __A, - (__v4sf) __W); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_mov_ps (__mmask8 __U, __m128 __A) -{ - return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U, - (__v4sf) __A, - (__v4sf) _mm_setzero_ps ()); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A) -{ - return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U, - (__v8sf) __A, - (__v8sf) __W); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_mov_ps (__mmask8 __U, __m256 __A) -{ - return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U, - (__v8sf) __A, - (__v8sf) _mm256_setzero_ps ()); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A) -{ - return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A, - (__v4sf) __W, - (__mmask8) __U); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A) -{ - return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A, - (__v4sf) - _mm_setzero_ps (), - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A) -{ - return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A, - (__v8sf) __W, - (__mmask8) __U); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A) -{ - return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A, - (__v8sf) - _mm256_setzero_ps (), - (__mmask8) __U); -} - -#define _mm_mask_cvt_roundps_ph(W, U, A, I) \ - (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \ - (__v8hi)(__m128i)(W), \ - (__mmask8)(U)) - -#define _mm_maskz_cvt_roundps_ph(U, A, I) \ - (__m128i)__builtin_ia32_vcvtps2ph_mask((__v4sf)(__m128)(A), (int)(I), \ - (__v8hi)_mm_setzero_si128(), \ - (__mmask8)(U)) - -#define _mm_mask_cvtps_ph _mm_mask_cvt_roundps_ph -#define _mm_maskz_cvtps_ph _mm_maskz_cvt_roundps_ph - -#define _mm256_mask_cvt_roundps_ph(W, U, A, I) \ - (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \ - (__v8hi)(__m128i)(W), \ - (__mmask8)(U)) - -#define _mm256_maskz_cvt_roundps_ph(U, A, I) \ - (__m128i)__builtin_ia32_vcvtps2ph256_mask((__v8sf)(__m256)(A), (int)(I), \ - (__v8hi)_mm_setzero_si128(), \ - (__mmask8)(U)) - -#define _mm256_mask_cvtps_ph _mm256_mask_cvt_roundps_ph -#define _mm256_maskz_cvtps_ph _mm256_maskz_cvt_roundps_ph - - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif /* __AVX512VLINTRIN_H */ diff --git a/bin/app/data/cxx/include/avx512vlvbmi2intrin.h b/bin/app/data/cxx/include/avx512vlvbmi2intrin.h deleted file mode 100644 index a40f926d..00000000 --- a/bin/app/data/cxx/include/avx512vlvbmi2intrin.h +++ /dev/null @@ -1,689 +0,0 @@ -/*===------------- avx512vlvbmi2intrin.h - VBMI2 intrinsics -----------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512VLVBMI2INTRIN_H -#define __AVX512VLVBMI2INTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_compress_epi16(__m128i __S, __mmask8 __U, __m128i __D) -{ - return (__m128i) __builtin_ia32_compresshi128_mask ((__v8hi) __D, - (__v8hi) __S, - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_compress_epi16(__mmask8 __U, __m128i __D) -{ - return (__m128i) __builtin_ia32_compresshi128_mask ((__v8hi) __D, - (__v8hi) _mm_setzero_si128(), - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_compress_epi8(__m128i __S, __mmask16 __U, __m128i __D) -{ - return (__m128i) __builtin_ia32_compressqi128_mask ((__v16qi) __D, - (__v16qi) __S, - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_compress_epi8(__mmask16 __U, __m128i __D) -{ - return (__m128i) __builtin_ia32_compressqi128_mask ((__v16qi) __D, - (__v16qi) _mm_setzero_si128(), - __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_compressstoreu_epi16(void *__P, __mmask8 __U, __m128i __D) -{ - __builtin_ia32_compressstorehi128_mask ((__v8hi *) __P, (__v8hi) __D, - __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_mask_compressstoreu_epi8(void *__P, __mmask16 __U, __m128i __D) -{ - __builtin_ia32_compressstoreqi128_mask ((__v16qi *) __P, (__v16qi) __D, - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_expand_epi16(__m128i __S, __mmask8 __U, __m128i __D) -{ - return (__m128i) __builtin_ia32_expandhi128_mask ((__v8hi) __D, - (__v8hi) __S, - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_expand_epi16(__mmask8 __U, __m128i __D) -{ - return (__m128i) __builtin_ia32_expandhi128_mask ((__v8hi) __D, - (__v8hi) _mm_setzero_si128(), - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_expand_epi8(__m128i __S, __mmask16 __U, __m128i __D) -{ - return (__m128i) __builtin_ia32_expandqi128_mask ((__v16qi) __D, - (__v16qi) __S, - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_expand_epi8(__mmask16 __U, __m128i __D) -{ - return (__m128i) __builtin_ia32_expandqi128_mask ((__v16qi) __D, - (__v16qi) _mm_setzero_si128(), - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_expandloadu_epi16(__m128i __S, __mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_expandloadhi128_mask ((const __v8hi *)__P, - (__v8hi) __S, - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_expandloadu_epi16(__mmask8 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_expandloadhi128_mask ((const __v8hi *)__P, - (__v8hi) _mm_setzero_si128(), - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_expandloadu_epi8(__m128i __S, __mmask16 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_expandloadqi128_mask ((const __v16qi *)__P, - (__v16qi) __S, - __U); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_expandloadu_epi8(__mmask16 __U, void const *__P) -{ - return (__m128i) __builtin_ia32_expandloadqi128_mask ((const __v16qi *)__P, - (__v16qi) _mm_setzero_si128(), - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_compress_epi16(__m256i __S, __mmask16 __U, __m256i __D) -{ - return (__m256i) __builtin_ia32_compresshi256_mask ((__v16hi) __D, - (__v16hi) __S, - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_compress_epi16(__mmask16 __U, __m256i __D) -{ - return (__m256i) __builtin_ia32_compresshi256_mask ((__v16hi) __D, - (__v16hi) _mm256_setzero_si256(), - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_compress_epi8(__m256i __S, __mmask32 __U, __m256i __D) -{ - return (__m256i) __builtin_ia32_compressqi256_mask ((__v32qi) __D, - (__v32qi) __S, - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_compress_epi8(__mmask32 __U, __m256i __D) -{ - return (__m256i) __builtin_ia32_compressqi256_mask ((__v32qi) __D, - (__v32qi) _mm256_setzero_si256(), - __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_compressstoreu_epi16(void *__P, __mmask16 __U, __m256i __D) -{ - __builtin_ia32_compressstorehi256_mask ((__v16hi *) __P, (__v16hi) __D, - __U); -} - -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_mask_compressstoreu_epi8(void *__P, __mmask32 __U, __m256i __D) -{ - __builtin_ia32_compressstoreqi256_mask ((__v32qi *) __P, (__v32qi) __D, - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_expand_epi16(__m256i __S, __mmask16 __U, __m256i __D) -{ - return (__m256i) __builtin_ia32_expandhi256_mask ((__v16hi) __D, - (__v16hi) __S, - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_expand_epi16(__mmask16 __U, __m256i __D) -{ - return (__m256i) __builtin_ia32_expandhi256_mask ((__v16hi) __D, - (__v16hi) _mm256_setzero_si256(), - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_expand_epi8(__m256i __S, __mmask32 __U, __m256i __D) -{ - return (__m256i) __builtin_ia32_expandqi256_mask ((__v32qi) __D, - (__v32qi) __S, - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_expand_epi8(__mmask32 __U, __m256i __D) -{ - return (__m256i) __builtin_ia32_expandqi256_mask ((__v32qi) __D, - (__v32qi) _mm256_setzero_si256(), - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_expandloadu_epi16(__m256i __S, __mmask16 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_expandloadhi256_mask ((const __v16hi *)__P, - (__v16hi) __S, - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_expandloadu_epi16(__mmask16 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_expandloadhi256_mask ((const __v16hi *)__P, - (__v16hi) _mm256_setzero_si256(), - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_expandloadu_epi8(__m256i __S, __mmask32 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_expandloadqi256_mask ((const __v32qi *)__P, - (__v32qi) __S, - __U); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_expandloadu_epi8(__mmask32 __U, void const *__P) -{ - return (__m256i) __builtin_ia32_expandloadqi256_mask ((const __v32qi *)__P, - (__v32qi) _mm256_setzero_si256(), - __U); -} - -#define _mm256_shldi_epi64(A, B, I) \ - (__m256i)__builtin_ia32_vpshldq256((__v4di)(__m256i)(A), \ - (__v4di)(__m256i)(B), (int)(I)) - -#define _mm256_mask_shldi_epi64(S, U, A, B, I) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_shldi_epi64((A), (B), (I)), \ - (__v4di)(__m256i)(S)) - -#define _mm256_maskz_shldi_epi64(U, A, B, I) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_shldi_epi64((A), (B), (I)), \ - (__v4di)_mm256_setzero_si256()) - -#define _mm_shldi_epi64(A, B, I) \ - (__m128i)__builtin_ia32_vpshldq128((__v2di)(__m128i)(A), \ - (__v2di)(__m128i)(B), (int)(I)) - -#define _mm_mask_shldi_epi64(S, U, A, B, I) \ - (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \ - (__v2di)_mm_shldi_epi64((A), (B), (I)), \ - (__v2di)(__m128i)(S)) - -#define _mm_maskz_shldi_epi64(U, A, B, I) \ - (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \ - (__v2di)_mm_shldi_epi64((A), (B), (I)), \ - (__v2di)_mm_setzero_si128()) - -#define _mm256_shldi_epi32(A, B, I) \ - (__m256i)__builtin_ia32_vpshldd256((__v8si)(__m256i)(A), \ - (__v8si)(__m256i)(B), (int)(I)) - -#define _mm256_mask_shldi_epi32(S, U, A, B, I) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_shldi_epi32((A), (B), (I)), \ - (__v8si)(__m256i)(S)) - -#define _mm256_maskz_shldi_epi32(U, A, B, I) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_shldi_epi32((A), (B), (I)), \ - (__v8si)_mm256_setzero_si256()) - -#define _mm_shldi_epi32(A, B, I) \ - (__m128i)__builtin_ia32_vpshldd128((__v4si)(__m128i)(A), \ - (__v4si)(__m128i)(B), (int)(I)) - -#define _mm_mask_shldi_epi32(S, U, A, B, I) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ - (__v4si)_mm_shldi_epi32((A), (B), (I)), \ - (__v4si)(__m128i)(S)) - -#define _mm_maskz_shldi_epi32(U, A, B, I) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ - (__v4si)_mm_shldi_epi32((A), (B), (I)), \ - (__v4si)_mm_setzero_si128()) - -#define _mm256_shldi_epi16(A, B, I) \ - (__m256i)__builtin_ia32_vpshldw256((__v16hi)(__m256i)(A), \ - (__v16hi)(__m256i)(B), (int)(I)) - -#define _mm256_mask_shldi_epi16(S, U, A, B, I) \ - (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ - (__v16hi)_mm256_shldi_epi16((A), (B), (I)), \ - (__v16hi)(__m256i)(S)) - -#define _mm256_maskz_shldi_epi16(U, A, B, I) \ - (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ - (__v16hi)_mm256_shldi_epi16((A), (B), (I)), \ - (__v16hi)_mm256_setzero_si256()) - -#define _mm_shldi_epi16(A, B, I) \ - (__m128i)__builtin_ia32_vpshldw128((__v8hi)(__m128i)(A), \ - (__v8hi)(__m128i)(B), (int)(I)) - -#define _mm_mask_shldi_epi16(S, U, A, B, I) \ - (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ - (__v8hi)_mm_shldi_epi16((A), (B), (I)), \ - (__v8hi)(__m128i)(S)) - -#define _mm_maskz_shldi_epi16(U, A, B, I) \ - (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ - (__v8hi)_mm_shldi_epi16((A), (B), (I)), \ - (__v8hi)_mm_setzero_si128()) - -#define _mm256_shrdi_epi64(A, B, I) \ - (__m256i)__builtin_ia32_vpshrdq256((__v4di)(__m256i)(A), \ - (__v4di)(__m256i)(B), (int)(I)) - -#define _mm256_mask_shrdi_epi64(S, U, A, B, I) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_shrdi_epi64((A), (B), (I)), \ - (__v4di)(__m256i)(S)) - -#define _mm256_maskz_shrdi_epi64(U, A, B, I) \ - (__m256i)__builtin_ia32_selectq_256((__mmask8)(U), \ - (__v4di)_mm256_shrdi_epi64((A), (B), (I)), \ - (__v4di)_mm256_setzero_si256()) - -#define _mm_shrdi_epi64(A, B, I) \ - (__m128i)__builtin_ia32_vpshrdq128((__v2di)(__m128i)(A), \ - (__v2di)(__m128i)(B), (int)(I)) - -#define _mm_mask_shrdi_epi64(S, U, A, B, I) \ - (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \ - (__v2di)_mm_shrdi_epi64((A), (B), (I)), \ - (__v2di)(__m128i)(S)) - -#define _mm_maskz_shrdi_epi64(U, A, B, I) \ - (__m128i)__builtin_ia32_selectq_128((__mmask8)(U), \ - (__v2di)_mm_shrdi_epi64((A), (B), (I)), \ - (__v2di)_mm_setzero_si128()) - -#define _mm256_shrdi_epi32(A, B, I) \ - (__m256i)__builtin_ia32_vpshrdd256((__v8si)(__m256i)(A), \ - (__v8si)(__m256i)(B), (int)(I)) - -#define _mm256_mask_shrdi_epi32(S, U, A, B, I) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_shrdi_epi32((A), (B), (I)), \ - (__v8si)(__m256i)(S)) - -#define _mm256_maskz_shrdi_epi32(U, A, B, I) \ - (__m256i)__builtin_ia32_selectd_256((__mmask8)(U), \ - (__v8si)_mm256_shrdi_epi32((A), (B), (I)), \ - (__v8si)_mm256_setzero_si256()) - -#define _mm_shrdi_epi32(A, B, I) \ - (__m128i)__builtin_ia32_vpshrdd128((__v4si)(__m128i)(A), \ - (__v4si)(__m128i)(B), (int)(I)) - -#define _mm_mask_shrdi_epi32(S, U, A, B, I) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ - (__v4si)_mm_shrdi_epi32((A), (B), (I)), \ - (__v4si)(__m128i)(S)) - -#define _mm_maskz_shrdi_epi32(U, A, B, I) \ - (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ - (__v4si)_mm_shrdi_epi32((A), (B), (I)), \ - (__v4si)_mm_setzero_si128()) - -#define _mm256_shrdi_epi16(A, B, I) \ - (__m256i)__builtin_ia32_vpshrdw256((__v16hi)(__m256i)(A), \ - (__v16hi)(__m256i)(B), (int)(I)) - -#define _mm256_mask_shrdi_epi16(S, U, A, B, I) \ - (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ - (__v16hi)_mm256_shrdi_epi16((A), (B), (I)), \ - (__v16hi)(__m256i)(S)) - -#define _mm256_maskz_shrdi_epi16(U, A, B, I) \ - (__m256i)__builtin_ia32_selectw_256((__mmask16)(U), \ - (__v16hi)_mm256_shrdi_epi16((A), (B), (I)), \ - (__v16hi)_mm256_setzero_si256()) - -#define _mm_shrdi_epi16(A, B, I) \ - (__m128i)__builtin_ia32_vpshrdw128((__v8hi)(__m128i)(A), \ - (__v8hi)(__m128i)(B), (int)(I)) - -#define _mm_mask_shrdi_epi16(S, U, A, B, I) \ - (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ - (__v8hi)_mm_shrdi_epi16((A), (B), (I)), \ - (__v8hi)(__m128i)(S)) - -#define _mm_maskz_shrdi_epi16(U, A, B, I) \ - (__m128i)__builtin_ia32_selectw_128((__mmask8)(U), \ - (__v8hi)_mm_shrdi_epi16((A), (B), (I)), \ - (__v8hi)_mm_setzero_si128()) - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_shldv_epi64(__m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_vpshldvq256((__v4di)__A, (__v4di)__B, - (__v4di)__C); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_shldv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_shldv_epi64(__A, __B, __C), - (__v4di)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_shldv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_shldv_epi64(__A, __B, __C), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_shldv_epi64(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpshldvq128((__v2di)__A, (__v2di)__B, - (__v2di)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_shldv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_shldv_epi64(__A, __B, __C), - (__v2di)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_shldv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_shldv_epi64(__A, __B, __C), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_shldv_epi32(__m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_vpshldvd256((__v8si)__A, (__v8si)__B, - (__v8si)__C); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_shldv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_shldv_epi32(__A, __B, __C), - (__v8si)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_shldv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_shldv_epi32(__A, __B, __C), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_shldv_epi32(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpshldvd128((__v4si)__A, (__v4si)__B, - (__v4si)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_shldv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_shldv_epi32(__A, __B, __C), - (__v4si)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_shldv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_shldv_epi32(__A, __B, __C), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_shldv_epi16(__m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_vpshldvw256((__v16hi)__A, (__v16hi)__B, - (__v16hi)__C); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_shldv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectw_256(__U, - (__v16hi)_mm256_shldv_epi16(__A, __B, __C), - (__v16hi)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_shldv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectw_256(__U, - (__v16hi)_mm256_shldv_epi16(__A, __B, __C), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_shldv_epi16(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpshldvw128((__v8hi)__A, (__v8hi)__B, - (__v8hi)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_shldv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectw_128(__U, - (__v8hi)_mm_shldv_epi16(__A, __B, __C), - (__v8hi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_shldv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectw_128(__U, - (__v8hi)_mm_shldv_epi16(__A, __B, __C), - (__v8hi)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_shrdv_epi64(__m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_vpshrdvq256((__v4di)__A, (__v4di)__B, - (__v4di)__C); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_shrdv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_shrdv_epi64(__A, __B, __C), - (__v4di)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_shrdv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectq_256(__U, - (__v4di)_mm256_shrdv_epi64(__A, __B, __C), - (__v4di)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_shrdv_epi64(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpshrdvq128((__v2di)__A, (__v2di)__B, - (__v2di)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_shrdv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_shrdv_epi64(__A, __B, __C), - (__v2di)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_shrdv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectq_128(__U, - (__v2di)_mm_shrdv_epi64(__A, __B, __C), - (__v2di)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_shrdv_epi32(__m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_vpshrdvd256((__v8si)__A, (__v8si)__B, - (__v8si)__C); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_shrdv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_shrdv_epi32(__A, __B, __C), - (__v8si)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_shrdv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_shrdv_epi32(__A, __B, __C), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_shrdv_epi32(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpshrdvd128((__v4si)__A, (__v4si)__B, - (__v4si)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_shrdv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_shrdv_epi32(__A, __B, __C), - (__v4si)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_shrdv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_shrdv_epi32(__A, __B, __C), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_shrdv_epi16(__m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_vpshrdvw256((__v16hi)__A, (__v16hi)__B, - (__v16hi)__C); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_shrdv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectw_256(__U, - (__v16hi)_mm256_shrdv_epi16(__A, __B, __C), - (__v16hi)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_shrdv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)__builtin_ia32_selectw_256(__U, - (__v16hi)_mm256_shrdv_epi16(__A, __B, __C), - (__v16hi)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_shrdv_epi16(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpshrdvw128((__v8hi)__A, (__v8hi)__B, - (__v8hi)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_shrdv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectw_128(__U, - (__v8hi)_mm_shrdv_epi16(__A, __B, __C), - (__v8hi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_shrdv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_selectw_128(__U, - (__v8hi)_mm_shrdv_epi16(__A, __B, __C), - (__v8hi)_mm_setzero_si128()); -} - - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif diff --git a/bin/app/data/cxx/include/avx512vlvnniintrin.h b/bin/app/data/cxx/include/avx512vlvnniintrin.h deleted file mode 100644 index b7c8fa08..00000000 --- a/bin/app/data/cxx/include/avx512vlvnniintrin.h +++ /dev/null @@ -1,209 +0,0 @@ -/*===------------- avx512vlvnniintrin.h - VNNI intrinsics ------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512VLVNNIINTRIN_H -#define __AVX512VLVNNIINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) - - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_dpbusd_epi32(__m256i __S, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_vpdpbusd256((__v8si)__S, (__v8si)__A, - (__v8si)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_dpbusd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_dpbusd_epi32(__S, __A, __B), - (__v8si)__S); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_dpbusd_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_dpbusd_epi32(__S, __A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_dpbusds_epi32(__m256i __S, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_vpdpbusds256((__v8si)__S, (__v8si)__A, - (__v8si)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_dpbusds_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_dpbusds_epi32(__S, __A, __B), - (__v8si)__S); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_dpbusds_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_dpbusds_epi32(__S, __A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_dpwssd_epi32(__m256i __S, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_vpdpwssd256((__v8si)__S, (__v8si)__A, - (__v8si)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_dpwssd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_dpwssd_epi32(__S, __A, __B), - (__v8si)__S); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_dpwssd_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_dpwssd_epi32(__S, __A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_dpwssds_epi32(__m256i __S, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_vpdpwssds256((__v8si)__S, (__v8si)__A, - (__v8si)__B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_dpwssds_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_dpwssds_epi32(__S, __A, __B), - (__v8si)__S); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_dpwssds_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) -{ - return (__m256i)__builtin_ia32_selectd_256(__U, - (__v8si)_mm256_dpwssds_epi32(__S, __A, __B), - (__v8si)_mm256_setzero_si256()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_dpbusd_epi32(__m128i __S, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpdpbusd128((__v4si)__S, (__v4si)__A, - (__v4si)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_dpbusd_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_dpbusd_epi32(__S, __A, __B), - (__v4si)__S); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_dpbusd_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_dpbusd_epi32(__S, __A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_dpbusds_epi32(__m128i __S, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpdpbusds128((__v4si)__S, (__v4si)__A, - (__v4si)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_dpbusds_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_dpbusds_epi32(__S, __A, __B), - (__v4si)__S); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_dpbusds_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_dpbusds_epi32(__S, __A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_dpwssd_epi32(__m128i __S, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpdpwssd128((__v4si)__S, (__v4si)__A, - (__v4si)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_dpwssd_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_dpwssd_epi32(__S, __A, __B), - (__v4si)__S); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_dpwssd_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_dpwssd_epi32(__S, __A, __B), - (__v4si)_mm_setzero_si128()); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_dpwssds_epi32(__m128i __S, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpdpwssds128((__v4si)__S, (__v4si)__A, - (__v4si)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_dpwssds_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_dpwssds_epi32(__S, __A, __B), - (__v4si)__S); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_dpwssds_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_selectd_128(__U, - (__v4si)_mm_dpwssds_epi32(__S, __A, __B), - (__v4si)_mm_setzero_si128()); -} - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif diff --git a/bin/app/data/cxx/include/avx512vlvp2intersectintrin.h b/bin/app/data/cxx/include/avx512vlvp2intersectintrin.h deleted file mode 100644 index 3e0815e5..00000000 --- a/bin/app/data/cxx/include/avx512vlvp2intersectintrin.h +++ /dev/null @@ -1,121 +0,0 @@ -/*===------ avx512vlvp2intersectintrin.h - VL VP2INTERSECT intrinsics ------=== - * - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef _AVX512VLVP2INTERSECT_H -#define _AVX512VLVP2INTERSECT_H - -#define __DEFAULT_FN_ATTRS128 \ - __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vp2intersect"), \ - __min_vector_width__(128))) - -#define __DEFAULT_FN_ATTRS256 \ - __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vp2intersect"), \ - __min_vector_width__(256))) -/// Store, in an even/odd pair of mask registers, the indicators of the -/// locations of value matches between dwords in operands __a and __b. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VP2INTERSECTD instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x i32]. -/// \param __b -/// A 256-bit vector of [8 x i32] -/// \param __m0 -/// A pointer point to 8-bit mask -/// \param __m1 -/// A pointer point to 8-bit mask -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_2intersect_epi32(__m256i __a, __m256i __b, __mmask8 *__m0, __mmask8 *__m1) { - __builtin_ia32_vp2intersect_d_256((__v8si)__a, (__v8si)__b, __m0, __m1); -} - -/// Store, in an even/odd pair of mask registers, the indicators of the -/// locations of value matches between quadwords in operands __a and __b. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VP2INTERSECTQ instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x i64]. -/// \param __b -/// A 256-bit vector of [4 x i64] -/// \param __m0 -/// A pointer point to 8-bit mask -/// \param __m1 -/// A pointer point to 8-bit mask -static __inline__ void __DEFAULT_FN_ATTRS256 -_mm256_2intersect_epi64(__m256i __a, __m256i __b, __mmask8 *__m0, __mmask8 *__m1) { - __builtin_ia32_vp2intersect_q_256((__v4di)__a, (__v4di)__b, __m0, __m1); -} - -/// Store, in an even/odd pair of mask registers, the indicators of the -/// locations of value matches between dwords in operands __a and __b. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VP2INTERSECTD instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x i32]. -/// \param __b -/// A 128-bit vector of [4 x i32] -/// \param __m0 -/// A pointer point to 8-bit mask -/// \param __m1 -/// A pointer point to 8-bit mask -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_2intersect_epi32(__m128i __a, __m128i __b, __mmask8 *__m0, __mmask8 *__m1) { - __builtin_ia32_vp2intersect_d_128((__v4si)__a, (__v4si)__b, __m0, __m1); -} - -/// Store, in an even/odd pair of mask registers, the indicators of the -/// locations of value matches between quadwords in operands __a and __b. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VP2INTERSECTQ instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x i64]. -/// \param __b -/// A 128-bit vector of [2 x i64] -/// \param __m0 -/// A pointer point to 8-bit mask -/// \param __m1 -/// A pointer point to 8-bit mask -static __inline__ void __DEFAULT_FN_ATTRS128 -_mm_2intersect_epi64(__m128i __a, __m128i __b, __mmask8 *__m0, __mmask8 *__m1) { - __builtin_ia32_vp2intersect_q_128((__v2di)__a, (__v2di)__b, __m0, __m1); -} - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif diff --git a/bin/app/data/cxx/include/avx512vnniintrin.h b/bin/app/data/cxx/include/avx512vnniintrin.h deleted file mode 100644 index 9935a119..00000000 --- a/bin/app/data/cxx/include/avx512vnniintrin.h +++ /dev/null @@ -1,115 +0,0 @@ -/*===------------- avx512vnniintrin.h - VNNI intrinsics ------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVX512VNNIINTRIN_H -#define __AVX512VNNIINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) - - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_dpbusd_epi32(__m512i __S, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_vpdpbusd512((__v16si)__S, (__v16si)__A, - (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_dpbusd_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_dpbusd_epi32(__S, __A, __B), - (__v16si)__S); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_dpbusd_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_dpbusd_epi32(__S, __A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_dpbusds_epi32(__m512i __S, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_vpdpbusds512((__v16si)__S, (__v16si)__A, - (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_dpbusds_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_dpbusds_epi32(__S, __A, __B), - (__v16si)__S); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_dpbusds_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_dpbusds_epi32(__S, __A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_dpwssd_epi32(__m512i __S, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_vpdpwssd512((__v16si)__S, (__v16si)__A, - (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_dpwssd_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_dpwssd_epi32(__S, __A, __B), - (__v16si)__S); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_dpwssd_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_dpwssd_epi32(__S, __A, __B), - (__v16si)_mm512_setzero_si512()); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_dpwssds_epi32(__m512i __S, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_vpdpwssds512((__v16si)__S, (__v16si)__A, - (__v16si)__B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_dpwssds_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_dpwssds_epi32(__S, __A, __B), - (__v16si)__S); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_dpwssds_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) -{ - return (__m512i)__builtin_ia32_selectd_512(__U, - (__v16si)_mm512_dpwssds_epi32(__S, __A, __B), - (__v16si)_mm512_setzero_si512()); -} - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/avx512vp2intersectintrin.h b/bin/app/data/cxx/include/avx512vp2intersectintrin.h deleted file mode 100644 index 5d3cb48c..00000000 --- a/bin/app/data/cxx/include/avx512vp2intersectintrin.h +++ /dev/null @@ -1,77 +0,0 @@ -/*===------- avx512vpintersectintrin.h - VP2INTERSECT intrinsics ------------=== - * - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef _AVX512VP2INTERSECT_H -#define _AVX512VP2INTERSECT_H - -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("avx512vp2intersect"), \ - __min_vector_width__(512))) - -/// Store, in an even/odd pair of mask registers, the indicators of the -/// locations of value matches between dwords in operands __a and __b. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VP2INTERSECTD instruction. -/// -/// \param __a -/// A 512-bit vector of [16 x i32]. -/// \param __b -/// A 512-bit vector of [16 x i32] -/// \param __m0 -/// A pointer point to 16-bit mask -/// \param __m1 -/// A pointer point to 16-bit mask -static __inline__ void __DEFAULT_FN_ATTRS -_mm512_2intersect_epi32(__m512i __a, __m512i __b, __mmask16 *__m0, __mmask16 *__m1) { - __builtin_ia32_vp2intersect_d_512((__v16si)__a, (__v16si)__b, __m0, __m1); -} - -/// Store, in an even/odd pair of mask registers, the indicators of the -/// locations of value matches between quadwords in operands __a and __b. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VP2INTERSECTQ instruction. -/// -/// \param __a -/// A 512-bit vector of [8 x i64]. -/// \param __b -/// A 512-bit vector of [8 x i64] -/// \param __m0 -/// A pointer point to 8-bit mask -/// \param __m1 -/// A pointer point to 8-bit mask -static __inline__ void __DEFAULT_FN_ATTRS -_mm512_2intersect_epi64(__m512i __a, __m512i __b, __mmask8 *__m0, __mmask8 *__m1) { - __builtin_ia32_vp2intersect_q_512((__v8di)__a, (__v8di)__b, __m0, __m1); -} - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/avx512vpopcntdqintrin.h b/bin/app/data/cxx/include/avx512vpopcntdqintrin.h deleted file mode 100644 index bb435e62..00000000 --- a/bin/app/data/cxx/include/avx512vpopcntdqintrin.h +++ /dev/null @@ -1,54 +0,0 @@ -/*===----- avx512vpopcntdqintrin.h - AVX512VPOPCNTDQ intrinsics-------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error \ - "Never use directly; include instead." -#endif - -#ifndef __AVX512VPOPCNTDQINTRIN_H -#define __AVX512VPOPCNTDQINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq"), __min_vector_width__(512))) - -static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_popcnt_epi64(__m512i __A) { - return (__m512i)__builtin_ia32_vpopcntq_512((__v8di)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_popcnt_epi64(__m512i __W, __mmask8 __U, __m512i __A) { - return (__m512i)__builtin_ia32_selectq_512( - (__mmask8)__U, (__v8di)_mm512_popcnt_epi64(__A), (__v8di)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_popcnt_epi64(__mmask8 __U, __m512i __A) { - return _mm512_mask_popcnt_epi64((__m512i)_mm512_setzero_si512(), __U, __A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_popcnt_epi32(__m512i __A) { - return (__m512i)__builtin_ia32_vpopcntd_512((__v16si)__A); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_popcnt_epi32(__m512i __W, __mmask16 __U, __m512i __A) { - return (__m512i)__builtin_ia32_selectd_512( - (__mmask16)__U, (__v16si)_mm512_popcnt_epi32(__A), (__v16si)__W); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_popcnt_epi32(__mmask16 __U, __m512i __A) { - return _mm512_mask_popcnt_epi32((__m512i)_mm512_setzero_si512(), __U, __A); -} - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/avx512vpopcntdqvlintrin.h b/bin/app/data/cxx/include/avx512vpopcntdqvlintrin.h deleted file mode 100644 index a3cb9b6b..00000000 --- a/bin/app/data/cxx/include/avx512vpopcntdqvlintrin.h +++ /dev/null @@ -1,91 +0,0 @@ -/*===---- avx512vpopcntdqintrin.h - AVX512VPOPCNTDQ intrinsics -------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error \ - "Never use directly; include instead." -#endif - -#ifndef __AVX512VPOPCNTDQVLINTRIN_H -#define __AVX512VPOPCNTDQVLINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 \ - __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 \ - __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(256))) - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_popcnt_epi64(__m128i __A) { - return (__m128i)__builtin_ia32_vpopcntq_128((__v2di)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_popcnt_epi64(__m128i __W, __mmask8 __U, __m128i __A) { - return (__m128i)__builtin_ia32_selectq_128( - (__mmask8)__U, (__v2di)_mm_popcnt_epi64(__A), (__v2di)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_popcnt_epi64(__mmask8 __U, __m128i __A) { - return _mm_mask_popcnt_epi64((__m128i)_mm_setzero_si128(), __U, __A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_popcnt_epi32(__m128i __A) { - return (__m128i)__builtin_ia32_vpopcntd_128((__v4si)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_mask_popcnt_epi32(__m128i __W, __mmask8 __U, __m128i __A) { - return (__m128i)__builtin_ia32_selectd_128( - (__mmask8)__U, (__v4si)_mm_popcnt_epi32(__A), (__v4si)__W); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS128 -_mm_maskz_popcnt_epi32(__mmask8 __U, __m128i __A) { - return _mm_mask_popcnt_epi32((__m128i)_mm_setzero_si128(), __U, __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_popcnt_epi64(__m256i __A) { - return (__m256i)__builtin_ia32_vpopcntq_256((__v4di)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_popcnt_epi64(__m256i __W, __mmask8 __U, __m256i __A) { - return (__m256i)__builtin_ia32_selectq_256( - (__mmask8)__U, (__v4di)_mm256_popcnt_epi64(__A), (__v4di)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_popcnt_epi64(__mmask8 __U, __m256i __A) { - return _mm256_mask_popcnt_epi64((__m256i)_mm256_setzero_si256(), __U, __A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_popcnt_epi32(__m256i __A) { - return (__m256i)__builtin_ia32_vpopcntd_256((__v8si)__A); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_mask_popcnt_epi32(__m256i __W, __mmask8 __U, __m256i __A) { - return (__m256i)__builtin_ia32_selectd_256( - (__mmask8)__U, (__v8si)_mm256_popcnt_epi32(__A), (__v8si)__W); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_maskz_popcnt_epi32(__mmask8 __U, __m256i __A) { - return _mm256_mask_popcnt_epi32((__m256i)_mm256_setzero_si256(), __U, __A); -} - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif diff --git a/bin/app/data/cxx/include/avxintrin.h b/bin/app/data/cxx/include/avxintrin.h deleted file mode 100644 index a01240b9..00000000 --- a/bin/app/data/cxx/include/avxintrin.h +++ /dev/null @@ -1,5053 +0,0 @@ -/*===---- avxintrin.h - AVX intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __AVXINTRIN_H -#define __AVXINTRIN_H - -typedef double __v4df __attribute__ ((__vector_size__ (32))); -typedef float __v8sf __attribute__ ((__vector_size__ (32))); -typedef long long __v4di __attribute__ ((__vector_size__ (32))); -typedef int __v8si __attribute__ ((__vector_size__ (32))); -typedef short __v16hi __attribute__ ((__vector_size__ (32))); -typedef char __v32qi __attribute__ ((__vector_size__ (32))); - -/* Unsigned types */ -typedef unsigned long long __v4du __attribute__ ((__vector_size__ (32))); -typedef unsigned int __v8su __attribute__ ((__vector_size__ (32))); -typedef unsigned short __v16hu __attribute__ ((__vector_size__ (32))); -typedef unsigned char __v32qu __attribute__ ((__vector_size__ (32))); - -/* We need an explicitly signed variant for char. Note that this shouldn't - * appear in the interface though. */ -typedef signed char __v32qs __attribute__((__vector_size__(32))); - -typedef float __m256 __attribute__ ((__vector_size__ (32), __aligned__(32))); -typedef double __m256d __attribute__((__vector_size__(32), __aligned__(32))); -typedef long long __m256i __attribute__((__vector_size__(32), __aligned__(32))); - -typedef float __m256_u __attribute__ ((__vector_size__ (32), __aligned__(1))); -typedef double __m256d_u __attribute__((__vector_size__(32), __aligned__(1))); -typedef long long __m256i_u __attribute__((__vector_size__(32), __aligned__(1))); - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) - -/* Arithmetic */ -/// Adds two 256-bit vectors of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VADDPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// \param __b -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// \returns A 256-bit vector of [4 x double] containing the sums of both -/// operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_add_pd(__m256d __a, __m256d __b) -{ - return (__m256d)((__v4df)__a+(__v4df)__b); -} - -/// Adds two 256-bit vectors of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VADDPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// \param __b -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// \returns A 256-bit vector of [8 x float] containing the sums of both -/// operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_add_ps(__m256 __a, __m256 __b) -{ - return (__m256)((__v8sf)__a+(__v8sf)__b); -} - -/// Subtracts two 256-bit vectors of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSUBPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing the minuend. -/// \param __b -/// A 256-bit vector of [4 x double] containing the subtrahend. -/// \returns A 256-bit vector of [4 x double] containing the differences between -/// both operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_sub_pd(__m256d __a, __m256d __b) -{ - return (__m256d)((__v4df)__a-(__v4df)__b); -} - -/// Subtracts two 256-bit vectors of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSUBPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing the minuend. -/// \param __b -/// A 256-bit vector of [8 x float] containing the subtrahend. -/// \returns A 256-bit vector of [8 x float] containing the differences between -/// both operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_sub_ps(__m256 __a, __m256 __b) -{ - return (__m256)((__v8sf)__a-(__v8sf)__b); -} - -/// Adds the even-indexed values and subtracts the odd-indexed values of -/// two 256-bit vectors of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VADDSUBPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing the left source operand. -/// \param __b -/// A 256-bit vector of [4 x double] containing the right source operand. -/// \returns A 256-bit vector of [4 x double] containing the alternating sums -/// and differences between both operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_addsub_pd(__m256d __a, __m256d __b) -{ - return (__m256d)__builtin_ia32_addsubpd256((__v4df)__a, (__v4df)__b); -} - -/// Adds the even-indexed values and subtracts the odd-indexed values of -/// two 256-bit vectors of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VADDSUBPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing the left source operand. -/// \param __b -/// A 256-bit vector of [8 x float] containing the right source operand. -/// \returns A 256-bit vector of [8 x float] containing the alternating sums and -/// differences between both operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_addsub_ps(__m256 __a, __m256 __b) -{ - return (__m256)__builtin_ia32_addsubps256((__v8sf)__a, (__v8sf)__b); -} - -/// Divides two 256-bit vectors of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDIVPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing the dividend. -/// \param __b -/// A 256-bit vector of [4 x double] containing the divisor. -/// \returns A 256-bit vector of [4 x double] containing the quotients of both -/// operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_div_pd(__m256d __a, __m256d __b) -{ - return (__m256d)((__v4df)__a/(__v4df)__b); -} - -/// Divides two 256-bit vectors of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDIVPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing the dividend. -/// \param __b -/// A 256-bit vector of [8 x float] containing the divisor. -/// \returns A 256-bit vector of [8 x float] containing the quotients of both -/// operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_div_ps(__m256 __a, __m256 __b) -{ - return (__m256)((__v8sf)__a/(__v8sf)__b); -} - -/// Compares two 256-bit vectors of [4 x double] and returns the greater -/// of each pair of values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMAXPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing one of the operands. -/// \param __b -/// A 256-bit vector of [4 x double] containing one of the operands. -/// \returns A 256-bit vector of [4 x double] containing the maximum values -/// between both operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_max_pd(__m256d __a, __m256d __b) -{ - return (__m256d)__builtin_ia32_maxpd256((__v4df)__a, (__v4df)__b); -} - -/// Compares two 256-bit vectors of [8 x float] and returns the greater -/// of each pair of values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMAXPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing one of the operands. -/// \param __b -/// A 256-bit vector of [8 x float] containing one of the operands. -/// \returns A 256-bit vector of [8 x float] containing the maximum values -/// between both operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_max_ps(__m256 __a, __m256 __b) -{ - return (__m256)__builtin_ia32_maxps256((__v8sf)__a, (__v8sf)__b); -} - -/// Compares two 256-bit vectors of [4 x double] and returns the lesser -/// of each pair of values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMINPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing one of the operands. -/// \param __b -/// A 256-bit vector of [4 x double] containing one of the operands. -/// \returns A 256-bit vector of [4 x double] containing the minimum values -/// between both operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_min_pd(__m256d __a, __m256d __b) -{ - return (__m256d)__builtin_ia32_minpd256((__v4df)__a, (__v4df)__b); -} - -/// Compares two 256-bit vectors of [8 x float] and returns the lesser -/// of each pair of values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMINPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing one of the operands. -/// \param __b -/// A 256-bit vector of [8 x float] containing one of the operands. -/// \returns A 256-bit vector of [8 x float] containing the minimum values -/// between both operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_min_ps(__m256 __a, __m256 __b) -{ - return (__m256)__builtin_ia32_minps256((__v8sf)__a, (__v8sf)__b); -} - -/// Multiplies two 256-bit vectors of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMULPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing one of the operands. -/// \param __b -/// A 256-bit vector of [4 x double] containing one of the operands. -/// \returns A 256-bit vector of [4 x double] containing the products of both -/// operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_mul_pd(__m256d __a, __m256d __b) -{ - return (__m256d)((__v4df)__a * (__v4df)__b); -} - -/// Multiplies two 256-bit vectors of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMULPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing one of the operands. -/// \param __b -/// A 256-bit vector of [8 x float] containing one of the operands. -/// \returns A 256-bit vector of [8 x float] containing the products of both -/// operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_mul_ps(__m256 __a, __m256 __b) -{ - return (__m256)((__v8sf)__a * (__v8sf)__b); -} - -/// Calculates the square roots of the values in a 256-bit vector of -/// [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSQRTPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \returns A 256-bit vector of [4 x double] containing the square roots of the -/// values in the operand. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_sqrt_pd(__m256d __a) -{ - return (__m256d)__builtin_ia32_sqrtpd256((__v4df)__a); -} - -/// Calculates the square roots of the values in a 256-bit vector of -/// [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSQRTPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \returns A 256-bit vector of [8 x float] containing the square roots of the -/// values in the operand. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_sqrt_ps(__m256 __a) -{ - return (__m256)__builtin_ia32_sqrtps256((__v8sf)__a); -} - -/// Calculates the reciprocal square roots of the values in a 256-bit -/// vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VRSQRTPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \returns A 256-bit vector of [8 x float] containing the reciprocal square -/// roots of the values in the operand. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_rsqrt_ps(__m256 __a) -{ - return (__m256)__builtin_ia32_rsqrtps256((__v8sf)__a); -} - -/// Calculates the reciprocals of the values in a 256-bit vector of -/// [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VRCPPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \returns A 256-bit vector of [8 x float] containing the reciprocals of the -/// values in the operand. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_rcp_ps(__m256 __a) -{ - return (__m256)__builtin_ia32_rcpps256((__v8sf)__a); -} - -/// Rounds the values in a 256-bit vector of [4 x double] as specified -/// by the byte operand. The source values are rounded to integer values and -/// returned as 64-bit double-precision floating-point values. -/// -/// \headerfile -/// -/// \code -/// __m256d _mm256_round_pd(__m256d V, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPD instruction. -/// -/// \param V -/// A 256-bit vector of [4 x double]. -/// \param M -/// An integer value that specifies the rounding operation. \n -/// Bits [7:4] are reserved. \n -/// Bit [3] is a precision exception value: \n -/// 0: A normal PE exception is used. \n -/// 1: The PE field is not updated. \n -/// Bit [2] is the rounding control source: \n -/// 0: Use bits [1:0] of \a M. \n -/// 1: Use the current MXCSR setting. \n -/// Bits [1:0] contain the rounding control definition: \n -/// 00: Nearest. \n -/// 01: Downward (toward negative infinity). \n -/// 10: Upward (toward positive infinity). \n -/// 11: Truncated. -/// \returns A 256-bit vector of [4 x double] containing the rounded values. -#define _mm256_round_pd(V, M) \ - (__m256d)__builtin_ia32_roundpd256((__v4df)(__m256d)(V), (M)) - -/// Rounds the values stored in a 256-bit vector of [8 x float] as -/// specified by the byte operand. The source values are rounded to integer -/// values and returned as floating-point values. -/// -/// \headerfile -/// -/// \code -/// __m256 _mm256_round_ps(__m256 V, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPS instruction. -/// -/// \param V -/// A 256-bit vector of [8 x float]. -/// \param M -/// An integer value that specifies the rounding operation. \n -/// Bits [7:4] are reserved. \n -/// Bit [3] is a precision exception value: \n -/// 0: A normal PE exception is used. \n -/// 1: The PE field is not updated. \n -/// Bit [2] is the rounding control source: \n -/// 0: Use bits [1:0] of \a M. \n -/// 1: Use the current MXCSR setting. \n -/// Bits [1:0] contain the rounding control definition: \n -/// 00: Nearest. \n -/// 01: Downward (toward negative infinity). \n -/// 10: Upward (toward positive infinity). \n -/// 11: Truncated. -/// \returns A 256-bit vector of [8 x float] containing the rounded values. -#define _mm256_round_ps(V, M) \ - (__m256)__builtin_ia32_roundps256((__v8sf)(__m256)(V), (M)) - -/// Rounds up the values stored in a 256-bit vector of [4 x double]. The -/// source values are rounded up to integer values and returned as 64-bit -/// double-precision floating-point values. -/// -/// \headerfile -/// -/// \code -/// __m256d _mm256_ceil_pd(__m256d V); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPD instruction. -/// -/// \param V -/// A 256-bit vector of [4 x double]. -/// \returns A 256-bit vector of [4 x double] containing the rounded up values. -#define _mm256_ceil_pd(V) _mm256_round_pd((V), _MM_FROUND_CEIL) - -/// Rounds down the values stored in a 256-bit vector of [4 x double]. -/// The source values are rounded down to integer values and returned as -/// 64-bit double-precision floating-point values. -/// -/// \headerfile -/// -/// \code -/// __m256d _mm256_floor_pd(__m256d V); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPD instruction. -/// -/// \param V -/// A 256-bit vector of [4 x double]. -/// \returns A 256-bit vector of [4 x double] containing the rounded down -/// values. -#define _mm256_floor_pd(V) _mm256_round_pd((V), _MM_FROUND_FLOOR) - -/// Rounds up the values stored in a 256-bit vector of [8 x float]. The -/// source values are rounded up to integer values and returned as -/// floating-point values. -/// -/// \headerfile -/// -/// \code -/// __m256 _mm256_ceil_ps(__m256 V); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPS instruction. -/// -/// \param V -/// A 256-bit vector of [8 x float]. -/// \returns A 256-bit vector of [8 x float] containing the rounded up values. -#define _mm256_ceil_ps(V) _mm256_round_ps((V), _MM_FROUND_CEIL) - -/// Rounds down the values stored in a 256-bit vector of [8 x float]. The -/// source values are rounded down to integer values and returned as -/// floating-point values. -/// -/// \headerfile -/// -/// \code -/// __m256 _mm256_floor_ps(__m256 V); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPS instruction. -/// -/// \param V -/// A 256-bit vector of [8 x float]. -/// \returns A 256-bit vector of [8 x float] containing the rounded down values. -#define _mm256_floor_ps(V) _mm256_round_ps((V), _MM_FROUND_FLOOR) - -/* Logical */ -/// Performs a bitwise AND of two 256-bit vectors of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VANDPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// \param __b -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// \returns A 256-bit vector of [4 x double] containing the bitwise AND of the -/// values between both operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_and_pd(__m256d __a, __m256d __b) -{ - return (__m256d)((__v4du)__a & (__v4du)__b); -} - -/// Performs a bitwise AND of two 256-bit vectors of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VANDPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// \param __b -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// \returns A 256-bit vector of [8 x float] containing the bitwise AND of the -/// values between both operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_and_ps(__m256 __a, __m256 __b) -{ - return (__m256)((__v8su)__a & (__v8su)__b); -} - -/// Performs a bitwise AND of two 256-bit vectors of [4 x double], using -/// the one's complement of the values contained in the first source operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VANDNPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing the left source operand. The -/// one's complement of this value is used in the bitwise AND. -/// \param __b -/// A 256-bit vector of [4 x double] containing the right source operand. -/// \returns A 256-bit vector of [4 x double] containing the bitwise AND of the -/// values of the second operand and the one's complement of the first -/// operand. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_andnot_pd(__m256d __a, __m256d __b) -{ - return (__m256d)(~(__v4du)__a & (__v4du)__b); -} - -/// Performs a bitwise AND of two 256-bit vectors of [8 x float], using -/// the one's complement of the values contained in the first source operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VANDNPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing the left source operand. The -/// one's complement of this value is used in the bitwise AND. -/// \param __b -/// A 256-bit vector of [8 x float] containing the right source operand. -/// \returns A 256-bit vector of [8 x float] containing the bitwise AND of the -/// values of the second operand and the one's complement of the first -/// operand. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_andnot_ps(__m256 __a, __m256 __b) -{ - return (__m256)(~(__v8su)__a & (__v8su)__b); -} - -/// Performs a bitwise OR of two 256-bit vectors of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VORPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// \param __b -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// \returns A 256-bit vector of [4 x double] containing the bitwise OR of the -/// values between both operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_or_pd(__m256d __a, __m256d __b) -{ - return (__m256d)((__v4du)__a | (__v4du)__b); -} - -/// Performs a bitwise OR of two 256-bit vectors of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VORPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// \param __b -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// \returns A 256-bit vector of [8 x float] containing the bitwise OR of the -/// values between both operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_or_ps(__m256 __a, __m256 __b) -{ - return (__m256)((__v8su)__a | (__v8su)__b); -} - -/// Performs a bitwise XOR of two 256-bit vectors of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VXORPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// \param __b -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// \returns A 256-bit vector of [4 x double] containing the bitwise XOR of the -/// values between both operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_xor_pd(__m256d __a, __m256d __b) -{ - return (__m256d)((__v4du)__a ^ (__v4du)__b); -} - -/// Performs a bitwise XOR of two 256-bit vectors of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VXORPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// \param __b -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// \returns A 256-bit vector of [8 x float] containing the bitwise XOR of the -/// values between both operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_xor_ps(__m256 __a, __m256 __b) -{ - return (__m256)((__v8su)__a ^ (__v8su)__b); -} - -/* Horizontal arithmetic */ -/// Horizontally adds the adjacent pairs of values contained in two -/// 256-bit vectors of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VHADDPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// The horizontal sums of the values are returned in the even-indexed -/// elements of a vector of [4 x double]. -/// \param __b -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// The horizontal sums of the values are returned in the odd-indexed -/// elements of a vector of [4 x double]. -/// \returns A 256-bit vector of [4 x double] containing the horizontal sums of -/// both operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_hadd_pd(__m256d __a, __m256d __b) -{ - return (__m256d)__builtin_ia32_haddpd256((__v4df)__a, (__v4df)__b); -} - -/// Horizontally adds the adjacent pairs of values contained in two -/// 256-bit vectors of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VHADDPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// The horizontal sums of the values are returned in the elements with -/// index 0, 1, 4, 5 of a vector of [8 x float]. -/// \param __b -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// The horizontal sums of the values are returned in the elements with -/// index 2, 3, 6, 7 of a vector of [8 x float]. -/// \returns A 256-bit vector of [8 x float] containing the horizontal sums of -/// both operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_hadd_ps(__m256 __a, __m256 __b) -{ - return (__m256)__builtin_ia32_haddps256((__v8sf)__a, (__v8sf)__b); -} - -/// Horizontally subtracts the adjacent pairs of values contained in two -/// 256-bit vectors of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VHSUBPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// The horizontal differences between the values are returned in the -/// even-indexed elements of a vector of [4 x double]. -/// \param __b -/// A 256-bit vector of [4 x double] containing one of the source operands. -/// The horizontal differences between the values are returned in the -/// odd-indexed elements of a vector of [4 x double]. -/// \returns A 256-bit vector of [4 x double] containing the horizontal -/// differences of both operands. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_hsub_pd(__m256d __a, __m256d __b) -{ - return (__m256d)__builtin_ia32_hsubpd256((__v4df)__a, (__v4df)__b); -} - -/// Horizontally subtracts the adjacent pairs of values contained in two -/// 256-bit vectors of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VHSUBPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// The horizontal differences between the values are returned in the -/// elements with index 0, 1, 4, 5 of a vector of [8 x float]. -/// \param __b -/// A 256-bit vector of [8 x float] containing one of the source operands. -/// The horizontal differences between the values are returned in the -/// elements with index 2, 3, 6, 7 of a vector of [8 x float]. -/// \returns A 256-bit vector of [8 x float] containing the horizontal -/// differences of both operands. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_hsub_ps(__m256 __a, __m256 __b) -{ - return (__m256)__builtin_ia32_hsubps256((__v8sf)__a, (__v8sf)__b); -} - -/* Vector permutations */ -/// Copies the values in a 128-bit vector of [2 x double] as specified -/// by the 128-bit integer vector operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPERMILPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __c -/// A 128-bit integer vector operand specifying how the values are to be -/// copied. \n -/// Bit [1]: \n -/// 0: Bits [63:0] of the source are copied to bits [63:0] of the returned -/// vector. \n -/// 1: Bits [127:64] of the source are copied to bits [63:0] of the -/// returned vector. \n -/// Bit [65]: \n -/// 0: Bits [63:0] of the source are copied to bits [127:64] of the -/// returned vector. \n -/// 1: Bits [127:64] of the source are copied to bits [127:64] of the -/// returned vector. -/// \returns A 128-bit vector of [2 x double] containing the copied values. -static __inline __m128d __DEFAULT_FN_ATTRS128 -_mm_permutevar_pd(__m128d __a, __m128i __c) -{ - return (__m128d)__builtin_ia32_vpermilvarpd((__v2df)__a, (__v2di)__c); -} - -/// Copies the values in a 256-bit vector of [4 x double] as specified -/// by the 256-bit integer vector operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPERMILPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \param __c -/// A 256-bit integer vector operand specifying how the values are to be -/// copied. \n -/// Bit [1]: \n -/// 0: Bits [63:0] of the source are copied to bits [63:0] of the returned -/// vector. \n -/// 1: Bits [127:64] of the source are copied to bits [63:0] of the -/// returned vector. \n -/// Bit [65]: \n -/// 0: Bits [63:0] of the source are copied to bits [127:64] of the -/// returned vector. \n -/// 1: Bits [127:64] of the source are copied to bits [127:64] of the -/// returned vector. \n -/// Bit [129]: \n -/// 0: Bits [191:128] of the source are copied to bits [191:128] of the -/// returned vector. \n -/// 1: Bits [255:192] of the source are copied to bits [191:128] of the -/// returned vector. \n -/// Bit [193]: \n -/// 0: Bits [191:128] of the source are copied to bits [255:192] of the -/// returned vector. \n -/// 1: Bits [255:192] of the source are copied to bits [255:192] of the -/// returned vector. -/// \returns A 256-bit vector of [4 x double] containing the copied values. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_permutevar_pd(__m256d __a, __m256i __c) -{ - return (__m256d)__builtin_ia32_vpermilvarpd256((__v4df)__a, (__v4di)__c); -} - -/// Copies the values stored in a 128-bit vector of [4 x float] as -/// specified by the 128-bit integer vector operand. -/// \headerfile -/// -/// This intrinsic corresponds to the VPERMILPS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __c -/// A 128-bit integer vector operand specifying how the values are to be -/// copied. \n -/// Bits [1:0]: \n -/// 00: Bits [31:0] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// Bits [33:32]: \n -/// 00: Bits [31:0] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// Bits [65:64]: \n -/// 00: Bits [31:0] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// Bits [97:96]: \n -/// 00: Bits [31:0] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [127:96] of the -/// returned vector. -/// \returns A 128-bit vector of [4 x float] containing the copied values. -static __inline __m128 __DEFAULT_FN_ATTRS128 -_mm_permutevar_ps(__m128 __a, __m128i __c) -{ - return (__m128)__builtin_ia32_vpermilvarps((__v4sf)__a, (__v4si)__c); -} - -/// Copies the values stored in a 256-bit vector of [8 x float] as -/// specified by the 256-bit integer vector operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPERMILPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \param __c -/// A 256-bit integer vector operand specifying how the values are to be -/// copied. \n -/// Bits [1:0]: \n -/// 00: Bits [31:0] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// Bits [33:32]: \n -/// 00: Bits [31:0] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// Bits [65:64]: \n -/// 00: Bits [31:0] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// Bits [97:96]: \n -/// 00: Bits [31:0] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// Bits [129:128]: \n -/// 00: Bits [159:128] of the source are copied to bits [159:128] of the -/// returned vector. \n -/// 01: Bits [191:160] of the source are copied to bits [159:128] of the -/// returned vector. \n -/// 10: Bits [223:192] of the source are copied to bits [159:128] of the -/// returned vector. \n -/// 11: Bits [255:224] of the source are copied to bits [159:128] of the -/// returned vector. \n -/// Bits [161:160]: \n -/// 00: Bits [159:128] of the source are copied to bits [191:160] of the -/// returned vector. \n -/// 01: Bits [191:160] of the source are copied to bits [191:160] of the -/// returned vector. \n -/// 10: Bits [223:192] of the source are copied to bits [191:160] of the -/// returned vector. \n -/// 11: Bits [255:224] of the source are copied to bits [191:160] of the -/// returned vector. \n -/// Bits [193:192]: \n -/// 00: Bits [159:128] of the source are copied to bits [223:192] of the -/// returned vector. \n -/// 01: Bits [191:160] of the source are copied to bits [223:192] of the -/// returned vector. \n -/// 10: Bits [223:192] of the source are copied to bits [223:192] of the -/// returned vector. \n -/// 11: Bits [255:224] of the source are copied to bits [223:192] of the -/// returned vector. \n -/// Bits [225:224]: \n -/// 00: Bits [159:128] of the source are copied to bits [255:224] of the -/// returned vector. \n -/// 01: Bits [191:160] of the source are copied to bits [255:224] of the -/// returned vector. \n -/// 10: Bits [223:192] of the source are copied to bits [255:224] of the -/// returned vector. \n -/// 11: Bits [255:224] of the source are copied to bits [255:224] of the -/// returned vector. -/// \returns A 256-bit vector of [8 x float] containing the copied values. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_permutevar_ps(__m256 __a, __m256i __c) -{ - return (__m256)__builtin_ia32_vpermilvarps256((__v8sf)__a, (__v8si)__c); -} - -/// Copies the values in a 128-bit vector of [2 x double] as specified -/// by the immediate integer operand. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_permute_pd(__m128d A, const int C); -/// \endcode -/// -/// This intrinsic corresponds to the VPERMILPD instruction. -/// -/// \param A -/// A 128-bit vector of [2 x double]. -/// \param C -/// An immediate integer operand specifying how the values are to be -/// copied. \n -/// Bit [0]: \n -/// 0: Bits [63:0] of the source are copied to bits [63:0] of the returned -/// vector. \n -/// 1: Bits [127:64] of the source are copied to bits [63:0] of the -/// returned vector. \n -/// Bit [1]: \n -/// 0: Bits [63:0] of the source are copied to bits [127:64] of the -/// returned vector. \n -/// 1: Bits [127:64] of the source are copied to bits [127:64] of the -/// returned vector. -/// \returns A 128-bit vector of [2 x double] containing the copied values. -#define _mm_permute_pd(A, C) \ - (__m128d)__builtin_ia32_vpermilpd((__v2df)(__m128d)(A), (int)(C)) - -/// Copies the values in a 256-bit vector of [4 x double] as specified by -/// the immediate integer operand. -/// -/// \headerfile -/// -/// \code -/// __m256d _mm256_permute_pd(__m256d A, const int C); -/// \endcode -/// -/// This intrinsic corresponds to the VPERMILPD instruction. -/// -/// \param A -/// A 256-bit vector of [4 x double]. -/// \param C -/// An immediate integer operand specifying how the values are to be -/// copied. \n -/// Bit [0]: \n -/// 0: Bits [63:0] of the source are copied to bits [63:0] of the returned -/// vector. \n -/// 1: Bits [127:64] of the source are copied to bits [63:0] of the -/// returned vector. \n -/// Bit [1]: \n -/// 0: Bits [63:0] of the source are copied to bits [127:64] of the -/// returned vector. \n -/// 1: Bits [127:64] of the source are copied to bits [127:64] of the -/// returned vector. \n -/// Bit [2]: \n -/// 0: Bits [191:128] of the source are copied to bits [191:128] of the -/// returned vector. \n -/// 1: Bits [255:192] of the source are copied to bits [191:128] of the -/// returned vector. \n -/// Bit [3]: \n -/// 0: Bits [191:128] of the source are copied to bits [255:192] of the -/// returned vector. \n -/// 1: Bits [255:192] of the source are copied to bits [255:192] of the -/// returned vector. -/// \returns A 256-bit vector of [4 x double] containing the copied values. -#define _mm256_permute_pd(A, C) \ - (__m256d)__builtin_ia32_vpermilpd256((__v4df)(__m256d)(A), (int)(C)) - -/// Copies the values in a 128-bit vector of [4 x float] as specified by -/// the immediate integer operand. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_permute_ps(__m128 A, const int C); -/// \endcode -/// -/// This intrinsic corresponds to the VPERMILPS instruction. -/// -/// \param A -/// A 128-bit vector of [4 x float]. -/// \param C -/// An immediate integer operand specifying how the values are to be -/// copied. \n -/// Bits [1:0]: \n -/// 00: Bits [31:0] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// Bits [3:2]: \n -/// 00: Bits [31:0] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// Bits [5:4]: \n -/// 00: Bits [31:0] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// Bits [7:6]: \n -/// 00: Bits [31:0] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [127:96] of the -/// returned vector. -/// \returns A 128-bit vector of [4 x float] containing the copied values. -#define _mm_permute_ps(A, C) \ - (__m128)__builtin_ia32_vpermilps((__v4sf)(__m128)(A), (int)(C)) - -/// Copies the values in a 256-bit vector of [8 x float] as specified by -/// the immediate integer operand. -/// -/// \headerfile -/// -/// \code -/// __m256 _mm256_permute_ps(__m256 A, const int C); -/// \endcode -/// -/// This intrinsic corresponds to the VPERMILPS instruction. -/// -/// \param A -/// A 256-bit vector of [8 x float]. -/// \param C -/// An immediate integer operand specifying how the values are to be -/// copied. \n -/// Bits [1:0]: \n -/// 00: Bits [31:0] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [31:0] of the -/// returned vector. \n -/// Bits [3:2]: \n -/// 00: Bits [31:0] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [63:32] of the -/// returned vector. \n -/// Bits [5:4]: \n -/// 00: Bits [31:0] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [95:64] of the -/// returned vector. \n -/// Bits [7:6]: \n -/// 00: Bits [31:0] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 01: Bits [63:32] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 10: Bits [95:64] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// 11: Bits [127:96] of the source are copied to bits [127:96] of the -/// returned vector. \n -/// Bits [1:0]: \n -/// 00: Bits [159:128] of the source are copied to bits [159:128] of the -/// returned vector. \n -/// 01: Bits [191:160] of the source are copied to bits [159:128] of the -/// returned vector. \n -/// 10: Bits [223:192] of the source are copied to bits [159:128] of the -/// returned vector. \n -/// 11: Bits [255:224] of the source are copied to bits [159:128] of the -/// returned vector. \n -/// Bits [3:2]: \n -/// 00: Bits [159:128] of the source are copied to bits [191:160] of the -/// returned vector. \n -/// 01: Bits [191:160] of the source are copied to bits [191:160] of the -/// returned vector. \n -/// 10: Bits [223:192] of the source are copied to bits [191:160] of the -/// returned vector. \n -/// 11: Bits [255:224] of the source are copied to bits [191:160] of the -/// returned vector. \n -/// Bits [5:4]: \n -/// 00: Bits [159:128] of the source are copied to bits [223:192] of the -/// returned vector. \n -/// 01: Bits [191:160] of the source are copied to bits [223:192] of the -/// returned vector. \n -/// 10: Bits [223:192] of the source are copied to bits [223:192] of the -/// returned vector. \n -/// 11: Bits [255:224] of the source are copied to bits [223:192] of the -/// returned vector. \n -/// Bits [7:6]: \n -/// 00: Bits [159:128] of the source are copied to bits [255:224] of the -/// returned vector. \n -/// 01: Bits [191:160] of the source are copied to bits [255:224] of the -/// returned vector. \n -/// 10: Bits [223:192] of the source are copied to bits [255:224] of the -/// returned vector. \n -/// 11: Bits [255:224] of the source are copied to bits [255:224] of the -/// returned vector. -/// \returns A 256-bit vector of [8 x float] containing the copied values. -#define _mm256_permute_ps(A, C) \ - (__m256)__builtin_ia32_vpermilps256((__v8sf)(__m256)(A), (int)(C)) - -/// Permutes 128-bit data values stored in two 256-bit vectors of -/// [4 x double], as specified by the immediate integer operand. -/// -/// \headerfile -/// -/// \code -/// __m256d _mm256_permute2f128_pd(__m256d V1, __m256d V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPERM2F128 instruction. -/// -/// \param V1 -/// A 256-bit vector of [4 x double]. -/// \param V2 -/// A 256-bit vector of [4 x double. -/// \param M -/// An immediate integer operand specifying how the values are to be -/// permuted. \n -/// Bits [1:0]: \n -/// 00: Bits [127:0] of operand \a V1 are copied to bits [127:0] of the -/// destination. \n -/// 01: Bits [255:128] of operand \a V1 are copied to bits [127:0] of the -/// destination. \n -/// 10: Bits [127:0] of operand \a V2 are copied to bits [127:0] of the -/// destination. \n -/// 11: Bits [255:128] of operand \a V2 are copied to bits [127:0] of the -/// destination. \n -/// Bits [5:4]: \n -/// 00: Bits [127:0] of operand \a V1 are copied to bits [255:128] of the -/// destination. \n -/// 01: Bits [255:128] of operand \a V1 are copied to bits [255:128] of the -/// destination. \n -/// 10: Bits [127:0] of operand \a V2 are copied to bits [255:128] of the -/// destination. \n -/// 11: Bits [255:128] of operand \a V2 are copied to bits [255:128] of the -/// destination. -/// \returns A 256-bit vector of [4 x double] containing the copied values. -#define _mm256_permute2f128_pd(V1, V2, M) \ - (__m256d)__builtin_ia32_vperm2f128_pd256((__v4df)(__m256d)(V1), \ - (__v4df)(__m256d)(V2), (int)(M)) - -/// Permutes 128-bit data values stored in two 256-bit vectors of -/// [8 x float], as specified by the immediate integer operand. -/// -/// \headerfile -/// -/// \code -/// __m256 _mm256_permute2f128_ps(__m256 V1, __m256 V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPERM2F128 instruction. -/// -/// \param V1 -/// A 256-bit vector of [8 x float]. -/// \param V2 -/// A 256-bit vector of [8 x float]. -/// \param M -/// An immediate integer operand specifying how the values are to be -/// permuted. \n -/// Bits [1:0]: \n -/// 00: Bits [127:0] of operand \a V1 are copied to bits [127:0] of the -/// destination. \n -/// 01: Bits [255:128] of operand \a V1 are copied to bits [127:0] of the -/// destination. \n -/// 10: Bits [127:0] of operand \a V2 are copied to bits [127:0] of the -/// destination. \n -/// 11: Bits [255:128] of operand \a V2 are copied to bits [127:0] of the -/// destination. \n -/// Bits [5:4]: \n -/// 00: Bits [127:0] of operand \a V1 are copied to bits [255:128] of the -/// destination. \n -/// 01: Bits [255:128] of operand \a V1 are copied to bits [255:128] of the -/// destination. \n -/// 10: Bits [127:0] of operand \a V2 are copied to bits [255:128] of the -/// destination. \n -/// 11: Bits [255:128] of operand \a V2 are copied to bits [255:128] of the -/// destination. -/// \returns A 256-bit vector of [8 x float] containing the copied values. -#define _mm256_permute2f128_ps(V1, V2, M) \ - (__m256)__builtin_ia32_vperm2f128_ps256((__v8sf)(__m256)(V1), \ - (__v8sf)(__m256)(V2), (int)(M)) - -/// Permutes 128-bit data values stored in two 256-bit integer vectors, -/// as specified by the immediate integer operand. -/// -/// \headerfile -/// -/// \code -/// __m256i _mm256_permute2f128_si256(__m256i V1, __m256i V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPERM2F128 instruction. -/// -/// \param V1 -/// A 256-bit integer vector. -/// \param V2 -/// A 256-bit integer vector. -/// \param M -/// An immediate integer operand specifying how the values are to be copied. -/// Bits [1:0]: \n -/// 00: Bits [127:0] of operand \a V1 are copied to bits [127:0] of the -/// destination. \n -/// 01: Bits [255:128] of operand \a V1 are copied to bits [127:0] of the -/// destination. \n -/// 10: Bits [127:0] of operand \a V2 are copied to bits [127:0] of the -/// destination. \n -/// 11: Bits [255:128] of operand \a V2 are copied to bits [127:0] of the -/// destination. \n -/// Bits [5:4]: \n -/// 00: Bits [127:0] of operand \a V1 are copied to bits [255:128] of the -/// destination. \n -/// 01: Bits [255:128] of operand \a V1 are copied to bits [255:128] of the -/// destination. \n -/// 10: Bits [127:0] of operand \a V2 are copied to bits [255:128] of the -/// destination. \n -/// 11: Bits [255:128] of operand \a V2 are copied to bits [255:128] of the -/// destination. -/// \returns A 256-bit integer vector containing the copied values. -#define _mm256_permute2f128_si256(V1, V2, M) \ - (__m256i)__builtin_ia32_vperm2f128_si256((__v8si)(__m256i)(V1), \ - (__v8si)(__m256i)(V2), (int)(M)) - -/* Vector Blend */ -/// Merges 64-bit double-precision data values stored in either of the -/// two 256-bit vectors of [4 x double], as specified by the immediate -/// integer operand. -/// -/// \headerfile -/// -/// \code -/// __m256d _mm256_blend_pd(__m256d V1, __m256d V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VBLENDPD instruction. -/// -/// \param V1 -/// A 256-bit vector of [4 x double]. -/// \param V2 -/// A 256-bit vector of [4 x double]. -/// \param M -/// An immediate integer operand, with mask bits [3:0] specifying how the -/// values are to be copied. The position of the mask bit corresponds to the -/// index of a copied value. When a mask bit is 0, the corresponding 64-bit -/// element in operand \a V1 is copied to the same position in the -/// destination. When a mask bit is 1, the corresponding 64-bit element in -/// operand \a V2 is copied to the same position in the destination. -/// \returns A 256-bit vector of [4 x double] containing the copied values. -#define _mm256_blend_pd(V1, V2, M) \ - (__m256d)__builtin_ia32_blendpd256((__v4df)(__m256d)(V1), \ - (__v4df)(__m256d)(V2), (int)(M)) - -/// Merges 32-bit single-precision data values stored in either of the -/// two 256-bit vectors of [8 x float], as specified by the immediate -/// integer operand. -/// -/// \headerfile -/// -/// \code -/// __m256 _mm256_blend_ps(__m256 V1, __m256 V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VBLENDPS instruction. -/// -/// \param V1 -/// A 256-bit vector of [8 x float]. -/// \param V2 -/// A 256-bit vector of [8 x float]. -/// \param M -/// An immediate integer operand, with mask bits [7:0] specifying how the -/// values are to be copied. The position of the mask bit corresponds to the -/// index of a copied value. When a mask bit is 0, the corresponding 32-bit -/// element in operand \a V1 is copied to the same position in the -/// destination. When a mask bit is 1, the corresponding 32-bit element in -/// operand \a V2 is copied to the same position in the destination. -/// \returns A 256-bit vector of [8 x float] containing the copied values. -#define _mm256_blend_ps(V1, V2, M) \ - (__m256)__builtin_ia32_blendps256((__v8sf)(__m256)(V1), \ - (__v8sf)(__m256)(V2), (int)(M)) - -/// Merges 64-bit double-precision data values stored in either of the -/// two 256-bit vectors of [4 x double], as specified by the 256-bit vector -/// operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBLENDVPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \param __b -/// A 256-bit vector of [4 x double]. -/// \param __c -/// A 256-bit vector operand, with mask bits 255, 191, 127, and 63 specifying -/// how the values are to be copied. The position of the mask bit corresponds -/// to the most significant bit of a copied value. When a mask bit is 0, the -/// corresponding 64-bit element in operand \a __a is copied to the same -/// position in the destination. When a mask bit is 1, the corresponding -/// 64-bit element in operand \a __b is copied to the same position in the -/// destination. -/// \returns A 256-bit vector of [4 x double] containing the copied values. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_blendv_pd(__m256d __a, __m256d __b, __m256d __c) -{ - return (__m256d)__builtin_ia32_blendvpd256( - (__v4df)__a, (__v4df)__b, (__v4df)__c); -} - -/// Merges 32-bit single-precision data values stored in either of the -/// two 256-bit vectors of [8 x float], as specified by the 256-bit vector -/// operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBLENDVPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \param __b -/// A 256-bit vector of [8 x float]. -/// \param __c -/// A 256-bit vector operand, with mask bits 255, 223, 191, 159, 127, 95, 63, -/// and 31 specifying how the values are to be copied. The position of the -/// mask bit corresponds to the most significant bit of a copied value. When -/// a mask bit is 0, the corresponding 32-bit element in operand \a __a is -/// copied to the same position in the destination. When a mask bit is 1, the -/// corresponding 32-bit element in operand \a __b is copied to the same -/// position in the destination. -/// \returns A 256-bit vector of [8 x float] containing the copied values. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c) -{ - return (__m256)__builtin_ia32_blendvps256( - (__v8sf)__a, (__v8sf)__b, (__v8sf)__c); -} - -/* Vector Dot Product */ -/// Computes two dot products in parallel, using the lower and upper -/// halves of two [8 x float] vectors as input to the two computations, and -/// returning the two dot products in the lower and upper halves of the -/// [8 x float] result. -/// -/// The immediate integer operand controls which input elements will -/// contribute to the dot product, and where the final results are returned. -/// In general, for each dot product, the four corresponding elements of the -/// input vectors are multiplied; the first two and second two products are -/// summed, then the two sums are added to form the final result. -/// -/// \headerfile -/// -/// \code -/// __m256 _mm256_dp_ps(__m256 V1, __m256 V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VDPPS instruction. -/// -/// \param V1 -/// A vector of [8 x float] values, treated as two [4 x float] vectors. -/// \param V2 -/// A vector of [8 x float] values, treated as two [4 x float] vectors. -/// \param M -/// An immediate integer argument. Bits [7:4] determine which elements of -/// the input vectors are used, with bit [4] corresponding to the lowest -/// element and bit [7] corresponding to the highest element of each [4 x -/// float] subvector. If a bit is set, the corresponding elements from the -/// two input vectors are used as an input for dot product; otherwise that -/// input is treated as zero. Bits [3:0] determine which elements of the -/// result will receive a copy of the final dot product, with bit [0] -/// corresponding to the lowest element and bit [3] corresponding to the -/// highest element of each [4 x float] subvector. If a bit is set, the dot -/// product is returned in the corresponding element; otherwise that element -/// is set to zero. The bitmask is applied in the same way to each of the -/// two parallel dot product computations. -/// \returns A 256-bit vector of [8 x float] containing the two dot products. -#define _mm256_dp_ps(V1, V2, M) \ - (__m256)__builtin_ia32_dpps256((__v8sf)(__m256)(V1), \ - (__v8sf)(__m256)(V2), (M)) - -/* Vector shuffle */ -/// Selects 8 float values from the 256-bit operands of [8 x float], as -/// specified by the immediate value operand. -/// -/// The four selected elements in each operand are copied to the destination -/// according to the bits specified in the immediate operand. The selected -/// elements from the first 256-bit operand are copied to bits [63:0] and -/// bits [191:128] of the destination, and the selected elements from the -/// second 256-bit operand are copied to bits [127:64] and bits [255:192] of -/// the destination. For example, if bits [7:0] of the immediate operand -/// contain a value of 0xFF, the 256-bit destination vector would contain the -/// following values: b[7], b[7], a[7], a[7], b[3], b[3], a[3], a[3]. -/// -/// \headerfile -/// -/// \code -/// __m256 _mm256_shuffle_ps(__m256 a, __m256 b, const int mask); -/// \endcode -/// -/// This intrinsic corresponds to the VSHUFPS instruction. -/// -/// \param a -/// A 256-bit vector of [8 x float]. The four selected elements in this -/// operand are copied to bits [63:0] and bits [191:128] in the destination, -/// according to the bits specified in the immediate operand. -/// \param b -/// A 256-bit vector of [8 x float]. The four selected elements in this -/// operand are copied to bits [127:64] and bits [255:192] in the -/// destination, according to the bits specified in the immediate operand. -/// \param mask -/// An immediate value containing an 8-bit value specifying which elements to -/// copy from \a a and \a b \n. -/// Bits [3:0] specify the values copied from operand \a a. \n -/// Bits [7:4] specify the values copied from operand \a b. \n -/// The destinations within the 256-bit destination are assigned values as -/// follows, according to the bit value assignments described below: \n -/// Bits [1:0] are used to assign values to bits [31:0] and [159:128] in the -/// destination. \n -/// Bits [3:2] are used to assign values to bits [63:32] and [191:160] in the -/// destination. \n -/// Bits [5:4] are used to assign values to bits [95:64] and [223:192] in the -/// destination. \n -/// Bits [7:6] are used to assign values to bits [127:96] and [255:224] in -/// the destination. \n -/// Bit value assignments: \n -/// 00: Bits [31:0] and [159:128] are copied from the selected operand. \n -/// 01: Bits [63:32] and [191:160] are copied from the selected operand. \n -/// 10: Bits [95:64] and [223:192] are copied from the selected operand. \n -/// 11: Bits [127:96] and [255:224] are copied from the selected operand. -/// \returns A 256-bit vector of [8 x float] containing the shuffled values. -#define _mm256_shuffle_ps(a, b, mask) \ - (__m256)__builtin_ia32_shufps256((__v8sf)(__m256)(a), \ - (__v8sf)(__m256)(b), (int)(mask)) - -/// Selects four double-precision values from the 256-bit operands of -/// [4 x double], as specified by the immediate value operand. -/// -/// The selected elements from the first 256-bit operand are copied to bits -/// [63:0] and bits [191:128] in the destination, and the selected elements -/// from the second 256-bit operand are copied to bits [127:64] and bits -/// [255:192] in the destination. For example, if bits [3:0] of the immediate -/// operand contain a value of 0xF, the 256-bit destination vector would -/// contain the following values: b[3], a[3], b[1], a[1]. -/// -/// \headerfile -/// -/// \code -/// __m256d _mm256_shuffle_pd(__m256d a, __m256d b, const int mask); -/// \endcode -/// -/// This intrinsic corresponds to the VSHUFPD instruction. -/// -/// \param a -/// A 256-bit vector of [4 x double]. -/// \param b -/// A 256-bit vector of [4 x double]. -/// \param mask -/// An immediate value containing 8-bit values specifying which elements to -/// copy from \a a and \a b: \n -/// Bit [0]=0: Bits [63:0] are copied from \a a to bits [63:0] of the -/// destination. \n -/// Bit [0]=1: Bits [127:64] are copied from \a a to bits [63:0] of the -/// destination. \n -/// Bit [1]=0: Bits [63:0] are copied from \a b to bits [127:64] of the -/// destination. \n -/// Bit [1]=1: Bits [127:64] are copied from \a b to bits [127:64] of the -/// destination. \n -/// Bit [2]=0: Bits [191:128] are copied from \a a to bits [191:128] of the -/// destination. \n -/// Bit [2]=1: Bits [255:192] are copied from \a a to bits [191:128] of the -/// destination. \n -/// Bit [3]=0: Bits [191:128] are copied from \a b to bits [255:192] of the -/// destination. \n -/// Bit [3]=1: Bits [255:192] are copied from \a b to bits [255:192] of the -/// destination. -/// \returns A 256-bit vector of [4 x double] containing the shuffled values. -#define _mm256_shuffle_pd(a, b, mask) \ - (__m256d)__builtin_ia32_shufpd256((__v4df)(__m256d)(a), \ - (__v4df)(__m256d)(b), (int)(mask)) - -/* Compare */ -#define _CMP_EQ_OQ 0x00 /* Equal (ordered, non-signaling) */ -#define _CMP_LT_OS 0x01 /* Less-than (ordered, signaling) */ -#define _CMP_LE_OS 0x02 /* Less-than-or-equal (ordered, signaling) */ -#define _CMP_UNORD_Q 0x03 /* Unordered (non-signaling) */ -#define _CMP_NEQ_UQ 0x04 /* Not-equal (unordered, non-signaling) */ -#define _CMP_NLT_US 0x05 /* Not-less-than (unordered, signaling) */ -#define _CMP_NLE_US 0x06 /* Not-less-than-or-equal (unordered, signaling) */ -#define _CMP_ORD_Q 0x07 /* Ordered (non-signaling) */ -#define _CMP_EQ_UQ 0x08 /* Equal (unordered, non-signaling) */ -#define _CMP_NGE_US 0x09 /* Not-greater-than-or-equal (unordered, signaling) */ -#define _CMP_NGT_US 0x0a /* Not-greater-than (unordered, signaling) */ -#define _CMP_FALSE_OQ 0x0b /* False (ordered, non-signaling) */ -#define _CMP_NEQ_OQ 0x0c /* Not-equal (ordered, non-signaling) */ -#define _CMP_GE_OS 0x0d /* Greater-than-or-equal (ordered, signaling) */ -#define _CMP_GT_OS 0x0e /* Greater-than (ordered, signaling) */ -#define _CMP_TRUE_UQ 0x0f /* True (unordered, non-signaling) */ -#define _CMP_EQ_OS 0x10 /* Equal (ordered, signaling) */ -#define _CMP_LT_OQ 0x11 /* Less-than (ordered, non-signaling) */ -#define _CMP_LE_OQ 0x12 /* Less-than-or-equal (ordered, non-signaling) */ -#define _CMP_UNORD_S 0x13 /* Unordered (signaling) */ -#define _CMP_NEQ_US 0x14 /* Not-equal (unordered, signaling) */ -#define _CMP_NLT_UQ 0x15 /* Not-less-than (unordered, non-signaling) */ -#define _CMP_NLE_UQ 0x16 /* Not-less-than-or-equal (unordered, non-signaling) */ -#define _CMP_ORD_S 0x17 /* Ordered (signaling) */ -#define _CMP_EQ_US 0x18 /* Equal (unordered, signaling) */ -#define _CMP_NGE_UQ 0x19 /* Not-greater-than-or-equal (unordered, non-signaling) */ -#define _CMP_NGT_UQ 0x1a /* Not-greater-than (unordered, non-signaling) */ -#define _CMP_FALSE_OS 0x1b /* False (ordered, signaling) */ -#define _CMP_NEQ_OS 0x1c /* Not-equal (ordered, signaling) */ -#define _CMP_GE_OQ 0x1d /* Greater-than-or-equal (ordered, non-signaling) */ -#define _CMP_GT_OQ 0x1e /* Greater-than (ordered, non-signaling) */ -#define _CMP_TRUE_US 0x1f /* True (unordered, signaling) */ - -/// Compares each of the corresponding double-precision values of two -/// 128-bit vectors of [2 x double], using the operation specified by the -/// immediate integer operand. -/// -/// Returns a [2 x double] vector consisting of two doubles corresponding to -/// the two comparison results: zero if the comparison is false, and all 1's -/// if the comparison is true. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_cmp_pd(__m128d a, __m128d b, const int c); -/// \endcode -/// -/// This intrinsic corresponds to the VCMPPD instruction. -/// -/// \param a -/// A 128-bit vector of [2 x double]. -/// \param b -/// A 128-bit vector of [2 x double]. -/// \param c -/// An immediate integer operand, with bits [4:0] specifying which comparison -/// operation to use: \n -/// 0x00: Equal (ordered, non-signaling) \n -/// 0x01: Less-than (ordered, signaling) \n -/// 0x02: Less-than-or-equal (ordered, signaling) \n -/// 0x03: Unordered (non-signaling) \n -/// 0x04: Not-equal (unordered, non-signaling) \n -/// 0x05: Not-less-than (unordered, signaling) \n -/// 0x06: Not-less-than-or-equal (unordered, signaling) \n -/// 0x07: Ordered (non-signaling) \n -/// 0x08: Equal (unordered, non-signaling) \n -/// 0x09: Not-greater-than-or-equal (unordered, signaling) \n -/// 0x0A: Not-greater-than (unordered, signaling) \n -/// 0x0B: False (ordered, non-signaling) \n -/// 0x0C: Not-equal (ordered, non-signaling) \n -/// 0x0D: Greater-than-or-equal (ordered, signaling) \n -/// 0x0E: Greater-than (ordered, signaling) \n -/// 0x0F: True (unordered, non-signaling) \n -/// 0x10: Equal (ordered, signaling) \n -/// 0x11: Less-than (ordered, non-signaling) \n -/// 0x12: Less-than-or-equal (ordered, non-signaling) \n -/// 0x13: Unordered (signaling) \n -/// 0x14: Not-equal (unordered, signaling) \n -/// 0x15: Not-less-than (unordered, non-signaling) \n -/// 0x16: Not-less-than-or-equal (unordered, non-signaling) \n -/// 0x17: Ordered (signaling) \n -/// 0x18: Equal (unordered, signaling) \n -/// 0x19: Not-greater-than-or-equal (unordered, non-signaling) \n -/// 0x1A: Not-greater-than (unordered, non-signaling) \n -/// 0x1B: False (ordered, signaling) \n -/// 0x1C: Not-equal (ordered, signaling) \n -/// 0x1D: Greater-than-or-equal (ordered, non-signaling) \n -/// 0x1E: Greater-than (ordered, non-signaling) \n -/// 0x1F: True (unordered, signaling) -/// \returns A 128-bit vector of [2 x double] containing the comparison results. -#define _mm_cmp_pd(a, b, c) \ - (__m128d)__builtin_ia32_cmppd((__v2df)(__m128d)(a), \ - (__v2df)(__m128d)(b), (c)) - -/// Compares each of the corresponding values of two 128-bit vectors of -/// [4 x float], using the operation specified by the immediate integer -/// operand. -/// -/// Returns a [4 x float] vector consisting of four floats corresponding to -/// the four comparison results: zero if the comparison is false, and all 1's -/// if the comparison is true. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_cmp_ps(__m128 a, __m128 b, const int c); -/// \endcode -/// -/// This intrinsic corresponds to the VCMPPS instruction. -/// -/// \param a -/// A 128-bit vector of [4 x float]. -/// \param b -/// A 128-bit vector of [4 x float]. -/// \param c -/// An immediate integer operand, with bits [4:0] specifying which comparison -/// operation to use: \n -/// 0x00: Equal (ordered, non-signaling) \n -/// 0x01: Less-than (ordered, signaling) \n -/// 0x02: Less-than-or-equal (ordered, signaling) \n -/// 0x03: Unordered (non-signaling) \n -/// 0x04: Not-equal (unordered, non-signaling) \n -/// 0x05: Not-less-than (unordered, signaling) \n -/// 0x06: Not-less-than-or-equal (unordered, signaling) \n -/// 0x07: Ordered (non-signaling) \n -/// 0x08: Equal (unordered, non-signaling) \n -/// 0x09: Not-greater-than-or-equal (unordered, signaling) \n -/// 0x0A: Not-greater-than (unordered, signaling) \n -/// 0x0B: False (ordered, non-signaling) \n -/// 0x0C: Not-equal (ordered, non-signaling) \n -/// 0x0D: Greater-than-or-equal (ordered, signaling) \n -/// 0x0E: Greater-than (ordered, signaling) \n -/// 0x0F: True (unordered, non-signaling) \n -/// 0x10: Equal (ordered, signaling) \n -/// 0x11: Less-than (ordered, non-signaling) \n -/// 0x12: Less-than-or-equal (ordered, non-signaling) \n -/// 0x13: Unordered (signaling) \n -/// 0x14: Not-equal (unordered, signaling) \n -/// 0x15: Not-less-than (unordered, non-signaling) \n -/// 0x16: Not-less-than-or-equal (unordered, non-signaling) \n -/// 0x17: Ordered (signaling) \n -/// 0x18: Equal (unordered, signaling) \n -/// 0x19: Not-greater-than-or-equal (unordered, non-signaling) \n -/// 0x1A: Not-greater-than (unordered, non-signaling) \n -/// 0x1B: False (ordered, signaling) \n -/// 0x1C: Not-equal (ordered, signaling) \n -/// 0x1D: Greater-than-or-equal (ordered, non-signaling) \n -/// 0x1E: Greater-than (ordered, non-signaling) \n -/// 0x1F: True (unordered, signaling) -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -#define _mm_cmp_ps(a, b, c) \ - (__m128)__builtin_ia32_cmpps((__v4sf)(__m128)(a), \ - (__v4sf)(__m128)(b), (c)) - -/// Compares each of the corresponding double-precision values of two -/// 256-bit vectors of [4 x double], using the operation specified by the -/// immediate integer operand. -/// -/// Returns a [4 x double] vector consisting of four doubles corresponding to -/// the four comparison results: zero if the comparison is false, and all 1's -/// if the comparison is true. -/// -/// \headerfile -/// -/// \code -/// __m256d _mm256_cmp_pd(__m256d a, __m256d b, const int c); -/// \endcode -/// -/// This intrinsic corresponds to the VCMPPD instruction. -/// -/// \param a -/// A 256-bit vector of [4 x double]. -/// \param b -/// A 256-bit vector of [4 x double]. -/// \param c -/// An immediate integer operand, with bits [4:0] specifying which comparison -/// operation to use: \n -/// 0x00: Equal (ordered, non-signaling) \n -/// 0x01: Less-than (ordered, signaling) \n -/// 0x02: Less-than-or-equal (ordered, signaling) \n -/// 0x03: Unordered (non-signaling) \n -/// 0x04: Not-equal (unordered, non-signaling) \n -/// 0x05: Not-less-than (unordered, signaling) \n -/// 0x06: Not-less-than-or-equal (unordered, signaling) \n -/// 0x07: Ordered (non-signaling) \n -/// 0x08: Equal (unordered, non-signaling) \n -/// 0x09: Not-greater-than-or-equal (unordered, signaling) \n -/// 0x0A: Not-greater-than (unordered, signaling) \n -/// 0x0B: False (ordered, non-signaling) \n -/// 0x0C: Not-equal (ordered, non-signaling) \n -/// 0x0D: Greater-than-or-equal (ordered, signaling) \n -/// 0x0E: Greater-than (ordered, signaling) \n -/// 0x0F: True (unordered, non-signaling) \n -/// 0x10: Equal (ordered, signaling) \n -/// 0x11: Less-than (ordered, non-signaling) \n -/// 0x12: Less-than-or-equal (ordered, non-signaling) \n -/// 0x13: Unordered (signaling) \n -/// 0x14: Not-equal (unordered, signaling) \n -/// 0x15: Not-less-than (unordered, non-signaling) \n -/// 0x16: Not-less-than-or-equal (unordered, non-signaling) \n -/// 0x17: Ordered (signaling) \n -/// 0x18: Equal (unordered, signaling) \n -/// 0x19: Not-greater-than-or-equal (unordered, non-signaling) \n -/// 0x1A: Not-greater-than (unordered, non-signaling) \n -/// 0x1B: False (ordered, signaling) \n -/// 0x1C: Not-equal (ordered, signaling) \n -/// 0x1D: Greater-than-or-equal (ordered, non-signaling) \n -/// 0x1E: Greater-than (ordered, non-signaling) \n -/// 0x1F: True (unordered, signaling) -/// \returns A 256-bit vector of [4 x double] containing the comparison results. -#define _mm256_cmp_pd(a, b, c) \ - (__m256d)__builtin_ia32_cmppd256((__v4df)(__m256d)(a), \ - (__v4df)(__m256d)(b), (c)) - -/// Compares each of the corresponding values of two 256-bit vectors of -/// [8 x float], using the operation specified by the immediate integer -/// operand. -/// -/// Returns a [8 x float] vector consisting of eight floats corresponding to -/// the eight comparison results: zero if the comparison is false, and all -/// 1's if the comparison is true. -/// -/// \headerfile -/// -/// \code -/// __m256 _mm256_cmp_ps(__m256 a, __m256 b, const int c); -/// \endcode -/// -/// This intrinsic corresponds to the VCMPPS instruction. -/// -/// \param a -/// A 256-bit vector of [8 x float]. -/// \param b -/// A 256-bit vector of [8 x float]. -/// \param c -/// An immediate integer operand, with bits [4:0] specifying which comparison -/// operation to use: \n -/// 0x00: Equal (ordered, non-signaling) \n -/// 0x01: Less-than (ordered, signaling) \n -/// 0x02: Less-than-or-equal (ordered, signaling) \n -/// 0x03: Unordered (non-signaling) \n -/// 0x04: Not-equal (unordered, non-signaling) \n -/// 0x05: Not-less-than (unordered, signaling) \n -/// 0x06: Not-less-than-or-equal (unordered, signaling) \n -/// 0x07: Ordered (non-signaling) \n -/// 0x08: Equal (unordered, non-signaling) \n -/// 0x09: Not-greater-than-or-equal (unordered, signaling) \n -/// 0x0A: Not-greater-than (unordered, signaling) \n -/// 0x0B: False (ordered, non-signaling) \n -/// 0x0C: Not-equal (ordered, non-signaling) \n -/// 0x0D: Greater-than-or-equal (ordered, signaling) \n -/// 0x0E: Greater-than (ordered, signaling) \n -/// 0x0F: True (unordered, non-signaling) \n -/// 0x10: Equal (ordered, signaling) \n -/// 0x11: Less-than (ordered, non-signaling) \n -/// 0x12: Less-than-or-equal (ordered, non-signaling) \n -/// 0x13: Unordered (signaling) \n -/// 0x14: Not-equal (unordered, signaling) \n -/// 0x15: Not-less-than (unordered, non-signaling) \n -/// 0x16: Not-less-than-or-equal (unordered, non-signaling) \n -/// 0x17: Ordered (signaling) \n -/// 0x18: Equal (unordered, signaling) \n -/// 0x19: Not-greater-than-or-equal (unordered, non-signaling) \n -/// 0x1A: Not-greater-than (unordered, non-signaling) \n -/// 0x1B: False (ordered, signaling) \n -/// 0x1C: Not-equal (ordered, signaling) \n -/// 0x1D: Greater-than-or-equal (ordered, non-signaling) \n -/// 0x1E: Greater-than (ordered, non-signaling) \n -/// 0x1F: True (unordered, signaling) -/// \returns A 256-bit vector of [8 x float] containing the comparison results. -#define _mm256_cmp_ps(a, b, c) \ - (__m256)__builtin_ia32_cmpps256((__v8sf)(__m256)(a), \ - (__v8sf)(__m256)(b), (c)) - -/// Compares each of the corresponding scalar double-precision values of -/// two 128-bit vectors of [2 x double], using the operation specified by the -/// immediate integer operand. -/// -/// If the result is true, all 64 bits of the destination vector are set; -/// otherwise they are cleared. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_cmp_sd(__m128d a, __m128d b, const int c); -/// \endcode -/// -/// This intrinsic corresponds to the VCMPSD instruction. -/// -/// \param a -/// A 128-bit vector of [2 x double]. -/// \param b -/// A 128-bit vector of [2 x double]. -/// \param c -/// An immediate integer operand, with bits [4:0] specifying which comparison -/// operation to use: \n -/// 0x00: Equal (ordered, non-signaling) \n -/// 0x01: Less-than (ordered, signaling) \n -/// 0x02: Less-than-or-equal (ordered, signaling) \n -/// 0x03: Unordered (non-signaling) \n -/// 0x04: Not-equal (unordered, non-signaling) \n -/// 0x05: Not-less-than (unordered, signaling) \n -/// 0x06: Not-less-than-or-equal (unordered, signaling) \n -/// 0x07: Ordered (non-signaling) \n -/// 0x08: Equal (unordered, non-signaling) \n -/// 0x09: Not-greater-than-or-equal (unordered, signaling) \n -/// 0x0A: Not-greater-than (unordered, signaling) \n -/// 0x0B: False (ordered, non-signaling) \n -/// 0x0C: Not-equal (ordered, non-signaling) \n -/// 0x0D: Greater-than-or-equal (ordered, signaling) \n -/// 0x0E: Greater-than (ordered, signaling) \n -/// 0x0F: True (unordered, non-signaling) \n -/// 0x10: Equal (ordered, signaling) \n -/// 0x11: Less-than (ordered, non-signaling) \n -/// 0x12: Less-than-or-equal (ordered, non-signaling) \n -/// 0x13: Unordered (signaling) \n -/// 0x14: Not-equal (unordered, signaling) \n -/// 0x15: Not-less-than (unordered, non-signaling) \n -/// 0x16: Not-less-than-or-equal (unordered, non-signaling) \n -/// 0x17: Ordered (signaling) \n -/// 0x18: Equal (unordered, signaling) \n -/// 0x19: Not-greater-than-or-equal (unordered, non-signaling) \n -/// 0x1A: Not-greater-than (unordered, non-signaling) \n -/// 0x1B: False (ordered, signaling) \n -/// 0x1C: Not-equal (ordered, signaling) \n -/// 0x1D: Greater-than-or-equal (ordered, non-signaling) \n -/// 0x1E: Greater-than (ordered, non-signaling) \n -/// 0x1F: True (unordered, signaling) -/// \returns A 128-bit vector of [2 x double] containing the comparison results. -#define _mm_cmp_sd(a, b, c) \ - (__m128d)__builtin_ia32_cmpsd((__v2df)(__m128d)(a), \ - (__v2df)(__m128d)(b), (c)) - -/// Compares each of the corresponding scalar values of two 128-bit -/// vectors of [4 x float], using the operation specified by the immediate -/// integer operand. -/// -/// If the result is true, all 32 bits of the destination vector are set; -/// otherwise they are cleared. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_cmp_ss(__m128 a, __m128 b, const int c); -/// \endcode -/// -/// This intrinsic corresponds to the VCMPSS instruction. -/// -/// \param a -/// A 128-bit vector of [4 x float]. -/// \param b -/// A 128-bit vector of [4 x float]. -/// \param c -/// An immediate integer operand, with bits [4:0] specifying which comparison -/// operation to use: \n -/// 0x00: Equal (ordered, non-signaling) \n -/// 0x01: Less-than (ordered, signaling) \n -/// 0x02: Less-than-or-equal (ordered, signaling) \n -/// 0x03: Unordered (non-signaling) \n -/// 0x04: Not-equal (unordered, non-signaling) \n -/// 0x05: Not-less-than (unordered, signaling) \n -/// 0x06: Not-less-than-or-equal (unordered, signaling) \n -/// 0x07: Ordered (non-signaling) \n -/// 0x08: Equal (unordered, non-signaling) \n -/// 0x09: Not-greater-than-or-equal (unordered, signaling) \n -/// 0x0A: Not-greater-than (unordered, signaling) \n -/// 0x0B: False (ordered, non-signaling) \n -/// 0x0C: Not-equal (ordered, non-signaling) \n -/// 0x0D: Greater-than-or-equal (ordered, signaling) \n -/// 0x0E: Greater-than (ordered, signaling) \n -/// 0x0F: True (unordered, non-signaling) \n -/// 0x10: Equal (ordered, signaling) \n -/// 0x11: Less-than (ordered, non-signaling) \n -/// 0x12: Less-than-or-equal (ordered, non-signaling) \n -/// 0x13: Unordered (signaling) \n -/// 0x14: Not-equal (unordered, signaling) \n -/// 0x15: Not-less-than (unordered, non-signaling) \n -/// 0x16: Not-less-than-or-equal (unordered, non-signaling) \n -/// 0x17: Ordered (signaling) \n -/// 0x18: Equal (unordered, signaling) \n -/// 0x19: Not-greater-than-or-equal (unordered, non-signaling) \n -/// 0x1A: Not-greater-than (unordered, non-signaling) \n -/// 0x1B: False (ordered, signaling) \n -/// 0x1C: Not-equal (ordered, signaling) \n -/// 0x1D: Greater-than-or-equal (ordered, non-signaling) \n -/// 0x1E: Greater-than (ordered, non-signaling) \n -/// 0x1F: True (unordered, signaling) -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -#define _mm_cmp_ss(a, b, c) \ - (__m128)__builtin_ia32_cmpss((__v4sf)(__m128)(a), \ - (__v4sf)(__m128)(b), (c)) - -/// Takes a [8 x i32] vector and returns the vector element value -/// indexed by the immediate constant operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VEXTRACTF128+COMPOSITE -/// instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x i32]. -/// \param __imm -/// An immediate integer operand with bits [2:0] determining which vector -/// element is extracted and returned. -/// \returns A 32-bit integer containing the extracted 32 bits of extended -/// packed data. -#define _mm256_extract_epi32(X, N) \ - (int)__builtin_ia32_vec_ext_v8si((__v8si)(__m256i)(X), (int)(N)) - -/// Takes a [16 x i16] vector and returns the vector element value -/// indexed by the immediate constant operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VEXTRACTF128+COMPOSITE -/// instruction. -/// -/// \param __a -/// A 256-bit integer vector of [16 x i16]. -/// \param __imm -/// An immediate integer operand with bits [3:0] determining which vector -/// element is extracted and returned. -/// \returns A 32-bit integer containing the extracted 16 bits of zero extended -/// packed data. -#define _mm256_extract_epi16(X, N) \ - (int)(unsigned short)__builtin_ia32_vec_ext_v16hi((__v16hi)(__m256i)(X), \ - (int)(N)) - -/// Takes a [32 x i8] vector and returns the vector element value -/// indexed by the immediate constant operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VEXTRACTF128+COMPOSITE -/// instruction. -/// -/// \param __a -/// A 256-bit integer vector of [32 x i8]. -/// \param __imm -/// An immediate integer operand with bits [4:0] determining which vector -/// element is extracted and returned. -/// \returns A 32-bit integer containing the extracted 8 bits of zero extended -/// packed data. -#define _mm256_extract_epi8(X, N) \ - (int)(unsigned char)__builtin_ia32_vec_ext_v32qi((__v32qi)(__m256i)(X), \ - (int)(N)) - -#ifdef __x86_64__ -/// Takes a [4 x i64] vector and returns the vector element value -/// indexed by the immediate constant operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VEXTRACTF128+COMPOSITE -/// instruction. -/// -/// \param __a -/// A 256-bit integer vector of [4 x i64]. -/// \param __imm -/// An immediate integer operand with bits [1:0] determining which vector -/// element is extracted and returned. -/// \returns A 64-bit integer containing the extracted 64 bits of extended -/// packed data. -#define _mm256_extract_epi64(X, N) \ - (long long)__builtin_ia32_vec_ext_v4di((__v4di)(__m256i)(X), (int)(N)) -#endif - -/// Takes a [8 x i32] vector and replaces the vector element value -/// indexed by the immediate constant operand by a new value. Returns the -/// modified vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VINSERTF128+COMPOSITE -/// instruction. -/// -/// \param __a -/// A vector of [8 x i32] to be used by the insert operation. -/// \param __b -/// An integer value. The replacement value for the insert operation. -/// \param __imm -/// An immediate integer specifying the index of the vector element to be -/// replaced. -/// \returns A copy of vector \a __a, after replacing its element indexed by -/// \a __imm with \a __b. -#define _mm256_insert_epi32(X, I, N) \ - (__m256i)__builtin_ia32_vec_set_v8si((__v8si)(__m256i)(X), \ - (int)(I), (int)(N)) - - -/// Takes a [16 x i16] vector and replaces the vector element value -/// indexed by the immediate constant operand with a new value. Returns the -/// modified vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VINSERTF128+COMPOSITE -/// instruction. -/// -/// \param __a -/// A vector of [16 x i16] to be used by the insert operation. -/// \param __b -/// An i16 integer value. The replacement value for the insert operation. -/// \param __imm -/// An immediate integer specifying the index of the vector element to be -/// replaced. -/// \returns A copy of vector \a __a, after replacing its element indexed by -/// \a __imm with \a __b. -#define _mm256_insert_epi16(X, I, N) \ - (__m256i)__builtin_ia32_vec_set_v16hi((__v16hi)(__m256i)(X), \ - (int)(I), (int)(N)) - -/// Takes a [32 x i8] vector and replaces the vector element value -/// indexed by the immediate constant operand with a new value. Returns the -/// modified vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VINSERTF128+COMPOSITE -/// instruction. -/// -/// \param __a -/// A vector of [32 x i8] to be used by the insert operation. -/// \param __b -/// An i8 integer value. The replacement value for the insert operation. -/// \param __imm -/// An immediate integer specifying the index of the vector element to be -/// replaced. -/// \returns A copy of vector \a __a, after replacing its element indexed by -/// \a __imm with \a __b. -#define _mm256_insert_epi8(X, I, N) \ - (__m256i)__builtin_ia32_vec_set_v32qi((__v32qi)(__m256i)(X), \ - (int)(I), (int)(N)) - -#ifdef __x86_64__ -/// Takes a [4 x i64] vector and replaces the vector element value -/// indexed by the immediate constant operand with a new value. Returns the -/// modified vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VINSERTF128+COMPOSITE -/// instruction. -/// -/// \param __a -/// A vector of [4 x i64] to be used by the insert operation. -/// \param __b -/// A 64-bit integer value. The replacement value for the insert operation. -/// \param __imm -/// An immediate integer specifying the index of the vector element to be -/// replaced. -/// \returns A copy of vector \a __a, after replacing its element indexed by -/// \a __imm with \a __b. -#define _mm256_insert_epi64(X, I, N) \ - (__m256i)__builtin_ia32_vec_set_v4di((__v4di)(__m256i)(X), \ - (long long)(I), (int)(N)) -#endif - -/* Conversion */ -/// Converts a vector of [4 x i32] into a vector of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTDQ2PD instruction. -/// -/// \param __a -/// A 128-bit integer vector of [4 x i32]. -/// \returns A 256-bit vector of [4 x double] containing the converted values. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_cvtepi32_pd(__m128i __a) -{ - return (__m256d)__builtin_convertvector((__v4si)__a, __v4df); -} - -/// Converts a vector of [8 x i32] into a vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTDQ2PS instruction. -/// -/// \param __a -/// A 256-bit integer vector. -/// \returns A 256-bit vector of [8 x float] containing the converted values. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_cvtepi32_ps(__m256i __a) -{ - return (__m256)__builtin_convertvector((__v8si)__a, __v8sf); -} - -/// Converts a 256-bit vector of [4 x double] into a 128-bit vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPD2PS instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \returns A 128-bit vector of [4 x float] containing the converted values. -static __inline __m128 __DEFAULT_FN_ATTRS -_mm256_cvtpd_ps(__m256d __a) -{ - return (__m128)__builtin_ia32_cvtpd2ps256((__v4df) __a); -} - -/// Converts a vector of [8 x float] into a vector of [8 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPS2DQ instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \returns A 256-bit integer vector containing the converted values. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_cvtps_epi32(__m256 __a) -{ - return (__m256i)__builtin_ia32_cvtps2dq256((__v8sf) __a); -} - -/// Converts a 128-bit vector of [4 x float] into a 256-bit vector of [4 -/// x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPS2PD instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 256-bit vector of [4 x double] containing the converted values. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_cvtps_pd(__m128 __a) -{ - return (__m256d)__builtin_convertvector((__v4sf)__a, __v4df); -} - -/// Converts a 256-bit vector of [4 x double] into a 128-bit vector of [4 -/// x i32], truncating the result by rounding towards zero when it is -/// inexact. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTTPD2DQ instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \returns A 128-bit integer vector containing the converted values. -static __inline __m128i __DEFAULT_FN_ATTRS -_mm256_cvttpd_epi32(__m256d __a) -{ - return (__m128i)__builtin_ia32_cvttpd2dq256((__v4df) __a); -} - -/// Converts a 256-bit vector of [4 x double] into a 128-bit vector of [4 -/// x i32]. When a conversion is inexact, the value returned is rounded -/// according to the rounding control bits in the MXCSR register. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPD2DQ instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \returns A 128-bit integer vector containing the converted values. -static __inline __m128i __DEFAULT_FN_ATTRS -_mm256_cvtpd_epi32(__m256d __a) -{ - return (__m128i)__builtin_ia32_cvtpd2dq256((__v4df) __a); -} - -/// Converts a vector of [8 x float] into a vector of [8 x i32], -/// truncating the result by rounding towards zero when it is inexact. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTTPS2DQ instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \returns A 256-bit integer vector containing the converted values. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_cvttps_epi32(__m256 __a) -{ - return (__m256i)__builtin_ia32_cvttps2dq256((__v8sf) __a); -} - -/// Returns the first element of the input vector of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \returns A 64 bit double containing the first element of the input vector. -static __inline double __DEFAULT_FN_ATTRS -_mm256_cvtsd_f64(__m256d __a) -{ - return __a[0]; -} - -/// Returns the first element of the input vector of [8 x i32]. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x i32]. -/// \returns A 32 bit integer containing the first element of the input vector. -static __inline int __DEFAULT_FN_ATTRS -_mm256_cvtsi256_si32(__m256i __a) -{ - __v8si __b = (__v8si)__a; - return __b[0]; -} - -/// Returns the first element of the input vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \returns A 32 bit float containing the first element of the input vector. -static __inline float __DEFAULT_FN_ATTRS -_mm256_cvtss_f32(__m256 __a) -{ - return __a[0]; -} - -/* Vector replicate */ -/// Moves and duplicates odd-indexed values from a 256-bit vector of -/// [8 x float] to float values in a 256-bit vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVSHDUP instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. \n -/// Bits [255:224] of \a __a are written to bits [255:224] and [223:192] of -/// the return value. \n -/// Bits [191:160] of \a __a are written to bits [191:160] and [159:128] of -/// the return value. \n -/// Bits [127:96] of \a __a are written to bits [127:96] and [95:64] of the -/// return value. \n -/// Bits [63:32] of \a __a are written to bits [63:32] and [31:0] of the -/// return value. -/// \returns A 256-bit vector of [8 x float] containing the moved and duplicated -/// values. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_movehdup_ps(__m256 __a) -{ - return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 1, 1, 3, 3, 5, 5, 7, 7); -} - -/// Moves and duplicates even-indexed values from a 256-bit vector of -/// [8 x float] to float values in a 256-bit vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVSLDUP instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. \n -/// Bits [223:192] of \a __a are written to bits [255:224] and [223:192] of -/// the return value. \n -/// Bits [159:128] of \a __a are written to bits [191:160] and [159:128] of -/// the return value. \n -/// Bits [95:64] of \a __a are written to bits [127:96] and [95:64] of the -/// return value. \n -/// Bits [31:0] of \a __a are written to bits [63:32] and [31:0] of the -/// return value. -/// \returns A 256-bit vector of [8 x float] containing the moved and duplicated -/// values. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_moveldup_ps(__m256 __a) -{ - return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 0, 0, 2, 2, 4, 4, 6, 6); -} - -/// Moves and duplicates double-precision floating point values from a -/// 256-bit vector of [4 x double] to double-precision values in a 256-bit -/// vector of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDDUP instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. \n -/// Bits [63:0] of \a __a are written to bits [127:64] and [63:0] of the -/// return value. \n -/// Bits [191:128] of \a __a are written to bits [255:192] and [191:128] of -/// the return value. -/// \returns A 256-bit vector of [4 x double] containing the moved and -/// duplicated values. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_movedup_pd(__m256d __a) -{ - return __builtin_shufflevector((__v4df)__a, (__v4df)__a, 0, 0, 2, 2); -} - -/* Unpack and Interleave */ -/// Unpacks the odd-indexed vector elements from two 256-bit vectors of -/// [4 x double] and interleaves them into a 256-bit vector of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKHPD instruction. -/// -/// \param __a -/// A 256-bit floating-point vector of [4 x double]. \n -/// Bits [127:64] are written to bits [63:0] of the return value. \n -/// Bits [255:192] are written to bits [191:128] of the return value. \n -/// \param __b -/// A 256-bit floating-point vector of [4 x double]. \n -/// Bits [127:64] are written to bits [127:64] of the return value. \n -/// Bits [255:192] are written to bits [255:192] of the return value. \n -/// \returns A 256-bit vector of [4 x double] containing the interleaved values. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_unpackhi_pd(__m256d __a, __m256d __b) -{ - return __builtin_shufflevector((__v4df)__a, (__v4df)__b, 1, 5, 1+2, 5+2); -} - -/// Unpacks the even-indexed vector elements from two 256-bit vectors of -/// [4 x double] and interleaves them into a 256-bit vector of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKLPD instruction. -/// -/// \param __a -/// A 256-bit floating-point vector of [4 x double]. \n -/// Bits [63:0] are written to bits [63:0] of the return value. \n -/// Bits [191:128] are written to bits [191:128] of the return value. -/// \param __b -/// A 256-bit floating-point vector of [4 x double]. \n -/// Bits [63:0] are written to bits [127:64] of the return value. \n -/// Bits [191:128] are written to bits [255:192] of the return value. \n -/// \returns A 256-bit vector of [4 x double] containing the interleaved values. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_unpacklo_pd(__m256d __a, __m256d __b) -{ - return __builtin_shufflevector((__v4df)__a, (__v4df)__b, 0, 4, 0+2, 4+2); -} - -/// Unpacks the 32-bit vector elements 2, 3, 6 and 7 from each of the -/// two 256-bit vectors of [8 x float] and interleaves them into a 256-bit -/// vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKHPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. \n -/// Bits [95:64] are written to bits [31:0] of the return value. \n -/// Bits [127:96] are written to bits [95:64] of the return value. \n -/// Bits [223:192] are written to bits [159:128] of the return value. \n -/// Bits [255:224] are written to bits [223:192] of the return value. -/// \param __b -/// A 256-bit vector of [8 x float]. \n -/// Bits [95:64] are written to bits [63:32] of the return value. \n -/// Bits [127:96] are written to bits [127:96] of the return value. \n -/// Bits [223:192] are written to bits [191:160] of the return value. \n -/// Bits [255:224] are written to bits [255:224] of the return value. -/// \returns A 256-bit vector of [8 x float] containing the interleaved values. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_unpackhi_ps(__m256 __a, __m256 __b) -{ - return __builtin_shufflevector((__v8sf)__a, (__v8sf)__b, 2, 10, 2+1, 10+1, 6, 14, 6+1, 14+1); -} - -/// Unpacks the 32-bit vector elements 0, 1, 4 and 5 from each of the -/// two 256-bit vectors of [8 x float] and interleaves them into a 256-bit -/// vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKLPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. \n -/// Bits [31:0] are written to bits [31:0] of the return value. \n -/// Bits [63:32] are written to bits [95:64] of the return value. \n -/// Bits [159:128] are written to bits [159:128] of the return value. \n -/// Bits [191:160] are written to bits [223:192] of the return value. -/// \param __b -/// A 256-bit vector of [8 x float]. \n -/// Bits [31:0] are written to bits [63:32] of the return value. \n -/// Bits [63:32] are written to bits [127:96] of the return value. \n -/// Bits [159:128] are written to bits [191:160] of the return value. \n -/// Bits [191:160] are written to bits [255:224] of the return value. -/// \returns A 256-bit vector of [8 x float] containing the interleaved values. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_unpacklo_ps(__m256 __a, __m256 __b) -{ - return __builtin_shufflevector((__v8sf)__a, (__v8sf)__b, 0, 8, 0+1, 8+1, 4, 12, 4+1, 12+1); -} - -/* Bit Test */ -/// Given two 128-bit floating-point vectors of [2 x double], perform an -/// element-by-element comparison of the double-precision element in the -/// first source vector and the corresponding element in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of double-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of double-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns the value of the ZF flag. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns the ZF flag in the EFLAGS register. -static __inline int __DEFAULT_FN_ATTRS128 -_mm_testz_pd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_vtestzpd((__v2df)__a, (__v2df)__b); -} - -/// Given two 128-bit floating-point vectors of [2 x double], perform an -/// element-by-element comparison of the double-precision element in the -/// first source vector and the corresponding element in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of double-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of double-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns the value of the CF flag. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns the CF flag in the EFLAGS register. -static __inline int __DEFAULT_FN_ATTRS128 -_mm_testc_pd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_vtestcpd((__v2df)__a, (__v2df)__b); -} - -/// Given two 128-bit floating-point vectors of [2 x double], perform an -/// element-by-element comparison of the double-precision element in the -/// first source vector and the corresponding element in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of double-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of double-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns 1 if both the ZF and CF flags are set to 0, -/// otherwise it returns 0. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns 1 if both the ZF and CF flags are set to 0, otherwise returns 0. -static __inline int __DEFAULT_FN_ATTRS128 -_mm_testnzc_pd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_vtestnzcpd((__v2df)__a, (__v2df)__b); -} - -/// Given two 128-bit floating-point vectors of [4 x float], perform an -/// element-by-element comparison of the single-precision element in the -/// first source vector and the corresponding element in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of single-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of single-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns the value of the ZF flag. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns the ZF flag. -static __inline int __DEFAULT_FN_ATTRS128 -_mm_testz_ps(__m128 __a, __m128 __b) -{ - return __builtin_ia32_vtestzps((__v4sf)__a, (__v4sf)__b); -} - -/// Given two 128-bit floating-point vectors of [4 x float], perform an -/// element-by-element comparison of the single-precision element in the -/// first source vector and the corresponding element in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of single-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of single-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns the value of the CF flag. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns the CF flag. -static __inline int __DEFAULT_FN_ATTRS128 -_mm_testc_ps(__m128 __a, __m128 __b) -{ - return __builtin_ia32_vtestcps((__v4sf)__a, (__v4sf)__b); -} - -/// Given two 128-bit floating-point vectors of [4 x float], perform an -/// element-by-element comparison of the single-precision element in the -/// first source vector and the corresponding element in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of single-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of single-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns 1 if both the ZF and CF flags are set to 0, -/// otherwise it returns 0. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns 1 if both the ZF and CF flags are set to 0, otherwise returns 0. -static __inline int __DEFAULT_FN_ATTRS128 -_mm_testnzc_ps(__m128 __a, __m128 __b) -{ - return __builtin_ia32_vtestnzcps((__v4sf)__a, (__v4sf)__b); -} - -/// Given two 256-bit floating-point vectors of [4 x double], perform an -/// element-by-element comparison of the double-precision elements in the -/// first source vector and the corresponding elements in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of double-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of double-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns the value of the ZF flag. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \param __b -/// A 256-bit vector of [4 x double]. -/// \returns the ZF flag. -static __inline int __DEFAULT_FN_ATTRS -_mm256_testz_pd(__m256d __a, __m256d __b) -{ - return __builtin_ia32_vtestzpd256((__v4df)__a, (__v4df)__b); -} - -/// Given two 256-bit floating-point vectors of [4 x double], perform an -/// element-by-element comparison of the double-precision elements in the -/// first source vector and the corresponding elements in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of double-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of double-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns the value of the CF flag. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \param __b -/// A 256-bit vector of [4 x double]. -/// \returns the CF flag. -static __inline int __DEFAULT_FN_ATTRS -_mm256_testc_pd(__m256d __a, __m256d __b) -{ - return __builtin_ia32_vtestcpd256((__v4df)__a, (__v4df)__b); -} - -/// Given two 256-bit floating-point vectors of [4 x double], perform an -/// element-by-element comparison of the double-precision elements in the -/// first source vector and the corresponding elements in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of double-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of double-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns 1 if both the ZF and CF flags are set to 0, -/// otherwise it returns 0. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double]. -/// \param __b -/// A 256-bit vector of [4 x double]. -/// \returns 1 if both the ZF and CF flags are set to 0, otherwise returns 0. -static __inline int __DEFAULT_FN_ATTRS -_mm256_testnzc_pd(__m256d __a, __m256d __b) -{ - return __builtin_ia32_vtestnzcpd256((__v4df)__a, (__v4df)__b); -} - -/// Given two 256-bit floating-point vectors of [8 x float], perform an -/// element-by-element comparison of the single-precision element in the -/// first source vector and the corresponding element in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of single-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of single-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns the value of the ZF flag. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \param __b -/// A 256-bit vector of [8 x float]. -/// \returns the ZF flag. -static __inline int __DEFAULT_FN_ATTRS -_mm256_testz_ps(__m256 __a, __m256 __b) -{ - return __builtin_ia32_vtestzps256((__v8sf)__a, (__v8sf)__b); -} - -/// Given two 256-bit floating-point vectors of [8 x float], perform an -/// element-by-element comparison of the single-precision element in the -/// first source vector and the corresponding element in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of single-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of single-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns the value of the CF flag. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \param __b -/// A 256-bit vector of [8 x float]. -/// \returns the CF flag. -static __inline int __DEFAULT_FN_ATTRS -_mm256_testc_ps(__m256 __a, __m256 __b) -{ - return __builtin_ia32_vtestcps256((__v8sf)__a, (__v8sf)__b); -} - -/// Given two 256-bit floating-point vectors of [8 x float], perform an -/// element-by-element comparison of the single-precision elements in the -/// first source vector and the corresponding elements in the second source -/// vector. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of single-precision elements where the -/// sign-bits of both elements are 1, the ZF flag is set to 0. Otherwise the -/// ZF flag is set to 1. \n -/// If there is at least one pair of single-precision elements where the -/// sign-bit of the first element is 0 and the sign-bit of the second element -/// is 1, the CF flag is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns 1 if both the ZF and CF flags are set to 0, -/// otherwise it returns 0. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VTESTPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float]. -/// \param __b -/// A 256-bit vector of [8 x float]. -/// \returns 1 if both the ZF and CF flags are set to 0, otherwise returns 0. -static __inline int __DEFAULT_FN_ATTRS -_mm256_testnzc_ps(__m256 __a, __m256 __b) -{ - return __builtin_ia32_vtestnzcps256((__v8sf)__a, (__v8sf)__b); -} - -/// Given two 256-bit integer vectors, perform a bit-by-bit comparison -/// of the two source vectors. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of bits where both bits are 1, the ZF flag -/// is set to 0. Otherwise the ZF flag is set to 1. \n -/// If there is at least one pair of bits where the bit from the first source -/// vector is 0 and the bit from the second source vector is 1, the CF flag -/// is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns the value of the ZF flag. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPTEST instruction. -/// -/// \param __a -/// A 256-bit integer vector. -/// \param __b -/// A 256-bit integer vector. -/// \returns the ZF flag. -static __inline int __DEFAULT_FN_ATTRS -_mm256_testz_si256(__m256i __a, __m256i __b) -{ - return __builtin_ia32_ptestz256((__v4di)__a, (__v4di)__b); -} - -/// Given two 256-bit integer vectors, perform a bit-by-bit comparison -/// of the two source vectors. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of bits where both bits are 1, the ZF flag -/// is set to 0. Otherwise the ZF flag is set to 1. \n -/// If there is at least one pair of bits where the bit from the first source -/// vector is 0 and the bit from the second source vector is 1, the CF flag -/// is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns the value of the CF flag. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPTEST instruction. -/// -/// \param __a -/// A 256-bit integer vector. -/// \param __b -/// A 256-bit integer vector. -/// \returns the CF flag. -static __inline int __DEFAULT_FN_ATTRS -_mm256_testc_si256(__m256i __a, __m256i __b) -{ - return __builtin_ia32_ptestc256((__v4di)__a, (__v4di)__b); -} - -/// Given two 256-bit integer vectors, perform a bit-by-bit comparison -/// of the two source vectors. -/// -/// The EFLAGS register is updated as follows: \n -/// If there is at least one pair of bits where both bits are 1, the ZF flag -/// is set to 0. Otherwise the ZF flag is set to 1. \n -/// If there is at least one pair of bits where the bit from the first source -/// vector is 0 and the bit from the second source vector is 1, the CF flag -/// is set to 0. Otherwise the CF flag is set to 1. \n -/// This intrinsic returns 1 if both the ZF and CF flags are set to 0, -/// otherwise it returns 0. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPTEST instruction. -/// -/// \param __a -/// A 256-bit integer vector. -/// \param __b -/// A 256-bit integer vector. -/// \returns 1 if both the ZF and CF flags are set to 0, otherwise returns 0. -static __inline int __DEFAULT_FN_ATTRS -_mm256_testnzc_si256(__m256i __a, __m256i __b) -{ - return __builtin_ia32_ptestnzc256((__v4di)__a, (__v4di)__b); -} - -/* Vector extract sign mask */ -/// Extracts the sign bits of double-precision floating point elements -/// in a 256-bit vector of [4 x double] and writes them to the lower order -/// bits of the return value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVMSKPD instruction. -/// -/// \param __a -/// A 256-bit vector of [4 x double] containing the double-precision -/// floating point values with sign bits to be extracted. -/// \returns The sign bits from the operand, written to bits [3:0]. -static __inline int __DEFAULT_FN_ATTRS -_mm256_movemask_pd(__m256d __a) -{ - return __builtin_ia32_movmskpd256((__v4df)__a); -} - -/// Extracts the sign bits of single-precision floating point elements -/// in a 256-bit vector of [8 x float] and writes them to the lower order -/// bits of the return value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVMSKPS instruction. -/// -/// \param __a -/// A 256-bit vector of [8 x float] containing the single-precision floating -/// point values with sign bits to be extracted. -/// \returns The sign bits from the operand, written to bits [7:0]. -static __inline int __DEFAULT_FN_ATTRS -_mm256_movemask_ps(__m256 __a) -{ - return __builtin_ia32_movmskps256((__v8sf)__a); -} - -/* Vector __zero */ -/// Zeroes the contents of all XMM or YMM registers. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VZEROALL instruction. -static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"))) -_mm256_zeroall(void) -{ - __builtin_ia32_vzeroall(); -} - -/// Zeroes the upper 128 bits (bits 255:128) of all YMM registers. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VZEROUPPER instruction. -static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"))) -_mm256_zeroupper(void) -{ - __builtin_ia32_vzeroupper(); -} - -/* Vector load with broadcast */ -/// Loads a scalar single-precision floating point value from the -/// specified address pointed to by \a __a and broadcasts it to the elements -/// of a [4 x float] vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBROADCASTSS instruction. -/// -/// \param __a -/// The single-precision floating point value to be broadcast. -/// \returns A 128-bit vector of [4 x float] whose 32-bit elements are set -/// equal to the broadcast value. -static __inline __m128 __DEFAULT_FN_ATTRS128 -_mm_broadcast_ss(float const *__a) -{ - float __f = *__a; - return __extension__ (__m128)(__v4sf){ __f, __f, __f, __f }; -} - -/// Loads a scalar double-precision floating point value from the -/// specified address pointed to by \a __a and broadcasts it to the elements -/// of a [4 x double] vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBROADCASTSD instruction. -/// -/// \param __a -/// The double-precision floating point value to be broadcast. -/// \returns A 256-bit vector of [4 x double] whose 64-bit elements are set -/// equal to the broadcast value. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_broadcast_sd(double const *__a) -{ - double __d = *__a; - return __extension__ (__m256d)(__v4df){ __d, __d, __d, __d }; -} - -/// Loads a scalar single-precision floating point value from the -/// specified address pointed to by \a __a and broadcasts it to the elements -/// of a [8 x float] vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBROADCASTSS instruction. -/// -/// \param __a -/// The single-precision floating point value to be broadcast. -/// \returns A 256-bit vector of [8 x float] whose 32-bit elements are set -/// equal to the broadcast value. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_broadcast_ss(float const *__a) -{ - float __f = *__a; - return __extension__ (__m256)(__v8sf){ __f, __f, __f, __f, __f, __f, __f, __f }; -} - -/// Loads the data from a 128-bit vector of [2 x double] from the -/// specified address pointed to by \a __a and broadcasts it to 128-bit -/// elements in a 256-bit vector of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBROADCASTF128 instruction. -/// -/// \param __a -/// The 128-bit vector of [2 x double] to be broadcast. -/// \returns A 256-bit vector of [4 x double] whose 128-bit elements are set -/// equal to the broadcast value. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_broadcast_pd(__m128d const *__a) -{ - __m128d __b = _mm_loadu_pd((const double *)__a); - return (__m256d)__builtin_shufflevector((__v2df)__b, (__v2df)__b, - 0, 1, 0, 1); -} - -/// Loads the data from a 128-bit vector of [4 x float] from the -/// specified address pointed to by \a __a and broadcasts it to 128-bit -/// elements in a 256-bit vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBROADCASTF128 instruction. -/// -/// \param __a -/// The 128-bit vector of [4 x float] to be broadcast. -/// \returns A 256-bit vector of [8 x float] whose 128-bit elements are set -/// equal to the broadcast value. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_broadcast_ps(__m128 const *__a) -{ - __m128 __b = _mm_loadu_ps((const float *)__a); - return (__m256)__builtin_shufflevector((__v4sf)__b, (__v4sf)__b, - 0, 1, 2, 3, 0, 1, 2, 3); -} - -/* SIMD load ops */ -/// Loads 4 double-precision floating point values from a 32-byte aligned -/// memory location pointed to by \a __p into a vector of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPD instruction. -/// -/// \param __p -/// A 32-byte aligned pointer to a memory location containing -/// double-precision floating point values. -/// \returns A 256-bit vector of [4 x double] containing the moved values. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_load_pd(double const *__p) -{ - return *(__m256d *)__p; -} - -/// Loads 8 single-precision floating point values from a 32-byte aligned -/// memory location pointed to by \a __p into a vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPS instruction. -/// -/// \param __p -/// A 32-byte aligned pointer to a memory location containing float values. -/// \returns A 256-bit vector of [8 x float] containing the moved values. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_load_ps(float const *__p) -{ - return *(__m256 *)__p; -} - -/// Loads 4 double-precision floating point values from an unaligned -/// memory location pointed to by \a __p into a vector of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVUPD instruction. -/// -/// \param __p -/// A pointer to a memory location containing double-precision floating -/// point values. -/// \returns A 256-bit vector of [4 x double] containing the moved values. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_loadu_pd(double const *__p) -{ - struct __loadu_pd { - __m256d_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_pd*)__p)->__v; -} - -/// Loads 8 single-precision floating point values from an unaligned -/// memory location pointed to by \a __p into a vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVUPS instruction. -/// -/// \param __p -/// A pointer to a memory location containing single-precision floating -/// point values. -/// \returns A 256-bit vector of [8 x float] containing the moved values. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_loadu_ps(float const *__p) -{ - struct __loadu_ps { - __m256_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_ps*)__p)->__v; -} - -/// Loads 256 bits of integer data from a 32-byte aligned memory -/// location pointed to by \a __p into elements of a 256-bit integer vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDQA instruction. -/// -/// \param __p -/// A 32-byte aligned pointer to a 256-bit integer vector containing integer -/// values. -/// \returns A 256-bit integer vector containing the moved values. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_load_si256(__m256i const *__p) -{ - return *__p; -} - -/// Loads 256 bits of integer data from an unaligned memory location -/// pointed to by \a __p into a 256-bit integer vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDQU instruction. -/// -/// \param __p -/// A pointer to a 256-bit integer vector containing integer values. -/// \returns A 256-bit integer vector containing the moved values. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_loadu_si256(__m256i_u const *__p) -{ - struct __loadu_si256 { - __m256i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_si256*)__p)->__v; -} - -/// Loads 256 bits of integer data from an unaligned memory location -/// pointed to by \a __p into a 256-bit integer vector. This intrinsic may -/// perform better than \c _mm256_loadu_si256 when the data crosses a cache -/// line boundary. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VLDDQU instruction. -/// -/// \param __p -/// A pointer to a 256-bit integer vector containing integer values. -/// \returns A 256-bit integer vector containing the moved values. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_lddqu_si256(__m256i const *__p) -{ - return (__m256i)__builtin_ia32_lddqu256((char const *)__p); -} - -/* SIMD store ops */ -/// Stores double-precision floating point values from a 256-bit vector -/// of [4 x double] to a 32-byte aligned memory location pointed to by -/// \a __p. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPD instruction. -/// -/// \param __p -/// A 32-byte aligned pointer to a memory location that will receive the -/// double-precision floaing point values. -/// \param __a -/// A 256-bit vector of [4 x double] containing the values to be moved. -static __inline void __DEFAULT_FN_ATTRS -_mm256_store_pd(double *__p, __m256d __a) -{ - *(__m256d *)__p = __a; -} - -/// Stores single-precision floating point values from a 256-bit vector -/// of [8 x float] to a 32-byte aligned memory location pointed to by \a __p. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPS instruction. -/// -/// \param __p -/// A 32-byte aligned pointer to a memory location that will receive the -/// float values. -/// \param __a -/// A 256-bit vector of [8 x float] containing the values to be moved. -static __inline void __DEFAULT_FN_ATTRS -_mm256_store_ps(float *__p, __m256 __a) -{ - *(__m256 *)__p = __a; -} - -/// Stores double-precision floating point values from a 256-bit vector -/// of [4 x double] to an unaligned memory location pointed to by \a __p. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVUPD instruction. -/// -/// \param __p -/// A pointer to a memory location that will receive the double-precision -/// floating point values. -/// \param __a -/// A 256-bit vector of [4 x double] containing the values to be moved. -static __inline void __DEFAULT_FN_ATTRS -_mm256_storeu_pd(double *__p, __m256d __a) -{ - struct __storeu_pd { - __m256d_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_pd*)__p)->__v = __a; -} - -/// Stores single-precision floating point values from a 256-bit vector -/// of [8 x float] to an unaligned memory location pointed to by \a __p. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVUPS instruction. -/// -/// \param __p -/// A pointer to a memory location that will receive the float values. -/// \param __a -/// A 256-bit vector of [8 x float] containing the values to be moved. -static __inline void __DEFAULT_FN_ATTRS -_mm256_storeu_ps(float *__p, __m256 __a) -{ - struct __storeu_ps { - __m256_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_ps*)__p)->__v = __a; -} - -/// Stores integer values from a 256-bit integer vector to a 32-byte -/// aligned memory location pointed to by \a __p. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDQA instruction. -/// -/// \param __p -/// A 32-byte aligned pointer to a memory location that will receive the -/// integer values. -/// \param __a -/// A 256-bit integer vector containing the values to be moved. -static __inline void __DEFAULT_FN_ATTRS -_mm256_store_si256(__m256i *__p, __m256i __a) -{ - *__p = __a; -} - -/// Stores integer values from a 256-bit integer vector to an unaligned -/// memory location pointed to by \a __p. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDQU instruction. -/// -/// \param __p -/// A pointer to a memory location that will receive the integer values. -/// \param __a -/// A 256-bit integer vector containing the values to be moved. -static __inline void __DEFAULT_FN_ATTRS -_mm256_storeu_si256(__m256i_u *__p, __m256i __a) -{ - struct __storeu_si256 { - __m256i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_si256*)__p)->__v = __a; -} - -/* Conditional load ops */ -/// Conditionally loads double-precision floating point elements from a -/// memory location pointed to by \a __p into a 128-bit vector of -/// [2 x double], depending on the mask bits associated with each data -/// element. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMASKMOVPD instruction. -/// -/// \param __p -/// A pointer to a memory location that contains the double-precision -/// floating point values. -/// \param __m -/// A 128-bit integer vector containing the mask. The most significant bit of -/// each data element represents the mask bits. If a mask bit is zero, the -/// corresponding value in the memory location is not loaded and the -/// corresponding field in the return value is set to zero. -/// \returns A 128-bit vector of [2 x double] containing the loaded values. -static __inline __m128d __DEFAULT_FN_ATTRS128 -_mm_maskload_pd(double const *__p, __m128i __m) -{ - return (__m128d)__builtin_ia32_maskloadpd((const __v2df *)__p, (__v2di)__m); -} - -/// Conditionally loads double-precision floating point elements from a -/// memory location pointed to by \a __p into a 256-bit vector of -/// [4 x double], depending on the mask bits associated with each data -/// element. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMASKMOVPD instruction. -/// -/// \param __p -/// A pointer to a memory location that contains the double-precision -/// floating point values. -/// \param __m -/// A 256-bit integer vector of [4 x quadword] containing the mask. The most -/// significant bit of each quadword element represents the mask bits. If a -/// mask bit is zero, the corresponding value in the memory location is not -/// loaded and the corresponding field in the return value is set to zero. -/// \returns A 256-bit vector of [4 x double] containing the loaded values. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_maskload_pd(double const *__p, __m256i __m) -{ - return (__m256d)__builtin_ia32_maskloadpd256((const __v4df *)__p, - (__v4di)__m); -} - -/// Conditionally loads single-precision floating point elements from a -/// memory location pointed to by \a __p into a 128-bit vector of -/// [4 x float], depending on the mask bits associated with each data -/// element. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMASKMOVPS instruction. -/// -/// \param __p -/// A pointer to a memory location that contains the single-precision -/// floating point values. -/// \param __m -/// A 128-bit integer vector containing the mask. The most significant bit of -/// each data element represents the mask bits. If a mask bit is zero, the -/// corresponding value in the memory location is not loaded and the -/// corresponding field in the return value is set to zero. -/// \returns A 128-bit vector of [4 x float] containing the loaded values. -static __inline __m128 __DEFAULT_FN_ATTRS128 -_mm_maskload_ps(float const *__p, __m128i __m) -{ - return (__m128)__builtin_ia32_maskloadps((const __v4sf *)__p, (__v4si)__m); -} - -/// Conditionally loads single-precision floating point elements from a -/// memory location pointed to by \a __p into a 256-bit vector of -/// [8 x float], depending on the mask bits associated with each data -/// element. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMASKMOVPS instruction. -/// -/// \param __p -/// A pointer to a memory location that contains the single-precision -/// floating point values. -/// \param __m -/// A 256-bit integer vector of [8 x dword] containing the mask. The most -/// significant bit of each dword element represents the mask bits. If a mask -/// bit is zero, the corresponding value in the memory location is not loaded -/// and the corresponding field in the return value is set to zero. -/// \returns A 256-bit vector of [8 x float] containing the loaded values. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_maskload_ps(float const *__p, __m256i __m) -{ - return (__m256)__builtin_ia32_maskloadps256((const __v8sf *)__p, (__v8si)__m); -} - -/* Conditional store ops */ -/// Moves single-precision floating point values from a 256-bit vector -/// of [8 x float] to a memory location pointed to by \a __p, according to -/// the specified mask. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMASKMOVPS instruction. -/// -/// \param __p -/// A pointer to a memory location that will receive the float values. -/// \param __m -/// A 256-bit integer vector of [8 x dword] containing the mask. The most -/// significant bit of each dword element in the mask vector represents the -/// mask bits. If a mask bit is zero, the corresponding value from vector -/// \a __a is not stored and the corresponding field in the memory location -/// pointed to by \a __p is not changed. -/// \param __a -/// A 256-bit vector of [8 x float] containing the values to be stored. -static __inline void __DEFAULT_FN_ATTRS -_mm256_maskstore_ps(float *__p, __m256i __m, __m256 __a) -{ - __builtin_ia32_maskstoreps256((__v8sf *)__p, (__v8si)__m, (__v8sf)__a); -} - -/// Moves double-precision values from a 128-bit vector of [2 x double] -/// to a memory location pointed to by \a __p, according to the specified -/// mask. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMASKMOVPD instruction. -/// -/// \param __p -/// A pointer to a memory location that will receive the float values. -/// \param __m -/// A 128-bit integer vector containing the mask. The most significant bit of -/// each field in the mask vector represents the mask bits. If a mask bit is -/// zero, the corresponding value from vector \a __a is not stored and the -/// corresponding field in the memory location pointed to by \a __p is not -/// changed. -/// \param __a -/// A 128-bit vector of [2 x double] containing the values to be stored. -static __inline void __DEFAULT_FN_ATTRS128 -_mm_maskstore_pd(double *__p, __m128i __m, __m128d __a) -{ - __builtin_ia32_maskstorepd((__v2df *)__p, (__v2di)__m, (__v2df)__a); -} - -/// Moves double-precision values from a 256-bit vector of [4 x double] -/// to a memory location pointed to by \a __p, according to the specified -/// mask. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMASKMOVPD instruction. -/// -/// \param __p -/// A pointer to a memory location that will receive the float values. -/// \param __m -/// A 256-bit integer vector of [4 x quadword] containing the mask. The most -/// significant bit of each quadword element in the mask vector represents -/// the mask bits. If a mask bit is zero, the corresponding value from vector -/// __a is not stored and the corresponding field in the memory location -/// pointed to by \a __p is not changed. -/// \param __a -/// A 256-bit vector of [4 x double] containing the values to be stored. -static __inline void __DEFAULT_FN_ATTRS -_mm256_maskstore_pd(double *__p, __m256i __m, __m256d __a) -{ - __builtin_ia32_maskstorepd256((__v4df *)__p, (__v4di)__m, (__v4df)__a); -} - -/// Moves single-precision floating point values from a 128-bit vector -/// of [4 x float] to a memory location pointed to by \a __p, according to -/// the specified mask. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMASKMOVPS instruction. -/// -/// \param __p -/// A pointer to a memory location that will receive the float values. -/// \param __m -/// A 128-bit integer vector containing the mask. The most significant bit of -/// each field in the mask vector represents the mask bits. If a mask bit is -/// zero, the corresponding value from vector __a is not stored and the -/// corresponding field in the memory location pointed to by \a __p is not -/// changed. -/// \param __a -/// A 128-bit vector of [4 x float] containing the values to be stored. -static __inline void __DEFAULT_FN_ATTRS128 -_mm_maskstore_ps(float *__p, __m128i __m, __m128 __a) -{ - __builtin_ia32_maskstoreps((__v4sf *)__p, (__v4si)__m, (__v4sf)__a); -} - -/* Cacheability support ops */ -/// Moves integer data from a 256-bit integer vector to a 32-byte -/// aligned memory location. To minimize caching, the data is flagged as -/// non-temporal (unlikely to be used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVNTDQ instruction. -/// -/// \param __a -/// A pointer to a 32-byte aligned memory location that will receive the -/// integer values. -/// \param __b -/// A 256-bit integer vector containing the values to be moved. -static __inline void __DEFAULT_FN_ATTRS -_mm256_stream_si256(__m256i *__a, __m256i __b) -{ - typedef __v4di __v4di_aligned __attribute__((aligned(32))); - __builtin_nontemporal_store((__v4di_aligned)__b, (__v4di_aligned*)__a); -} - -/// Moves double-precision values from a 256-bit vector of [4 x double] -/// to a 32-byte aligned memory location. To minimize caching, the data is -/// flagged as non-temporal (unlikely to be used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVNTPD instruction. -/// -/// \param __a -/// A pointer to a 32-byte aligned memory location that will receive the -/// double-precision floating-point values. -/// \param __b -/// A 256-bit vector of [4 x double] containing the values to be moved. -static __inline void __DEFAULT_FN_ATTRS -_mm256_stream_pd(double *__a, __m256d __b) -{ - typedef __v4df __v4df_aligned __attribute__((aligned(32))); - __builtin_nontemporal_store((__v4df_aligned)__b, (__v4df_aligned*)__a); -} - -/// Moves single-precision floating point values from a 256-bit vector -/// of [8 x float] to a 32-byte aligned memory location. To minimize -/// caching, the data is flagged as non-temporal (unlikely to be used again -/// soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVNTPS instruction. -/// -/// \param __p -/// A pointer to a 32-byte aligned memory location that will receive the -/// single-precision floating point values. -/// \param __a -/// A 256-bit vector of [8 x float] containing the values to be moved. -static __inline void __DEFAULT_FN_ATTRS -_mm256_stream_ps(float *__p, __m256 __a) -{ - typedef __v8sf __v8sf_aligned __attribute__((aligned(32))); - __builtin_nontemporal_store((__v8sf_aligned)__a, (__v8sf_aligned*)__p); -} - -/* Create vectors */ -/// Create a 256-bit vector of [4 x double] with undefined values. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \returns A 256-bit vector of [4 x double] containing undefined values. -static __inline__ __m256d __DEFAULT_FN_ATTRS -_mm256_undefined_pd(void) -{ - return (__m256d)__builtin_ia32_undef256(); -} - -/// Create a 256-bit vector of [8 x float] with undefined values. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \returns A 256-bit vector of [8 x float] containing undefined values. -static __inline__ __m256 __DEFAULT_FN_ATTRS -_mm256_undefined_ps(void) -{ - return (__m256)__builtin_ia32_undef256(); -} - -/// Create a 256-bit integer vector with undefined values. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \returns A 256-bit integer vector containing undefined values. -static __inline__ __m256i __DEFAULT_FN_ATTRS -_mm256_undefined_si256(void) -{ - return (__m256i)__builtin_ia32_undef256(); -} - -/// Constructs a 256-bit floating-point vector of [4 x double] -/// initialized with the specified double-precision floating-point values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKLPD+VINSERTF128 -/// instruction. -/// -/// \param __a -/// A double-precision floating-point value used to initialize bits [255:192] -/// of the result. -/// \param __b -/// A double-precision floating-point value used to initialize bits [191:128] -/// of the result. -/// \param __c -/// A double-precision floating-point value used to initialize bits [127:64] -/// of the result. -/// \param __d -/// A double-precision floating-point value used to initialize bits [63:0] -/// of the result. -/// \returns An initialized 256-bit floating-point vector of [4 x double]. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_set_pd(double __a, double __b, double __c, double __d) -{ - return __extension__ (__m256d){ __d, __c, __b, __a }; -} - -/// Constructs a 256-bit floating-point vector of [8 x float] initialized -/// with the specified single-precision floating-point values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __a -/// A single-precision floating-point value used to initialize bits [255:224] -/// of the result. -/// \param __b -/// A single-precision floating-point value used to initialize bits [223:192] -/// of the result. -/// \param __c -/// A single-precision floating-point value used to initialize bits [191:160] -/// of the result. -/// \param __d -/// A single-precision floating-point value used to initialize bits [159:128] -/// of the result. -/// \param __e -/// A single-precision floating-point value used to initialize bits [127:96] -/// of the result. -/// \param __f -/// A single-precision floating-point value used to initialize bits [95:64] -/// of the result. -/// \param __g -/// A single-precision floating-point value used to initialize bits [63:32] -/// of the result. -/// \param __h -/// A single-precision floating-point value used to initialize bits [31:0] -/// of the result. -/// \returns An initialized 256-bit floating-point vector of [8 x float]. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_set_ps(float __a, float __b, float __c, float __d, - float __e, float __f, float __g, float __h) -{ - return __extension__ (__m256){ __h, __g, __f, __e, __d, __c, __b, __a }; -} - -/// Constructs a 256-bit integer vector initialized with the specified -/// 32-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __i0 -/// A 32-bit integral value used to initialize bits [255:224] of the result. -/// \param __i1 -/// A 32-bit integral value used to initialize bits [223:192] of the result. -/// \param __i2 -/// A 32-bit integral value used to initialize bits [191:160] of the result. -/// \param __i3 -/// A 32-bit integral value used to initialize bits [159:128] of the result. -/// \param __i4 -/// A 32-bit integral value used to initialize bits [127:96] of the result. -/// \param __i5 -/// A 32-bit integral value used to initialize bits [95:64] of the result. -/// \param __i6 -/// A 32-bit integral value used to initialize bits [63:32] of the result. -/// \param __i7 -/// A 32-bit integral value used to initialize bits [31:0] of the result. -/// \returns An initialized 256-bit integer vector. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_set_epi32(int __i0, int __i1, int __i2, int __i3, - int __i4, int __i5, int __i6, int __i7) -{ - return __extension__ (__m256i)(__v8si){ __i7, __i6, __i5, __i4, __i3, __i2, __i1, __i0 }; -} - -/// Constructs a 256-bit integer vector initialized with the specified -/// 16-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __w15 -/// A 16-bit integral value used to initialize bits [255:240] of the result. -/// \param __w14 -/// A 16-bit integral value used to initialize bits [239:224] of the result. -/// \param __w13 -/// A 16-bit integral value used to initialize bits [223:208] of the result. -/// \param __w12 -/// A 16-bit integral value used to initialize bits [207:192] of the result. -/// \param __w11 -/// A 16-bit integral value used to initialize bits [191:176] of the result. -/// \param __w10 -/// A 16-bit integral value used to initialize bits [175:160] of the result. -/// \param __w09 -/// A 16-bit integral value used to initialize bits [159:144] of the result. -/// \param __w08 -/// A 16-bit integral value used to initialize bits [143:128] of the result. -/// \param __w07 -/// A 16-bit integral value used to initialize bits [127:112] of the result. -/// \param __w06 -/// A 16-bit integral value used to initialize bits [111:96] of the result. -/// \param __w05 -/// A 16-bit integral value used to initialize bits [95:80] of the result. -/// \param __w04 -/// A 16-bit integral value used to initialize bits [79:64] of the result. -/// \param __w03 -/// A 16-bit integral value used to initialize bits [63:48] of the result. -/// \param __w02 -/// A 16-bit integral value used to initialize bits [47:32] of the result. -/// \param __w01 -/// A 16-bit integral value used to initialize bits [31:16] of the result. -/// \param __w00 -/// A 16-bit integral value used to initialize bits [15:0] of the result. -/// \returns An initialized 256-bit integer vector. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_set_epi16(short __w15, short __w14, short __w13, short __w12, - short __w11, short __w10, short __w09, short __w08, - short __w07, short __w06, short __w05, short __w04, - short __w03, short __w02, short __w01, short __w00) -{ - return __extension__ (__m256i)(__v16hi){ __w00, __w01, __w02, __w03, __w04, __w05, __w06, - __w07, __w08, __w09, __w10, __w11, __w12, __w13, __w14, __w15 }; -} - -/// Constructs a 256-bit integer vector initialized with the specified -/// 8-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __b31 -/// An 8-bit integral value used to initialize bits [255:248] of the result. -/// \param __b30 -/// An 8-bit integral value used to initialize bits [247:240] of the result. -/// \param __b29 -/// An 8-bit integral value used to initialize bits [239:232] of the result. -/// \param __b28 -/// An 8-bit integral value used to initialize bits [231:224] of the result. -/// \param __b27 -/// An 8-bit integral value used to initialize bits [223:216] of the result. -/// \param __b26 -/// An 8-bit integral value used to initialize bits [215:208] of the result. -/// \param __b25 -/// An 8-bit integral value used to initialize bits [207:200] of the result. -/// \param __b24 -/// An 8-bit integral value used to initialize bits [199:192] of the result. -/// \param __b23 -/// An 8-bit integral value used to initialize bits [191:184] of the result. -/// \param __b22 -/// An 8-bit integral value used to initialize bits [183:176] of the result. -/// \param __b21 -/// An 8-bit integral value used to initialize bits [175:168] of the result. -/// \param __b20 -/// An 8-bit integral value used to initialize bits [167:160] of the result. -/// \param __b19 -/// An 8-bit integral value used to initialize bits [159:152] of the result. -/// \param __b18 -/// An 8-bit integral value used to initialize bits [151:144] of the result. -/// \param __b17 -/// An 8-bit integral value used to initialize bits [143:136] of the result. -/// \param __b16 -/// An 8-bit integral value used to initialize bits [135:128] of the result. -/// \param __b15 -/// An 8-bit integral value used to initialize bits [127:120] of the result. -/// \param __b14 -/// An 8-bit integral value used to initialize bits [119:112] of the result. -/// \param __b13 -/// An 8-bit integral value used to initialize bits [111:104] of the result. -/// \param __b12 -/// An 8-bit integral value used to initialize bits [103:96] of the result. -/// \param __b11 -/// An 8-bit integral value used to initialize bits [95:88] of the result. -/// \param __b10 -/// An 8-bit integral value used to initialize bits [87:80] of the result. -/// \param __b09 -/// An 8-bit integral value used to initialize bits [79:72] of the result. -/// \param __b08 -/// An 8-bit integral value used to initialize bits [71:64] of the result. -/// \param __b07 -/// An 8-bit integral value used to initialize bits [63:56] of the result. -/// \param __b06 -/// An 8-bit integral value used to initialize bits [55:48] of the result. -/// \param __b05 -/// An 8-bit integral value used to initialize bits [47:40] of the result. -/// \param __b04 -/// An 8-bit integral value used to initialize bits [39:32] of the result. -/// \param __b03 -/// An 8-bit integral value used to initialize bits [31:24] of the result. -/// \param __b02 -/// An 8-bit integral value used to initialize bits [23:16] of the result. -/// \param __b01 -/// An 8-bit integral value used to initialize bits [15:8] of the result. -/// \param __b00 -/// An 8-bit integral value used to initialize bits [7:0] of the result. -/// \returns An initialized 256-bit integer vector. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_set_epi8(char __b31, char __b30, char __b29, char __b28, - char __b27, char __b26, char __b25, char __b24, - char __b23, char __b22, char __b21, char __b20, - char __b19, char __b18, char __b17, char __b16, - char __b15, char __b14, char __b13, char __b12, - char __b11, char __b10, char __b09, char __b08, - char __b07, char __b06, char __b05, char __b04, - char __b03, char __b02, char __b01, char __b00) -{ - return __extension__ (__m256i)(__v32qi){ - __b00, __b01, __b02, __b03, __b04, __b05, __b06, __b07, - __b08, __b09, __b10, __b11, __b12, __b13, __b14, __b15, - __b16, __b17, __b18, __b19, __b20, __b21, __b22, __b23, - __b24, __b25, __b26, __b27, __b28, __b29, __b30, __b31 - }; -} - -/// Constructs a 256-bit integer vector initialized with the specified -/// 64-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPUNPCKLQDQ+VINSERTF128 -/// instruction. -/// -/// \param __a -/// A 64-bit integral value used to initialize bits [255:192] of the result. -/// \param __b -/// A 64-bit integral value used to initialize bits [191:128] of the result. -/// \param __c -/// A 64-bit integral value used to initialize bits [127:64] of the result. -/// \param __d -/// A 64-bit integral value used to initialize bits [63:0] of the result. -/// \returns An initialized 256-bit integer vector. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_set_epi64x(long long __a, long long __b, long long __c, long long __d) -{ - return __extension__ (__m256i)(__v4di){ __d, __c, __b, __a }; -} - -/* Create vectors with elements in reverse order */ -/// Constructs a 256-bit floating-point vector of [4 x double], -/// initialized in reverse order with the specified double-precision -/// floating-point values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKLPD+VINSERTF128 -/// instruction. -/// -/// \param __a -/// A double-precision floating-point value used to initialize bits [63:0] -/// of the result. -/// \param __b -/// A double-precision floating-point value used to initialize bits [127:64] -/// of the result. -/// \param __c -/// A double-precision floating-point value used to initialize bits [191:128] -/// of the result. -/// \param __d -/// A double-precision floating-point value used to initialize bits [255:192] -/// of the result. -/// \returns An initialized 256-bit floating-point vector of [4 x double]. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_setr_pd(double __a, double __b, double __c, double __d) -{ - return _mm256_set_pd(__d, __c, __b, __a); -} - -/// Constructs a 256-bit floating-point vector of [8 x float], -/// initialized in reverse order with the specified single-precision -/// float-point values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __a -/// A single-precision floating-point value used to initialize bits [31:0] -/// of the result. -/// \param __b -/// A single-precision floating-point value used to initialize bits [63:32] -/// of the result. -/// \param __c -/// A single-precision floating-point value used to initialize bits [95:64] -/// of the result. -/// \param __d -/// A single-precision floating-point value used to initialize bits [127:96] -/// of the result. -/// \param __e -/// A single-precision floating-point value used to initialize bits [159:128] -/// of the result. -/// \param __f -/// A single-precision floating-point value used to initialize bits [191:160] -/// of the result. -/// \param __g -/// A single-precision floating-point value used to initialize bits [223:192] -/// of the result. -/// \param __h -/// A single-precision floating-point value used to initialize bits [255:224] -/// of the result. -/// \returns An initialized 256-bit floating-point vector of [8 x float]. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_setr_ps(float __a, float __b, float __c, float __d, - float __e, float __f, float __g, float __h) -{ - return _mm256_set_ps(__h, __g, __f, __e, __d, __c, __b, __a); -} - -/// Constructs a 256-bit integer vector, initialized in reverse order -/// with the specified 32-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __i0 -/// A 32-bit integral value used to initialize bits [31:0] of the result. -/// \param __i1 -/// A 32-bit integral value used to initialize bits [63:32] of the result. -/// \param __i2 -/// A 32-bit integral value used to initialize bits [95:64] of the result. -/// \param __i3 -/// A 32-bit integral value used to initialize bits [127:96] of the result. -/// \param __i4 -/// A 32-bit integral value used to initialize bits [159:128] of the result. -/// \param __i5 -/// A 32-bit integral value used to initialize bits [191:160] of the result. -/// \param __i6 -/// A 32-bit integral value used to initialize bits [223:192] of the result. -/// \param __i7 -/// A 32-bit integral value used to initialize bits [255:224] of the result. -/// \returns An initialized 256-bit integer vector. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_setr_epi32(int __i0, int __i1, int __i2, int __i3, - int __i4, int __i5, int __i6, int __i7) -{ - return _mm256_set_epi32(__i7, __i6, __i5, __i4, __i3, __i2, __i1, __i0); -} - -/// Constructs a 256-bit integer vector, initialized in reverse order -/// with the specified 16-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __w15 -/// A 16-bit integral value used to initialize bits [15:0] of the result. -/// \param __w14 -/// A 16-bit integral value used to initialize bits [31:16] of the result. -/// \param __w13 -/// A 16-bit integral value used to initialize bits [47:32] of the result. -/// \param __w12 -/// A 16-bit integral value used to initialize bits [63:48] of the result. -/// \param __w11 -/// A 16-bit integral value used to initialize bits [79:64] of the result. -/// \param __w10 -/// A 16-bit integral value used to initialize bits [95:80] of the result. -/// \param __w09 -/// A 16-bit integral value used to initialize bits [111:96] of the result. -/// \param __w08 -/// A 16-bit integral value used to initialize bits [127:112] of the result. -/// \param __w07 -/// A 16-bit integral value used to initialize bits [143:128] of the result. -/// \param __w06 -/// A 16-bit integral value used to initialize bits [159:144] of the result. -/// \param __w05 -/// A 16-bit integral value used to initialize bits [175:160] of the result. -/// \param __w04 -/// A 16-bit integral value used to initialize bits [191:176] of the result. -/// \param __w03 -/// A 16-bit integral value used to initialize bits [207:192] of the result. -/// \param __w02 -/// A 16-bit integral value used to initialize bits [223:208] of the result. -/// \param __w01 -/// A 16-bit integral value used to initialize bits [239:224] of the result. -/// \param __w00 -/// A 16-bit integral value used to initialize bits [255:240] of the result. -/// \returns An initialized 256-bit integer vector. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_setr_epi16(short __w15, short __w14, short __w13, short __w12, - short __w11, short __w10, short __w09, short __w08, - short __w07, short __w06, short __w05, short __w04, - short __w03, short __w02, short __w01, short __w00) -{ - return _mm256_set_epi16(__w00, __w01, __w02, __w03, - __w04, __w05, __w06, __w07, - __w08, __w09, __w10, __w11, - __w12, __w13, __w14, __w15); -} - -/// Constructs a 256-bit integer vector, initialized in reverse order -/// with the specified 8-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __b31 -/// An 8-bit integral value used to initialize bits [7:0] of the result. -/// \param __b30 -/// An 8-bit integral value used to initialize bits [15:8] of the result. -/// \param __b29 -/// An 8-bit integral value used to initialize bits [23:16] of the result. -/// \param __b28 -/// An 8-bit integral value used to initialize bits [31:24] of the result. -/// \param __b27 -/// An 8-bit integral value used to initialize bits [39:32] of the result. -/// \param __b26 -/// An 8-bit integral value used to initialize bits [47:40] of the result. -/// \param __b25 -/// An 8-bit integral value used to initialize bits [55:48] of the result. -/// \param __b24 -/// An 8-bit integral value used to initialize bits [63:56] of the result. -/// \param __b23 -/// An 8-bit integral value used to initialize bits [71:64] of the result. -/// \param __b22 -/// An 8-bit integral value used to initialize bits [79:72] of the result. -/// \param __b21 -/// An 8-bit integral value used to initialize bits [87:80] of the result. -/// \param __b20 -/// An 8-bit integral value used to initialize bits [95:88] of the result. -/// \param __b19 -/// An 8-bit integral value used to initialize bits [103:96] of the result. -/// \param __b18 -/// An 8-bit integral value used to initialize bits [111:104] of the result. -/// \param __b17 -/// An 8-bit integral value used to initialize bits [119:112] of the result. -/// \param __b16 -/// An 8-bit integral value used to initialize bits [127:120] of the result. -/// \param __b15 -/// An 8-bit integral value used to initialize bits [135:128] of the result. -/// \param __b14 -/// An 8-bit integral value used to initialize bits [143:136] of the result. -/// \param __b13 -/// An 8-bit integral value used to initialize bits [151:144] of the result. -/// \param __b12 -/// An 8-bit integral value used to initialize bits [159:152] of the result. -/// \param __b11 -/// An 8-bit integral value used to initialize bits [167:160] of the result. -/// \param __b10 -/// An 8-bit integral value used to initialize bits [175:168] of the result. -/// \param __b09 -/// An 8-bit integral value used to initialize bits [183:176] of the result. -/// \param __b08 -/// An 8-bit integral value used to initialize bits [191:184] of the result. -/// \param __b07 -/// An 8-bit integral value used to initialize bits [199:192] of the result. -/// \param __b06 -/// An 8-bit integral value used to initialize bits [207:200] of the result. -/// \param __b05 -/// An 8-bit integral value used to initialize bits [215:208] of the result. -/// \param __b04 -/// An 8-bit integral value used to initialize bits [223:216] of the result. -/// \param __b03 -/// An 8-bit integral value used to initialize bits [231:224] of the result. -/// \param __b02 -/// An 8-bit integral value used to initialize bits [239:232] of the result. -/// \param __b01 -/// An 8-bit integral value used to initialize bits [247:240] of the result. -/// \param __b00 -/// An 8-bit integral value used to initialize bits [255:248] of the result. -/// \returns An initialized 256-bit integer vector. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_setr_epi8(char __b31, char __b30, char __b29, char __b28, - char __b27, char __b26, char __b25, char __b24, - char __b23, char __b22, char __b21, char __b20, - char __b19, char __b18, char __b17, char __b16, - char __b15, char __b14, char __b13, char __b12, - char __b11, char __b10, char __b09, char __b08, - char __b07, char __b06, char __b05, char __b04, - char __b03, char __b02, char __b01, char __b00) -{ - return _mm256_set_epi8(__b00, __b01, __b02, __b03, __b04, __b05, __b06, __b07, - __b08, __b09, __b10, __b11, __b12, __b13, __b14, __b15, - __b16, __b17, __b18, __b19, __b20, __b21, __b22, __b23, - __b24, __b25, __b26, __b27, __b28, __b29, __b30, __b31); -} - -/// Constructs a 256-bit integer vector, initialized in reverse order -/// with the specified 64-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPUNPCKLQDQ+VINSERTF128 -/// instruction. -/// -/// \param __a -/// A 64-bit integral value used to initialize bits [63:0] of the result. -/// \param __b -/// A 64-bit integral value used to initialize bits [127:64] of the result. -/// \param __c -/// A 64-bit integral value used to initialize bits [191:128] of the result. -/// \param __d -/// A 64-bit integral value used to initialize bits [255:192] of the result. -/// \returns An initialized 256-bit integer vector. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_setr_epi64x(long long __a, long long __b, long long __c, long long __d) -{ - return _mm256_set_epi64x(__d, __c, __b, __a); -} - -/* Create vectors with repeated elements */ -/// Constructs a 256-bit floating-point vector of [4 x double], with each -/// of the four double-precision floating-point vector elements set to the -/// specified double-precision floating-point value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDDUP+VINSERTF128 instruction. -/// -/// \param __w -/// A double-precision floating-point value used to initialize each vector -/// element of the result. -/// \returns An initialized 256-bit floating-point vector of [4 x double]. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_set1_pd(double __w) -{ - return _mm256_set_pd(__w, __w, __w, __w); -} - -/// Constructs a 256-bit floating-point vector of [8 x float], with each -/// of the eight single-precision floating-point vector elements set to the -/// specified single-precision floating-point value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPERMILPS+VINSERTF128 -/// instruction. -/// -/// \param __w -/// A single-precision floating-point value used to initialize each vector -/// element of the result. -/// \returns An initialized 256-bit floating-point vector of [8 x float]. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_set1_ps(float __w) -{ - return _mm256_set_ps(__w, __w, __w, __w, __w, __w, __w, __w); -} - -/// Constructs a 256-bit integer vector of [8 x i32], with each of the -/// 32-bit integral vector elements set to the specified 32-bit integral -/// value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPERMILPS+VINSERTF128 -/// instruction. -/// -/// \param __i -/// A 32-bit integral value used to initialize each vector element of the -/// result. -/// \returns An initialized 256-bit integer vector of [8 x i32]. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_set1_epi32(int __i) -{ - return _mm256_set_epi32(__i, __i, __i, __i, __i, __i, __i, __i); -} - -/// Constructs a 256-bit integer vector of [16 x i16], with each of the -/// 16-bit integral vector elements set to the specified 16-bit integral -/// value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSHUFB+VINSERTF128 instruction. -/// -/// \param __w -/// A 16-bit integral value used to initialize each vector element of the -/// result. -/// \returns An initialized 256-bit integer vector of [16 x i16]. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_set1_epi16(short __w) -{ - return _mm256_set_epi16(__w, __w, __w, __w, __w, __w, __w, __w, - __w, __w, __w, __w, __w, __w, __w, __w); -} - -/// Constructs a 256-bit integer vector of [32 x i8], with each of the -/// 8-bit integral vector elements set to the specified 8-bit integral value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSHUFB+VINSERTF128 instruction. -/// -/// \param __b -/// An 8-bit integral value used to initialize each vector element of the -/// result. -/// \returns An initialized 256-bit integer vector of [32 x i8]. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_set1_epi8(char __b) -{ - return _mm256_set_epi8(__b, __b, __b, __b, __b, __b, __b, __b, - __b, __b, __b, __b, __b, __b, __b, __b, - __b, __b, __b, __b, __b, __b, __b, __b, - __b, __b, __b, __b, __b, __b, __b, __b); -} - -/// Constructs a 256-bit integer vector of [4 x i64], with each of the -/// 64-bit integral vector elements set to the specified 64-bit integral -/// value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDDUP+VINSERTF128 instruction. -/// -/// \param __q -/// A 64-bit integral value used to initialize each vector element of the -/// result. -/// \returns An initialized 256-bit integer vector of [4 x i64]. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_set1_epi64x(long long __q) -{ - return _mm256_set_epi64x(__q, __q, __q, __q); -} - -/* Create __zeroed vectors */ -/// Constructs a 256-bit floating-point vector of [4 x double] with all -/// vector elements initialized to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VXORPS instruction. -/// -/// \returns A 256-bit vector of [4 x double] with all elements set to zero. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_setzero_pd(void) -{ - return __extension__ (__m256d){ 0, 0, 0, 0 }; -} - -/// Constructs a 256-bit floating-point vector of [8 x float] with all -/// vector elements initialized to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VXORPS instruction. -/// -/// \returns A 256-bit vector of [8 x float] with all elements set to zero. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_setzero_ps(void) -{ - return __extension__ (__m256){ 0, 0, 0, 0, 0, 0, 0, 0 }; -} - -/// Constructs a 256-bit integer vector initialized to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VXORPS instruction. -/// -/// \returns A 256-bit integer vector initialized to zero. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_setzero_si256(void) -{ - return __extension__ (__m256i)(__v4di){ 0, 0, 0, 0 }; -} - -/* Cast between vector types */ -/// Casts a 256-bit floating-point vector of [4 x double] into a 256-bit -/// floating-point vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit floating-point vector of [4 x double]. -/// \returns A 256-bit floating-point vector of [8 x float] containing the same -/// bitwise pattern as the parameter. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_castpd_ps(__m256d __a) -{ - return (__m256)__a; -} - -/// Casts a 256-bit floating-point vector of [4 x double] into a 256-bit -/// integer vector. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit floating-point vector of [4 x double]. -/// \returns A 256-bit integer vector containing the same bitwise pattern as the -/// parameter. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_castpd_si256(__m256d __a) -{ - return (__m256i)__a; -} - -/// Casts a 256-bit floating-point vector of [8 x float] into a 256-bit -/// floating-point vector of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit floating-point vector of [8 x float]. -/// \returns A 256-bit floating-point vector of [4 x double] containing the same -/// bitwise pattern as the parameter. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_castps_pd(__m256 __a) -{ - return (__m256d)__a; -} - -/// Casts a 256-bit floating-point vector of [8 x float] into a 256-bit -/// integer vector. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit floating-point vector of [8 x float]. -/// \returns A 256-bit integer vector containing the same bitwise pattern as the -/// parameter. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_castps_si256(__m256 __a) -{ - return (__m256i)__a; -} - -/// Casts a 256-bit integer vector into a 256-bit floating-point vector -/// of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit integer vector. -/// \returns A 256-bit floating-point vector of [8 x float] containing the same -/// bitwise pattern as the parameter. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_castsi256_ps(__m256i __a) -{ - return (__m256)__a; -} - -/// Casts a 256-bit integer vector into a 256-bit floating-point vector -/// of [4 x double]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit integer vector. -/// \returns A 256-bit floating-point vector of [4 x double] containing the same -/// bitwise pattern as the parameter. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_castsi256_pd(__m256i __a) -{ - return (__m256d)__a; -} - -/// Returns the lower 128 bits of a 256-bit floating-point vector of -/// [4 x double] as a 128-bit floating-point vector of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit floating-point vector of [4 x double]. -/// \returns A 128-bit floating-point vector of [2 x double] containing the -/// lower 128 bits of the parameter. -static __inline __m128d __DEFAULT_FN_ATTRS -_mm256_castpd256_pd128(__m256d __a) -{ - return __builtin_shufflevector((__v4df)__a, (__v4df)__a, 0, 1); -} - -/// Returns the lower 128 bits of a 256-bit floating-point vector of -/// [8 x float] as a 128-bit floating-point vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit floating-point vector of [8 x float]. -/// \returns A 128-bit floating-point vector of [4 x float] containing the -/// lower 128 bits of the parameter. -static __inline __m128 __DEFAULT_FN_ATTRS -_mm256_castps256_ps128(__m256 __a) -{ - return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 0, 1, 2, 3); -} - -/// Truncates a 256-bit integer vector into a 128-bit integer vector. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 256-bit integer vector. -/// \returns A 128-bit integer vector containing the lower 128 bits of the -/// parameter. -static __inline __m128i __DEFAULT_FN_ATTRS -_mm256_castsi256_si128(__m256i __a) -{ - return __builtin_shufflevector((__v4di)__a, (__v4di)__a, 0, 1); -} - -/// Constructs a 256-bit floating-point vector of [4 x double] from a -/// 128-bit floating-point vector of [2 x double]. -/// -/// The lower 128 bits contain the value of the source vector. The contents -/// of the upper 128 bits are undefined. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \returns A 256-bit floating-point vector of [4 x double]. The lower 128 bits -/// contain the value of the parameter. The contents of the upper 128 bits -/// are undefined. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_castpd128_pd256(__m128d __a) -{ - return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 1, -1, -1); -} - -/// Constructs a 256-bit floating-point vector of [8 x float] from a -/// 128-bit floating-point vector of [4 x float]. -/// -/// The lower 128 bits contain the value of the source vector. The contents -/// of the upper 128 bits are undefined. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 256-bit floating-point vector of [8 x float]. The lower 128 bits -/// contain the value of the parameter. The contents of the upper 128 bits -/// are undefined. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_castps128_ps256(__m128 __a) -{ - return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1, 2, 3, -1, -1, -1, -1); -} - -/// Constructs a 256-bit integer vector from a 128-bit integer vector. -/// -/// The lower 128 bits contain the value of the source vector. The contents -/// of the upper 128 bits are undefined. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \returns A 256-bit integer vector. The lower 128 bits contain the value of -/// the parameter. The contents of the upper 128 bits are undefined. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_castsi128_si256(__m128i __a) -{ - return __builtin_shufflevector((__v2di)__a, (__v2di)__a, 0, 1, -1, -1); -} - -/// Constructs a 256-bit floating-point vector of [4 x double] from a -/// 128-bit floating-point vector of [2 x double]. The lower 128 bits -/// contain the value of the source vector. The upper 128 bits are set -/// to zero. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \returns A 256-bit floating-point vector of [4 x double]. The lower 128 bits -/// contain the value of the parameter. The upper 128 bits are set to zero. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_zextpd128_pd256(__m128d __a) -{ - return __builtin_shufflevector((__v2df)__a, (__v2df)_mm_setzero_pd(), 0, 1, 2, 3); -} - -/// Constructs a 256-bit floating-point vector of [8 x float] from a -/// 128-bit floating-point vector of [4 x float]. The lower 128 bits contain -/// the value of the source vector. The upper 128 bits are set to zero. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 256-bit floating-point vector of [8 x float]. The lower 128 bits -/// contain the value of the parameter. The upper 128 bits are set to zero. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_zextps128_ps256(__m128 __a) -{ - return __builtin_shufflevector((__v4sf)__a, (__v4sf)_mm_setzero_ps(), 0, 1, 2, 3, 4, 5, 6, 7); -} - -/// Constructs a 256-bit integer vector from a 128-bit integer vector. -/// The lower 128 bits contain the value of the source vector. The upper -/// 128 bits are set to zero. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \returns A 256-bit integer vector. The lower 128 bits contain the value of -/// the parameter. The upper 128 bits are set to zero. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_zextsi128_si256(__m128i __a) -{ - return __builtin_shufflevector((__v2di)__a, (__v2di)_mm_setzero_si128(), 0, 1, 2, 3); -} - -/* - Vector insert. - We use macros rather than inlines because we only want to accept - invocations where the immediate M is a constant expression. -*/ -/// Constructs a new 256-bit vector of [8 x float] by first duplicating -/// a 256-bit vector of [8 x float] given in the first parameter, and then -/// replacing either the upper or the lower 128 bits with the contents of a -/// 128-bit vector of [4 x float] in the second parameter. -/// -/// The immediate integer parameter determines between the upper or the lower -/// 128 bits. -/// -/// \headerfile -/// -/// \code -/// __m256 _mm256_insertf128_ps(__m256 V1, __m128 V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VINSERTF128 instruction. -/// -/// \param V1 -/// A 256-bit vector of [8 x float]. This vector is copied to the result -/// first, and then either the upper or the lower 128 bits of the result will -/// be replaced by the contents of \a V2. -/// \param V2 -/// A 128-bit vector of [4 x float]. The contents of this parameter are -/// written to either the upper or the lower 128 bits of the result depending -/// on the value of parameter \a M. -/// \param M -/// An immediate integer. The least significant bit determines how the values -/// from the two parameters are interleaved: \n -/// If bit [0] of \a M is 0, \a V2 are copied to bits [127:0] of the result, -/// and bits [255:128] of \a V1 are copied to bits [255:128] of the -/// result. \n -/// If bit [0] of \a M is 1, \a V2 are copied to bits [255:128] of the -/// result, and bits [127:0] of \a V1 are copied to bits [127:0] of the -/// result. -/// \returns A 256-bit vector of [8 x float] containing the interleaved values. -#define _mm256_insertf128_ps(V1, V2, M) \ - (__m256)__builtin_ia32_vinsertf128_ps256((__v8sf)(__m256)(V1), \ - (__v4sf)(__m128)(V2), (int)(M)) - -/// Constructs a new 256-bit vector of [4 x double] by first duplicating -/// a 256-bit vector of [4 x double] given in the first parameter, and then -/// replacing either the upper or the lower 128 bits with the contents of a -/// 128-bit vector of [2 x double] in the second parameter. -/// -/// The immediate integer parameter determines between the upper or the lower -/// 128 bits. -/// -/// \headerfile -/// -/// \code -/// __m256d _mm256_insertf128_pd(__m256d V1, __m128d V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VINSERTF128 instruction. -/// -/// \param V1 -/// A 256-bit vector of [4 x double]. This vector is copied to the result -/// first, and then either the upper or the lower 128 bits of the result will -/// be replaced by the contents of \a V2. -/// \param V2 -/// A 128-bit vector of [2 x double]. The contents of this parameter are -/// written to either the upper or the lower 128 bits of the result depending -/// on the value of parameter \a M. -/// \param M -/// An immediate integer. The least significant bit determines how the values -/// from the two parameters are interleaved: \n -/// If bit [0] of \a M is 0, \a V2 are copied to bits [127:0] of the result, -/// and bits [255:128] of \a V1 are copied to bits [255:128] of the -/// result. \n -/// If bit [0] of \a M is 1, \a V2 are copied to bits [255:128] of the -/// result, and bits [127:0] of \a V1 are copied to bits [127:0] of the -/// result. -/// \returns A 256-bit vector of [4 x double] containing the interleaved values. -#define _mm256_insertf128_pd(V1, V2, M) \ - (__m256d)__builtin_ia32_vinsertf128_pd256((__v4df)(__m256d)(V1), \ - (__v2df)(__m128d)(V2), (int)(M)) - -/// Constructs a new 256-bit integer vector by first duplicating a -/// 256-bit integer vector given in the first parameter, and then replacing -/// either the upper or the lower 128 bits with the contents of a 128-bit -/// integer vector in the second parameter. -/// -/// The immediate integer parameter determines between the upper or the lower -/// 128 bits. -/// -/// \headerfile -/// -/// \code -/// __m256i _mm256_insertf128_si256(__m256i V1, __m128i V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VINSERTF128 instruction. -/// -/// \param V1 -/// A 256-bit integer vector. This vector is copied to the result first, and -/// then either the upper or the lower 128 bits of the result will be -/// replaced by the contents of \a V2. -/// \param V2 -/// A 128-bit integer vector. The contents of this parameter are written to -/// either the upper or the lower 128 bits of the result depending on the -/// value of parameter \a M. -/// \param M -/// An immediate integer. The least significant bit determines how the values -/// from the two parameters are interleaved: \n -/// If bit [0] of \a M is 0, \a V2 are copied to bits [127:0] of the result, -/// and bits [255:128] of \a V1 are copied to bits [255:128] of the -/// result. \n -/// If bit [0] of \a M is 1, \a V2 are copied to bits [255:128] of the -/// result, and bits [127:0] of \a V1 are copied to bits [127:0] of the -/// result. -/// \returns A 256-bit integer vector containing the interleaved values. -#define _mm256_insertf128_si256(V1, V2, M) \ - (__m256i)__builtin_ia32_vinsertf128_si256((__v8si)(__m256i)(V1), \ - (__v4si)(__m128i)(V2), (int)(M)) - -/* - Vector extract. - We use macros rather than inlines because we only want to accept - invocations where the immediate M is a constant expression. -*/ -/// Extracts either the upper or the lower 128 bits from a 256-bit vector -/// of [8 x float], as determined by the immediate integer parameter, and -/// returns the extracted bits as a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm256_extractf128_ps(__m256 V, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VEXTRACTF128 instruction. -/// -/// \param V -/// A 256-bit vector of [8 x float]. -/// \param M -/// An immediate integer. The least significant bit determines which bits are -/// extracted from the first parameter: \n -/// If bit [0] of \a M is 0, bits [127:0] of \a V are copied to the -/// result. \n -/// If bit [0] of \a M is 1, bits [255:128] of \a V are copied to the result. -/// \returns A 128-bit vector of [4 x float] containing the extracted bits. -#define _mm256_extractf128_ps(V, M) \ - (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(V), (int)(M)) - -/// Extracts either the upper or the lower 128 bits from a 256-bit vector -/// of [4 x double], as determined by the immediate integer parameter, and -/// returns the extracted bits as a 128-bit vector of [2 x double]. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm256_extractf128_pd(__m256d V, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VEXTRACTF128 instruction. -/// -/// \param V -/// A 256-bit vector of [4 x double]. -/// \param M -/// An immediate integer. The least significant bit determines which bits are -/// extracted from the first parameter: \n -/// If bit [0] of \a M is 0, bits [127:0] of \a V are copied to the -/// result. \n -/// If bit [0] of \a M is 1, bits [255:128] of \a V are copied to the result. -/// \returns A 128-bit vector of [2 x double] containing the extracted bits. -#define _mm256_extractf128_pd(V, M) \ - (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(V), (int)(M)) - -/// Extracts either the upper or the lower 128 bits from a 256-bit -/// integer vector, as determined by the immediate integer parameter, and -/// returns the extracted bits as a 128-bit integer vector. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm256_extractf128_si256(__m256i V, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VEXTRACTF128 instruction. -/// -/// \param V -/// A 256-bit integer vector. -/// \param M -/// An immediate integer. The least significant bit determines which bits are -/// extracted from the first parameter: \n -/// If bit [0] of \a M is 0, bits [127:0] of \a V are copied to the -/// result. \n -/// If bit [0] of \a M is 1, bits [255:128] of \a V are copied to the result. -/// \returns A 128-bit integer vector containing the extracted bits. -#define _mm256_extractf128_si256(V, M) \ - (__m128i)__builtin_ia32_vextractf128_si256((__v8si)(__m256i)(V), (int)(M)) - -/* SIMD load ops (unaligned) */ -/// Loads two 128-bit floating-point vectors of [4 x float] from -/// unaligned memory locations and constructs a 256-bit floating-point vector -/// of [8 x float] by concatenating the two 128-bit vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to load instructions followed by the -/// VINSERTF128 instruction. -/// -/// \param __addr_hi -/// A pointer to a 128-bit memory location containing 4 consecutive -/// single-precision floating-point values. These values are to be copied to -/// bits[255:128] of the result. The address of the memory location does not -/// have to be aligned. -/// \param __addr_lo -/// A pointer to a 128-bit memory location containing 4 consecutive -/// single-precision floating-point values. These values are to be copied to -/// bits[127:0] of the result. The address of the memory location does not -/// have to be aligned. -/// \returns A 256-bit floating-point vector of [8 x float] containing the -/// concatenated result. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_loadu2_m128(float const *__addr_hi, float const *__addr_lo) -{ - __m256 __v256 = _mm256_castps128_ps256(_mm_loadu_ps(__addr_lo)); - return _mm256_insertf128_ps(__v256, _mm_loadu_ps(__addr_hi), 1); -} - -/// Loads two 128-bit floating-point vectors of [2 x double] from -/// unaligned memory locations and constructs a 256-bit floating-point vector -/// of [4 x double] by concatenating the two 128-bit vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to load instructions followed by the -/// VINSERTF128 instruction. -/// -/// \param __addr_hi -/// A pointer to a 128-bit memory location containing two consecutive -/// double-precision floating-point values. These values are to be copied to -/// bits[255:128] of the result. The address of the memory location does not -/// have to be aligned. -/// \param __addr_lo -/// A pointer to a 128-bit memory location containing two consecutive -/// double-precision floating-point values. These values are to be copied to -/// bits[127:0] of the result. The address of the memory location does not -/// have to be aligned. -/// \returns A 256-bit floating-point vector of [4 x double] containing the -/// concatenated result. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_loadu2_m128d(double const *__addr_hi, double const *__addr_lo) -{ - __m256d __v256 = _mm256_castpd128_pd256(_mm_loadu_pd(__addr_lo)); - return _mm256_insertf128_pd(__v256, _mm_loadu_pd(__addr_hi), 1); -} - -/// Loads two 128-bit integer vectors from unaligned memory locations and -/// constructs a 256-bit integer vector by concatenating the two 128-bit -/// vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to load instructions followed by the -/// VINSERTF128 instruction. -/// -/// \param __addr_hi -/// A pointer to a 128-bit memory location containing a 128-bit integer -/// vector. This vector is to be copied to bits[255:128] of the result. The -/// address of the memory location does not have to be aligned. -/// \param __addr_lo -/// A pointer to a 128-bit memory location containing a 128-bit integer -/// vector. This vector is to be copied to bits[127:0] of the result. The -/// address of the memory location does not have to be aligned. -/// \returns A 256-bit integer vector containing the concatenated result. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_loadu2_m128i(__m128i_u const *__addr_hi, __m128i_u const *__addr_lo) -{ - __m256i __v256 = _mm256_castsi128_si256(_mm_loadu_si128(__addr_lo)); - return _mm256_insertf128_si256(__v256, _mm_loadu_si128(__addr_hi), 1); -} - -/* SIMD store ops (unaligned) */ -/// Stores the upper and lower 128 bits of a 256-bit floating-point -/// vector of [8 x float] into two different unaligned memory locations. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VEXTRACTF128 instruction and the -/// store instructions. -/// -/// \param __addr_hi -/// A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be -/// copied to this memory location. The address of this memory location does -/// not have to be aligned. -/// \param __addr_lo -/// A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be -/// copied to this memory location. The address of this memory location does -/// not have to be aligned. -/// \param __a -/// A 256-bit floating-point vector of [8 x float]. -static __inline void __DEFAULT_FN_ATTRS -_mm256_storeu2_m128(float *__addr_hi, float *__addr_lo, __m256 __a) -{ - __m128 __v128; - - __v128 = _mm256_castps256_ps128(__a); - _mm_storeu_ps(__addr_lo, __v128); - __v128 = _mm256_extractf128_ps(__a, 1); - _mm_storeu_ps(__addr_hi, __v128); -} - -/// Stores the upper and lower 128 bits of a 256-bit floating-point -/// vector of [4 x double] into two different unaligned memory locations. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VEXTRACTF128 instruction and the -/// store instructions. -/// -/// \param __addr_hi -/// A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be -/// copied to this memory location. The address of this memory location does -/// not have to be aligned. -/// \param __addr_lo -/// A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be -/// copied to this memory location. The address of this memory location does -/// not have to be aligned. -/// \param __a -/// A 256-bit floating-point vector of [4 x double]. -static __inline void __DEFAULT_FN_ATTRS -_mm256_storeu2_m128d(double *__addr_hi, double *__addr_lo, __m256d __a) -{ - __m128d __v128; - - __v128 = _mm256_castpd256_pd128(__a); - _mm_storeu_pd(__addr_lo, __v128); - __v128 = _mm256_extractf128_pd(__a, 1); - _mm_storeu_pd(__addr_hi, __v128); -} - -/// Stores the upper and lower 128 bits of a 256-bit integer vector into -/// two different unaligned memory locations. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VEXTRACTF128 instruction and the -/// store instructions. -/// -/// \param __addr_hi -/// A pointer to a 128-bit memory location. Bits[255:128] of \a __a are to be -/// copied to this memory location. The address of this memory location does -/// not have to be aligned. -/// \param __addr_lo -/// A pointer to a 128-bit memory location. Bits[127:0] of \a __a are to be -/// copied to this memory location. The address of this memory location does -/// not have to be aligned. -/// \param __a -/// A 256-bit integer vector. -static __inline void __DEFAULT_FN_ATTRS -_mm256_storeu2_m128i(__m128i_u *__addr_hi, __m128i_u *__addr_lo, __m256i __a) -{ - __m128i __v128; - - __v128 = _mm256_castsi256_si128(__a); - _mm_storeu_si128(__addr_lo, __v128); - __v128 = _mm256_extractf128_si256(__a, 1); - _mm_storeu_si128(__addr_hi, __v128); -} - -/// Constructs a 256-bit floating-point vector of [8 x float] by -/// concatenating two 128-bit floating-point vectors of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VINSERTF128 instruction. -/// -/// \param __hi -/// A 128-bit floating-point vector of [4 x float] to be copied to the upper -/// 128 bits of the result. -/// \param __lo -/// A 128-bit floating-point vector of [4 x float] to be copied to the lower -/// 128 bits of the result. -/// \returns A 256-bit floating-point vector of [8 x float] containing the -/// concatenated result. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_set_m128 (__m128 __hi, __m128 __lo) -{ - return (__m256) __builtin_shufflevector((__v4sf)__lo, (__v4sf)__hi, 0, 1, 2, 3, 4, 5, 6, 7); -} - -/// Constructs a 256-bit floating-point vector of [4 x double] by -/// concatenating two 128-bit floating-point vectors of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VINSERTF128 instruction. -/// -/// \param __hi -/// A 128-bit floating-point vector of [2 x double] to be copied to the upper -/// 128 bits of the result. -/// \param __lo -/// A 128-bit floating-point vector of [2 x double] to be copied to the lower -/// 128 bits of the result. -/// \returns A 256-bit floating-point vector of [4 x double] containing the -/// concatenated result. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_set_m128d (__m128d __hi, __m128d __lo) -{ - return (__m256d) __builtin_shufflevector((__v2df)__lo, (__v2df)__hi, 0, 1, 2, 3); -} - -/// Constructs a 256-bit integer vector by concatenating two 128-bit -/// integer vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VINSERTF128 instruction. -/// -/// \param __hi -/// A 128-bit integer vector to be copied to the upper 128 bits of the -/// result. -/// \param __lo -/// A 128-bit integer vector to be copied to the lower 128 bits of the -/// result. -/// \returns A 256-bit integer vector containing the concatenated result. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_set_m128i (__m128i __hi, __m128i __lo) -{ - return (__m256i) __builtin_shufflevector((__v2di)__lo, (__v2di)__hi, 0, 1, 2, 3); -} - -/// Constructs a 256-bit floating-point vector of [8 x float] by -/// concatenating two 128-bit floating-point vectors of [4 x float]. This is -/// similar to _mm256_set_m128, but the order of the input parameters is -/// swapped. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VINSERTF128 instruction. -/// -/// \param __lo -/// A 128-bit floating-point vector of [4 x float] to be copied to the lower -/// 128 bits of the result. -/// \param __hi -/// A 128-bit floating-point vector of [4 x float] to be copied to the upper -/// 128 bits of the result. -/// \returns A 256-bit floating-point vector of [8 x float] containing the -/// concatenated result. -static __inline __m256 __DEFAULT_FN_ATTRS -_mm256_setr_m128 (__m128 __lo, __m128 __hi) -{ - return _mm256_set_m128(__hi, __lo); -} - -/// Constructs a 256-bit floating-point vector of [4 x double] by -/// concatenating two 128-bit floating-point vectors of [2 x double]. This is -/// similar to _mm256_set_m128d, but the order of the input parameters is -/// swapped. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VINSERTF128 instruction. -/// -/// \param __lo -/// A 128-bit floating-point vector of [2 x double] to be copied to the lower -/// 128 bits of the result. -/// \param __hi -/// A 128-bit floating-point vector of [2 x double] to be copied to the upper -/// 128 bits of the result. -/// \returns A 256-bit floating-point vector of [4 x double] containing the -/// concatenated result. -static __inline __m256d __DEFAULT_FN_ATTRS -_mm256_setr_m128d (__m128d __lo, __m128d __hi) -{ - return (__m256d)_mm256_set_m128d(__hi, __lo); -} - -/// Constructs a 256-bit integer vector by concatenating two 128-bit -/// integer vectors. This is similar to _mm256_set_m128i, but the order of -/// the input parameters is swapped. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VINSERTF128 instruction. -/// -/// \param __lo -/// A 128-bit integer vector to be copied to the lower 128 bits of the -/// result. -/// \param __hi -/// A 128-bit integer vector to be copied to the upper 128 bits of the -/// result. -/// \returns A 256-bit integer vector containing the concatenated result. -static __inline __m256i __DEFAULT_FN_ATTRS -_mm256_setr_m128i (__m128i __lo, __m128i __hi) -{ - return (__m256i)_mm256_set_m128i(__hi, __lo); -} - -#undef __DEFAULT_FN_ATTRS -#undef __DEFAULT_FN_ATTRS128 - -#endif /* __AVXINTRIN_H */ diff --git a/bin/app/data/cxx/include/bmi2intrin.h b/bin/app/data/cxx/include/bmi2intrin.h deleted file mode 100644 index 0b56aed5..00000000 --- a/bin/app/data/cxx/include/bmi2intrin.h +++ /dev/null @@ -1,81 +0,0 @@ -/*===---- bmi2intrin.h - BMI2 intrinsics -----------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __BMI2INTRIN_H -#define __BMI2INTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("bmi2"))) - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_bzhi_u32(unsigned int __X, unsigned int __Y) -{ - return __builtin_ia32_bzhi_si(__X, __Y); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_pdep_u32(unsigned int __X, unsigned int __Y) -{ - return __builtin_ia32_pdep_si(__X, __Y); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_pext_u32(unsigned int __X, unsigned int __Y) -{ - return __builtin_ia32_pext_si(__X, __Y); -} - -#ifdef __x86_64__ - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -_bzhi_u64(unsigned long long __X, unsigned long long __Y) -{ - return __builtin_ia32_bzhi_di(__X, __Y); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -_pdep_u64(unsigned long long __X, unsigned long long __Y) -{ - return __builtin_ia32_pdep_di(__X, __Y); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -_pext_u64(unsigned long long __X, unsigned long long __Y) -{ - return __builtin_ia32_pext_di(__X, __Y); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -_mulx_u64 (unsigned long long __X, unsigned long long __Y, - unsigned long long *__P) -{ - unsigned __int128 __res = (unsigned __int128) __X * __Y; - *__P = (unsigned long long) (__res >> 64); - return (unsigned long long) __res; -} - -#else /* !__x86_64__ */ - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_mulx_u32 (unsigned int __X, unsigned int __Y, unsigned int *__P) -{ - unsigned long long __res = (unsigned long long) __X * __Y; - *__P = (unsigned int) (__res >> 32); - return (unsigned int) __res; -} - -#endif /* !__x86_64__ */ - -#undef __DEFAULT_FN_ATTRS - -#endif /* __BMI2INTRIN_H */ diff --git a/bin/app/data/cxx/include/bmiintrin.h b/bin/app/data/cxx/include/bmiintrin.h deleted file mode 100644 index b7af62f6..00000000 --- a/bin/app/data/cxx/include/bmiintrin.h +++ /dev/null @@ -1,372 +0,0 @@ -/*===---- bmiintrin.h - BMI intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __BMIINTRIN_H -#define __BMIINTRIN_H - -#define _tzcnt_u16(a) (__tzcnt_u16((a))) - -#define _andn_u32(a, b) (__andn_u32((a), (b))) - -/* _bextr_u32 != __bextr_u32 */ -#define _blsi_u32(a) (__blsi_u32((a))) - -#define _blsmsk_u32(a) (__blsmsk_u32((a))) - -#define _blsr_u32(a) (__blsr_u32((a))) - -#define _tzcnt_u32(a) (__tzcnt_u32((a))) - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) - -/* Allow using the tzcnt intrinsics even for non-BMI targets. Since the TZCNT - instruction behaves as BSF on non-BMI targets, there is code that expects - to use it as a potentially faster version of BSF. */ -#define __RELAXED_FN_ATTRS __attribute__((__always_inline__, __nodebug__)) - -/// Counts the number of trailing zero bits in the operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the TZCNT instruction. -/// -/// \param __X -/// An unsigned 16-bit integer whose trailing zeros are to be counted. -/// \returns An unsigned 16-bit integer containing the number of trailing zero -/// bits in the operand. -static __inline__ unsigned short __RELAXED_FN_ATTRS -__tzcnt_u16(unsigned short __X) -{ - return __builtin_ia32_tzcnt_u16(__X); -} - -/// Performs a bitwise AND of the second operand with the one's -/// complement of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the ANDN instruction. -/// -/// \param __X -/// An unsigned integer containing one of the operands. -/// \param __Y -/// An unsigned integer containing one of the operands. -/// \returns An unsigned integer containing the bitwise AND of the second -/// operand with the one's complement of the first operand. -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__andn_u32(unsigned int __X, unsigned int __Y) -{ - return ~__X & __Y; -} - -/* AMD-specified, double-leading-underscore version of BEXTR */ -/// Extracts the specified bits from the first operand and returns them -/// in the least significant bits of the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the BEXTR instruction. -/// -/// \param __X -/// An unsigned integer whose bits are to be extracted. -/// \param __Y -/// An unsigned integer used to specify which bits are extracted. Bits [7:0] -/// specify the index of the least significant bit. Bits [15:8] specify the -/// number of bits to be extracted. -/// \returns An unsigned integer whose least significant bits contain the -/// extracted bits. -/// \see _bextr_u32 -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__bextr_u32(unsigned int __X, unsigned int __Y) -{ - return __builtin_ia32_bextr_u32(__X, __Y); -} - -/* Intel-specified, single-leading-underscore version of BEXTR */ -/// Extracts the specified bits from the first operand and returns them -/// in the least significant bits of the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the BEXTR instruction. -/// -/// \param __X -/// An unsigned integer whose bits are to be extracted. -/// \param __Y -/// An unsigned integer used to specify the index of the least significant -/// bit for the bits to be extracted. Bits [7:0] specify the index. -/// \param __Z -/// An unsigned integer used to specify the number of bits to be extracted. -/// Bits [7:0] specify the number of bits. -/// \returns An unsigned integer whose least significant bits contain the -/// extracted bits. -/// \see __bextr_u32 -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_bextr_u32(unsigned int __X, unsigned int __Y, unsigned int __Z) -{ - return __builtin_ia32_bextr_u32 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8))); -} - -/// Clears all bits in the source except for the least significant bit -/// containing a value of 1 and returns the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the BLSI instruction. -/// -/// \param __X -/// An unsigned integer whose bits are to be cleared. -/// \returns An unsigned integer containing the result of clearing the bits from -/// the source operand. -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__blsi_u32(unsigned int __X) -{ - return __X & -__X; -} - -/// Creates a mask whose bits are set to 1, using bit 0 up to and -/// including the least significant bit that is set to 1 in the source -/// operand and returns the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the BLSMSK instruction. -/// -/// \param __X -/// An unsigned integer used to create the mask. -/// \returns An unsigned integer containing the newly created mask. -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__blsmsk_u32(unsigned int __X) -{ - return __X ^ (__X - 1); -} - -/// Clears the least significant bit that is set to 1 in the source -/// operand and returns the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the BLSR instruction. -/// -/// \param __X -/// An unsigned integer containing the operand to be cleared. -/// \returns An unsigned integer containing the result of clearing the source -/// operand. -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__blsr_u32(unsigned int __X) -{ - return __X & (__X - 1); -} - -/// Counts the number of trailing zero bits in the operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the TZCNT instruction. -/// -/// \param __X -/// An unsigned 32-bit integer whose trailing zeros are to be counted. -/// \returns An unsigned 32-bit integer containing the number of trailing zero -/// bits in the operand. -static __inline__ unsigned int __RELAXED_FN_ATTRS -__tzcnt_u32(unsigned int __X) -{ - return __builtin_ia32_tzcnt_u32(__X); -} - -/// Counts the number of trailing zero bits in the operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the TZCNT instruction. -/// -/// \param __X -/// An unsigned 32-bit integer whose trailing zeros are to be counted. -/// \returns An 32-bit integer containing the number of trailing zero bits in -/// the operand. -static __inline__ int __RELAXED_FN_ATTRS -_mm_tzcnt_32(unsigned int __X) -{ - return __builtin_ia32_tzcnt_u32(__X); -} - -#ifdef __x86_64__ - -#define _andn_u64(a, b) (__andn_u64((a), (b))) - -/* _bextr_u64 != __bextr_u64 */ -#define _blsi_u64(a) (__blsi_u64((a))) - -#define _blsmsk_u64(a) (__blsmsk_u64((a))) - -#define _blsr_u64(a) (__blsr_u64((a))) - -#define _tzcnt_u64(a) (__tzcnt_u64((a))) - -/// Performs a bitwise AND of the second operand with the one's -/// complement of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the ANDN instruction. -/// -/// \param __X -/// An unsigned 64-bit integer containing one of the operands. -/// \param __Y -/// An unsigned 64-bit integer containing one of the operands. -/// \returns An unsigned 64-bit integer containing the bitwise AND of the second -/// operand with the one's complement of the first operand. -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__andn_u64 (unsigned long long __X, unsigned long long __Y) -{ - return ~__X & __Y; -} - -/* AMD-specified, double-leading-underscore version of BEXTR */ -/// Extracts the specified bits from the first operand and returns them -/// in the least significant bits of the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the BEXTR instruction. -/// -/// \param __X -/// An unsigned 64-bit integer whose bits are to be extracted. -/// \param __Y -/// An unsigned 64-bit integer used to specify which bits are extracted. Bits -/// [7:0] specify the index of the least significant bit. Bits [15:8] specify -/// the number of bits to be extracted. -/// \returns An unsigned 64-bit integer whose least significant bits contain the -/// extracted bits. -/// \see _bextr_u64 -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__bextr_u64(unsigned long long __X, unsigned long long __Y) -{ - return __builtin_ia32_bextr_u64(__X, __Y); -} - -/* Intel-specified, single-leading-underscore version of BEXTR */ -/// Extracts the specified bits from the first operand and returns them -/// in the least significant bits of the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the BEXTR instruction. -/// -/// \param __X -/// An unsigned 64-bit integer whose bits are to be extracted. -/// \param __Y -/// An unsigned integer used to specify the index of the least significant -/// bit for the bits to be extracted. Bits [7:0] specify the index. -/// \param __Z -/// An unsigned integer used to specify the number of bits to be extracted. -/// Bits [7:0] specify the number of bits. -/// \returns An unsigned 64-bit integer whose least significant bits contain the -/// extracted bits. -/// \see __bextr_u64 -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -_bextr_u64(unsigned long long __X, unsigned int __Y, unsigned int __Z) -{ - return __builtin_ia32_bextr_u64 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8))); -} - -/// Clears all bits in the source except for the least significant bit -/// containing a value of 1 and returns the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the BLSI instruction. -/// -/// \param __X -/// An unsigned 64-bit integer whose bits are to be cleared. -/// \returns An unsigned 64-bit integer containing the result of clearing the -/// bits from the source operand. -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__blsi_u64(unsigned long long __X) -{ - return __X & -__X; -} - -/// Creates a mask whose bits are set to 1, using bit 0 up to and -/// including the least significant bit that is set to 1 in the source -/// operand and returns the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the BLSMSK instruction. -/// -/// \param __X -/// An unsigned 64-bit integer used to create the mask. -/// \returns An unsigned 64-bit integer containing the newly created mask. -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__blsmsk_u64(unsigned long long __X) -{ - return __X ^ (__X - 1); -} - -/// Clears the least significant bit that is set to 1 in the source -/// operand and returns the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the BLSR instruction. -/// -/// \param __X -/// An unsigned 64-bit integer containing the operand to be cleared. -/// \returns An unsigned 64-bit integer containing the result of clearing the -/// source operand. -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__blsr_u64(unsigned long long __X) -{ - return __X & (__X - 1); -} - -/// Counts the number of trailing zero bits in the operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the TZCNT instruction. -/// -/// \param __X -/// An unsigned 64-bit integer whose trailing zeros are to be counted. -/// \returns An unsigned 64-bit integer containing the number of trailing zero -/// bits in the operand. -static __inline__ unsigned long long __RELAXED_FN_ATTRS -__tzcnt_u64(unsigned long long __X) -{ - return __builtin_ia32_tzcnt_u64(__X); -} - -/// Counts the number of trailing zero bits in the operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the TZCNT instruction. -/// -/// \param __X -/// An unsigned 64-bit integer whose trailing zeros are to be counted. -/// \returns An 64-bit integer containing the number of trailing zero bits in -/// the operand. -static __inline__ long long __RELAXED_FN_ATTRS -_mm_tzcnt_64(unsigned long long __X) -{ - return __builtin_ia32_tzcnt_u64(__X); -} - -#endif /* __x86_64__ */ - -#undef __DEFAULT_FN_ATTRS -#undef __RELAXED_FN_ATTRS - -#endif /* __BMIINTRIN_H */ diff --git a/bin/app/data/cxx/include/cetintrin.h b/bin/app/data/cxx/include/cetintrin.h deleted file mode 100644 index 4290e9d7..00000000 --- a/bin/app/data/cxx/include/cetintrin.h +++ /dev/null @@ -1,99 +0,0 @@ -/*===---- cetintrin.h - CET intrinsic --------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __CETINTRIN_H -#define __CETINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) - -static __inline__ void __DEFAULT_FN_ATTRS _incsspd(int __a) { - __builtin_ia32_incsspd(__a); -} - -#ifdef __x86_64__ -static __inline__ void __DEFAULT_FN_ATTRS _incsspq(unsigned long long __a) { - __builtin_ia32_incsspq(__a); -} -#endif /* __x86_64__ */ - -#ifdef __x86_64__ -static __inline__ void __DEFAULT_FN_ATTRS _inc_ssp(unsigned int __a) { - __builtin_ia32_incsspq(__a); -} -#else /* __x86_64__ */ -static __inline__ void __DEFAULT_FN_ATTRS _inc_ssp(unsigned int __a) { - __builtin_ia32_incsspd((int)__a); -} -#endif /* __x86_64__ */ - -static __inline__ unsigned int __DEFAULT_FN_ATTRS _rdsspd(unsigned int __a) { - return __builtin_ia32_rdsspd(__a); -} - -#ifdef __x86_64__ -static __inline__ unsigned long long __DEFAULT_FN_ATTRS _rdsspq(unsigned long long __a) { - return __builtin_ia32_rdsspq(__a); -} -#endif /* __x86_64__ */ - -#ifdef __x86_64__ -static __inline__ unsigned long long __DEFAULT_FN_ATTRS _get_ssp(void) { - return __builtin_ia32_rdsspq(0); -} -#else /* __x86_64__ */ -static __inline__ unsigned int __DEFAULT_FN_ATTRS _get_ssp(void) { - return __builtin_ia32_rdsspd(0); -} -#endif /* __x86_64__ */ - -static __inline__ void __DEFAULT_FN_ATTRS _saveprevssp() { - __builtin_ia32_saveprevssp(); -} - -static __inline__ void __DEFAULT_FN_ATTRS _rstorssp(void * __p) { - __builtin_ia32_rstorssp(__p); -} - -static __inline__ void __DEFAULT_FN_ATTRS _wrssd(unsigned int __a, void * __p) { - __builtin_ia32_wrssd(__a, __p); -} - -#ifdef __x86_64__ -static __inline__ void __DEFAULT_FN_ATTRS _wrssq(unsigned long long __a, void * __p) { - __builtin_ia32_wrssq(__a, __p); -} -#endif /* __x86_64__ */ - -static __inline__ void __DEFAULT_FN_ATTRS _wrussd(unsigned int __a, void * __p) { - __builtin_ia32_wrussd(__a, __p); -} - -#ifdef __x86_64__ -static __inline__ void __DEFAULT_FN_ATTRS _wrussq(unsigned long long __a, void * __p) { - __builtin_ia32_wrussq(__a, __p); -} -#endif /* __x86_64__ */ - -static __inline__ void __DEFAULT_FN_ATTRS _setssbsy() { - __builtin_ia32_setssbsy(); -} - -static __inline__ void __DEFAULT_FN_ATTRS _clrssbsy(void * __p) { - __builtin_ia32_clrssbsy(__p); -} - -#undef __DEFAULT_FN_ATTRS - -#endif /* __CETINTRIN_H */ diff --git a/bin/app/data/cxx/include/cldemoteintrin.h b/bin/app/data/cxx/include/cldemoteintrin.h deleted file mode 100644 index 2413e7de..00000000 --- a/bin/app/data/cxx/include/cldemoteintrin.h +++ /dev/null @@ -1,28 +0,0 @@ -/*===---- cldemoteintrin.h - CLDEMOTE intrinsic ----------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __CLDEMOTEINTRIN_H -#define __CLDEMOTEINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("cldemote"))) - -static __inline__ void __DEFAULT_FN_ATTRS -_cldemote(const void * __P) { - __builtin_ia32_cldemote(__P); -} - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/clflushoptintrin.h b/bin/app/data/cxx/include/clflushoptintrin.h deleted file mode 100644 index 060eb36f..00000000 --- a/bin/app/data/cxx/include/clflushoptintrin.h +++ /dev/null @@ -1,27 +0,0 @@ -/*===---- clflushoptintrin.h - CLFLUSHOPT intrinsic ------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __CLFLUSHOPTINTRIN_H -#define __CLFLUSHOPTINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("clflushopt"))) - -static __inline__ void __DEFAULT_FN_ATTRS -_mm_clflushopt(void const * __m) { - __builtin_ia32_clflushopt(__m); -} - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/clwbintrin.h b/bin/app/data/cxx/include/clwbintrin.h deleted file mode 100644 index 3360d203..00000000 --- a/bin/app/data/cxx/include/clwbintrin.h +++ /dev/null @@ -1,38 +0,0 @@ -/*===---- clwbintrin.h - CLWB intrinsic ------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __CLWBINTRIN_H -#define __CLWBINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("clwb"))) - -/// Writes back to memory the cache line (if modified) that contains the -/// linear address specified in \a __p from any level of the cache hierarchy in -/// the cache coherence domain -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CLWB instruction. -/// -/// \param __p -/// A pointer to the memory location used to identify the cache line to be -/// written back. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_clwb(void const *__p) { - __builtin_ia32_clwb(__p); -} - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/clzerointrin.h b/bin/app/data/cxx/include/clzerointrin.h deleted file mode 100644 index a180984a..00000000 --- a/bin/app/data/cxx/include/clzerointrin.h +++ /dev/null @@ -1,36 +0,0 @@ -/*===----------------------- clzerointrin.h - CLZERO ----------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __CLZEROINTRIN_H -#define __CLZEROINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("clzero"))) - -/// Loads the cache line address and zero's out the cacheline -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CLZERO instruction. -/// -/// \param __line -/// A pointer to a cacheline which needs to be zeroed out. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_clzero (void * __line) -{ - __builtin_ia32_clzero ((void *)__line); -} - -#undef __DEFAULT_FN_ATTRS - -#endif /* __CLZEROINTRIN_H */ diff --git a/bin/app/data/cxx/include/cpuid.h b/bin/app/data/cxx/include/cpuid.h deleted file mode 100644 index 02ffac26..00000000 --- a/bin/app/data/cxx/include/cpuid.h +++ /dev/null @@ -1,302 +0,0 @@ -/*===---- cpuid.h - X86 cpu model detection --------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !(__x86_64__ || __i386__) -#error this header is for x86 only -#endif - -/* Responses identification request with %eax 0 */ -/* AMD: "AuthenticAMD" */ -#define signature_AMD_ebx 0x68747541 -#define signature_AMD_edx 0x69746e65 -#define signature_AMD_ecx 0x444d4163 -/* CENTAUR: "CentaurHauls" */ -#define signature_CENTAUR_ebx 0x746e6543 -#define signature_CENTAUR_edx 0x48727561 -#define signature_CENTAUR_ecx 0x736c7561 -/* CYRIX: "CyrixInstead" */ -#define signature_CYRIX_ebx 0x69727943 -#define signature_CYRIX_edx 0x736e4978 -#define signature_CYRIX_ecx 0x64616574 -/* INTEL: "GenuineIntel" */ -#define signature_INTEL_ebx 0x756e6547 -#define signature_INTEL_edx 0x49656e69 -#define signature_INTEL_ecx 0x6c65746e -/* TM1: "TransmetaCPU" */ -#define signature_TM1_ebx 0x6e617254 -#define signature_TM1_edx 0x74656d73 -#define signature_TM1_ecx 0x55504361 -/* TM2: "GenuineTMx86" */ -#define signature_TM2_ebx 0x756e6547 -#define signature_TM2_edx 0x54656e69 -#define signature_TM2_ecx 0x3638784d -/* NSC: "Geode by NSC" */ -#define signature_NSC_ebx 0x646f6547 -#define signature_NSC_edx 0x43534e20 -#define signature_NSC_ecx 0x79622065 -/* NEXGEN: "NexGenDriven" */ -#define signature_NEXGEN_ebx 0x4778654e -#define signature_NEXGEN_edx 0x72446e65 -#define signature_NEXGEN_ecx 0x6e657669 -/* RISE: "RiseRiseRise" */ -#define signature_RISE_ebx 0x65736952 -#define signature_RISE_edx 0x65736952 -#define signature_RISE_ecx 0x65736952 -/* SIS: "SiS SiS SiS " */ -#define signature_SIS_ebx 0x20536953 -#define signature_SIS_edx 0x20536953 -#define signature_SIS_ecx 0x20536953 -/* UMC: "UMC UMC UMC " */ -#define signature_UMC_ebx 0x20434d55 -#define signature_UMC_edx 0x20434d55 -#define signature_UMC_ecx 0x20434d55 -/* VIA: "VIA VIA VIA " */ -#define signature_VIA_ebx 0x20414956 -#define signature_VIA_edx 0x20414956 -#define signature_VIA_ecx 0x20414956 -/* VORTEX: "Vortex86 SoC" */ -#define signature_VORTEX_ebx 0x74726f56 -#define signature_VORTEX_edx 0x36387865 -#define signature_VORTEX_ecx 0x436f5320 - -/* Features in %ecx for leaf 1 */ -#define bit_SSE3 0x00000001 -#define bit_PCLMULQDQ 0x00000002 -#define bit_PCLMUL bit_PCLMULQDQ /* for gcc compat */ -#define bit_DTES64 0x00000004 -#define bit_MONITOR 0x00000008 -#define bit_DSCPL 0x00000010 -#define bit_VMX 0x00000020 -#define bit_SMX 0x00000040 -#define bit_EIST 0x00000080 -#define bit_TM2 0x00000100 -#define bit_SSSE3 0x00000200 -#define bit_CNXTID 0x00000400 -#define bit_FMA 0x00001000 -#define bit_CMPXCHG16B 0x00002000 -#define bit_xTPR 0x00004000 -#define bit_PDCM 0x00008000 -#define bit_PCID 0x00020000 -#define bit_DCA 0x00040000 -#define bit_SSE41 0x00080000 -#define bit_SSE4_1 bit_SSE41 /* for gcc compat */ -#define bit_SSE42 0x00100000 -#define bit_SSE4_2 bit_SSE42 /* for gcc compat */ -#define bit_x2APIC 0x00200000 -#define bit_MOVBE 0x00400000 -#define bit_POPCNT 0x00800000 -#define bit_TSCDeadline 0x01000000 -#define bit_AESNI 0x02000000 -#define bit_AES bit_AESNI /* for gcc compat */ -#define bit_XSAVE 0x04000000 -#define bit_OSXSAVE 0x08000000 -#define bit_AVX 0x10000000 -#define bit_F16C 0x20000000 -#define bit_RDRND 0x40000000 - -/* Features in %edx for leaf 1 */ -#define bit_FPU 0x00000001 -#define bit_VME 0x00000002 -#define bit_DE 0x00000004 -#define bit_PSE 0x00000008 -#define bit_TSC 0x00000010 -#define bit_MSR 0x00000020 -#define bit_PAE 0x00000040 -#define bit_MCE 0x00000080 -#define bit_CX8 0x00000100 -#define bit_CMPXCHG8B bit_CX8 /* for gcc compat */ -#define bit_APIC 0x00000200 -#define bit_SEP 0x00000800 -#define bit_MTRR 0x00001000 -#define bit_PGE 0x00002000 -#define bit_MCA 0x00004000 -#define bit_CMOV 0x00008000 -#define bit_PAT 0x00010000 -#define bit_PSE36 0x00020000 -#define bit_PSN 0x00040000 -#define bit_CLFSH 0x00080000 -#define bit_DS 0x00200000 -#define bit_ACPI 0x00400000 -#define bit_MMX 0x00800000 -#define bit_FXSR 0x01000000 -#define bit_FXSAVE bit_FXSR /* for gcc compat */ -#define bit_SSE 0x02000000 -#define bit_SSE2 0x04000000 -#define bit_SS 0x08000000 -#define bit_HTT 0x10000000 -#define bit_TM 0x20000000 -#define bit_PBE 0x80000000 - -/* Features in %ebx for leaf 7 sub-leaf 0 */ -#define bit_FSGSBASE 0x00000001 -#define bit_SGX 0x00000004 -#define bit_BMI 0x00000008 -#define bit_HLE 0x00000010 -#define bit_AVX2 0x00000020 -#define bit_SMEP 0x00000080 -#define bit_BMI2 0x00000100 -#define bit_ENH_MOVSB 0x00000200 -#define bit_INVPCID 0x00000400 -#define bit_RTM 0x00000800 -#define bit_MPX 0x00004000 -#define bit_AVX512F 0x00010000 -#define bit_AVX512DQ 0x00020000 -#define bit_RDSEED 0x00040000 -#define bit_ADX 0x00080000 -#define bit_AVX512IFMA 0x00200000 -#define bit_CLFLUSHOPT 0x00800000 -#define bit_CLWB 0x01000000 -#define bit_AVX512PF 0x04000000 -#define bit_AVX512ER 0x08000000 -#define bit_AVX512CD 0x10000000 -#define bit_SHA 0x20000000 -#define bit_AVX512BW 0x40000000 -#define bit_AVX512VL 0x80000000 - -/* Features in %ecx for leaf 7 sub-leaf 0 */ -#define bit_PREFTCHWT1 0x00000001 -#define bit_AVX512VBMI 0x00000002 -#define bit_PKU 0x00000004 -#define bit_OSPKE 0x00000010 -#define bit_WAITPKG 0x00000020 -#define bit_AVX512VBMI2 0x00000040 -#define bit_SHSTK 0x00000080 -#define bit_GFNI 0x00000100 -#define bit_VAES 0x00000200 -#define bit_VPCLMULQDQ 0x00000400 -#define bit_AVX512VNNI 0x00000800 -#define bit_AVX512BITALG 0x00001000 -#define bit_AVX512VPOPCNTDQ 0x00004000 -#define bit_RDPID 0x00400000 -#define bit_CLDEMOTE 0x02000000 -#define bit_MOVDIRI 0x08000000 -#define bit_MOVDIR64B 0x10000000 -#define bit_ENQCMD 0x20000000 - -/* Features in %edx for leaf 7 sub-leaf 0 */ -#define bit_AVX5124VNNIW 0x00000004 -#define bit_AVX5124FMAPS 0x00000008 -#define bit_PCONFIG 0x00040000 -#define bit_IBT 0x00100000 - -/* Features in %eax for leaf 7 sub-leaf 1 */ -#define bit_AVX512BF16 0x00000020 - -/* Features in %eax for leaf 13 sub-leaf 1 */ -#define bit_XSAVEOPT 0x00000001 -#define bit_XSAVEC 0x00000002 -#define bit_XSAVES 0x00000008 - -/* Features in %eax for leaf 0x14 sub-leaf 0 */ -#define bit_PTWRITE 0x00000010 - -/* Features in %ecx for leaf 0x80000001 */ -#define bit_LAHF_LM 0x00000001 -#define bit_ABM 0x00000020 -#define bit_LZCNT bit_ABM /* for gcc compat */ -#define bit_SSE4a 0x00000040 -#define bit_PRFCHW 0x00000100 -#define bit_XOP 0x00000800 -#define bit_LWP 0x00008000 -#define bit_FMA4 0x00010000 -#define bit_TBM 0x00200000 -#define bit_MWAITX 0x20000000 - -/* Features in %edx for leaf 0x80000001 */ -#define bit_MMXEXT 0x00400000 -#define bit_LM 0x20000000 -#define bit_3DNOWP 0x40000000 -#define bit_3DNOW 0x80000000 - -/* Features in %ebx for leaf 0x80000008 */ -#define bit_CLZERO 0x00000001 -#define bit_WBNOINVD 0x00000200 - - -#if __i386__ -#define __cpuid(__leaf, __eax, __ebx, __ecx, __edx) \ - __asm("cpuid" : "=a"(__eax), "=b" (__ebx), "=c"(__ecx), "=d"(__edx) \ - : "0"(__leaf)) - -#define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx) \ - __asm("cpuid" : "=a"(__eax), "=b" (__ebx), "=c"(__ecx), "=d"(__edx) \ - : "0"(__leaf), "2"(__count)) -#else -/* x86-64 uses %rbx as the base register, so preserve it. */ -#define __cpuid(__leaf, __eax, __ebx, __ecx, __edx) \ - __asm(" xchgq %%rbx,%q1\n" \ - " cpuid\n" \ - " xchgq %%rbx,%q1" \ - : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \ - : "0"(__leaf)) - -#define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx) \ - __asm(" xchgq %%rbx,%q1\n" \ - " cpuid\n" \ - " xchgq %%rbx,%q1" \ - : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \ - : "0"(__leaf), "2"(__count)) -#endif - -static __inline int __get_cpuid_max (unsigned int __leaf, unsigned int *__sig) -{ - unsigned int __eax, __ebx, __ecx, __edx; -#if __i386__ - int __cpuid_supported; - - __asm(" pushfl\n" - " popl %%eax\n" - " movl %%eax,%%ecx\n" - " xorl $0x00200000,%%eax\n" - " pushl %%eax\n" - " popfl\n" - " pushfl\n" - " popl %%eax\n" - " movl $0,%0\n" - " cmpl %%eax,%%ecx\n" - " je 1f\n" - " movl $1,%0\n" - "1:" - : "=r" (__cpuid_supported) : : "eax", "ecx"); - if (!__cpuid_supported) - return 0; -#endif - - __cpuid(__leaf, __eax, __ebx, __ecx, __edx); - if (__sig) - *__sig = __ebx; - return __eax; -} - -static __inline int __get_cpuid (unsigned int __leaf, unsigned int *__eax, - unsigned int *__ebx, unsigned int *__ecx, - unsigned int *__edx) -{ - unsigned int __max_leaf = __get_cpuid_max(__leaf & 0x80000000, 0); - - if (__max_leaf == 0 || __max_leaf < __leaf) - return 0; - - __cpuid(__leaf, *__eax, *__ebx, *__ecx, *__edx); - return 1; -} - -static __inline int __get_cpuid_count (unsigned int __leaf, - unsigned int __subleaf, - unsigned int *__eax, unsigned int *__ebx, - unsigned int *__ecx, unsigned int *__edx) -{ - unsigned int __max_leaf = __get_cpuid_max(__leaf & 0x80000000, 0); - - if (__max_leaf == 0 || __max_leaf < __leaf) - return 0; - - __cpuid_count(__leaf, __subleaf, *__eax, *__ebx, *__ecx, *__edx); - return 1; -} diff --git a/bin/app/data/cxx/include/cuda_wrappers/algorithm b/bin/app/data/cxx/include/cuda_wrappers/algorithm deleted file mode 100644 index 01af1836..00000000 --- a/bin/app/data/cxx/include/cuda_wrappers/algorithm +++ /dev/null @@ -1,116 +0,0 @@ -/*===---- complex - CUDA wrapper for ----------------------------=== - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_CUDA_WRAPPERS_ALGORITHM -#define __CLANG_CUDA_WRAPPERS_ALGORITHM - -// This header defines __device__ overloads of std::min/max. -// -// Ideally we'd declare these functions only if we're <= C++11. In C++14, -// these functions are constexpr, and so are implicitly __host__ __device__. -// -// However, the compiler being in C++14 mode does not imply that the standard -// library supports C++14. There is no macro we can test to check that the -// stdlib has constexpr std::min/max. Thus we have to unconditionally define -// our device overloads. -// -// A host+device function cannot be overloaded, and a constexpr function -// implicitly become host device if there's no explicitly host or device -// overload preceding it. So the simple thing to do would be to declare our -// device min/max overloads, and then #include_next . This way our -// device overloads would come first, and so if we have a C++14 stdlib, its -// min/max won't become host+device and conflict with our device overloads. -// -// But that also doesn't work. libstdc++ is evil and declares std::min/max in -// an internal header that is included *before* . Thus by the time -// we're inside of this file, std::min/max may already have been declared, and -// thus we can't prevent them from becoming host+device if they're constexpr. -// -// Therefore we perpetrate the following hack: We mark our __device__ overloads -// with __attribute__((enable_if(true, ""))). This causes the signature of the -// function to change without changing anything else about it. (Except that -// overload resolution will prefer it over the __host__ __device__ version -// rather than considering them equally good). - -#include_next - -// We need to define these overloads in exactly the namespace our standard -// library uses (including the right inline namespace), otherwise they won't be -// picked up by other functions in the standard library (e.g. functions in -// ). Thus the ugliness below. -#ifdef _LIBCPP_BEGIN_NAMESPACE_STD -_LIBCPP_BEGIN_NAMESPACE_STD -#else -namespace std { -#ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION -_GLIBCXX_BEGIN_NAMESPACE_VERSION -#endif -#endif - -#pragma push_macro("_CPP14_CONSTEXPR") -#if __cplusplus >= 201402L -#define _CPP14_CONSTEXPR constexpr -#else -#define _CPP14_CONSTEXPR -#endif - -template -__attribute__((enable_if(true, ""))) -inline _CPP14_CONSTEXPR __host__ __device__ const __T & -max(const __T &__a, const __T &__b, __Cmp __cmp) { - return __cmp(__a, __b) ? __b : __a; -} - -template -__attribute__((enable_if(true, ""))) -inline _CPP14_CONSTEXPR __host__ __device__ const __T & -max(const __T &__a, const __T &__b) { - return __a < __b ? __b : __a; -} - -template -__attribute__((enable_if(true, ""))) -inline _CPP14_CONSTEXPR __host__ __device__ const __T & -min(const __T &__a, const __T &__b, __Cmp __cmp) { - return __cmp(__b, __a) ? __b : __a; -} - -template -__attribute__((enable_if(true, ""))) -inline _CPP14_CONSTEXPR __host__ __device__ const __T & -min(const __T &__a, const __T &__b) { - return __a < __b ? __a : __b; -} - -#pragma pop_macro("_CPP14_CONSTEXPR") - -#ifdef _LIBCPP_END_NAMESPACE_STD -_LIBCPP_END_NAMESPACE_STD -#else -#ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION -_GLIBCXX_END_NAMESPACE_VERSION -#endif -} // namespace std -#endif - -#endif // __CLANG_CUDA_WRAPPERS_ALGORITHM diff --git a/bin/app/data/cxx/include/cuda_wrappers/complex b/bin/app/data/cxx/include/cuda_wrappers/complex deleted file mode 100644 index 11d40a82..00000000 --- a/bin/app/data/cxx/include/cuda_wrappers/complex +++ /dev/null @@ -1,82 +0,0 @@ -/*===---- complex - CUDA wrapper for ------------------------------=== - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_CUDA_WRAPPERS_COMPLEX -#define __CLANG_CUDA_WRAPPERS_COMPLEX - -// Wrapper around that forces its functions to be __host__ -// __device__. - -// First, include host-only headers we think are likely to be included by -// , so that the pragma below only applies to itself. -#if __cplusplus >= 201103L -#include -#endif -#include -#include -#include - -// Next, include our wrapper, to ensure that device overloads of -// std::min/max are available. -#include - -#pragma clang force_cuda_host_device begin - -// When compiling for device, ask libstdc++ to use its own implements of -// complex functions, rather than calling builtins (which resolve to library -// functions that don't exist when compiling CUDA device code). -// -// This is a little dicey, because it causes libstdc++ to define a different -// set of overloads on host and device. -// -// // Present only when compiling for host. -// __host__ __device__ void complex sin(const complex& x) { -// return __builtin_csinf(x); -// } -// -// // Present when compiling for host and for device. -// template -// void __host__ __device__ complex sin(const complex& x) { -// return complex(sin(x.real()) * cosh(x.imag()), -// cos(x.real()), sinh(x.imag())); -// } -// -// This is safe because when compiling for device, all function calls in -// __host__ code to sin() will still resolve to *something*, even if they don't -// resolve to the same function as they resolve to when compiling for host. We -// don't care that they don't resolve to the right function because we won't -// codegen this host code when compiling for device. - -#pragma push_macro("_GLIBCXX_USE_C99_COMPLEX") -#pragma push_macro("_GLIBCXX_USE_C99_COMPLEX_TR1") -#define _GLIBCXX_USE_C99_COMPLEX 0 -#define _GLIBCXX_USE_C99_COMPLEX_TR1 0 - -#include_next - -#pragma pop_macro("_GLIBCXX_USE_C99_COMPLEX_TR1") -#pragma pop_macro("_GLIBCXX_USE_C99_COMPLEX") - -#pragma clang force_cuda_host_device end - -#endif // include guard diff --git a/bin/app/data/cxx/include/cuda_wrappers/new b/bin/app/data/cxx/include/cuda_wrappers/new deleted file mode 100644 index f49811c5..00000000 --- a/bin/app/data/cxx/include/cuda_wrappers/new +++ /dev/null @@ -1,98 +0,0 @@ -/*===---- complex - CUDA wrapper for ------------------------------=== - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_CUDA_WRAPPERS_NEW -#define __CLANG_CUDA_WRAPPERS_NEW - -#include_next - -#pragma push_macro("CUDA_NOEXCEPT") -#if __cplusplus >= 201103L -#define CUDA_NOEXCEPT noexcept -#else -#define CUDA_NOEXCEPT -#endif - -// Device overrides for non-placement new and delete. -__device__ inline void *operator new(__SIZE_TYPE__ size) { - if (size == 0) { - size = 1; - } - return ::malloc(size); -} -__device__ inline void *operator new(__SIZE_TYPE__ size, - const std::nothrow_t &) CUDA_NOEXCEPT { - return ::operator new(size); -} - -__device__ inline void *operator new[](__SIZE_TYPE__ size) { - return ::operator new(size); -} -__device__ inline void *operator new[](__SIZE_TYPE__ size, - const std::nothrow_t &) { - return ::operator new(size); -} - -__device__ inline void operator delete(void* ptr) CUDA_NOEXCEPT { - if (ptr) { - ::free(ptr); - } -} -__device__ inline void operator delete(void *ptr, - const std::nothrow_t &) CUDA_NOEXCEPT { - ::operator delete(ptr); -} - -__device__ inline void operator delete[](void* ptr) CUDA_NOEXCEPT { - ::operator delete(ptr); -} -__device__ inline void operator delete[](void *ptr, - const std::nothrow_t &) CUDA_NOEXCEPT { - ::operator delete(ptr); -} - -// Sized delete, C++14 only. -#if __cplusplus >= 201402L -__device__ inline void operator delete(void *ptr, - __SIZE_TYPE__ size) CUDA_NOEXCEPT { - ::operator delete(ptr); -} -__device__ inline void operator delete[](void *ptr, - __SIZE_TYPE__ size) CUDA_NOEXCEPT { - ::operator delete(ptr); -} -#endif - -// Device overrides for placement new and delete. -__device__ inline void *operator new(__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT { - return __ptr; -} -__device__ inline void *operator new[](__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT { - return __ptr; -} -__device__ inline void operator delete(void *, void *) CUDA_NOEXCEPT {} -__device__ inline void operator delete[](void *, void *) CUDA_NOEXCEPT {} - -#pragma pop_macro("CUDA_NOEXCEPT") - -#endif // include guard diff --git a/bin/app/data/cxx/include/emmintrin.h b/bin/app/data/cxx/include/emmintrin.h deleted file mode 100644 index c8fefdfc..00000000 --- a/bin/app/data/cxx/include/emmintrin.h +++ /dev/null @@ -1,4981 +0,0 @@ -/*===---- emmintrin.h - SSE2 intrinsics ------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __EMMINTRIN_H -#define __EMMINTRIN_H - -#include - -typedef double __m128d __attribute__((__vector_size__(16), __aligned__(16))); -typedef long long __m128i __attribute__((__vector_size__(16), __aligned__(16))); - -typedef double __m128d_u __attribute__((__vector_size__(16), __aligned__(1))); -typedef long long __m128i_u __attribute__((__vector_size__(16), __aligned__(1))); - -/* Type defines. */ -typedef double __v2df __attribute__ ((__vector_size__ (16))); -typedef long long __v2di __attribute__ ((__vector_size__ (16))); -typedef short __v8hi __attribute__((__vector_size__(16))); -typedef char __v16qi __attribute__((__vector_size__(16))); - -/* Unsigned types */ -typedef unsigned long long __v2du __attribute__ ((__vector_size__ (16))); -typedef unsigned short __v8hu __attribute__((__vector_size__(16))); -typedef unsigned char __v16qu __attribute__((__vector_size__(16))); - -/* We need an explicitly signed variant for char. Note that this shouldn't - * appear in the interface though. */ -typedef signed char __v16qs __attribute__((__vector_size__(16))); - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS_MMX __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse2"), __min_vector_width__(64))) - -/// Adds lower double-precision values in both operands and returns the -/// sum in the lower 64 bits of the result. The upper 64 bits of the result -/// are copied from the upper double-precision value of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VADDSD / ADDSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the -/// sum of the lower 64 bits of both operands. The upper 64 bits are copied -/// from the upper 64 bits of the first source operand. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_add_sd(__m128d __a, __m128d __b) -{ - __a[0] += __b[0]; - return __a; -} - -/// Adds two 128-bit vectors of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VADDPD / ADDPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \returns A 128-bit vector of [2 x double] containing the sums of both -/// operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_add_pd(__m128d __a, __m128d __b) -{ - return (__m128d)((__v2df)__a + (__v2df)__b); -} - -/// Subtracts the lower double-precision value of the second operand -/// from the lower double-precision value of the first operand and returns -/// the difference in the lower 64 bits of the result. The upper 64 bits of -/// the result are copied from the upper double-precision value of the first -/// operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSUBSD / SUBSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing the minuend. -/// \param __b -/// A 128-bit vector of [2 x double] containing the subtrahend. -/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the -/// difference of the lower 64 bits of both operands. The upper 64 bits are -/// copied from the upper 64 bits of the first source operand. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_sub_sd(__m128d __a, __m128d __b) -{ - __a[0] -= __b[0]; - return __a; -} - -/// Subtracts two 128-bit vectors of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSUBPD / SUBPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing the minuend. -/// \param __b -/// A 128-bit vector of [2 x double] containing the subtrahend. -/// \returns A 128-bit vector of [2 x double] containing the differences between -/// both operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_sub_pd(__m128d __a, __m128d __b) -{ - return (__m128d)((__v2df)__a - (__v2df)__b); -} - -/// Multiplies lower double-precision values in both operands and returns -/// the product in the lower 64 bits of the result. The upper 64 bits of the -/// result are copied from the upper double-precision value of the first -/// operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMULSD / MULSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the -/// product of the lower 64 bits of both operands. The upper 64 bits are -/// copied from the upper 64 bits of the first source operand. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_mul_sd(__m128d __a, __m128d __b) -{ - __a[0] *= __b[0]; - return __a; -} - -/// Multiplies two 128-bit vectors of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMULPD / MULPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the operands. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the operands. -/// \returns A 128-bit vector of [2 x double] containing the products of both -/// operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_mul_pd(__m128d __a, __m128d __b) -{ - return (__m128d)((__v2df)__a * (__v2df)__b); -} - -/// Divides the lower double-precision value of the first operand by the -/// lower double-precision value of the second operand and returns the -/// quotient in the lower 64 bits of the result. The upper 64 bits of the -/// result are copied from the upper double-precision value of the first -/// operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDIVSD / DIVSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing the dividend. -/// \param __b -/// A 128-bit vector of [2 x double] containing divisor. -/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the -/// quotient of the lower 64 bits of both operands. The upper 64 bits are -/// copied from the upper 64 bits of the first source operand. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_div_sd(__m128d __a, __m128d __b) -{ - __a[0] /= __b[0]; - return __a; -} - -/// Performs an element-by-element division of two 128-bit vectors of -/// [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDIVPD / DIVPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing the dividend. -/// \param __b -/// A 128-bit vector of [2 x double] containing the divisor. -/// \returns A 128-bit vector of [2 x double] containing the quotients of both -/// operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_div_pd(__m128d __a, __m128d __b) -{ - return (__m128d)((__v2df)__a / (__v2df)__b); -} - -/// Calculates the square root of the lower double-precision value of -/// the second operand and returns it in the lower 64 bits of the result. -/// The upper 64 bits of the result are copied from the upper -/// double-precision value of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSQRTSD / SQRTSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the operands. The -/// upper 64 bits of this operand are copied to the upper 64 bits of the -/// result. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the operands. The -/// square root is calculated using the lower 64 bits of this operand. -/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the -/// square root of the lower 64 bits of operand \a __b, and whose upper 64 -/// bits are copied from the upper 64 bits of operand \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_sqrt_sd(__m128d __a, __m128d __b) -{ - __m128d __c = __builtin_ia32_sqrtsd((__v2df)__b); - return __extension__ (__m128d) { __c[0], __a[1] }; -} - -/// Calculates the square root of the each of two values stored in a -/// 128-bit vector of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSQRTPD / SQRTPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector of [2 x double] containing the square roots of the -/// values in the operand. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_sqrt_pd(__m128d __a) -{ - return __builtin_ia32_sqrtpd((__v2df)__a); -} - -/// Compares lower 64-bit double-precision values of both operands, and -/// returns the lesser of the pair of values in the lower 64-bits of the -/// result. The upper 64 bits of the result are copied from the upper -/// double-precision value of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMINSD / MINSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the operands. The -/// lower 64 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the operands. The -/// lower 64 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the -/// minimum value between both operands. The upper 64 bits are copied from -/// the upper 64 bits of the first source operand. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_min_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_minsd((__v2df)__a, (__v2df)__b); -} - -/// Performs element-by-element comparison of the two 128-bit vectors of -/// [2 x double] and returns the vector containing the lesser of each pair of -/// values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMINPD / MINPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the operands. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the operands. -/// \returns A 128-bit vector of [2 x double] containing the minimum values -/// between both operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_min_pd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_minpd((__v2df)__a, (__v2df)__b); -} - -/// Compares lower 64-bit double-precision values of both operands, and -/// returns the greater of the pair of values in the lower 64-bits of the -/// result. The upper 64 bits of the result are copied from the upper -/// double-precision value of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMAXSD / MAXSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the operands. The -/// lower 64 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the operands. The -/// lower 64 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the -/// maximum value between both operands. The upper 64 bits are copied from -/// the upper 64 bits of the first source operand. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_max_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_maxsd((__v2df)__a, (__v2df)__b); -} - -/// Performs element-by-element comparison of the two 128-bit vectors of -/// [2 x double] and returns the vector containing the greater of each pair -/// of values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMAXPD / MAXPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the operands. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the operands. -/// \returns A 128-bit vector of [2 x double] containing the maximum values -/// between both operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_max_pd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_maxpd((__v2df)__a, (__v2df)__b); -} - -/// Performs a bitwise AND of two 128-bit vectors of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPAND / PAND instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the -/// values between both operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_and_pd(__m128d __a, __m128d __b) -{ - return (__m128d)((__v2du)__a & (__v2du)__b); -} - -/// Performs a bitwise AND of two 128-bit vectors of [2 x double], using -/// the one's complement of the values contained in the first source operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPANDN / PANDN instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing the left source operand. The -/// one's complement of this value is used in the bitwise AND. -/// \param __b -/// A 128-bit vector of [2 x double] containing the right source operand. -/// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the -/// values in the second operand and the one's complement of the first -/// operand. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_andnot_pd(__m128d __a, __m128d __b) -{ - return (__m128d)(~(__v2du)__a & (__v2du)__b); -} - -/// Performs a bitwise OR of two 128-bit vectors of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPOR / POR instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \returns A 128-bit vector of [2 x double] containing the bitwise OR of the -/// values between both operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_or_pd(__m128d __a, __m128d __b) -{ - return (__m128d)((__v2du)__a | (__v2du)__b); -} - -/// Performs a bitwise XOR of two 128-bit vectors of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPXOR / PXOR instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// \returns A 128-bit vector of [2 x double] containing the bitwise XOR of the -/// values between both operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_xor_pd(__m128d __a, __m128d __b) -{ - return (__m128d)((__v2du)__a ^ (__v2du)__b); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] for equality. Each comparison yields 0x0 -/// for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPEQPD / CMPEQPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpeq_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpeqpd((__v2df)__a, (__v2df)__b); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are less than those in the second operand. Each comparison -/// yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLTPD / CMPLTPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmplt_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpltpd((__v2df)__a, (__v2df)__b); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are less than or equal to those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLEPD / CMPLEPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmple_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmplepd((__v2df)__a, (__v2df)__b); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are greater than those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLTPD / CMPLTPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpgt_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpltpd((__v2df)__b, (__v2df)__a); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are greater than or equal to those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLEPD / CMPLEPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpge_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmplepd((__v2df)__b, (__v2df)__a); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are ordered with respect to those in the second operand. -/// -/// A pair of double-precision values are "ordered" with respect to each -/// other if neither value is a NaN. Each comparison yields 0x0 for false, -/// 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPORDPD / CMPORDPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpord_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpordpd((__v2df)__a, (__v2df)__b); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are unordered with respect to those in the second operand. -/// -/// A pair of double-precision values are "unordered" with respect to each -/// other if one or both values are NaN. Each comparison yields 0x0 for -/// false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPUNORDPD / CMPUNORDPD -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpunord_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpunordpd((__v2df)__a, (__v2df)__b); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are unequal to those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNEQPD / CMPNEQPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpneq_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpneqpd((__v2df)__a, (__v2df)__b); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are not less than those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLTPD / CMPNLTPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpnlt_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__a, (__v2df)__b); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are not less than or equal to those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLEPD / CMPNLEPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpnle_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__a, (__v2df)__b); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are not greater than those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLTPD / CMPNLTPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpngt_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__b, (__v2df)__a); -} - -/// Compares each of the corresponding double-precision values of the -/// 128-bit vectors of [2 x double] to determine if the values in the first -/// operand are not greater than or equal to those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLEPD / CMPNLEPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \param __b -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector containing the comparison results. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpnge_pd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__b, (__v2df)__a); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] for equality. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPEQSD / CMPEQSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpeq_sd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpeqsd((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is less than the corresponding value in -/// the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLTSD / CMPLTSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmplt_sd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpltsd((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is less than or equal to the -/// corresponding value in the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLESD / CMPLESD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmple_sd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmplesd((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is greater than the corresponding value -/// in the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLTSD / CMPLTSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpgt_sd(__m128d __a, __m128d __b) -{ - __m128d __c = __builtin_ia32_cmpltsd((__v2df)__b, (__v2df)__a); - return __extension__ (__m128d) { __c[0], __a[1] }; -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is greater than or equal to the -/// corresponding value in the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLESD / CMPLESD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpge_sd(__m128d __a, __m128d __b) -{ - __m128d __c = __builtin_ia32_cmplesd((__v2df)__b, (__v2df)__a); - return __extension__ (__m128d) { __c[0], __a[1] }; -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is "ordered" with respect to the -/// corresponding value in the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. A pair -/// of double-precision values are "ordered" with respect to each other if -/// neither value is a NaN. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPORDSD / CMPORDSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpord_sd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpordsd((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is "unordered" with respect to the -/// corresponding value in the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. A pair -/// of double-precision values are "unordered" with respect to each other if -/// one or both values are NaN. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPUNORDSD / CMPUNORDSD -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpunord_sd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpunordsd((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is unequal to the corresponding value in -/// the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNEQSD / CMPNEQSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpneq_sd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpneqsd((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is not less than the corresponding -/// value in the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLTSD / CMPNLTSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpnlt_sd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpnltsd((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is not less than or equal to the -/// corresponding value in the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLESD / CMPNLESD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpnle_sd(__m128d __a, __m128d __b) -{ - return (__m128d)__builtin_ia32_cmpnlesd((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is not greater than the corresponding -/// value in the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLTSD / CMPNLTSD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpngt_sd(__m128d __a, __m128d __b) -{ - __m128d __c = __builtin_ia32_cmpnltsd((__v2df)__b, (__v2df)__a); - return __extension__ (__m128d) { __c[0], __a[1] }; -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is not greater than or equal to the -/// corresponding value in the second parameter. -/// -/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLESD / CMPNLESD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns A 128-bit vector. The lower 64 bits contains the comparison -/// results. The upper 64 bits are copied from the upper 64 bits of \a __a. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cmpnge_sd(__m128d __a, __m128d __b) -{ - __m128d __c = __builtin_ia32_cmpnlesd((__v2df)__b, (__v2df)__a); - return __extension__ (__m128d) { __c[0], __a[1] }; -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] for equality. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two -/// lower double-precision values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISD / COMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comieq_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_comisdeq((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is less than the corresponding value in -/// the second parameter. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two -/// lower double-precision values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISD / COMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comilt_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_comisdlt((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is less than or equal to the -/// corresponding value in the second parameter. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two -/// lower double-precision values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISD / COMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comile_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_comisdle((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is greater than the corresponding value -/// in the second parameter. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two -/// lower double-precision values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISD / COMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comigt_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_comisdgt((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is greater than or equal to the -/// corresponding value in the second parameter. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two -/// lower double-precision values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISD / COMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comige_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_comisdge((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is unequal to the corresponding value in -/// the second parameter. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two -/// lower double-precision values is NaN, 1 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISD / COMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 1 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comineq_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_comisdneq((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] for equality. The -/// comparison yields 0 for false, 1 for true. -/// -/// If either of the two lower double-precision values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomieq_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_ucomisdeq((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is less than the corresponding value in -/// the second parameter. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two lower -/// double-precision values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomilt_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_ucomisdlt((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is less than or equal to the -/// corresponding value in the second parameter. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two lower -/// double-precision values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomile_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_ucomisdle((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is greater than the corresponding value -/// in the second parameter. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two lower -/// double-precision values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomigt_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_ucomisdgt((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is greater than or equal to the -/// corresponding value in the second parameter. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two -/// lower double-precision values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison results. If either of the two -/// lower double-precision values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomige_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_ucomisdge((__v2df)__a, (__v2df)__b); -} - -/// Compares the lower double-precision floating-point values in each of -/// the two 128-bit floating-point vectors of [2 x double] to determine if -/// the value in the first parameter is unequal to the corresponding value in -/// the second parameter. -/// -/// The comparison yields 0 for false, 1 for true. If either of the two lower -/// double-precision values is NaN, 1 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __b. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision value is -/// compared to the lower double-precision value of \a __a. -/// \returns An integer containing the comparison result. If either of the two -/// lower double-precision values is NaN, 1 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomineq_sd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_ucomisdneq((__v2df)__a, (__v2df)__b); -} - -/// Converts the two double-precision floating-point elements of a -/// 128-bit vector of [2 x double] into two single-precision floating-point -/// values, returned in the lower 64 bits of a 128-bit vector of [4 x float]. -/// The upper 64 bits of the result vector are set to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPD2PS / CVTPD2PS instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the -/// converted values. The upper 64 bits are set to zero. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cvtpd_ps(__m128d __a) -{ - return __builtin_ia32_cvtpd2ps((__v2df)__a); -} - -/// Converts the lower two single-precision floating-point elements of a -/// 128-bit vector of [4 x float] into two double-precision floating-point -/// values, returned in a 128-bit vector of [2 x double]. The upper two -/// elements of the input vector are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPS2PD / CVTPS2PD instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower two single-precision -/// floating-point elements are converted to double-precision values. The -/// upper two elements are unused. -/// \returns A 128-bit vector of [2 x double] containing the converted values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cvtps_pd(__m128 __a) -{ - return (__m128d) __builtin_convertvector( - __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1), __v2df); -} - -/// Converts the lower two integer elements of a 128-bit vector of -/// [4 x i32] into two double-precision floating-point values, returned in a -/// 128-bit vector of [2 x double]. -/// -/// The upper two elements of the input vector are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTDQ2PD / CVTDQ2PD instruction. -/// -/// \param __a -/// A 128-bit integer vector of [4 x i32]. The lower two integer elements are -/// converted to double-precision values. -/// -/// The upper two elements are unused. -/// \returns A 128-bit vector of [2 x double] containing the converted values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cvtepi32_pd(__m128i __a) -{ - return (__m128d) __builtin_convertvector( - __builtin_shufflevector((__v4si)__a, (__v4si)__a, 0, 1), __v2df); -} - -/// Converts the two double-precision floating-point elements of a -/// 128-bit vector of [2 x double] into two signed 32-bit integer values, -/// returned in the lower 64 bits of a 128-bit vector of [4 x i32]. The upper -/// 64 bits of the result vector are set to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPD2DQ / CVTPD2DQ instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the -/// converted values. The upper 64 bits are set to zero. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtpd_epi32(__m128d __a) -{ - return __builtin_ia32_cvtpd2dq((__v2df)__a); -} - -/// Converts the low-order element of a 128-bit vector of [2 x double] -/// into a 32-bit signed integer value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSD2SI / CVTSD2SI instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower 64 bits are used in the -/// conversion. -/// \returns A 32-bit signed integer containing the converted value. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_cvtsd_si32(__m128d __a) -{ - return __builtin_ia32_cvtsd2si((__v2df)__a); -} - -/// Converts the lower double-precision floating-point element of a -/// 128-bit vector of [2 x double], in the second parameter, into a -/// single-precision floating-point value, returned in the lower 32 bits of a -/// 128-bit vector of [4 x float]. The upper 96 bits of the result vector are -/// copied from the upper 96 bits of the first parameter. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSD2SS / CVTSD2SS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The upper 96 bits of this parameter are -/// copied to the upper 96 bits of the result. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower double-precision -/// floating-point element is used in the conversion. -/// \returns A 128-bit vector of [4 x float]. The lower 32 bits contain the -/// converted value from the second parameter. The upper 96 bits are copied -/// from the upper 96 bits of the first parameter. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cvtsd_ss(__m128 __a, __m128d __b) -{ - return (__m128)__builtin_ia32_cvtsd2ss((__v4sf)__a, (__v2df)__b); -} - -/// Converts a 32-bit signed integer value, in the second parameter, into -/// a double-precision floating-point value, returned in the lower 64 bits of -/// a 128-bit vector of [2 x double]. The upper 64 bits of the result vector -/// are copied from the upper 64 bits of the first parameter. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSI2SD / CVTSI2SD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The upper 64 bits of this parameter are -/// copied to the upper 64 bits of the result. -/// \param __b -/// A 32-bit signed integer containing the value to be converted. -/// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the -/// converted value from the second parameter. The upper 64 bits are copied -/// from the upper 64 bits of the first parameter. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cvtsi32_sd(__m128d __a, int __b) -{ - __a[0] = __b; - return __a; -} - -/// Converts the lower single-precision floating-point element of a -/// 128-bit vector of [4 x float], in the second parameter, into a -/// double-precision floating-point value, returned in the lower 64 bits of -/// a 128-bit vector of [2 x double]. The upper 64 bits of the result vector -/// are copied from the upper 64 bits of the first parameter. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSS2SD / CVTSS2SD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The upper 64 bits of this parameter are -/// copied to the upper 64 bits of the result. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower single-precision -/// floating-point element is used in the conversion. -/// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the -/// converted value from the second parameter. The upper 64 bits are copied -/// from the upper 64 bits of the first parameter. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cvtss_sd(__m128d __a, __m128 __b) -{ - __a[0] = __b[0]; - return __a; -} - -/// Converts the two double-precision floating-point elements of a -/// 128-bit vector of [2 x double] into two signed 32-bit integer values, -/// returned in the lower 64 bits of a 128-bit vector of [4 x i32]. -/// -/// If the result of either conversion is inexact, the result is truncated -/// (rounded towards zero) regardless of the current MXCSR setting. The upper -/// 64 bits of the result vector are set to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTTPD2DQ / CVTTPD2DQ -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the -/// converted values. The upper 64 bits are set to zero. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvttpd_epi32(__m128d __a) -{ - return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)__a); -} - -/// Converts the low-order element of a [2 x double] vector into a 32-bit -/// signed integer value, truncating the result when it is inexact. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTTSD2SI / CVTTSD2SI -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower 64 bits are used in the -/// conversion. -/// \returns A 32-bit signed integer containing the converted value. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_cvttsd_si32(__m128d __a) -{ - return __builtin_ia32_cvttsd2si((__v2df)__a); -} - -/// Converts the two double-precision floating-point elements of a -/// 128-bit vector of [2 x double] into two signed 32-bit integer values, -/// returned in a 64-bit vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPD2PI instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \returns A 64-bit vector of [2 x i32] containing the converted values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_cvtpd_pi32(__m128d __a) -{ - return (__m64)__builtin_ia32_cvtpd2pi((__v2df)__a); -} - -/// Converts the two double-precision floating-point elements of a -/// 128-bit vector of [2 x double] into two signed 32-bit integer values, -/// returned in a 64-bit vector of [2 x i32]. -/// -/// If the result of either conversion is inexact, the result is truncated -/// (rounded towards zero) regardless of the current MXCSR setting. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTTPD2PI instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. -/// \returns A 64-bit vector of [2 x i32] containing the converted values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_cvttpd_pi32(__m128d __a) -{ - return (__m64)__builtin_ia32_cvttpd2pi((__v2df)__a); -} - -/// Converts the two signed 32-bit integer elements of a 64-bit vector of -/// [2 x i32] into two double-precision floating-point values, returned in a -/// 128-bit vector of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPI2PD instruction. -/// -/// \param __a -/// A 64-bit vector of [2 x i32]. -/// \returns A 128-bit vector of [2 x double] containing the converted values. -static __inline__ __m128d __DEFAULT_FN_ATTRS_MMX -_mm_cvtpi32_pd(__m64 __a) -{ - return __builtin_ia32_cvtpi2pd((__v2si)__a); -} - -/// Returns the low-order element of a 128-bit vector of [2 x double] as -/// a double-precision floating-point value. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower 64 bits are returned. -/// \returns A double-precision floating-point value copied from the lower 64 -/// bits of \a __a. -static __inline__ double __DEFAULT_FN_ATTRS -_mm_cvtsd_f64(__m128d __a) -{ - return __a[0]; -} - -/// Loads a 128-bit floating-point vector of [2 x double] from an aligned -/// memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPD / MOVAPD instruction. -/// -/// \param __dp -/// A pointer to a 128-bit memory location. The address of the memory -/// location has to be 16-byte aligned. -/// \returns A 128-bit vector of [2 x double] containing the loaded values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_load_pd(double const *__dp) -{ - return *(__m128d*)__dp; -} - -/// Loads a double-precision floating-point value from a specified memory -/// location and duplicates it to both vector elements of a 128-bit vector of -/// [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDDUP / MOVDDUP instruction. -/// -/// \param __dp -/// A pointer to a memory location containing a double-precision value. -/// \returns A 128-bit vector of [2 x double] containing the loaded and -/// duplicated values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_load1_pd(double const *__dp) -{ - struct __mm_load1_pd_struct { - double __u; - } __attribute__((__packed__, __may_alias__)); - double __u = ((struct __mm_load1_pd_struct*)__dp)->__u; - return __extension__ (__m128d){ __u, __u }; -} - -#define _mm_load_pd1(dp) _mm_load1_pd(dp) - -/// Loads two double-precision values, in reverse order, from an aligned -/// memory location into a 128-bit vector of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPD / MOVAPD instruction + -/// needed shuffling instructions. In AVX mode, the shuffling may be combined -/// with the \c VMOVAPD, resulting in only a \c VPERMILPD instruction. -/// -/// \param __dp -/// A 16-byte aligned pointer to an array of double-precision values to be -/// loaded in reverse order. -/// \returns A 128-bit vector of [2 x double] containing the reversed loaded -/// values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_loadr_pd(double const *__dp) -{ - __m128d __u = *(__m128d*)__dp; - return __builtin_shufflevector((__v2df)__u, (__v2df)__u, 1, 0); -} - -/// Loads a 128-bit floating-point vector of [2 x double] from an -/// unaligned memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVUPD / MOVUPD instruction. -/// -/// \param __dp -/// A pointer to a 128-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \returns A 128-bit vector of [2 x double] containing the loaded values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_loadu_pd(double const *__dp) -{ - struct __loadu_pd { - __m128d_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_pd*)__dp)->__v; -} - -/// Loads a 64-bit integer value to the low element of a 128-bit integer -/// vector and clears the upper element. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVQ / MOVQ instruction. -/// -/// \param __a -/// A pointer to a 64-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \returns A 128-bit vector of [2 x i64] containing the loaded value. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_loadu_si64(void const *__a) -{ - struct __loadu_si64 { - long long __v; - } __attribute__((__packed__, __may_alias__)); - long long __u = ((struct __loadu_si64*)__a)->__v; - return __extension__ (__m128i)(__v2di){__u, 0LL}; -} - -/// Loads a 32-bit integer value to the low element of a 128-bit integer -/// vector and clears the upper element. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVD / MOVD instruction. -/// -/// \param __a -/// A pointer to a 32-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \returns A 128-bit vector of [4 x i32] containing the loaded value. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_loadu_si32(void const *__a) -{ - struct __loadu_si32 { - int __v; - } __attribute__((__packed__, __may_alias__)); - int __u = ((struct __loadu_si32*)__a)->__v; - return __extension__ (__m128i)(__v4si){__u, 0, 0, 0}; -} - -/// Loads a 16-bit integer value to the low element of a 128-bit integer -/// vector and clears the upper element. -/// -/// \headerfile -/// -/// This intrinsic does not correspond to a specific instruction. -/// -/// \param __a -/// A pointer to a 16-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \returns A 128-bit vector of [8 x i16] containing the loaded value. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_loadu_si16(void const *__a) -{ - struct __loadu_si16 { - short __v; - } __attribute__((__packed__, __may_alias__)); - short __u = ((struct __loadu_si16*)__a)->__v; - return __extension__ (__m128i)(__v8hi){__u, 0, 0, 0, 0, 0, 0, 0}; -} - -/// Loads a 64-bit double-precision value to the low element of a -/// 128-bit integer vector and clears the upper element. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVSD / MOVSD instruction. -/// -/// \param __dp -/// A pointer to a memory location containing a double-precision value. -/// The address of the memory location does not have to be aligned. -/// \returns A 128-bit vector of [2 x double] containing the loaded value. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_load_sd(double const *__dp) -{ - struct __mm_load_sd_struct { - double __u; - } __attribute__((__packed__, __may_alias__)); - double __u = ((struct __mm_load_sd_struct*)__dp)->__u; - return __extension__ (__m128d){ __u, 0 }; -} - -/// Loads a double-precision value into the high-order bits of a 128-bit -/// vector of [2 x double]. The low-order bits are copied from the low-order -/// bits of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVHPD / MOVHPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. \n -/// Bits [63:0] are written to bits [63:0] of the result. -/// \param __dp -/// A pointer to a 64-bit memory location containing a double-precision -/// floating-point value that is loaded. The loaded value is written to bits -/// [127:64] of the result. The address of the memory location does not have -/// to be aligned. -/// \returns A 128-bit vector of [2 x double] containing the moved values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_loadh_pd(__m128d __a, double const *__dp) -{ - struct __mm_loadh_pd_struct { - double __u; - } __attribute__((__packed__, __may_alias__)); - double __u = ((struct __mm_loadh_pd_struct*)__dp)->__u; - return __extension__ (__m128d){ __a[0], __u }; -} - -/// Loads a double-precision value into the low-order bits of a 128-bit -/// vector of [2 x double]. The high-order bits are copied from the -/// high-order bits of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVLPD / MOVLPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. \n -/// Bits [127:64] are written to bits [127:64] of the result. -/// \param __dp -/// A pointer to a 64-bit memory location containing a double-precision -/// floating-point value that is loaded. The loaded value is written to bits -/// [63:0] of the result. The address of the memory location does not have to -/// be aligned. -/// \returns A 128-bit vector of [2 x double] containing the moved values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_loadl_pd(__m128d __a, double const *__dp) -{ - struct __mm_loadl_pd_struct { - double __u; - } __attribute__((__packed__, __may_alias__)); - double __u = ((struct __mm_loadl_pd_struct*)__dp)->__u; - return __extension__ (__m128d){ __u, __a[1] }; -} - -/// Constructs a 128-bit floating-point vector of [2 x double] with -/// unspecified content. This could be used as an argument to another -/// intrinsic function where the argument is required but the value is not -/// actually used. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \returns A 128-bit floating-point vector of [2 x double] with unspecified -/// content. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_undefined_pd(void) -{ - return (__m128d)__builtin_ia32_undef128(); -} - -/// Constructs a 128-bit floating-point vector of [2 x double]. The lower -/// 64 bits of the vector are initialized with the specified double-precision -/// floating-point value. The upper 64 bits are set to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVQ / MOVQ instruction. -/// -/// \param __w -/// A double-precision floating-point value used to initialize the lower 64 -/// bits of the result. -/// \returns An initialized 128-bit floating-point vector of [2 x double]. The -/// lower 64 bits contain the value of the parameter. The upper 64 bits are -/// set to zero. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_set_sd(double __w) -{ - return __extension__ (__m128d){ __w, 0 }; -} - -/// Constructs a 128-bit floating-point vector of [2 x double], with each -/// of the two double-precision floating-point vector elements set to the -/// specified double-precision floating-point value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDDUP / MOVLHPS instruction. -/// -/// \param __w -/// A double-precision floating-point value used to initialize each vector -/// element of the result. -/// \returns An initialized 128-bit floating-point vector of [2 x double]. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_set1_pd(double __w) -{ - return __extension__ (__m128d){ __w, __w }; -} - -/// Constructs a 128-bit floating-point vector of [2 x double], with each -/// of the two double-precision floating-point vector elements set to the -/// specified double-precision floating-point value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDDUP / MOVLHPS instruction. -/// -/// \param __w -/// A double-precision floating-point value used to initialize each vector -/// element of the result. -/// \returns An initialized 128-bit floating-point vector of [2 x double]. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_set_pd1(double __w) -{ - return _mm_set1_pd(__w); -} - -/// Constructs a 128-bit floating-point vector of [2 x double] -/// initialized with the specified double-precision floating-point values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKLPD / UNPCKLPD instruction. -/// -/// \param __w -/// A double-precision floating-point value used to initialize the upper 64 -/// bits of the result. -/// \param __x -/// A double-precision floating-point value used to initialize the lower 64 -/// bits of the result. -/// \returns An initialized 128-bit floating-point vector of [2 x double]. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_set_pd(double __w, double __x) -{ - return __extension__ (__m128d){ __x, __w }; -} - -/// Constructs a 128-bit floating-point vector of [2 x double], -/// initialized in reverse order with the specified double-precision -/// floating-point values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKLPD / UNPCKLPD instruction. -/// -/// \param __w -/// A double-precision floating-point value used to initialize the lower 64 -/// bits of the result. -/// \param __x -/// A double-precision floating-point value used to initialize the upper 64 -/// bits of the result. -/// \returns An initialized 128-bit floating-point vector of [2 x double]. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_setr_pd(double __w, double __x) -{ - return __extension__ (__m128d){ __w, __x }; -} - -/// Constructs a 128-bit floating-point vector of [2 x double] -/// initialized to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VXORPS / XORPS instruction. -/// -/// \returns An initialized 128-bit floating-point vector of [2 x double] with -/// all elements set to zero. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_setzero_pd(void) -{ - return __extension__ (__m128d){ 0, 0 }; -} - -/// Constructs a 128-bit floating-point vector of [2 x double]. The lower -/// 64 bits are set to the lower 64 bits of the second parameter. The upper -/// 64 bits are set to the upper 64 bits of the first parameter. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBLENDPD / BLENDPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The upper 64 bits are written to the -/// upper 64 bits of the result. -/// \param __b -/// A 128-bit vector of [2 x double]. The lower 64 bits are written to the -/// lower 64 bits of the result. -/// \returns A 128-bit vector of [2 x double] containing the moved values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_move_sd(__m128d __a, __m128d __b) -{ - __a[0] = __b[0]; - return __a; -} - -/// Stores the lower 64 bits of a 128-bit vector of [2 x double] to a -/// memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVSD / MOVSD instruction. -/// -/// \param __dp -/// A pointer to a 64-bit memory location. -/// \param __a -/// A 128-bit vector of [2 x double] containing the value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_store_sd(double *__dp, __m128d __a) -{ - struct __mm_store_sd_struct { - double __u; - } __attribute__((__packed__, __may_alias__)); - ((struct __mm_store_sd_struct*)__dp)->__u = __a[0]; -} - -/// Moves packed double-precision values from a 128-bit vector of -/// [2 x double] to a memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPD / MOVAPS instruction. -/// -/// \param __dp -/// A pointer to an aligned memory location that can store two -/// double-precision values. -/// \param __a -/// A packed 128-bit vector of [2 x double] containing the values to be -/// moved. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_store_pd(double *__dp, __m128d __a) -{ - *(__m128d*)__dp = __a; -} - -/// Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to -/// the upper and lower 64 bits of a memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the -/// VMOVDDUP + VMOVAPD / MOVLHPS + MOVAPS instruction. -/// -/// \param __dp -/// A pointer to a memory location that can store two double-precision -/// values. -/// \param __a -/// A 128-bit vector of [2 x double] whose lower 64 bits are copied to each -/// of the values in \a __dp. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_store1_pd(double *__dp, __m128d __a) -{ - __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0); - _mm_store_pd(__dp, __a); -} - -/// Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to -/// the upper and lower 64 bits of a memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the -/// VMOVDDUP + VMOVAPD / MOVLHPS + MOVAPS instruction. -/// -/// \param __dp -/// A pointer to a memory location that can store two double-precision -/// values. -/// \param __a -/// A 128-bit vector of [2 x double] whose lower 64 bits are copied to each -/// of the values in \a __dp. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_store_pd1(double *__dp, __m128d __a) -{ - _mm_store1_pd(__dp, __a); -} - -/// Stores a 128-bit vector of [2 x double] into an unaligned memory -/// location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVUPD / MOVUPD instruction. -/// -/// \param __dp -/// A pointer to a 128-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \param __a -/// A 128-bit vector of [2 x double] containing the values to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storeu_pd(double *__dp, __m128d __a) -{ - struct __storeu_pd { - __m128d_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_pd*)__dp)->__v = __a; -} - -/// Stores two double-precision values, in reverse order, from a 128-bit -/// vector of [2 x double] to a 16-byte aligned memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to a shuffling instruction followed by a -/// VMOVAPD / MOVAPD instruction. -/// -/// \param __dp -/// A pointer to a 16-byte aligned memory location that can store two -/// double-precision values. -/// \param __a -/// A 128-bit vector of [2 x double] containing the values to be reversed and -/// stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storer_pd(double *__dp, __m128d __a) -{ - __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 1, 0); - *(__m128d *)__dp = __a; -} - -/// Stores the upper 64 bits of a 128-bit vector of [2 x double] to a -/// memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVHPD / MOVHPD instruction. -/// -/// \param __dp -/// A pointer to a 64-bit memory location. -/// \param __a -/// A 128-bit vector of [2 x double] containing the value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storeh_pd(double *__dp, __m128d __a) -{ - struct __mm_storeh_pd_struct { - double __u; - } __attribute__((__packed__, __may_alias__)); - ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[1]; -} - -/// Stores the lower 64 bits of a 128-bit vector of [2 x double] to a -/// memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVLPD / MOVLPD instruction. -/// -/// \param __dp -/// A pointer to a 64-bit memory location. -/// \param __a -/// A 128-bit vector of [2 x double] containing the value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storel_pd(double *__dp, __m128d __a) -{ - struct __mm_storeh_pd_struct { - double __u; - } __attribute__((__packed__, __may_alias__)); - ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[0]; -} - -/// Adds the corresponding elements of two 128-bit vectors of [16 x i8], -/// saving the lower 8 bits of each sum in the corresponding element of a -/// 128-bit result vector of [16 x i8]. -/// -/// The integer elements of both parameters can be either signed or unsigned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPADDB / PADDB instruction. -/// -/// \param __a -/// A 128-bit vector of [16 x i8]. -/// \param __b -/// A 128-bit vector of [16 x i8]. -/// \returns A 128-bit vector of [16 x i8] containing the sums of both -/// parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_add_epi8(__m128i __a, __m128i __b) -{ - return (__m128i)((__v16qu)__a + (__v16qu)__b); -} - -/// Adds the corresponding elements of two 128-bit vectors of [8 x i16], -/// saving the lower 16 bits of each sum in the corresponding element of a -/// 128-bit result vector of [8 x i16]. -/// -/// The integer elements of both parameters can be either signed or unsigned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPADDW / PADDW instruction. -/// -/// \param __a -/// A 128-bit vector of [8 x i16]. -/// \param __b -/// A 128-bit vector of [8 x i16]. -/// \returns A 128-bit vector of [8 x i16] containing the sums of both -/// parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_add_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)((__v8hu)__a + (__v8hu)__b); -} - -/// Adds the corresponding elements of two 128-bit vectors of [4 x i32], -/// saving the lower 32 bits of each sum in the corresponding element of a -/// 128-bit result vector of [4 x i32]. -/// -/// The integer elements of both parameters can be either signed or unsigned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPADDD / PADDD instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x i32]. -/// \param __b -/// A 128-bit vector of [4 x i32]. -/// \returns A 128-bit vector of [4 x i32] containing the sums of both -/// parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_add_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)((__v4su)__a + (__v4su)__b); -} - -/// Adds two signed or unsigned 64-bit integer values, returning the -/// lower 64 bits of the sum. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PADDQ instruction. -/// -/// \param __a -/// A 64-bit integer. -/// \param __b -/// A 64-bit integer. -/// \returns A 64-bit integer containing the sum of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_add_si64(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_paddq((__v1di)__a, (__v1di)__b); -} - -/// Adds the corresponding elements of two 128-bit vectors of [2 x i64], -/// saving the lower 64 bits of each sum in the corresponding element of a -/// 128-bit result vector of [2 x i64]. -/// -/// The integer elements of both parameters can be either signed or unsigned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPADDQ / PADDQ instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x i64]. -/// \param __b -/// A 128-bit vector of [2 x i64]. -/// \returns A 128-bit vector of [2 x i64] containing the sums of both -/// parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_add_epi64(__m128i __a, __m128i __b) -{ - return (__m128i)((__v2du)__a + (__v2du)__b); -} - -/// Adds, with saturation, the corresponding elements of two 128-bit -/// signed [16 x i8] vectors, saving each sum in the corresponding element of -/// a 128-bit result vector of [16 x i8]. Positive sums greater than 0x7F are -/// saturated to 0x7F. Negative sums less than 0x80 are saturated to 0x80. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPADDSB / PADDSB instruction. -/// -/// \param __a -/// A 128-bit signed [16 x i8] vector. -/// \param __b -/// A 128-bit signed [16 x i8] vector. -/// \returns A 128-bit signed [16 x i8] vector containing the saturated sums of -/// both parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_adds_epi8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_paddsb128((__v16qi)__a, (__v16qi)__b); -} - -/// Adds, with saturation, the corresponding elements of two 128-bit -/// signed [8 x i16] vectors, saving each sum in the corresponding element of -/// a 128-bit result vector of [8 x i16]. Positive sums greater than 0x7FFF -/// are saturated to 0x7FFF. Negative sums less than 0x8000 are saturated to -/// 0x8000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPADDSW / PADDSW instruction. -/// -/// \param __a -/// A 128-bit signed [8 x i16] vector. -/// \param __b -/// A 128-bit signed [8 x i16] vector. -/// \returns A 128-bit signed [8 x i16] vector containing the saturated sums of -/// both parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_adds_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_paddsw128((__v8hi)__a, (__v8hi)__b); -} - -/// Adds, with saturation, the corresponding elements of two 128-bit -/// unsigned [16 x i8] vectors, saving each sum in the corresponding element -/// of a 128-bit result vector of [16 x i8]. Positive sums greater than 0xFF -/// are saturated to 0xFF. Negative sums are saturated to 0x00. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPADDUSB / PADDUSB instruction. -/// -/// \param __a -/// A 128-bit unsigned [16 x i8] vector. -/// \param __b -/// A 128-bit unsigned [16 x i8] vector. -/// \returns A 128-bit unsigned [16 x i8] vector containing the saturated sums -/// of both parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_adds_epu8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_paddusb128((__v16qi)__a, (__v16qi)__b); -} - -/// Adds, with saturation, the corresponding elements of two 128-bit -/// unsigned [8 x i16] vectors, saving each sum in the corresponding element -/// of a 128-bit result vector of [8 x i16]. Positive sums greater than -/// 0xFFFF are saturated to 0xFFFF. Negative sums are saturated to 0x0000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPADDUSB / PADDUSB instruction. -/// -/// \param __a -/// A 128-bit unsigned [8 x i16] vector. -/// \param __b -/// A 128-bit unsigned [8 x i16] vector. -/// \returns A 128-bit unsigned [8 x i16] vector containing the saturated sums -/// of both parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_adds_epu16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_paddusw128((__v8hi)__a, (__v8hi)__b); -} - -/// Computes the rounded avarages of corresponding elements of two -/// 128-bit unsigned [16 x i8] vectors, saving each result in the -/// corresponding element of a 128-bit result vector of [16 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPAVGB / PAVGB instruction. -/// -/// \param __a -/// A 128-bit unsigned [16 x i8] vector. -/// \param __b -/// A 128-bit unsigned [16 x i8] vector. -/// \returns A 128-bit unsigned [16 x i8] vector containing the rounded -/// averages of both parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_avg_epu8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b); -} - -/// Computes the rounded avarages of corresponding elements of two -/// 128-bit unsigned [8 x i16] vectors, saving each result in the -/// corresponding element of a 128-bit result vector of [8 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPAVGW / PAVGW instruction. -/// -/// \param __a -/// A 128-bit unsigned [8 x i16] vector. -/// \param __b -/// A 128-bit unsigned [8 x i16] vector. -/// \returns A 128-bit unsigned [8 x i16] vector containing the rounded -/// averages of both parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_avg_epu16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b); -} - -/// Multiplies the corresponding elements of two 128-bit signed [8 x i16] -/// vectors, producing eight intermediate 32-bit signed integer products, and -/// adds the consecutive pairs of 32-bit products to form a 128-bit signed -/// [4 x i32] vector. -/// -/// For example, bits [15:0] of both parameters are multiplied producing a -/// 32-bit product, bits [31:16] of both parameters are multiplied producing -/// a 32-bit product, and the sum of those two products becomes bits [31:0] -/// of the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMADDWD / PMADDWD instruction. -/// -/// \param __a -/// A 128-bit signed [8 x i16] vector. -/// \param __b -/// A 128-bit signed [8 x i16] vector. -/// \returns A 128-bit signed [4 x i32] vector containing the sums of products -/// of both parameters. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_madd_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)__a, (__v8hi)__b); -} - -/// Compares corresponding elements of two 128-bit signed [8 x i16] -/// vectors, saving the greater value from each comparison in the -/// corresponding element of a 128-bit result vector of [8 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMAXSW / PMAXSW instruction. -/// -/// \param __a -/// A 128-bit signed [8 x i16] vector. -/// \param __b -/// A 128-bit signed [8 x i16] vector. -/// \returns A 128-bit signed [8 x i16] vector containing the greater value of -/// each comparison. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_max_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pmaxsw128((__v8hi)__a, (__v8hi)__b); -} - -/// Compares corresponding elements of two 128-bit unsigned [16 x i8] -/// vectors, saving the greater value from each comparison in the -/// corresponding element of a 128-bit result vector of [16 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMAXUB / PMAXUB instruction. -/// -/// \param __a -/// A 128-bit unsigned [16 x i8] vector. -/// \param __b -/// A 128-bit unsigned [16 x i8] vector. -/// \returns A 128-bit unsigned [16 x i8] vector containing the greater value of -/// each comparison. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_max_epu8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pmaxub128((__v16qi)__a, (__v16qi)__b); -} - -/// Compares corresponding elements of two 128-bit signed [8 x i16] -/// vectors, saving the smaller value from each comparison in the -/// corresponding element of a 128-bit result vector of [8 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMINSW / PMINSW instruction. -/// -/// \param __a -/// A 128-bit signed [8 x i16] vector. -/// \param __b -/// A 128-bit signed [8 x i16] vector. -/// \returns A 128-bit signed [8 x i16] vector containing the smaller value of -/// each comparison. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_min_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pminsw128((__v8hi)__a, (__v8hi)__b); -} - -/// Compares corresponding elements of two 128-bit unsigned [16 x i8] -/// vectors, saving the smaller value from each comparison in the -/// corresponding element of a 128-bit result vector of [16 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMINUB / PMINUB instruction. -/// -/// \param __a -/// A 128-bit unsigned [16 x i8] vector. -/// \param __b -/// A 128-bit unsigned [16 x i8] vector. -/// \returns A 128-bit unsigned [16 x i8] vector containing the smaller value of -/// each comparison. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_min_epu8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pminub128((__v16qi)__a, (__v16qi)__b); -} - -/// Multiplies the corresponding elements of two signed [8 x i16] -/// vectors, saving the upper 16 bits of each 32-bit product in the -/// corresponding element of a 128-bit signed [8 x i16] result vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMULHW / PMULHW instruction. -/// -/// \param __a -/// A 128-bit signed [8 x i16] vector. -/// \param __b -/// A 128-bit signed [8 x i16] vector. -/// \returns A 128-bit signed [8 x i16] vector containing the upper 16 bits of -/// each of the eight 32-bit products. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_mulhi_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pmulhw128((__v8hi)__a, (__v8hi)__b); -} - -/// Multiplies the corresponding elements of two unsigned [8 x i16] -/// vectors, saving the upper 16 bits of each 32-bit product in the -/// corresponding element of a 128-bit unsigned [8 x i16] result vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMULHUW / PMULHUW instruction. -/// -/// \param __a -/// A 128-bit unsigned [8 x i16] vector. -/// \param __b -/// A 128-bit unsigned [8 x i16] vector. -/// \returns A 128-bit unsigned [8 x i16] vector containing the upper 16 bits -/// of each of the eight 32-bit products. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_mulhi_epu16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)__a, (__v8hi)__b); -} - -/// Multiplies the corresponding elements of two signed [8 x i16] -/// vectors, saving the lower 16 bits of each 32-bit product in the -/// corresponding element of a 128-bit signed [8 x i16] result vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMULLW / PMULLW instruction. -/// -/// \param __a -/// A 128-bit signed [8 x i16] vector. -/// \param __b -/// A 128-bit signed [8 x i16] vector. -/// \returns A 128-bit signed [8 x i16] vector containing the lower 16 bits of -/// each of the eight 32-bit products. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_mullo_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)((__v8hu)__a * (__v8hu)__b); -} - -/// Multiplies 32-bit unsigned integer values contained in the lower bits -/// of the two 64-bit integer vectors and returns the 64-bit unsigned -/// product. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PMULUDQ instruction. -/// -/// \param __a -/// A 64-bit integer containing one of the source operands. -/// \param __b -/// A 64-bit integer containing one of the source operands. -/// \returns A 64-bit integer vector containing the product of both operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_mul_su32(__m64 __a, __m64 __b) -{ - return __builtin_ia32_pmuludq((__v2si)__a, (__v2si)__b); -} - -/// Multiplies 32-bit unsigned integer values contained in the lower -/// bits of the corresponding elements of two [2 x i64] vectors, and returns -/// the 64-bit products in the corresponding elements of a [2 x i64] vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMULUDQ / PMULUDQ instruction. -/// -/// \param __a -/// A [2 x i64] vector containing one of the source operands. -/// \param __b -/// A [2 x i64] vector containing one of the source operands. -/// \returns A [2 x i64] vector containing the product of both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_mul_epu32(__m128i __a, __m128i __b) -{ - return __builtin_ia32_pmuludq128((__v4si)__a, (__v4si)__b); -} - -/// Computes the absolute differences of corresponding 8-bit integer -/// values in two 128-bit vectors. Sums the first 8 absolute differences, and -/// separately sums the second 8 absolute differences. Packs these two -/// unsigned 16-bit integer sums into the upper and lower elements of a -/// [2 x i64] vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSADBW / PSADBW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing one of the source operands. -/// \param __b -/// A 128-bit integer vector containing one of the source operands. -/// \returns A [2 x i64] vector containing the sums of the sets of absolute -/// differences between both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sad_epu8(__m128i __a, __m128i __b) -{ - return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b); -} - -/// Subtracts the corresponding 8-bit integer values in the operands. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSUBB / PSUBB instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the minuends. -/// \param __b -/// A 128-bit integer vector containing the subtrahends. -/// \returns A 128-bit integer vector containing the differences of the values -/// in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sub_epi8(__m128i __a, __m128i __b) -{ - return (__m128i)((__v16qu)__a - (__v16qu)__b); -} - -/// Subtracts the corresponding 16-bit integer values in the operands. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSUBW / PSUBW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the minuends. -/// \param __b -/// A 128-bit integer vector containing the subtrahends. -/// \returns A 128-bit integer vector containing the differences of the values -/// in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sub_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)((__v8hu)__a - (__v8hu)__b); -} - -/// Subtracts the corresponding 32-bit integer values in the operands. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSUBD / PSUBD instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the minuends. -/// \param __b -/// A 128-bit integer vector containing the subtrahends. -/// \returns A 128-bit integer vector containing the differences of the values -/// in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sub_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)((__v4su)__a - (__v4su)__b); -} - -/// Subtracts signed or unsigned 64-bit integer values and writes the -/// difference to the corresponding bits in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSUBQ instruction. -/// -/// \param __a -/// A 64-bit integer vector containing the minuend. -/// \param __b -/// A 64-bit integer vector containing the subtrahend. -/// \returns A 64-bit integer vector containing the difference of the values in -/// the operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_sub_si64(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_psubq((__v1di)__a, (__v1di)__b); -} - -/// Subtracts the corresponding elements of two [2 x i64] vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSUBQ / PSUBQ instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the minuends. -/// \param __b -/// A 128-bit integer vector containing the subtrahends. -/// \returns A 128-bit integer vector containing the differences of the values -/// in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sub_epi64(__m128i __a, __m128i __b) -{ - return (__m128i)((__v2du)__a - (__v2du)__b); -} - -/// Subtracts corresponding 8-bit signed integer values in the input and -/// returns the differences in the corresponding bytes in the destination. -/// Differences greater than 0x7F are saturated to 0x7F, and differences less -/// than 0x80 are saturated to 0x80. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSUBSB / PSUBSB instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the minuends. -/// \param __b -/// A 128-bit integer vector containing the subtrahends. -/// \returns A 128-bit integer vector containing the differences of the values -/// in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_subs_epi8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_psubsb128((__v16qi)__a, (__v16qi)__b); -} - -/// Subtracts corresponding 16-bit signed integer values in the input and -/// returns the differences in the corresponding bytes in the destination. -/// Differences greater than 0x7FFF are saturated to 0x7FFF, and values less -/// than 0x8000 are saturated to 0x8000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSUBSW / PSUBSW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the minuends. -/// \param __b -/// A 128-bit integer vector containing the subtrahends. -/// \returns A 128-bit integer vector containing the differences of the values -/// in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_subs_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_psubsw128((__v8hi)__a, (__v8hi)__b); -} - -/// Subtracts corresponding 8-bit unsigned integer values in the input -/// and returns the differences in the corresponding bytes in the -/// destination. Differences less than 0x00 are saturated to 0x00. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSUBUSB / PSUBUSB instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the minuends. -/// \param __b -/// A 128-bit integer vector containing the subtrahends. -/// \returns A 128-bit integer vector containing the unsigned integer -/// differences of the values in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_subs_epu8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_psubusb128((__v16qi)__a, (__v16qi)__b); -} - -/// Subtracts corresponding 16-bit unsigned integer values in the input -/// and returns the differences in the corresponding bytes in the -/// destination. Differences less than 0x0000 are saturated to 0x0000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSUBUSW / PSUBUSW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the minuends. -/// \param __b -/// A 128-bit integer vector containing the subtrahends. -/// \returns A 128-bit integer vector containing the unsigned integer -/// differences of the values in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_subs_epu16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_psubusw128((__v8hi)__a, (__v8hi)__b); -} - -/// Performs a bitwise AND of two 128-bit integer vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPAND / PAND instruction. -/// -/// \param __a -/// A 128-bit integer vector containing one of the source operands. -/// \param __b -/// A 128-bit integer vector containing one of the source operands. -/// \returns A 128-bit integer vector containing the bitwise AND of the values -/// in both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_and_si128(__m128i __a, __m128i __b) -{ - return (__m128i)((__v2du)__a & (__v2du)__b); -} - -/// Performs a bitwise AND of two 128-bit integer vectors, using the -/// one's complement of the values contained in the first source operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPANDN / PANDN instruction. -/// -/// \param __a -/// A 128-bit vector containing the left source operand. The one's complement -/// of this value is used in the bitwise AND. -/// \param __b -/// A 128-bit vector containing the right source operand. -/// \returns A 128-bit integer vector containing the bitwise AND of the one's -/// complement of the first operand and the values in the second operand. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_andnot_si128(__m128i __a, __m128i __b) -{ - return (__m128i)(~(__v2du)__a & (__v2du)__b); -} -/// Performs a bitwise OR of two 128-bit integer vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPOR / POR instruction. -/// -/// \param __a -/// A 128-bit integer vector containing one of the source operands. -/// \param __b -/// A 128-bit integer vector containing one of the source operands. -/// \returns A 128-bit integer vector containing the bitwise OR of the values -/// in both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_or_si128(__m128i __a, __m128i __b) -{ - return (__m128i)((__v2du)__a | (__v2du)__b); -} - -/// Performs a bitwise exclusive OR of two 128-bit integer vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPXOR / PXOR instruction. -/// -/// \param __a -/// A 128-bit integer vector containing one of the source operands. -/// \param __b -/// A 128-bit integer vector containing one of the source operands. -/// \returns A 128-bit integer vector containing the bitwise exclusive OR of the -/// values in both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_xor_si128(__m128i __a, __m128i __b) -{ - return (__m128i)((__v2du)__a ^ (__v2du)__b); -} - -/// Left-shifts the 128-bit integer vector operand by the specified -/// number of bytes. Low-order bits are cleared. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_slli_si128(__m128i a, const int imm); -/// \endcode -/// -/// This intrinsic corresponds to the VPSLLDQ / PSLLDQ instruction. -/// -/// \param a -/// A 128-bit integer vector containing the source operand. -/// \param imm -/// An immediate value specifying the number of bytes to left-shift operand -/// \a a. -/// \returns A 128-bit integer vector containing the left-shifted value. -#define _mm_slli_si128(a, imm) \ - (__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)) - -#define _mm_bslli_si128(a, imm) \ - (__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)) - -/// Left-shifts each 16-bit value in the 128-bit integer vector operand -/// by the specified number of bits. Low-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSLLW / PSLLW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// An integer value specifying the number of bits to left-shift each value -/// in operand \a __a. -/// \returns A 128-bit integer vector containing the left-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_slli_epi16(__m128i __a, int __count) -{ - return (__m128i)__builtin_ia32_psllwi128((__v8hi)__a, __count); -} - -/// Left-shifts each 16-bit value in the 128-bit integer vector operand -/// by the specified number of bits. Low-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSLLW / PSLLW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// A 128-bit integer vector in which bits [63:0] specify the number of bits -/// to left-shift each value in operand \a __a. -/// \returns A 128-bit integer vector containing the left-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sll_epi16(__m128i __a, __m128i __count) -{ - return (__m128i)__builtin_ia32_psllw128((__v8hi)__a, (__v8hi)__count); -} - -/// Left-shifts each 32-bit value in the 128-bit integer vector operand -/// by the specified number of bits. Low-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSLLD / PSLLD instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// An integer value specifying the number of bits to left-shift each value -/// in operand \a __a. -/// \returns A 128-bit integer vector containing the left-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_slli_epi32(__m128i __a, int __count) -{ - return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count); -} - -/// Left-shifts each 32-bit value in the 128-bit integer vector operand -/// by the specified number of bits. Low-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSLLD / PSLLD instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// A 128-bit integer vector in which bits [63:0] specify the number of bits -/// to left-shift each value in operand \a __a. -/// \returns A 128-bit integer vector containing the left-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sll_epi32(__m128i __a, __m128i __count) -{ - return (__m128i)__builtin_ia32_pslld128((__v4si)__a, (__v4si)__count); -} - -/// Left-shifts each 64-bit value in the 128-bit integer vector operand -/// by the specified number of bits. Low-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSLLQ / PSLLQ instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// An integer value specifying the number of bits to left-shift each value -/// in operand \a __a. -/// \returns A 128-bit integer vector containing the left-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_slli_epi64(__m128i __a, int __count) -{ - return __builtin_ia32_psllqi128((__v2di)__a, __count); -} - -/// Left-shifts each 64-bit value in the 128-bit integer vector operand -/// by the specified number of bits. Low-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSLLQ / PSLLQ instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// A 128-bit integer vector in which bits [63:0] specify the number of bits -/// to left-shift each value in operand \a __a. -/// \returns A 128-bit integer vector containing the left-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sll_epi64(__m128i __a, __m128i __count) -{ - return __builtin_ia32_psllq128((__v2di)__a, (__v2di)__count); -} - -/// Right-shifts each 16-bit value in the 128-bit integer vector operand -/// by the specified number of bits. High-order bits are filled with the sign -/// bit of the initial value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSRAW / PSRAW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// An integer value specifying the number of bits to right-shift each value -/// in operand \a __a. -/// \returns A 128-bit integer vector containing the right-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_srai_epi16(__m128i __a, int __count) -{ - return (__m128i)__builtin_ia32_psrawi128((__v8hi)__a, __count); -} - -/// Right-shifts each 16-bit value in the 128-bit integer vector operand -/// by the specified number of bits. High-order bits are filled with the sign -/// bit of the initial value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSRAW / PSRAW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// A 128-bit integer vector in which bits [63:0] specify the number of bits -/// to right-shift each value in operand \a __a. -/// \returns A 128-bit integer vector containing the right-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sra_epi16(__m128i __a, __m128i __count) -{ - return (__m128i)__builtin_ia32_psraw128((__v8hi)__a, (__v8hi)__count); -} - -/// Right-shifts each 32-bit value in the 128-bit integer vector operand -/// by the specified number of bits. High-order bits are filled with the sign -/// bit of the initial value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSRAD / PSRAD instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// An integer value specifying the number of bits to right-shift each value -/// in operand \a __a. -/// \returns A 128-bit integer vector containing the right-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_srai_epi32(__m128i __a, int __count) -{ - return (__m128i)__builtin_ia32_psradi128((__v4si)__a, __count); -} - -/// Right-shifts each 32-bit value in the 128-bit integer vector operand -/// by the specified number of bits. High-order bits are filled with the sign -/// bit of the initial value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSRAD / PSRAD instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// A 128-bit integer vector in which bits [63:0] specify the number of bits -/// to right-shift each value in operand \a __a. -/// \returns A 128-bit integer vector containing the right-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sra_epi32(__m128i __a, __m128i __count) -{ - return (__m128i)__builtin_ia32_psrad128((__v4si)__a, (__v4si)__count); -} - -/// Right-shifts the 128-bit integer vector operand by the specified -/// number of bytes. High-order bits are cleared. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_srli_si128(__m128i a, const int imm); -/// \endcode -/// -/// This intrinsic corresponds to the VPSRLDQ / PSRLDQ instruction. -/// -/// \param a -/// A 128-bit integer vector containing the source operand. -/// \param imm -/// An immediate value specifying the number of bytes to right-shift operand -/// \a a. -/// \returns A 128-bit integer vector containing the right-shifted value. -#define _mm_srli_si128(a, imm) \ - (__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)) - -#define _mm_bsrli_si128(a, imm) \ - (__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), (int)(imm)) - -/// Right-shifts each of 16-bit values in the 128-bit integer vector -/// operand by the specified number of bits. High-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSRLW / PSRLW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// An integer value specifying the number of bits to right-shift each value -/// in operand \a __a. -/// \returns A 128-bit integer vector containing the right-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_srli_epi16(__m128i __a, int __count) -{ - return (__m128i)__builtin_ia32_psrlwi128((__v8hi)__a, __count); -} - -/// Right-shifts each of 16-bit values in the 128-bit integer vector -/// operand by the specified number of bits. High-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSRLW / PSRLW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// A 128-bit integer vector in which bits [63:0] specify the number of bits -/// to right-shift each value in operand \a __a. -/// \returns A 128-bit integer vector containing the right-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_srl_epi16(__m128i __a, __m128i __count) -{ - return (__m128i)__builtin_ia32_psrlw128((__v8hi)__a, (__v8hi)__count); -} - -/// Right-shifts each of 32-bit values in the 128-bit integer vector -/// operand by the specified number of bits. High-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSRLD / PSRLD instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// An integer value specifying the number of bits to right-shift each value -/// in operand \a __a. -/// \returns A 128-bit integer vector containing the right-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_srli_epi32(__m128i __a, int __count) -{ - return (__m128i)__builtin_ia32_psrldi128((__v4si)__a, __count); -} - -/// Right-shifts each of 32-bit values in the 128-bit integer vector -/// operand by the specified number of bits. High-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSRLD / PSRLD instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// A 128-bit integer vector in which bits [63:0] specify the number of bits -/// to right-shift each value in operand \a __a. -/// \returns A 128-bit integer vector containing the right-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_srl_epi32(__m128i __a, __m128i __count) -{ - return (__m128i)__builtin_ia32_psrld128((__v4si)__a, (__v4si)__count); -} - -/// Right-shifts each of 64-bit values in the 128-bit integer vector -/// operand by the specified number of bits. High-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSRLQ / PSRLQ instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// An integer value specifying the number of bits to right-shift each value -/// in operand \a __a. -/// \returns A 128-bit integer vector containing the right-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_srli_epi64(__m128i __a, int __count) -{ - return __builtin_ia32_psrlqi128((__v2di)__a, __count); -} - -/// Right-shifts each of 64-bit values in the 128-bit integer vector -/// operand by the specified number of bits. High-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPSRLQ / PSRLQ instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the source operand. -/// \param __count -/// A 128-bit integer vector in which bits [63:0] specify the number of bits -/// to right-shift each value in operand \a __a. -/// \returns A 128-bit integer vector containing the right-shifted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_srl_epi64(__m128i __a, __m128i __count) -{ - return __builtin_ia32_psrlq128((__v2di)__a, (__v2di)__count); -} - -/// Compares each of the corresponding 8-bit values of the 128-bit -/// integer vectors for equality. Each comparison yields 0x0 for false, 0xFF -/// for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPEQB / PCMPEQB instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \param __b -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmpeq_epi8(__m128i __a, __m128i __b) -{ - return (__m128i)((__v16qi)__a == (__v16qi)__b); -} - -/// Compares each of the corresponding 16-bit values of the 128-bit -/// integer vectors for equality. Each comparison yields 0x0 for false, -/// 0xFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPEQW / PCMPEQW instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \param __b -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmpeq_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)((__v8hi)__a == (__v8hi)__b); -} - -/// Compares each of the corresponding 32-bit values of the 128-bit -/// integer vectors for equality. Each comparison yields 0x0 for false, -/// 0xFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPEQD / PCMPEQD instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \param __b -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmpeq_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)((__v4si)__a == (__v4si)__b); -} - -/// Compares each of the corresponding signed 8-bit values of the 128-bit -/// integer vectors to determine if the values in the first operand are -/// greater than those in the second operand. Each comparison yields 0x0 for -/// false, 0xFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPGTB / PCMPGTB instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \param __b -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmpgt_epi8(__m128i __a, __m128i __b) -{ - /* This function always performs a signed comparison, but __v16qi is a char - which may be signed or unsigned, so use __v16qs. */ - return (__m128i)((__v16qs)__a > (__v16qs)__b); -} - -/// Compares each of the corresponding signed 16-bit values of the -/// 128-bit integer vectors to determine if the values in the first operand -/// are greater than those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPGTW / PCMPGTW instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \param __b -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmpgt_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)((__v8hi)__a > (__v8hi)__b); -} - -/// Compares each of the corresponding signed 32-bit values of the -/// 128-bit integer vectors to determine if the values in the first operand -/// are greater than those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPGTD / PCMPGTD instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \param __b -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmpgt_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)((__v4si)__a > (__v4si)__b); -} - -/// Compares each of the corresponding signed 8-bit values of the 128-bit -/// integer vectors to determine if the values in the first operand are less -/// than those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPGTB / PCMPGTB instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \param __b -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmplt_epi8(__m128i __a, __m128i __b) -{ - return _mm_cmpgt_epi8(__b, __a); -} - -/// Compares each of the corresponding signed 16-bit values of the -/// 128-bit integer vectors to determine if the values in the first operand -/// are less than those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPGTW / PCMPGTW instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \param __b -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmplt_epi16(__m128i __a, __m128i __b) -{ - return _mm_cmpgt_epi16(__b, __a); -} - -/// Compares each of the corresponding signed 32-bit values of the -/// 128-bit integer vectors to determine if the values in the first operand -/// are less than those in the second operand. -/// -/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPGTD / PCMPGTD instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \param __b -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmplt_epi32(__m128i __a, __m128i __b) -{ - return _mm_cmpgt_epi32(__b, __a); -} - -#ifdef __x86_64__ -/// Converts a 64-bit signed integer value from the second operand into a -/// double-precision value and returns it in the lower element of a [2 x -/// double] vector; the upper element of the returned vector is copied from -/// the upper element of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSI2SD / CVTSI2SD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The upper 64 bits of this operand are -/// copied to the upper 64 bits of the destination. -/// \param __b -/// A 64-bit signed integer operand containing the value to be converted. -/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the -/// converted value of the second operand. The upper 64 bits are copied from -/// the upper 64 bits of the first operand. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_cvtsi64_sd(__m128d __a, long long __b) -{ - __a[0] = __b; - return __a; -} - -/// Converts the first (lower) element of a vector of [2 x double] into a -/// 64-bit signed integer value, according to the current rounding mode. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSD2SI / CVTSD2SI instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower 64 bits are used in the -/// conversion. -/// \returns A 64-bit signed integer containing the converted value. -static __inline__ long long __DEFAULT_FN_ATTRS -_mm_cvtsd_si64(__m128d __a) -{ - return __builtin_ia32_cvtsd2si64((__v2df)__a); -} - -/// Converts the first (lower) element of a vector of [2 x double] into a -/// 64-bit signed integer value, truncating the result when it is inexact. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTTSD2SI / CVTTSD2SI -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. The lower 64 bits are used in the -/// conversion. -/// \returns A 64-bit signed integer containing the converted value. -static __inline__ long long __DEFAULT_FN_ATTRS -_mm_cvttsd_si64(__m128d __a) -{ - return __builtin_ia32_cvttsd2si64((__v2df)__a); -} -#endif - -/// Converts a vector of [4 x i32] into a vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTDQ2PS / CVTDQ2PS instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \returns A 128-bit vector of [4 x float] containing the converted values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cvtepi32_ps(__m128i __a) -{ - return (__m128)__builtin_convertvector((__v4si)__a, __v4sf); -} - -/// Converts a vector of [4 x float] into a vector of [4 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPS2DQ / CVTPS2DQ instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit integer vector of [4 x i32] containing the converted -/// values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtps_epi32(__m128 __a) -{ - return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)__a); -} - -/// Converts a vector of [4 x float] into a vector of [4 x i32], -/// truncating the result when it is inexact. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTTPS2DQ / CVTTPS2DQ -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x i32] containing the converted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvttps_epi32(__m128 __a) -{ - return (__m128i)__builtin_ia32_cvttps2dq((__v4sf)__a); -} - -/// Returns a vector of [4 x i32] where the lowest element is the input -/// operand and the remaining elements are zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVD / MOVD instruction. -/// -/// \param __a -/// A 32-bit signed integer operand. -/// \returns A 128-bit vector of [4 x i32]. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtsi32_si128(int __a) -{ - return __extension__ (__m128i)(__v4si){ __a, 0, 0, 0 }; -} - -#ifdef __x86_64__ -/// Returns a vector of [2 x i64] where the lower element is the input -/// operand and the upper element is zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVQ / MOVQ instruction. -/// -/// \param __a -/// A 64-bit signed integer operand containing the value to be converted. -/// \returns A 128-bit vector of [2 x i64] containing the converted value. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtsi64_si128(long long __a) -{ - return __extension__ (__m128i)(__v2di){ __a, 0 }; -} -#endif - -/// Moves the least significant 32 bits of a vector of [4 x i32] to a -/// 32-bit signed integer value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVD / MOVD instruction. -/// -/// \param __a -/// A vector of [4 x i32]. The least significant 32 bits are moved to the -/// destination. -/// \returns A 32-bit signed integer containing the moved value. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_cvtsi128_si32(__m128i __a) -{ - __v4si __b = (__v4si)__a; - return __b[0]; -} - -#ifdef __x86_64__ -/// Moves the least significant 64 bits of a vector of [2 x i64] to a -/// 64-bit signed integer value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVQ / MOVQ instruction. -/// -/// \param __a -/// A vector of [2 x i64]. The least significant 64 bits are moved to the -/// destination. -/// \returns A 64-bit signed integer containing the moved value. -static __inline__ long long __DEFAULT_FN_ATTRS -_mm_cvtsi128_si64(__m128i __a) -{ - return __a[0]; -} -#endif - -/// Moves packed integer values from an aligned 128-bit memory location -/// to elements in a 128-bit integer vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDQA / MOVDQA instruction. -/// -/// \param __p -/// An aligned pointer to a memory location containing integer values. -/// \returns A 128-bit integer vector containing the moved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_load_si128(__m128i const *__p) -{ - return *__p; -} - -/// Moves packed integer values from an unaligned 128-bit memory location -/// to elements in a 128-bit integer vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDQU / MOVDQU instruction. -/// -/// \param __p -/// A pointer to a memory location containing integer values. -/// \returns A 128-bit integer vector containing the moved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_loadu_si128(__m128i_u const *__p) -{ - struct __loadu_si128 { - __m128i_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_si128*)__p)->__v; -} - -/// Returns a vector of [2 x i64] where the lower element is taken from -/// the lower element of the operand, and the upper element is zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVQ / MOVQ instruction. -/// -/// \param __p -/// A 128-bit vector of [2 x i64]. Bits [63:0] are written to bits [63:0] of -/// the destination. -/// \returns A 128-bit vector of [2 x i64]. The lower order bits contain the -/// moved value. The higher order bits are cleared. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_loadl_epi64(__m128i_u const *__p) -{ - struct __mm_loadl_epi64_struct { - long long __u; - } __attribute__((__packed__, __may_alias__)); - return __extension__ (__m128i) { ((struct __mm_loadl_epi64_struct*)__p)->__u, 0}; -} - -/// Generates a 128-bit vector of [4 x i32] with unspecified content. -/// This could be used as an argument to another intrinsic function where the -/// argument is required but the value is not actually used. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \returns A 128-bit vector of [4 x i32] with unspecified content. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_undefined_si128(void) -{ - return (__m128i)__builtin_ia32_undef128(); -} - -/// Initializes both 64-bit values in a 128-bit vector of [2 x i64] with -/// the specified 64-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __q1 -/// A 64-bit integer value used to initialize the upper 64 bits of the -/// destination vector of [2 x i64]. -/// \param __q0 -/// A 64-bit integer value used to initialize the lower 64 bits of the -/// destination vector of [2 x i64]. -/// \returns An initialized 128-bit vector of [2 x i64] containing the values -/// provided in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_set_epi64x(long long __q1, long long __q0) -{ - return __extension__ (__m128i)(__v2di){ __q0, __q1 }; -} - -/// Initializes both 64-bit values in a 128-bit vector of [2 x i64] with -/// the specified 64-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __q1 -/// A 64-bit integer value used to initialize the upper 64 bits of the -/// destination vector of [2 x i64]. -/// \param __q0 -/// A 64-bit integer value used to initialize the lower 64 bits of the -/// destination vector of [2 x i64]. -/// \returns An initialized 128-bit vector of [2 x i64] containing the values -/// provided in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_set_epi64(__m64 __q1, __m64 __q0) -{ - return _mm_set_epi64x((long long)__q1, (long long)__q0); -} - -/// Initializes the 32-bit values in a 128-bit vector of [4 x i32] with -/// the specified 32-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __i3 -/// A 32-bit integer value used to initialize bits [127:96] of the -/// destination vector. -/// \param __i2 -/// A 32-bit integer value used to initialize bits [95:64] of the destination -/// vector. -/// \param __i1 -/// A 32-bit integer value used to initialize bits [63:32] of the destination -/// vector. -/// \param __i0 -/// A 32-bit integer value used to initialize bits [31:0] of the destination -/// vector. -/// \returns An initialized 128-bit vector of [4 x i32] containing the values -/// provided in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_set_epi32(int __i3, int __i2, int __i1, int __i0) -{ - return __extension__ (__m128i)(__v4si){ __i0, __i1, __i2, __i3}; -} - -/// Initializes the 16-bit values in a 128-bit vector of [8 x i16] with -/// the specified 16-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __w7 -/// A 16-bit integer value used to initialize bits [127:112] of the -/// destination vector. -/// \param __w6 -/// A 16-bit integer value used to initialize bits [111:96] of the -/// destination vector. -/// \param __w5 -/// A 16-bit integer value used to initialize bits [95:80] of the destination -/// vector. -/// \param __w4 -/// A 16-bit integer value used to initialize bits [79:64] of the destination -/// vector. -/// \param __w3 -/// A 16-bit integer value used to initialize bits [63:48] of the destination -/// vector. -/// \param __w2 -/// A 16-bit integer value used to initialize bits [47:32] of the destination -/// vector. -/// \param __w1 -/// A 16-bit integer value used to initialize bits [31:16] of the destination -/// vector. -/// \param __w0 -/// A 16-bit integer value used to initialize bits [15:0] of the destination -/// vector. -/// \returns An initialized 128-bit vector of [8 x i16] containing the values -/// provided in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_set_epi16(short __w7, short __w6, short __w5, short __w4, short __w3, short __w2, short __w1, short __w0) -{ - return __extension__ (__m128i)(__v8hi){ __w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7 }; -} - -/// Initializes the 8-bit values in a 128-bit vector of [16 x i8] with -/// the specified 8-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __b15 -/// Initializes bits [127:120] of the destination vector. -/// \param __b14 -/// Initializes bits [119:112] of the destination vector. -/// \param __b13 -/// Initializes bits [111:104] of the destination vector. -/// \param __b12 -/// Initializes bits [103:96] of the destination vector. -/// \param __b11 -/// Initializes bits [95:88] of the destination vector. -/// \param __b10 -/// Initializes bits [87:80] of the destination vector. -/// \param __b9 -/// Initializes bits [79:72] of the destination vector. -/// \param __b8 -/// Initializes bits [71:64] of the destination vector. -/// \param __b7 -/// Initializes bits [63:56] of the destination vector. -/// \param __b6 -/// Initializes bits [55:48] of the destination vector. -/// \param __b5 -/// Initializes bits [47:40] of the destination vector. -/// \param __b4 -/// Initializes bits [39:32] of the destination vector. -/// \param __b3 -/// Initializes bits [31:24] of the destination vector. -/// \param __b2 -/// Initializes bits [23:16] of the destination vector. -/// \param __b1 -/// Initializes bits [15:8] of the destination vector. -/// \param __b0 -/// Initializes bits [7:0] of the destination vector. -/// \returns An initialized 128-bit vector of [16 x i8] containing the values -/// provided in the operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_set_epi8(char __b15, char __b14, char __b13, char __b12, char __b11, char __b10, char __b9, char __b8, char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0) -{ - return __extension__ (__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15 }; -} - -/// Initializes both values in a 128-bit integer vector with the -/// specified 64-bit integer value. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __q -/// Integer value used to initialize the elements of the destination integer -/// vector. -/// \returns An initialized 128-bit integer vector of [2 x i64] with both -/// elements containing the value provided in the operand. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_set1_epi64x(long long __q) -{ - return _mm_set_epi64x(__q, __q); -} - -/// Initializes both values in a 128-bit vector of [2 x i64] with the -/// specified 64-bit value. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __q -/// A 64-bit value used to initialize the elements of the destination integer -/// vector. -/// \returns An initialized 128-bit vector of [2 x i64] with all elements -/// containing the value provided in the operand. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_set1_epi64(__m64 __q) -{ - return _mm_set_epi64(__q, __q); -} - -/// Initializes all values in a 128-bit vector of [4 x i32] with the -/// specified 32-bit value. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __i -/// A 32-bit value used to initialize the elements of the destination integer -/// vector. -/// \returns An initialized 128-bit vector of [4 x i32] with all elements -/// containing the value provided in the operand. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_set1_epi32(int __i) -{ - return _mm_set_epi32(__i, __i, __i, __i); -} - -/// Initializes all values in a 128-bit vector of [8 x i16] with the -/// specified 16-bit value. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __w -/// A 16-bit value used to initialize the elements of the destination integer -/// vector. -/// \returns An initialized 128-bit vector of [8 x i16] with all elements -/// containing the value provided in the operand. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_set1_epi16(short __w) -{ - return _mm_set_epi16(__w, __w, __w, __w, __w, __w, __w, __w); -} - -/// Initializes all values in a 128-bit vector of [16 x i8] with the -/// specified 8-bit value. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __b -/// An 8-bit value used to initialize the elements of the destination integer -/// vector. -/// \returns An initialized 128-bit vector of [16 x i8] with all elements -/// containing the value provided in the operand. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_set1_epi8(char __b) -{ - return _mm_set_epi8(__b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b); -} - -/// Constructs a 128-bit integer vector, initialized in reverse order -/// with the specified 64-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic does not correspond to a specific instruction. -/// -/// \param __q0 -/// A 64-bit integral value used to initialize the lower 64 bits of the -/// result. -/// \param __q1 -/// A 64-bit integral value used to initialize the upper 64 bits of the -/// result. -/// \returns An initialized 128-bit integer vector. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_setr_epi64(__m64 __q0, __m64 __q1) -{ - return _mm_set_epi64(__q1, __q0); -} - -/// Constructs a 128-bit integer vector, initialized in reverse order -/// with the specified 32-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __i0 -/// A 32-bit integral value used to initialize bits [31:0] of the result. -/// \param __i1 -/// A 32-bit integral value used to initialize bits [63:32] of the result. -/// \param __i2 -/// A 32-bit integral value used to initialize bits [95:64] of the result. -/// \param __i3 -/// A 32-bit integral value used to initialize bits [127:96] of the result. -/// \returns An initialized 128-bit integer vector. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_setr_epi32(int __i0, int __i1, int __i2, int __i3) -{ - return _mm_set_epi32(__i3, __i2, __i1, __i0); -} - -/// Constructs a 128-bit integer vector, initialized in reverse order -/// with the specified 16-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __w0 -/// A 16-bit integral value used to initialize bits [15:0] of the result. -/// \param __w1 -/// A 16-bit integral value used to initialize bits [31:16] of the result. -/// \param __w2 -/// A 16-bit integral value used to initialize bits [47:32] of the result. -/// \param __w3 -/// A 16-bit integral value used to initialize bits [63:48] of the result. -/// \param __w4 -/// A 16-bit integral value used to initialize bits [79:64] of the result. -/// \param __w5 -/// A 16-bit integral value used to initialize bits [95:80] of the result. -/// \param __w6 -/// A 16-bit integral value used to initialize bits [111:96] of the result. -/// \param __w7 -/// A 16-bit integral value used to initialize bits [127:112] of the result. -/// \returns An initialized 128-bit integer vector. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_setr_epi16(short __w0, short __w1, short __w2, short __w3, short __w4, short __w5, short __w6, short __w7) -{ - return _mm_set_epi16(__w7, __w6, __w5, __w4, __w3, __w2, __w1, __w0); -} - -/// Constructs a 128-bit integer vector, initialized in reverse order -/// with the specified 8-bit integral values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __b0 -/// An 8-bit integral value used to initialize bits [7:0] of the result. -/// \param __b1 -/// An 8-bit integral value used to initialize bits [15:8] of the result. -/// \param __b2 -/// An 8-bit integral value used to initialize bits [23:16] of the result. -/// \param __b3 -/// An 8-bit integral value used to initialize bits [31:24] of the result. -/// \param __b4 -/// An 8-bit integral value used to initialize bits [39:32] of the result. -/// \param __b5 -/// An 8-bit integral value used to initialize bits [47:40] of the result. -/// \param __b6 -/// An 8-bit integral value used to initialize bits [55:48] of the result. -/// \param __b7 -/// An 8-bit integral value used to initialize bits [63:56] of the result. -/// \param __b8 -/// An 8-bit integral value used to initialize bits [71:64] of the result. -/// \param __b9 -/// An 8-bit integral value used to initialize bits [79:72] of the result. -/// \param __b10 -/// An 8-bit integral value used to initialize bits [87:80] of the result. -/// \param __b11 -/// An 8-bit integral value used to initialize bits [95:88] of the result. -/// \param __b12 -/// An 8-bit integral value used to initialize bits [103:96] of the result. -/// \param __b13 -/// An 8-bit integral value used to initialize bits [111:104] of the result. -/// \param __b14 -/// An 8-bit integral value used to initialize bits [119:112] of the result. -/// \param __b15 -/// An 8-bit integral value used to initialize bits [127:120] of the result. -/// \returns An initialized 128-bit integer vector. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_setr_epi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, char __b6, char __b7, char __b8, char __b9, char __b10, char __b11, char __b12, char __b13, char __b14, char __b15) -{ - return _mm_set_epi8(__b15, __b14, __b13, __b12, __b11, __b10, __b9, __b8, __b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0); -} - -/// Creates a 128-bit integer vector initialized to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VXORPS / XORPS instruction. -/// -/// \returns An initialized 128-bit integer vector with all elements set to -/// zero. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_setzero_si128(void) -{ - return __extension__ (__m128i)(__v2di){ 0LL, 0LL }; -} - -/// Stores a 128-bit integer vector to a memory location aligned on a -/// 128-bit boundary. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPS / MOVAPS instruction. -/// -/// \param __p -/// A pointer to an aligned memory location that will receive the integer -/// values. -/// \param __b -/// A 128-bit integer vector containing the values to be moved. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_store_si128(__m128i *__p, __m128i __b) -{ - *__p = __b; -} - -/// Stores a 128-bit integer vector to an unaligned memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVUPS / MOVUPS instruction. -/// -/// \param __p -/// A pointer to a memory location that will receive the integer values. -/// \param __b -/// A 128-bit integer vector containing the values to be moved. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storeu_si128(__m128i_u *__p, __m128i __b) -{ - struct __storeu_si128 { - __m128i_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_si128*)__p)->__v = __b; -} - -/// Stores a 64-bit integer value from the low element of a 128-bit integer -/// vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVQ / MOVQ instruction. -/// -/// \param __p -/// A pointer to a 64-bit memory location. The address of the memory -/// location does not have to be algned. -/// \param __b -/// A 128-bit integer vector containing the value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storeu_si64(void *__p, __m128i __b) -{ - struct __storeu_si64 { - long long __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_si64*)__p)->__v = ((__v2di)__b)[0]; -} - -/// Stores a 32-bit integer value from the low element of a 128-bit integer -/// vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVD / MOVD instruction. -/// -/// \param __p -/// A pointer to a 32-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \param __b -/// A 128-bit integer vector containing the value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storeu_si32(void *__p, __m128i __b) -{ - struct __storeu_si32 { - int __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_si32*)__p)->__v = ((__v4si)__b)[0]; -} - -/// Stores a 16-bit integer value from the low element of a 128-bit integer -/// vector. -/// -/// \headerfile -/// -/// This intrinsic does not correspond to a specific instruction. -/// -/// \param __p -/// A pointer to a 16-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \param __b -/// A 128-bit integer vector containing the value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storeu_si16(void *__p, __m128i __b) -{ - struct __storeu_si16 { - short __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_si16*)__p)->__v = ((__v8hi)__b)[0]; -} - -/// Moves bytes selected by the mask from the first operand to the -/// specified unaligned memory location. When a mask bit is 1, the -/// corresponding byte is written, otherwise it is not written. -/// -/// To minimize caching, the data is flagged as non-temporal (unlikely to be -/// used again soon). Exception and trap behavior for elements not selected -/// for storage to memory are implementation dependent. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMASKMOVDQU / MASKMOVDQU -/// instruction. -/// -/// \param __d -/// A 128-bit integer vector containing the values to be moved. -/// \param __n -/// A 128-bit integer vector containing the mask. The most significant bit of -/// each byte represents the mask bits. -/// \param __p -/// A pointer to an unaligned 128-bit memory location where the specified -/// values are moved. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_maskmoveu_si128(__m128i __d, __m128i __n, char *__p) -{ - __builtin_ia32_maskmovdqu((__v16qi)__d, (__v16qi)__n, __p); -} - -/// Stores the lower 64 bits of a 128-bit integer vector of [2 x i64] to -/// a memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVLPS / MOVLPS instruction. -/// -/// \param __p -/// A pointer to a 64-bit memory location that will receive the lower 64 bits -/// of the integer vector parameter. -/// \param __a -/// A 128-bit integer vector of [2 x i64]. The lower 64 bits contain the -/// value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storel_epi64(__m128i_u *__p, __m128i __a) -{ - struct __mm_storel_epi64_struct { - long long __u; - } __attribute__((__packed__, __may_alias__)); - ((struct __mm_storel_epi64_struct*)__p)->__u = __a[0]; -} - -/// Stores a 128-bit floating point vector of [2 x double] to a 128-bit -/// aligned memory location. -/// -/// To minimize caching, the data is flagged as non-temporal (unlikely to be -/// used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVNTPS / MOVNTPS instruction. -/// -/// \param __p -/// A pointer to the 128-bit aligned memory location used to store the value. -/// \param __a -/// A vector of [2 x double] containing the 64-bit values to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_stream_pd(double *__p, __m128d __a) -{ - __builtin_nontemporal_store((__v2df)__a, (__v2df*)__p); -} - -/// Stores a 128-bit integer vector to a 128-bit aligned memory location. -/// -/// To minimize caching, the data is flagged as non-temporal (unlikely to be -/// used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVNTPS / MOVNTPS instruction. -/// -/// \param __p -/// A pointer to the 128-bit aligned memory location used to store the value. -/// \param __a -/// A 128-bit integer vector containing the values to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_stream_si128(__m128i *__p, __m128i __a) -{ - __builtin_nontemporal_store((__v2di)__a, (__v2di*)__p); -} - -/// Stores a 32-bit integer value in the specified memory location. -/// -/// To minimize caching, the data is flagged as non-temporal (unlikely to be -/// used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVNTI instruction. -/// -/// \param __p -/// A pointer to the 32-bit memory location used to store the value. -/// \param __a -/// A 32-bit integer containing the value to be stored. -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"))) -_mm_stream_si32(int *__p, int __a) -{ - __builtin_ia32_movnti(__p, __a); -} - -#ifdef __x86_64__ -/// Stores a 64-bit integer value in the specified memory location. -/// -/// To minimize caching, the data is flagged as non-temporal (unlikely to be -/// used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVNTIQ instruction. -/// -/// \param __p -/// A pointer to the 64-bit memory location used to store the value. -/// \param __a -/// A 64-bit integer containing the value to be stored. -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"))) -_mm_stream_si64(long long *__p, long long __a) -{ - __builtin_ia32_movnti64(__p, __a); -} -#endif - -#if defined(__cplusplus) -extern "C" { -#endif - -/// The cache line containing \a __p is flushed and invalidated from all -/// caches in the coherency domain. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CLFLUSH instruction. -/// -/// \param __p -/// A pointer to the memory location used to identify the cache line to be -/// flushed. -void _mm_clflush(void const * __p); - -/// Forces strong memory ordering (serialization) between load -/// instructions preceding this instruction and load instructions following -/// this instruction, ensuring the system completes all previous loads before -/// executing subsequent loads. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the LFENCE instruction. -/// -void _mm_lfence(void); - -/// Forces strong memory ordering (serialization) between load and store -/// instructions preceding this instruction and load and store instructions -/// following this instruction, ensuring that the system completes all -/// previous memory accesses before executing subsequent memory accesses. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MFENCE instruction. -/// -void _mm_mfence(void); - -#if defined(__cplusplus) -} // extern "C" -#endif - -/// Converts 16-bit signed integers from both 128-bit integer vector -/// operands into 8-bit signed integers, and packs the results into the -/// destination. Positive values greater than 0x7F are saturated to 0x7F. -/// Negative values less than 0x80 are saturated to 0x80. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPACKSSWB / PACKSSWB instruction. -/// -/// \param __a -/// A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as -/// a signed integer and is converted to a 8-bit signed integer with -/// saturation. Values greater than 0x7F are saturated to 0x7F. Values less -/// than 0x80 are saturated to 0x80. The converted [8 x i8] values are -/// written to the lower 64 bits of the result. -/// \param __b -/// A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as -/// a signed integer and is converted to a 8-bit signed integer with -/// saturation. Values greater than 0x7F are saturated to 0x7F. Values less -/// than 0x80 are saturated to 0x80. The converted [8 x i8] values are -/// written to the higher 64 bits of the result. -/// \returns A 128-bit vector of [16 x i8] containing the converted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_packs_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_packsswb128((__v8hi)__a, (__v8hi)__b); -} - -/// Converts 32-bit signed integers from both 128-bit integer vector -/// operands into 16-bit signed integers, and packs the results into the -/// destination. Positive values greater than 0x7FFF are saturated to 0x7FFF. -/// Negative values less than 0x8000 are saturated to 0x8000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPACKSSDW / PACKSSDW instruction. -/// -/// \param __a -/// A 128-bit integer vector of [4 x i32]. Each 32-bit element is treated as -/// a signed integer and is converted to a 16-bit signed integer with -/// saturation. Values greater than 0x7FFF are saturated to 0x7FFF. Values -/// less than 0x8000 are saturated to 0x8000. The converted [4 x i16] values -/// are written to the lower 64 bits of the result. -/// \param __b -/// A 128-bit integer vector of [4 x i32]. Each 32-bit element is treated as -/// a signed integer and is converted to a 16-bit signed integer with -/// saturation. Values greater than 0x7FFF are saturated to 0x7FFF. Values -/// less than 0x8000 are saturated to 0x8000. The converted [4 x i16] values -/// are written to the higher 64 bits of the result. -/// \returns A 128-bit vector of [8 x i16] containing the converted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_packs_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_packssdw128((__v4si)__a, (__v4si)__b); -} - -/// Converts 16-bit signed integers from both 128-bit integer vector -/// operands into 8-bit unsigned integers, and packs the results into the -/// destination. Values greater than 0xFF are saturated to 0xFF. Values less -/// than 0x00 are saturated to 0x00. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPACKUSWB / PACKUSWB instruction. -/// -/// \param __a -/// A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as -/// a signed integer and is converted to an 8-bit unsigned integer with -/// saturation. Values greater than 0xFF are saturated to 0xFF. Values less -/// than 0x00 are saturated to 0x00. The converted [8 x i8] values are -/// written to the lower 64 bits of the result. -/// \param __b -/// A 128-bit integer vector of [8 x i16]. Each 16-bit element is treated as -/// a signed integer and is converted to an 8-bit unsigned integer with -/// saturation. Values greater than 0xFF are saturated to 0xFF. Values less -/// than 0x00 are saturated to 0x00. The converted [8 x i8] values are -/// written to the higher 64 bits of the result. -/// \returns A 128-bit vector of [16 x i8] containing the converted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_packus_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_packuswb128((__v8hi)__a, (__v8hi)__b); -} - -/// Extracts 16 bits from a 128-bit integer vector of [8 x i16], using -/// the immediate-value parameter as a selector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPEXTRW / PEXTRW instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \param __imm -/// An immediate value. Bits [2:0] selects values from \a __a to be assigned -/// to bits[15:0] of the result. \n -/// 000: assign values from bits [15:0] of \a __a. \n -/// 001: assign values from bits [31:16] of \a __a. \n -/// 010: assign values from bits [47:32] of \a __a. \n -/// 011: assign values from bits [63:48] of \a __a. \n -/// 100: assign values from bits [79:64] of \a __a. \n -/// 101: assign values from bits [95:80] of \a __a. \n -/// 110: assign values from bits [111:96] of \a __a. \n -/// 111: assign values from bits [127:112] of \a __a. -/// \returns An integer, whose lower 16 bits are selected from the 128-bit -/// integer vector parameter and the remaining bits are assigned zeros. -#define _mm_extract_epi16(a, imm) \ - (int)(unsigned short)__builtin_ia32_vec_ext_v8hi((__v8hi)(__m128i)(a), \ - (int)(imm)) - -/// Constructs a 128-bit integer vector by first making a copy of the -/// 128-bit integer vector parameter, and then inserting the lower 16 bits -/// of an integer parameter into an offset specified by the immediate-value -/// parameter. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPINSRW / PINSRW instruction. -/// -/// \param __a -/// A 128-bit integer vector of [8 x i16]. This vector is copied to the -/// result and then one of the eight elements in the result is replaced by -/// the lower 16 bits of \a __b. -/// \param __b -/// An integer. The lower 16 bits of this parameter are written to the -/// result beginning at an offset specified by \a __imm. -/// \param __imm -/// An immediate value specifying the bit offset in the result at which the -/// lower 16 bits of \a __b are written. -/// \returns A 128-bit integer vector containing the constructed values. -#define _mm_insert_epi16(a, b, imm) \ - (__m128i)__builtin_ia32_vec_set_v8hi((__v8hi)(__m128i)(a), (int)(b), \ - (int)(imm)) - -/// Copies the values of the most significant bits from each 8-bit -/// element in a 128-bit integer vector of [16 x i8] to create a 16-bit mask -/// value, zero-extends the value, and writes it to the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVMSKB / PMOVMSKB instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the values with bits to be extracted. -/// \returns The most significant bits from each 8-bit element in \a __a, -/// written to bits [15:0]. The other bits are assigned zeros. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_movemask_epi8(__m128i __a) -{ - return __builtin_ia32_pmovmskb128((__v16qi)__a); -} - -/// Constructs a 128-bit integer vector by shuffling four 32-bit -/// elements of a 128-bit integer vector parameter, using the immediate-value -/// parameter as a specifier. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_shuffle_epi32(__m128i a, const int imm); -/// \endcode -/// -/// This intrinsic corresponds to the VPSHUFD / PSHUFD instruction. -/// -/// \param a -/// A 128-bit integer vector containing the values to be copied. -/// \param imm -/// An immediate value containing an 8-bit value specifying which elements to -/// copy from a. The destinations within the 128-bit destination are assigned -/// values as follows: \n -/// Bits [1:0] are used to assign values to bits [31:0] of the result. \n -/// Bits [3:2] are used to assign values to bits [63:32] of the result. \n -/// Bits [5:4] are used to assign values to bits [95:64] of the result. \n -/// Bits [7:6] are used to assign values to bits [127:96] of the result. \n -/// Bit value assignments: \n -/// 00: assign values from bits [31:0] of \a a. \n -/// 01: assign values from bits [63:32] of \a a. \n -/// 10: assign values from bits [95:64] of \a a. \n -/// 11: assign values from bits [127:96] of \a a. -/// \returns A 128-bit integer vector containing the shuffled values. -#define _mm_shuffle_epi32(a, imm) \ - (__m128i)__builtin_ia32_pshufd((__v4si)(__m128i)(a), (int)(imm)) - -/// Constructs a 128-bit integer vector by shuffling four lower 16-bit -/// elements of a 128-bit integer vector of [8 x i16], using the immediate -/// value parameter as a specifier. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_shufflelo_epi16(__m128i a, const int imm); -/// \endcode -/// -/// This intrinsic corresponds to the VPSHUFLW / PSHUFLW instruction. -/// -/// \param a -/// A 128-bit integer vector of [8 x i16]. Bits [127:64] are copied to bits -/// [127:64] of the result. -/// \param imm -/// An 8-bit immediate value specifying which elements to copy from \a a. \n -/// Bits[1:0] are used to assign values to bits [15:0] of the result. \n -/// Bits[3:2] are used to assign values to bits [31:16] of the result. \n -/// Bits[5:4] are used to assign values to bits [47:32] of the result. \n -/// Bits[7:6] are used to assign values to bits [63:48] of the result. \n -/// Bit value assignments: \n -/// 00: assign values from bits [15:0] of \a a. \n -/// 01: assign values from bits [31:16] of \a a. \n -/// 10: assign values from bits [47:32] of \a a. \n -/// 11: assign values from bits [63:48] of \a a. \n -/// \returns A 128-bit integer vector containing the shuffled values. -#define _mm_shufflelo_epi16(a, imm) \ - (__m128i)__builtin_ia32_pshuflw((__v8hi)(__m128i)(a), (int)(imm)) - -/// Constructs a 128-bit integer vector by shuffling four upper 16-bit -/// elements of a 128-bit integer vector of [8 x i16], using the immediate -/// value parameter as a specifier. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_shufflehi_epi16(__m128i a, const int imm); -/// \endcode -/// -/// This intrinsic corresponds to the VPSHUFHW / PSHUFHW instruction. -/// -/// \param a -/// A 128-bit integer vector of [8 x i16]. Bits [63:0] are copied to bits -/// [63:0] of the result. -/// \param imm -/// An 8-bit immediate value specifying which elements to copy from \a a. \n -/// Bits[1:0] are used to assign values to bits [79:64] of the result. \n -/// Bits[3:2] are used to assign values to bits [95:80] of the result. \n -/// Bits[5:4] are used to assign values to bits [111:96] of the result. \n -/// Bits[7:6] are used to assign values to bits [127:112] of the result. \n -/// Bit value assignments: \n -/// 00: assign values from bits [79:64] of \a a. \n -/// 01: assign values from bits [95:80] of \a a. \n -/// 10: assign values from bits [111:96] of \a a. \n -/// 11: assign values from bits [127:112] of \a a. \n -/// \returns A 128-bit integer vector containing the shuffled values. -#define _mm_shufflehi_epi16(a, imm) \ - (__m128i)__builtin_ia32_pshufhw((__v8hi)(__m128i)(a), (int)(imm)) - -/// Unpacks the high-order (index 8-15) values from two 128-bit vectors -/// of [16 x i8] and interleaves them into a 128-bit vector of [16 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPUNPCKHBW / PUNPCKHBW -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [16 x i8]. -/// Bits [71:64] are written to bits [7:0] of the result. \n -/// Bits [79:72] are written to bits [23:16] of the result. \n -/// Bits [87:80] are written to bits [39:32] of the result. \n -/// Bits [95:88] are written to bits [55:48] of the result. \n -/// Bits [103:96] are written to bits [71:64] of the result. \n -/// Bits [111:104] are written to bits [87:80] of the result. \n -/// Bits [119:112] are written to bits [103:96] of the result. \n -/// Bits [127:120] are written to bits [119:112] of the result. -/// \param __b -/// A 128-bit vector of [16 x i8]. \n -/// Bits [71:64] are written to bits [15:8] of the result. \n -/// Bits [79:72] are written to bits [31:24] of the result. \n -/// Bits [87:80] are written to bits [47:40] of the result. \n -/// Bits [95:88] are written to bits [63:56] of the result. \n -/// Bits [103:96] are written to bits [79:72] of the result. \n -/// Bits [111:104] are written to bits [95:88] of the result. \n -/// Bits [119:112] are written to bits [111:104] of the result. \n -/// Bits [127:120] are written to bits [127:120] of the result. -/// \returns A 128-bit vector of [16 x i8] containing the interleaved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_unpackhi_epi8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 8, 16+8, 9, 16+9, 10, 16+10, 11, 16+11, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15); -} - -/// Unpacks the high-order (index 4-7) values from two 128-bit vectors of -/// [8 x i16] and interleaves them into a 128-bit vector of [8 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPUNPCKHWD / PUNPCKHWD -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [8 x i16]. -/// Bits [79:64] are written to bits [15:0] of the result. \n -/// Bits [95:80] are written to bits [47:32] of the result. \n -/// Bits [111:96] are written to bits [79:64] of the result. \n -/// Bits [127:112] are written to bits [111:96] of the result. -/// \param __b -/// A 128-bit vector of [8 x i16]. -/// Bits [79:64] are written to bits [31:16] of the result. \n -/// Bits [95:80] are written to bits [63:48] of the result. \n -/// Bits [111:96] are written to bits [95:80] of the result. \n -/// Bits [127:112] are written to bits [127:112] of the result. -/// \returns A 128-bit vector of [8 x i16] containing the interleaved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_unpackhi_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 4, 8+4, 5, 8+5, 6, 8+6, 7, 8+7); -} - -/// Unpacks the high-order (index 2,3) values from two 128-bit vectors of -/// [4 x i32] and interleaves them into a 128-bit vector of [4 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPUNPCKHDQ / PUNPCKHDQ -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x i32]. \n -/// Bits [95:64] are written to bits [31:0] of the destination. \n -/// Bits [127:96] are written to bits [95:64] of the destination. -/// \param __b -/// A 128-bit vector of [4 x i32]. \n -/// Bits [95:64] are written to bits [64:32] of the destination. \n -/// Bits [127:96] are written to bits [127:96] of the destination. -/// \returns A 128-bit vector of [4 x i32] containing the interleaved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_unpackhi_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 2, 4+2, 3, 4+3); -} - -/// Unpacks the high-order 64-bit elements from two 128-bit vectors of -/// [2 x i64] and interleaves them into a 128-bit vector of [2 x i64]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPUNPCKHQDQ / PUNPCKHQDQ -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x i64]. \n -/// Bits [127:64] are written to bits [63:0] of the destination. -/// \param __b -/// A 128-bit vector of [2 x i64]. \n -/// Bits [127:64] are written to bits [127:64] of the destination. -/// \returns A 128-bit vector of [2 x i64] containing the interleaved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_unpackhi_epi64(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 1, 2+1); -} - -/// Unpacks the low-order (index 0-7) values from two 128-bit vectors of -/// [16 x i8] and interleaves them into a 128-bit vector of [16 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPUNPCKLBW / PUNPCKLBW -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [16 x i8]. \n -/// Bits [7:0] are written to bits [7:0] of the result. \n -/// Bits [15:8] are written to bits [23:16] of the result. \n -/// Bits [23:16] are written to bits [39:32] of the result. \n -/// Bits [31:24] are written to bits [55:48] of the result. \n -/// Bits [39:32] are written to bits [71:64] of the result. \n -/// Bits [47:40] are written to bits [87:80] of the result. \n -/// Bits [55:48] are written to bits [103:96] of the result. \n -/// Bits [63:56] are written to bits [119:112] of the result. -/// \param __b -/// A 128-bit vector of [16 x i8]. -/// Bits [7:0] are written to bits [15:8] of the result. \n -/// Bits [15:8] are written to bits [31:24] of the result. \n -/// Bits [23:16] are written to bits [47:40] of the result. \n -/// Bits [31:24] are written to bits [63:56] of the result. \n -/// Bits [39:32] are written to bits [79:72] of the result. \n -/// Bits [47:40] are written to bits [95:88] of the result. \n -/// Bits [55:48] are written to bits [111:104] of the result. \n -/// Bits [63:56] are written to bits [127:120] of the result. -/// \returns A 128-bit vector of [16 x i8] containing the interleaved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_unpacklo_epi8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 0, 16+0, 1, 16+1, 2, 16+2, 3, 16+3, 4, 16+4, 5, 16+5, 6, 16+6, 7, 16+7); -} - -/// Unpacks the low-order (index 0-3) values from each of the two 128-bit -/// vectors of [8 x i16] and interleaves them into a 128-bit vector of -/// [8 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPUNPCKLWD / PUNPCKLWD -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [8 x i16]. -/// Bits [15:0] are written to bits [15:0] of the result. \n -/// Bits [31:16] are written to bits [47:32] of the result. \n -/// Bits [47:32] are written to bits [79:64] of the result. \n -/// Bits [63:48] are written to bits [111:96] of the result. -/// \param __b -/// A 128-bit vector of [8 x i16]. -/// Bits [15:0] are written to bits [31:16] of the result. \n -/// Bits [31:16] are written to bits [63:48] of the result. \n -/// Bits [47:32] are written to bits [95:80] of the result. \n -/// Bits [63:48] are written to bits [127:112] of the result. -/// \returns A 128-bit vector of [8 x i16] containing the interleaved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_unpacklo_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 0, 8+0, 1, 8+1, 2, 8+2, 3, 8+3); -} - -/// Unpacks the low-order (index 0,1) values from two 128-bit vectors of -/// [4 x i32] and interleaves them into a 128-bit vector of [4 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPUNPCKLDQ / PUNPCKLDQ -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x i32]. \n -/// Bits [31:0] are written to bits [31:0] of the destination. \n -/// Bits [63:32] are written to bits [95:64] of the destination. -/// \param __b -/// A 128-bit vector of [4 x i32]. \n -/// Bits [31:0] are written to bits [64:32] of the destination. \n -/// Bits [63:32] are written to bits [127:96] of the destination. -/// \returns A 128-bit vector of [4 x i32] containing the interleaved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_unpacklo_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 0, 4+0, 1, 4+1); -} - -/// Unpacks the low-order 64-bit elements from two 128-bit vectors of -/// [2 x i64] and interleaves them into a 128-bit vector of [2 x i64]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPUNPCKLQDQ / PUNPCKLQDQ -/// instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x i64]. \n -/// Bits [63:0] are written to bits [63:0] of the destination. \n -/// \param __b -/// A 128-bit vector of [2 x i64]. \n -/// Bits [63:0] are written to bits [127:64] of the destination. \n -/// \returns A 128-bit vector of [2 x i64] containing the interleaved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_unpacklo_epi64(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 0, 2+0); -} - -/// Returns the lower 64 bits of a 128-bit integer vector as a 64-bit -/// integer. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVDQ2Q instruction. -/// -/// \param __a -/// A 128-bit integer vector operand. The lower 64 bits are moved to the -/// destination. -/// \returns A 64-bit integer containing the lower 64 bits of the parameter. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_movepi64_pi64(__m128i __a) -{ - return (__m64)__a[0]; -} - -/// Moves the 64-bit operand to a 128-bit integer vector, zeroing the -/// upper bits. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVD+VMOVQ instruction. -/// -/// \param __a -/// A 64-bit value. -/// \returns A 128-bit integer vector. The lower 64 bits contain the value from -/// the operand. The upper 64 bits are assigned zeros. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_movpi64_epi64(__m64 __a) -{ - return __extension__ (__m128i)(__v2di){ (long long)__a, 0 }; -} - -/// Moves the lower 64 bits of a 128-bit integer vector to a 128-bit -/// integer vector, zeroing the upper bits. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVQ / MOVQ instruction. -/// -/// \param __a -/// A 128-bit integer vector operand. The lower 64 bits are moved to the -/// destination. -/// \returns A 128-bit integer vector. The lower 64 bits contain the value from -/// the operand. The upper 64 bits are assigned zeros. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_move_epi64(__m128i __a) -{ - return __builtin_shufflevector((__v2di)__a, _mm_setzero_si128(), 0, 2); -} - -/// Unpacks the high-order 64-bit elements from two 128-bit vectors of -/// [2 x double] and interleaves them into a 128-bit vector of [2 x -/// double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKHPD / UNPCKHPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. \n -/// Bits [127:64] are written to bits [63:0] of the destination. -/// \param __b -/// A 128-bit vector of [2 x double]. \n -/// Bits [127:64] are written to bits [127:64] of the destination. -/// \returns A 128-bit vector of [2 x double] containing the interleaved values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_unpackhi_pd(__m128d __a, __m128d __b) -{ - return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 1, 2+1); -} - -/// Unpacks the low-order 64-bit elements from two 128-bit vectors -/// of [2 x double] and interleaves them into a 128-bit vector of [2 x -/// double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKLPD / UNPCKLPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. \n -/// Bits [63:0] are written to bits [63:0] of the destination. -/// \param __b -/// A 128-bit vector of [2 x double]. \n -/// Bits [63:0] are written to bits [127:64] of the destination. -/// \returns A 128-bit vector of [2 x double] containing the interleaved values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_unpacklo_pd(__m128d __a, __m128d __b) -{ - return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 0, 2+0); -} - -/// Extracts the sign bits of the double-precision values in the 128-bit -/// vector of [2 x double], zero-extends the value, and writes it to the -/// low-order bits of the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVMSKPD / MOVMSKPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing the values with sign bits to -/// be extracted. -/// \returns The sign bits from each of the double-precision elements in \a __a, -/// written to bits [1:0]. The remaining bits are assigned values of zero. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_movemask_pd(__m128d __a) -{ - return __builtin_ia32_movmskpd((__v2df)__a); -} - - -/// Constructs a 128-bit floating-point vector of [2 x double] from two -/// 128-bit vector parameters of [2 x double], using the immediate-value -/// parameter as a specifier. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_shuffle_pd(__m128d a, __m128d b, const int i); -/// \endcode -/// -/// This intrinsic corresponds to the VSHUFPD / SHUFPD instruction. -/// -/// \param a -/// A 128-bit vector of [2 x double]. -/// \param b -/// A 128-bit vector of [2 x double]. -/// \param i -/// An 8-bit immediate value. The least significant two bits specify which -/// elements to copy from \a a and \a b: \n -/// Bit[0] = 0: lower element of \a a copied to lower element of result. \n -/// Bit[0] = 1: upper element of \a a copied to lower element of result. \n -/// Bit[1] = 0: lower element of \a b copied to upper element of result. \n -/// Bit[1] = 1: upper element of \a b copied to upper element of result. \n -/// \returns A 128-bit vector of [2 x double] containing the shuffled values. -#define _mm_shuffle_pd(a, b, i) \ - (__m128d)__builtin_ia32_shufpd((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \ - (int)(i)) - -/// Casts a 128-bit floating-point vector of [2 x double] into a 128-bit -/// floating-point vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit floating-point vector of [2 x double]. -/// \returns A 128-bit floating-point vector of [4 x float] containing the same -/// bitwise pattern as the parameter. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_castpd_ps(__m128d __a) -{ - return (__m128)__a; -} - -/// Casts a 128-bit floating-point vector of [2 x double] into a 128-bit -/// integer vector. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit floating-point vector of [2 x double]. -/// \returns A 128-bit integer vector containing the same bitwise pattern as the -/// parameter. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_castpd_si128(__m128d __a) -{ - return (__m128i)__a; -} - -/// Casts a 128-bit floating-point vector of [4 x float] into a 128-bit -/// floating-point vector of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit floating-point vector of [4 x float]. -/// \returns A 128-bit floating-point vector of [2 x double] containing the same -/// bitwise pattern as the parameter. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_castps_pd(__m128 __a) -{ - return (__m128d)__a; -} - -/// Casts a 128-bit floating-point vector of [4 x float] into a 128-bit -/// integer vector. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit floating-point vector of [4 x float]. -/// \returns A 128-bit integer vector containing the same bitwise pattern as the -/// parameter. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_castps_si128(__m128 __a) -{ - return (__m128i)__a; -} - -/// Casts a 128-bit integer vector into a 128-bit floating-point vector -/// of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \returns A 128-bit floating-point vector of [4 x float] containing the same -/// bitwise pattern as the parameter. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_castsi128_ps(__m128i __a) -{ - return (__m128)__a; -} - -/// Casts a 128-bit integer vector into a 128-bit floating-point vector -/// of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit integer vector. -/// \returns A 128-bit floating-point vector of [2 x double] containing the same -/// bitwise pattern as the parameter. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_castsi128_pd(__m128i __a) -{ - return (__m128d)__a; -} - -#if defined(__cplusplus) -extern "C" { -#endif - -/// Indicates that a spin loop is being executed for the purposes of -/// optimizing power consumption during the loop. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PAUSE instruction. -/// -void _mm_pause(void); - -#if defined(__cplusplus) -} // extern "C" -#endif -#undef __DEFAULT_FN_ATTRS -#undef __DEFAULT_FN_ATTRS_MMX - -#define _MM_SHUFFLE2(x, y) (((x) << 1) | (y)) - -#define _MM_DENORMALS_ZERO_ON (0x0040) -#define _MM_DENORMALS_ZERO_OFF (0x0000) - -#define _MM_DENORMALS_ZERO_MASK (0x0040) - -#define _MM_GET_DENORMALS_ZERO_MODE() (_mm_getcsr() & _MM_DENORMALS_ZERO_MASK) -#define _MM_SET_DENORMALS_ZERO_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_DENORMALS_ZERO_MASK) | (x))) - -#endif /* __EMMINTRIN_H */ diff --git a/bin/app/data/cxx/include/enqcmdintrin.h b/bin/app/data/cxx/include/enqcmdintrin.h deleted file mode 100644 index 30af67f6..00000000 --- a/bin/app/data/cxx/include/enqcmdintrin.h +++ /dev/null @@ -1,63 +0,0 @@ -/*===------------------ enqcmdintrin.h - enqcmd intrinsics -----------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __ENQCMDINTRIN_H -#define __ENQCMDINTRIN_H - -/* Define the default attributes for the functions in this file */ -#define _DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("enqcmd"))) - -/// Reads 64-byte command pointed by \a __src, formats 64-byte enqueue store -/// data, and performs 64-byte enqueue store to memory pointed by \a __dst. -/// This intrinsics may only be used in User mode. -/// -/// \headerfile -/// -/// This intrinsics corresponds to the ENQCMD instruction. -/// -/// \param __dst -/// Pointer to the destination of the enqueue store. -/// \param __src -/// Pointer to 64-byte command data. -/// \returns If the command data is successfully written to \a __dst then 0 is -/// returned. Otherwise 1 is returned. -static __inline__ int _DEFAULT_FN_ATTRS -_enqcmd (void *__dst, const void *__src) -{ - return __builtin_ia32_enqcmd(__dst, __src); -} - -/// Reads 64-byte command pointed by \a __src, formats 64-byte enqueue store -/// data, and performs 64-byte enqueue store to memory pointed by \a __dst -/// This intrinsic may only be used in Privileged mode. -/// -/// \headerfile -/// -/// This intrinsics corresponds to the ENQCMDS instruction. -/// -/// \param __dst -/// Pointer to the destination of the enqueue store. -/// \param __src -/// Pointer to 64-byte command data. -/// \returns If the command data is successfully written to \a __dst then 0 is -/// returned. Otherwise 1 is returned. -static __inline__ int _DEFAULT_FN_ATTRS -_enqcmds (void *__dst, const void *__src) -{ - return __builtin_ia32_enqcmds(__dst, __src); -} - -#undef _DEFAULT_FN_ATTRS - -#endif /* __ENQCMDINTRIN_H */ diff --git a/bin/app/data/cxx/include/f16cintrin.h b/bin/app/data/cxx/include/f16cintrin.h deleted file mode 100644 index 109b604a..00000000 --- a/bin/app/data/cxx/include/f16cintrin.h +++ /dev/null @@ -1,162 +0,0 @@ -/*===---- f16cintrin.h - F16C intrinsics -----------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __F16CINTRIN_H -#define __F16CINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 \ - __attribute__((__always_inline__, __nodebug__, __target__("f16c"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 \ - __attribute__((__always_inline__, __nodebug__, __target__("f16c"), __min_vector_width__(256))) - -/* NOTE: Intel documents the 128-bit versions of these as being in emmintrin.h, - * but that's because icc can emulate these without f16c using a library call. - * Since we don't do that let's leave these in f16cintrin.h. - */ - -/// Converts a 16-bit half-precision float value into a 32-bit float -/// value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPH2PS instruction. -/// -/// \param __a -/// A 16-bit half-precision float value. -/// \returns The converted 32-bit float value. -static __inline float __DEFAULT_FN_ATTRS128 -_cvtsh_ss(unsigned short __a) -{ - __v8hi __v = {(short)__a, 0, 0, 0, 0, 0, 0, 0}; - __v4sf __r = __builtin_ia32_vcvtph2ps(__v); - return __r[0]; -} - -/// Converts a 32-bit single-precision float value to a 16-bit -/// half-precision float value. -/// -/// \headerfile -/// -/// \code -/// unsigned short _cvtss_sh(float a, const int imm); -/// \endcode -/// -/// This intrinsic corresponds to the VCVTPS2PH instruction. -/// -/// \param a -/// A 32-bit single-precision float value to be converted to a 16-bit -/// half-precision float value. -/// \param imm -/// An immediate value controlling rounding using bits [2:0]: \n -/// 000: Nearest \n -/// 001: Down \n -/// 010: Up \n -/// 011: Truncate \n -/// 1XX: Use MXCSR.RC for rounding -/// \returns The converted 16-bit half-precision float value. -#define _cvtss_sh(a, imm) \ - (unsigned short)(((__v8hi)__builtin_ia32_vcvtps2ph((__v4sf){a, 0, 0, 0}, \ - (imm)))[0]) - -/// Converts a 128-bit vector containing 32-bit float values into a -/// 128-bit vector containing 16-bit half-precision float values. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_cvtps_ph(__m128 a, const int imm); -/// \endcode -/// -/// This intrinsic corresponds to the VCVTPS2PH instruction. -/// -/// \param a -/// A 128-bit vector containing 32-bit float values. -/// \param imm -/// An immediate value controlling rounding using bits [2:0]: \n -/// 000: Nearest \n -/// 001: Down \n -/// 010: Up \n -/// 011: Truncate \n -/// 1XX: Use MXCSR.RC for rounding -/// \returns A 128-bit vector containing converted 16-bit half-precision float -/// values. The lower 64 bits are used to store the converted 16-bit -/// half-precision floating-point values. -#define _mm_cvtps_ph(a, imm) \ - (__m128i)__builtin_ia32_vcvtps2ph((__v4sf)(__m128)(a), (imm)) - -/// Converts a 128-bit vector containing 16-bit half-precision float -/// values into a 128-bit vector containing 32-bit float values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPH2PS instruction. -/// -/// \param __a -/// A 128-bit vector containing 16-bit half-precision float values. The lower -/// 64 bits are used in the conversion. -/// \returns A 128-bit vector of [4 x float] containing converted float values. -static __inline __m128 __DEFAULT_FN_ATTRS128 -_mm_cvtph_ps(__m128i __a) -{ - return (__m128)__builtin_ia32_vcvtph2ps((__v8hi)__a); -} - -/// Converts a 256-bit vector of [8 x float] into a 128-bit vector -/// containing 16-bit half-precision float values. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm256_cvtps_ph(__m256 a, const int imm); -/// \endcode -/// -/// This intrinsic corresponds to the VCVTPS2PH instruction. -/// -/// \param a -/// A 256-bit vector containing 32-bit single-precision float values to be -/// converted to 16-bit half-precision float values. -/// \param imm -/// An immediate value controlling rounding using bits [2:0]: \n -/// 000: Nearest \n -/// 001: Down \n -/// 010: Up \n -/// 011: Truncate \n -/// 1XX: Use MXCSR.RC for rounding -/// \returns A 128-bit vector containing the converted 16-bit half-precision -/// float values. -#define _mm256_cvtps_ph(a, imm) \ - (__m128i)__builtin_ia32_vcvtps2ph256((__v8sf)(__m256)(a), (imm)) - -/// Converts a 128-bit vector containing 16-bit half-precision float -/// values into a 256-bit vector of [8 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTPH2PS instruction. -/// -/// \param __a -/// A 128-bit vector containing 16-bit half-precision float values to be -/// converted to 32-bit single-precision float values. -/// \returns A vector of [8 x float] containing the converted 32-bit -/// single-precision float values. -static __inline __m256 __DEFAULT_FN_ATTRS256 -_mm256_cvtph_ps(__m128i __a) -{ - return (__m256)__builtin_ia32_vcvtph2ps256((__v8hi)__a); -} - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif /* __F16CINTRIN_H */ diff --git a/bin/app/data/cxx/include/float.h b/bin/app/data/cxx/include/float.h deleted file mode 100644 index ed610b24..00000000 --- a/bin/app/data/cxx/include/float.h +++ /dev/null @@ -1,152 +0,0 @@ -/*===---- float.h - Characteristics of floating point types ----------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_FLOAT_H -#define __CLANG_FLOAT_H - -/* If we're on MinGW, fall back to the system's float.h, which might have - * additional definitions provided for Windows. - * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx - * - * Also fall back on Darwin to allow additional definitions and - * implementation-defined values. - */ -#if (defined(__APPLE__) || (defined(__MINGW32__) || defined(_MSC_VER))) && \ - __STDC_HOSTED__ && __has_include_next() - -/* Prior to Apple's 10.7 SDK, float.h SDK header used to apply an extra level - * of #include_next to keep Metrowerks compilers happy. Avoid this - * extra indirection. - */ -#ifdef __APPLE__ -#define _FLOAT_H_ -#endif - -# include_next - -/* Undefine anything that we'll be redefining below. */ -# undef FLT_EVAL_METHOD -# undef FLT_ROUNDS -# undef FLT_RADIX -# undef FLT_MANT_DIG -# undef DBL_MANT_DIG -# undef LDBL_MANT_DIG -# if __STDC_VERSION__ >= 199901L || !defined(__STRICT_ANSI__) || __cplusplus >= 201103L -# undef DECIMAL_DIG -# endif -# undef FLT_DIG -# undef DBL_DIG -# undef LDBL_DIG -# undef FLT_MIN_EXP -# undef DBL_MIN_EXP -# undef LDBL_MIN_EXP -# undef FLT_MIN_10_EXP -# undef DBL_MIN_10_EXP -# undef LDBL_MIN_10_EXP -# undef FLT_MAX_EXP -# undef DBL_MAX_EXP -# undef LDBL_MAX_EXP -# undef FLT_MAX_10_EXP -# undef DBL_MAX_10_EXP -# undef LDBL_MAX_10_EXP -# undef FLT_MAX -# undef DBL_MAX -# undef LDBL_MAX -# undef FLT_EPSILON -# undef DBL_EPSILON -# undef LDBL_EPSILON -# undef FLT_MIN -# undef DBL_MIN -# undef LDBL_MIN -# if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__) || __cplusplus >= 201703L -# undef FLT_TRUE_MIN -# undef DBL_TRUE_MIN -# undef LDBL_TRUE_MIN -# undef FLT_DECIMAL_DIG -# undef DBL_DECIMAL_DIG -# undef LDBL_DECIMAL_DIG -# undef FLT_HAS_SUBNORM -# undef DBL_HAS_SUBNORM -# undef LDBL_HAS_SUBNORM -# endif -#endif - -/* Characteristics of floating point types, C99 5.2.4.2.2 */ - -#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ -#define FLT_ROUNDS (__builtin_flt_rounds()) -#define FLT_RADIX __FLT_RADIX__ - -#define FLT_MANT_DIG __FLT_MANT_DIG__ -#define DBL_MANT_DIG __DBL_MANT_DIG__ -#define LDBL_MANT_DIG __LDBL_MANT_DIG__ - -#if __STDC_VERSION__ >= 199901L || !defined(__STRICT_ANSI__) || __cplusplus >= 201103L -# define DECIMAL_DIG __DECIMAL_DIG__ -#endif - -#define FLT_DIG __FLT_DIG__ -#define DBL_DIG __DBL_DIG__ -#define LDBL_DIG __LDBL_DIG__ - -#define FLT_MIN_EXP __FLT_MIN_EXP__ -#define DBL_MIN_EXP __DBL_MIN_EXP__ -#define LDBL_MIN_EXP __LDBL_MIN_EXP__ - -#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__ -#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__ -#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__ - -#define FLT_MAX_EXP __FLT_MAX_EXP__ -#define DBL_MAX_EXP __DBL_MAX_EXP__ -#define LDBL_MAX_EXP __LDBL_MAX_EXP__ - -#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__ -#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__ -#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__ - -#define FLT_MAX __FLT_MAX__ -#define DBL_MAX __DBL_MAX__ -#define LDBL_MAX __LDBL_MAX__ - -#define FLT_EPSILON __FLT_EPSILON__ -#define DBL_EPSILON __DBL_EPSILON__ -#define LDBL_EPSILON __LDBL_EPSILON__ - -#define FLT_MIN __FLT_MIN__ -#define DBL_MIN __DBL_MIN__ -#define LDBL_MIN __LDBL_MIN__ - -#if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__) || __cplusplus >= 201703L -# define FLT_TRUE_MIN __FLT_DENORM_MIN__ -# define DBL_TRUE_MIN __DBL_DENORM_MIN__ -# define LDBL_TRUE_MIN __LDBL_DENORM_MIN__ -# define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__ -# define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__ -# define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__ -# define FLT_HAS_SUBNORM __FLT_HAS_DENORM__ -# define DBL_HAS_SUBNORM __DBL_HAS_DENORM__ -# define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__ -#endif - -#ifdef __STDC_WANT_IEC_60559_TYPES_EXT__ -# define FLT16_MANT_DIG __FLT16_MANT_DIG__ -# define FLT16_DECIMAL_DIG __FLT16_DECIMAL_DIG__ -# define FLT16_DIG __FLT16_DIG__ -# define FLT16_MIN_EXP __FLT16_MIN_EXP__ -# define FLT16_MIN_10_EXP __FLT16_MIN_10_EXP__ -# define FLT16_MAX_EXP __FLT16_MAX_EXP__ -# define FLT16_MAX_10_EXP __FLT16_MAX_10_EXP__ -# define FLT16_MAX __FLT16_MAX__ -# define FLT16_EPSILON __FLT16_EPSILON__ -# define FLT16_MIN __FLT16_MIN__ -# define FLT16_TRUE_MIN __FLT16_TRUE_MIN__ -#endif /* __STDC_WANT_IEC_60559_TYPES_EXT__ */ - -#endif /* __CLANG_FLOAT_H */ diff --git a/bin/app/data/cxx/include/fma4intrin.h b/bin/app/data/cxx/include/fma4intrin.h deleted file mode 100644 index 694801b3..00000000 --- a/bin/app/data/cxx/include/fma4intrin.h +++ /dev/null @@ -1,218 +0,0 @@ -/*===---- fma4intrin.h - FMA4 intrinsics -----------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __X86INTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __FMA4INTRIN_H -#define __FMA4INTRIN_H - -#include - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("fma4"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("fma4"), __min_vector_width__(256))) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_macc_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_macc_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, (__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_macc_ss(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddss((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_macc_sd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsd((__v2df)__A, (__v2df)__B, (__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_msub_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_msub_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, -(__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_msub_ss(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddss((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_msub_sd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsd((__v2df)__A, (__v2df)__B, -(__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_nmacc_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddps(-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_nmacc_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddpd(-(__v2df)__A, (__v2df)__B, (__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_nmacc_ss(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddss(-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_nmacc_sd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsd(-(__v2df)__A, (__v2df)__B, (__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_nmsub_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddps(-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_nmsub_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddpd(-(__v2df)__A, (__v2df)__B, -(__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_nmsub_ss(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddss(-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_nmsub_sd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsd(-(__v2df)__A, (__v2df)__B, -(__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_maddsub_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddsubps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_maddsub_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsubpd((__v2df)__A, (__v2df)__B, (__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_msubadd_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddsubps((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_msubadd_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsubpd((__v2df)__A, (__v2df)__B, -(__v2df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_macc_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_macc_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, (__v4df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_msub_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_msub_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, -(__v4df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_nmacc_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddps256(-(__v8sf)__A, (__v8sf)__B, (__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_nmacc_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddpd256(-(__v4df)__A, (__v4df)__B, (__v4df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_nmsub_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddps256(-(__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_nmsub_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddpd256(-(__v4df)__A, (__v4df)__B, -(__v4df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_maddsub_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddsubps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_maddsub_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddsubpd256((__v4df)__A, (__v4df)__B, (__v4df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_msubadd_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddsubps256((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_msubadd_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddsubpd256((__v4df)__A, (__v4df)__B, -(__v4df)__C); -} - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif /* __FMA4INTRIN_H */ diff --git a/bin/app/data/cxx/include/fmaintrin.h b/bin/app/data/cxx/include/fmaintrin.h deleted file mode 100644 index d889b7c5..00000000 --- a/bin/app/data/cxx/include/fmaintrin.h +++ /dev/null @@ -1,216 +0,0 @@ -/*===---- fmaintrin.h - FMA intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __FMAINTRIN_H -#define __FMAINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_fmadd_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_fmadd_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, (__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_fmadd_ss(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_fmadd_sd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, (__v2df)__B, (__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_fmsub_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_fmsub_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, -(__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_fmsub_ss(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_fmsub_sd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, (__v2df)__B, -(__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddps(-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddpd(-(__v2df)__A, (__v2df)__B, (__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_fnmadd_ss(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, -(__v4sf)__B, (__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_fnmadd_sd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, -(__v2df)__B, (__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddps(-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddpd(-(__v2df)__A, (__v2df)__B, -(__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_fnmsub_ss(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, -(__v4sf)__B, -(__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_fnmsub_sd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, -(__v2df)__B, -(__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddsubps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsubpd((__v2df)__A, (__v2df)__B, (__v2df)__C); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS128 -_mm_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C) -{ - return (__m128)__builtin_ia32_vfmaddsubps((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS128 -_mm_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C) -{ - return (__m128d)__builtin_ia32_vfmaddsubpd((__v2df)__A, (__v2df)__B, -(__v2df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_fmadd_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_fmadd_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, (__v4df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_fmsub_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_fmsub_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, -(__v4df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddps256(-(__v8sf)__A, (__v8sf)__B, (__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddpd256(-(__v4df)__A, (__v4df)__B, (__v4df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddps256(-(__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddpd256(-(__v4df)__A, (__v4df)__B, -(__v4df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddsubps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddsubpd256((__v4df)__A, (__v4df)__B, (__v4df)__C); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C) -{ - return (__m256)__builtin_ia32_vfmaddsubps256((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C) -{ - return (__m256d)__builtin_ia32_vfmaddsubpd256((__v4df)__A, (__v4df)__B, -(__v4df)__C); -} - -#undef __DEFAULT_FN_ATTRS128 -#undef __DEFAULT_FN_ATTRS256 - -#endif /* __FMAINTRIN_H */ diff --git a/bin/app/data/cxx/include/fxsrintrin.h b/bin/app/data/cxx/include/fxsrintrin.h deleted file mode 100644 index afee6aa9..00000000 --- a/bin/app/data/cxx/include/fxsrintrin.h +++ /dev/null @@ -1,91 +0,0 @@ -/*===---- fxsrintrin.h - FXSR intrinsic ------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __FXSRINTRIN_H -#define __FXSRINTRIN_H - -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("fxsr"))) - -/// Saves the XMM, MMX, MXCSR and x87 FPU registers into a 512-byte -/// memory region pointed to by the input parameter \a __p. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the FXSAVE instruction. -/// -/// \param __p -/// A pointer to a 512-byte memory region. The beginning of this memory -/// region should be aligned on a 16-byte boundary. -static __inline__ void __DEFAULT_FN_ATTRS -_fxsave(void *__p) -{ - __builtin_ia32_fxsave(__p); -} - -/// Restores the XMM, MMX, MXCSR and x87 FPU registers from the 512-byte -/// memory region pointed to by the input parameter \a __p. The contents of -/// this memory region should have been written to by a previous \c _fxsave -/// or \c _fxsave64 intrinsic. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the FXRSTOR instruction. -/// -/// \param __p -/// A pointer to a 512-byte memory region. The beginning of this memory -/// region should be aligned on a 16-byte boundary. -static __inline__ void __DEFAULT_FN_ATTRS -_fxrstor(void *__p) -{ - __builtin_ia32_fxrstor(__p); -} - -#ifdef __x86_64__ -/// Saves the XMM, MMX, MXCSR and x87 FPU registers into a 512-byte -/// memory region pointed to by the input parameter \a __p. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the FXSAVE64 instruction. -/// -/// \param __p -/// A pointer to a 512-byte memory region. The beginning of this memory -/// region should be aligned on a 16-byte boundary. -static __inline__ void __DEFAULT_FN_ATTRS -_fxsave64(void *__p) -{ - __builtin_ia32_fxsave64(__p); -} - -/// Restores the XMM, MMX, MXCSR and x87 FPU registers from the 512-byte -/// memory region pointed to by the input parameter \a __p. The contents of -/// this memory region should have been written to by a previous \c _fxsave -/// or \c _fxsave64 intrinsic. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the FXRSTOR64 instruction. -/// -/// \param __p -/// A pointer to a 512-byte memory region. The beginning of this memory -/// region should be aligned on a 16-byte boundary. -static __inline__ void __DEFAULT_FN_ATTRS -_fxrstor64(void *__p) -{ - __builtin_ia32_fxrstor64(__p); -} -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/gfniintrin.h b/bin/app/data/cxx/include/gfniintrin.h deleted file mode 100644 index 9bff0fcb..00000000 --- a/bin/app/data/cxx/include/gfniintrin.h +++ /dev/null @@ -1,194 +0,0 @@ -/*===----------------- gfniintrin.h - GFNI intrinsics ----------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __GFNIINTRIN_H -#define __GFNIINTRIN_H - - -#define _mm_gf2p8affineinv_epi64_epi8(A, B, I) \ - (__m128i)__builtin_ia32_vgf2p8affineinvqb_v16qi((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), \ - (char)(I)) - -#define _mm_mask_gf2p8affineinv_epi64_epi8(S, U, A, B, I) \ - (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \ - (__v16qi)_mm_gf2p8affineinv_epi64_epi8(A, B, I), \ - (__v16qi)(__m128i)(S)) - - -#define _mm_maskz_gf2p8affineinv_epi64_epi8(U, A, B, I) \ - (__m128i)_mm_mask_gf2p8affineinv_epi64_epi8((__m128i)_mm_setzero_si128(), \ - U, A, B, I) - - -#define _mm256_gf2p8affineinv_epi64_epi8(A, B, I) \ - (__m256i)__builtin_ia32_vgf2p8affineinvqb_v32qi((__v32qi)(__m256i)(A), \ - (__v32qi)(__m256i)(B), \ - (char)(I)) - -#define _mm256_mask_gf2p8affineinv_epi64_epi8(S, U, A, B, I) \ - (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \ - (__v32qi)_mm256_gf2p8affineinv_epi64_epi8(A, B, I), \ - (__v32qi)(__m256i)(S)) - -#define _mm256_maskz_gf2p8affineinv_epi64_epi8(U, A, B, I) \ - (__m256i)_mm256_mask_gf2p8affineinv_epi64_epi8((__m256i)_mm256_setzero_si256(), \ - U, A, B, I) - - -#define _mm512_gf2p8affineinv_epi64_epi8(A, B, I) \ - (__m512i)__builtin_ia32_vgf2p8affineinvqb_v64qi((__v64qi)(__m512i)(A), \ - (__v64qi)(__m512i)(B), \ - (char)(I)) - -#define _mm512_mask_gf2p8affineinv_epi64_epi8(S, U, A, B, I) \ - (__m512i)__builtin_ia32_selectb_512((__mmask64)(U), \ - (__v64qi)_mm512_gf2p8affineinv_epi64_epi8(A, B, I), \ - (__v64qi)(__m512i)(S)) - -#define _mm512_maskz_gf2p8affineinv_epi64_epi8(U, A, B, I) \ - (__m512i)_mm512_mask_gf2p8affineinv_epi64_epi8((__m512i)_mm512_setzero_si512(), \ - U, A, B, I) - -#define _mm_gf2p8affine_epi64_epi8(A, B, I) \ - (__m128i)__builtin_ia32_vgf2p8affineqb_v16qi((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), \ - (char)(I)) - -#define _mm_mask_gf2p8affine_epi64_epi8(S, U, A, B, I) \ - (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \ - (__v16qi)_mm_gf2p8affine_epi64_epi8(A, B, I), \ - (__v16qi)(__m128i)(S)) - - -#define _mm_maskz_gf2p8affine_epi64_epi8(U, A, B, I) \ - (__m128i)_mm_mask_gf2p8affine_epi64_epi8((__m128i)_mm_setzero_si128(), \ - U, A, B, I) - - -#define _mm256_gf2p8affine_epi64_epi8(A, B, I) \ - (__m256i)__builtin_ia32_vgf2p8affineqb_v32qi((__v32qi)(__m256i)(A), \ - (__v32qi)(__m256i)(B), \ - (char)(I)) - -#define _mm256_mask_gf2p8affine_epi64_epi8(S, U, A, B, I) \ - (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \ - (__v32qi)_mm256_gf2p8affine_epi64_epi8(A, B, I), \ - (__v32qi)(__m256i)(S)) - -#define _mm256_maskz_gf2p8affine_epi64_epi8(U, A, B, I) \ - (__m256i)_mm256_mask_gf2p8affine_epi64_epi8((__m256i)_mm256_setzero_si256(), \ - U, A, B, I) - - -#define _mm512_gf2p8affine_epi64_epi8(A, B, I) \ - (__m512i)__builtin_ia32_vgf2p8affineqb_v64qi((__v64qi)(__m512i)(A), \ - (__v64qi)(__m512i)(B), \ - (char)(I)) - -#define _mm512_mask_gf2p8affine_epi64_epi8(S, U, A, B, I) \ - (__m512i)__builtin_ia32_selectb_512((__mmask64)(U), \ - (__v64qi)_mm512_gf2p8affine_epi64_epi8(A, B, I), \ - (__v64qi)(__m512i)(S)) - -#define _mm512_maskz_gf2p8affine_epi64_epi8(U, A, B, I) \ - (__m512i)_mm512_mask_gf2p8affine_epi64_epi8((__m512i)_mm512_setzero_si512(), \ - U, A, B, I) - -/* Default attributes for simple form (no masking). */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("gfni"), __min_vector_width__(128))) - -/* Default attributes for YMM unmasked form. */ -#define __DEFAULT_FN_ATTRS_Y __attribute__((__always_inline__, __nodebug__, __target__("avx,gfni"), __min_vector_width__(256))) - -/* Default attributes for ZMM forms. */ -#define __DEFAULT_FN_ATTRS_Z __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,gfni"), __min_vector_width__(512))) - -/* Default attributes for VLX forms. */ -#define __DEFAULT_FN_ATTRS_VL128 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,avx512vl,gfni"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS_VL256 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,avx512vl,gfni"), __min_vector_width__(256))) - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_gf2p8mul_epi8(__m128i __A, __m128i __B) -{ - return (__m128i) __builtin_ia32_vgf2p8mulb_v16qi((__v16qi) __A, - (__v16qi) __B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS_VL128 -_mm_mask_gf2p8mul_epi8(__m128i __S, __mmask16 __U, __m128i __A, __m128i __B) -{ - return (__m128i) __builtin_ia32_selectb_128(__U, - (__v16qi) _mm_gf2p8mul_epi8(__A, __B), - (__v16qi) __S); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS_VL128 -_mm_maskz_gf2p8mul_epi8(__mmask16 __U, __m128i __A, __m128i __B) -{ - return _mm_mask_gf2p8mul_epi8((__m128i)_mm_setzero_si128(), - __U, __A, __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS_Y -_mm256_gf2p8mul_epi8(__m256i __A, __m256i __B) -{ - return (__m256i) __builtin_ia32_vgf2p8mulb_v32qi((__v32qi) __A, - (__v32qi) __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS_VL256 -_mm256_mask_gf2p8mul_epi8(__m256i __S, __mmask32 __U, __m256i __A, __m256i __B) -{ - return (__m256i) __builtin_ia32_selectb_256(__U, - (__v32qi) _mm256_gf2p8mul_epi8(__A, __B), - (__v32qi) __S); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS_VL256 -_mm256_maskz_gf2p8mul_epi8(__mmask32 __U, __m256i __A, __m256i __B) -{ - return _mm256_mask_gf2p8mul_epi8((__m256i)_mm256_setzero_si256(), - __U, __A, __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS_Z -_mm512_gf2p8mul_epi8(__m512i __A, __m512i __B) -{ - return (__m512i) __builtin_ia32_vgf2p8mulb_v64qi((__v64qi) __A, - (__v64qi) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS_Z -_mm512_mask_gf2p8mul_epi8(__m512i __S, __mmask64 __U, __m512i __A, __m512i __B) -{ - return (__m512i) __builtin_ia32_selectb_512(__U, - (__v64qi) _mm512_gf2p8mul_epi8(__A, __B), - (__v64qi) __S); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS_Z -_mm512_maskz_gf2p8mul_epi8(__mmask64 __U, __m512i __A, __m512i __B) -{ - return _mm512_mask_gf2p8mul_epi8((__m512i)_mm512_setzero_si512(), - __U, __A, __B); -} - -#undef __DEFAULT_FN_ATTRS -#undef __DEFAULT_FN_ATTRS_Y -#undef __DEFAULT_FN_ATTRS_Z -#undef __DEFAULT_FN_ATTRS_VL128 -#undef __DEFAULT_FN_ATTRS_VL256 - -#endif /* __GFNIINTRIN_H */ - diff --git a/bin/app/data/cxx/include/htmintrin.h b/bin/app/data/cxx/include/htmintrin.h deleted file mode 100644 index 49c2b986..00000000 --- a/bin/app/data/cxx/include/htmintrin.h +++ /dev/null @@ -1,212 +0,0 @@ -/*===---- htmintrin.h - Standard header for PowerPC HTM ---------------===*\ - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * -\*===----------------------------------------------------------------------===*/ - -#ifndef __HTMINTRIN_H -#define __HTMINTRIN_H - -#ifndef __HTM__ -#error "HTM instruction set not enabled" -#endif - -#ifdef __powerpc__ - -#include - -typedef uint64_t texasr_t; -typedef uint32_t texasru_t; -typedef uint32_t texasrl_t; -typedef uintptr_t tfiar_t; -typedef uintptr_t tfhar_t; - -#define _HTM_STATE(CR0) ((CR0 >> 1) & 0x3) -#define _HTM_NONTRANSACTIONAL 0x0 -#define _HTM_SUSPENDED 0x1 -#define _HTM_TRANSACTIONAL 0x2 - -#define _TEXASR_EXTRACT_BITS(TEXASR,BITNUM,SIZE) \ - (((TEXASR) >> (63-(BITNUM))) & ((1<<(SIZE))-1)) -#define _TEXASRU_EXTRACT_BITS(TEXASR,BITNUM,SIZE) \ - (((TEXASR) >> (31-(BITNUM))) & ((1<<(SIZE))-1)) - -#define _TEXASR_FAILURE_CODE(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 7, 8) -#define _TEXASRU_FAILURE_CODE(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 7, 8) - -#define _TEXASR_FAILURE_PERSISTENT(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 7, 1) -#define _TEXASRU_FAILURE_PERSISTENT(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 7, 1) - -#define _TEXASR_DISALLOWED(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 8, 1) -#define _TEXASRU_DISALLOWED(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 8, 1) - -#define _TEXASR_NESTING_OVERFLOW(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 9, 1) -#define _TEXASRU_NESTING_OVERFLOW(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 9, 1) - -#define _TEXASR_FOOTPRINT_OVERFLOW(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 10, 1) -#define _TEXASRU_FOOTPRINT_OVERFLOW(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 10, 1) - -#define _TEXASR_SELF_INDUCED_CONFLICT(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 11, 1) -#define _TEXASRU_SELF_INDUCED_CONFLICT(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 11, 1) - -#define _TEXASR_NON_TRANSACTIONAL_CONFLICT(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 12, 1) -#define _TEXASRU_NON_TRANSACTIONAL_CONFLICT(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 12, 1) - -#define _TEXASR_TRANSACTION_CONFLICT(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 13, 1) -#define _TEXASRU_TRANSACTION_CONFLICT(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 13, 1) - -#define _TEXASR_TRANSLATION_INVALIDATION_CONFLICT(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 14, 1) -#define _TEXASRU_TRANSLATION_INVALIDATION_CONFLICT(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 14, 1) - -#define _TEXASR_IMPLEMENTAION_SPECIFIC(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 15, 1) -#define _TEXASRU_IMPLEMENTAION_SPECIFIC(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 15, 1) - -#define _TEXASR_INSTRUCTION_FETCH_CONFLICT(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 16, 1) -#define _TEXASRU_INSTRUCTION_FETCH_CONFLICT(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 16, 1) - -#define _TEXASR_ABORT(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 31, 1) -#define _TEXASRU_ABORT(TEXASRU) \ - _TEXASRU_EXTRACT_BITS(TEXASRU, 31, 1) - - -#define _TEXASR_SUSPENDED(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 32, 1) - -#define _TEXASR_PRIVILEGE(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 35, 2) - -#define _TEXASR_FAILURE_SUMMARY(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 36, 1) - -#define _TEXASR_TFIAR_EXACT(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 37, 1) - -#define _TEXASR_ROT(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 38, 1) - -#define _TEXASR_TRANSACTION_LEVEL(TEXASR) \ - _TEXASR_EXTRACT_BITS(TEXASR, 63, 12) - -#endif /* __powerpc */ - -#ifdef __s390__ - -/* Condition codes generated by tbegin */ -#define _HTM_TBEGIN_STARTED 0 -#define _HTM_TBEGIN_INDETERMINATE 1 -#define _HTM_TBEGIN_TRANSIENT 2 -#define _HTM_TBEGIN_PERSISTENT 3 - -/* The abort codes below this threshold are reserved for machine use. */ -#define _HTM_FIRST_USER_ABORT_CODE 256 - -/* The transaction diagnostic block is it is defined in the Principles - of Operation chapter 5-91. */ - -struct __htm_tdb { - unsigned char format; /* 0 */ - unsigned char flags; - unsigned char reserved1[4]; - unsigned short nesting_depth; - unsigned long long abort_code; /* 8 */ - unsigned long long conflict_token; /* 16 */ - unsigned long long atia; /* 24 */ - unsigned char eaid; /* 32 */ - unsigned char dxc; - unsigned char reserved2[2]; - unsigned int program_int_id; - unsigned long long exception_id; /* 40 */ - unsigned long long bea; /* 48 */ - unsigned char reserved3[72]; /* 56 */ - unsigned long long gprs[16]; /* 128 */ -} __attribute__((__packed__, __aligned__ (8))); - - -/* Helper intrinsics to retry tbegin in case of transient failure. */ - -static __inline int __attribute__((__always_inline__, __nodebug__)) -__builtin_tbegin_retry_null (int __retry) -{ - int cc, i = 0; - - while ((cc = __builtin_tbegin(0)) == _HTM_TBEGIN_TRANSIENT - && i++ < __retry) - __builtin_tx_assist(i); - - return cc; -} - -static __inline int __attribute__((__always_inline__, __nodebug__)) -__builtin_tbegin_retry_tdb (void *__tdb, int __retry) -{ - int cc, i = 0; - - while ((cc = __builtin_tbegin(__tdb)) == _HTM_TBEGIN_TRANSIENT - && i++ < __retry) - __builtin_tx_assist(i); - - return cc; -} - -#define __builtin_tbegin_retry(tdb, retry) \ - (__builtin_constant_p(tdb == 0) && tdb == 0 ? \ - __builtin_tbegin_retry_null(retry) : \ - __builtin_tbegin_retry_tdb(tdb, retry)) - -static __inline int __attribute__((__always_inline__, __nodebug__)) -__builtin_tbegin_retry_nofloat_null (int __retry) -{ - int cc, i = 0; - - while ((cc = __builtin_tbegin_nofloat(0)) == _HTM_TBEGIN_TRANSIENT - && i++ < __retry) - __builtin_tx_assist(i); - - return cc; -} - -static __inline int __attribute__((__always_inline__, __nodebug__)) -__builtin_tbegin_retry_nofloat_tdb (void *__tdb, int __retry) -{ - int cc, i = 0; - - while ((cc = __builtin_tbegin_nofloat(__tdb)) == _HTM_TBEGIN_TRANSIENT - && i++ < __retry) - __builtin_tx_assist(i); - - return cc; -} - -#define __builtin_tbegin_retry_nofloat(tdb, retry) \ - (__builtin_constant_p(tdb == 0) && tdb == 0 ? \ - __builtin_tbegin_retry_nofloat_null(retry) : \ - __builtin_tbegin_retry_nofloat_tdb(tdb, retry)) - -#endif /* __s390__ */ - -#endif /* __HTMINTRIN_H */ diff --git a/bin/app/data/cxx/include/htmxlintrin.h b/bin/app/data/cxx/include/htmxlintrin.h deleted file mode 100644 index 6ef6f4b3..00000000 --- a/bin/app/data/cxx/include/htmxlintrin.h +++ /dev/null @@ -1,345 +0,0 @@ -/*===---- htmxlintrin.h - XL compiler HTM execution intrinsics-------------===*\ - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * -\*===----------------------------------------------------------------------===*/ - -#ifndef __HTMXLINTRIN_H -#define __HTMXLINTRIN_H - -#ifndef __HTM__ -#error "HTM instruction set not enabled" -#endif - -#include - -#ifdef __powerpc__ - -#ifdef __cplusplus -extern "C" { -#endif - -#define _TEXASR_PTR(TM_BUF) ((texasr_t *)((char *)(TM_BUF) + 0)) -#define _TEXASRU_PTR(TM_BUF) ((texasru_t *)((char *)(TM_BUF) + 0)) -#define _TEXASRL_PTR(TM_BUF) ((texasrl_t *)((char *)(TM_BUF) + 4)) -#define _TFIAR_PTR(TM_BUF) ((tfiar_t *)((char *)(TM_BUF) + 8)) - -typedef char TM_buff_type[16]; - -/* This macro can be used to determine whether a transaction was successfully - started from the __TM_begin() and __TM_simple_begin() intrinsic functions - below. */ -#define _HTM_TBEGIN_STARTED 1 - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_simple_begin (void) -{ - if (__builtin_expect (__builtin_tbegin (0), 1)) - return _HTM_TBEGIN_STARTED; - return 0; -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_begin (void* const __TM_buff) -{ - *_TEXASRL_PTR (__TM_buff) = 0; - if (__builtin_expect (__builtin_tbegin (0), 1)) - return _HTM_TBEGIN_STARTED; -#ifdef __powerpc64__ - *_TEXASR_PTR (__TM_buff) = __builtin_get_texasr (); -#else - *_TEXASRU_PTR (__TM_buff) = __builtin_get_texasru (); - *_TEXASRL_PTR (__TM_buff) = __builtin_get_texasr (); -#endif - *_TFIAR_PTR (__TM_buff) = __builtin_get_tfiar (); - return 0; -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_end (void) -{ - if (__builtin_expect (__builtin_tend (0), 1)) - return 1; - return 0; -} - -extern __inline void -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_abort (void) -{ - __builtin_tabort (0); -} - -extern __inline void -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_named_abort (unsigned char const __code) -{ - __builtin_tabort (__code); -} - -extern __inline void -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_resume (void) -{ - __builtin_tresume (); -} - -extern __inline void -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_suspend (void) -{ - __builtin_tsuspend (); -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_is_user_abort (void* const __TM_buff) -{ - texasru_t texasru = *_TEXASRU_PTR (__TM_buff); - return _TEXASRU_ABORT (texasru); -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_is_named_user_abort (void* const __TM_buff, unsigned char *__code) -{ - texasru_t texasru = *_TEXASRU_PTR (__TM_buff); - - *__code = _TEXASRU_FAILURE_CODE (texasru); - return _TEXASRU_ABORT (texasru); -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_is_illegal (void* const __TM_buff) -{ - texasru_t texasru = *_TEXASRU_PTR (__TM_buff); - return _TEXASRU_DISALLOWED (texasru); -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_is_footprint_exceeded (void* const __TM_buff) -{ - texasru_t texasru = *_TEXASRU_PTR (__TM_buff); - return _TEXASRU_FOOTPRINT_OVERFLOW (texasru); -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_nesting_depth (void* const __TM_buff) -{ - texasrl_t texasrl; - - if (_HTM_STATE (__builtin_ttest ()) == _HTM_NONTRANSACTIONAL) - { - texasrl = *_TEXASRL_PTR (__TM_buff); - if (!_TEXASR_FAILURE_SUMMARY (texasrl)) - texasrl = 0; - } - else - texasrl = (texasrl_t) __builtin_get_texasr (); - - return _TEXASR_TRANSACTION_LEVEL (texasrl); -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_is_nested_too_deep(void* const __TM_buff) -{ - texasru_t texasru = *_TEXASRU_PTR (__TM_buff); - return _TEXASRU_NESTING_OVERFLOW (texasru); -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_is_conflict(void* const __TM_buff) -{ - texasru_t texasru = *_TEXASRU_PTR (__TM_buff); - /* Return TEXASR bits 11 (Self-Induced Conflict) through - 14 (Translation Invalidation Conflict). */ - return (_TEXASRU_EXTRACT_BITS (texasru, 14, 4)) ? 1 : 0; -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_is_failure_persistent(void* const __TM_buff) -{ - texasru_t texasru = *_TEXASRU_PTR (__TM_buff); - return _TEXASRU_FAILURE_PERSISTENT (texasru); -} - -extern __inline long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_failure_address(void* const __TM_buff) -{ - return *_TFIAR_PTR (__TM_buff); -} - -extern __inline long long -__attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -__TM_failure_code(void* const __TM_buff) -{ - return *_TEXASR_PTR (__TM_buff); -} - -#ifdef __cplusplus -} -#endif - -#endif /* __powerpc__ */ - -#ifdef __s390__ - -#include - -/* These intrinsics are being made available for compatibility with - the IBM XL compiler. For documentation please see the "z/OS XL - C/C++ Programming Guide" publicly available on the web. */ - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_simple_begin () -{ - return __builtin_tbegin_nofloat (0); -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_begin (void* const __tdb) -{ - return __builtin_tbegin_nofloat (__tdb); -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_end () -{ - return __builtin_tend (); -} - -static __inline void __attribute__((__always_inline__)) -__TM_abort () -{ - return __builtin_tabort (_HTM_FIRST_USER_ABORT_CODE); -} - -static __inline void __attribute__((__always_inline__, __nodebug__)) -__TM_named_abort (unsigned char const __code) -{ - return __builtin_tabort ((int)_HTM_FIRST_USER_ABORT_CODE + __code); -} - -static __inline void __attribute__((__always_inline__, __nodebug__)) -__TM_non_transactional_store (void* const __addr, long long const __value) -{ - __builtin_non_tx_store ((uint64_t*)__addr, (uint64_t)__value); -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_nesting_depth (void* const __tdb_ptr) -{ - int depth = __builtin_tx_nesting_depth (); - struct __htm_tdb *tdb = (struct __htm_tdb*)__tdb_ptr; - - if (depth != 0) - return depth; - - if (tdb->format != 1) - return 0; - return tdb->nesting_depth; -} - -/* Transaction failure diagnostics */ - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_is_user_abort (void* const __tdb_ptr) -{ - struct __htm_tdb *tdb = (struct __htm_tdb*)__tdb_ptr; - - if (tdb->format != 1) - return 0; - - return !!(tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE); -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_is_named_user_abort (void* const __tdb_ptr, unsigned char* __code) -{ - struct __htm_tdb *tdb = (struct __htm_tdb*)__tdb_ptr; - - if (tdb->format != 1) - return 0; - - if (tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE) - { - *__code = tdb->abort_code - _HTM_FIRST_USER_ABORT_CODE; - return 1; - } - return 0; -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_is_illegal (void* const __tdb_ptr) -{ - struct __htm_tdb *tdb = (struct __htm_tdb*)__tdb_ptr; - - return (tdb->format == 1 - && (tdb->abort_code == 4 /* unfiltered program interruption */ - || tdb->abort_code == 11 /* restricted instruction */)); -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_is_footprint_exceeded (void* const __tdb_ptr) -{ - struct __htm_tdb *tdb = (struct __htm_tdb*)__tdb_ptr; - - return (tdb->format == 1 - && (tdb->abort_code == 7 /* fetch overflow */ - || tdb->abort_code == 8 /* store overflow */)); -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_is_nested_too_deep (void* const __tdb_ptr) -{ - struct __htm_tdb *tdb = (struct __htm_tdb*)__tdb_ptr; - - return tdb->format == 1 && tdb->abort_code == 13; /* depth exceeded */ -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_is_conflict (void* const __tdb_ptr) -{ - struct __htm_tdb *tdb = (struct __htm_tdb*)__tdb_ptr; - - return (tdb->format == 1 - && (tdb->abort_code == 9 /* fetch conflict */ - || tdb->abort_code == 10 /* store conflict */)); -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_is_failure_persistent (long const __result) -{ - return __result == _HTM_TBEGIN_PERSISTENT; -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_failure_address (void* const __tdb_ptr) -{ - struct __htm_tdb *tdb = (struct __htm_tdb*)__tdb_ptr; - return tdb->atia; -} - -static __inline long __attribute__((__always_inline__, __nodebug__)) -__TM_failure_code (void* const __tdb_ptr) -{ - struct __htm_tdb *tdb = (struct __htm_tdb*)__tdb_ptr; - - return tdb->abort_code; -} - -#endif /* __s390__ */ - -#endif /* __HTMXLINTRIN_H */ diff --git a/bin/app/data/cxx/include/ia32intrin.h b/bin/app/data/cxx/include/ia32intrin.h deleted file mode 100644 index 8e38df73..00000000 --- a/bin/app/data/cxx/include/ia32intrin.h +++ /dev/null @@ -1,364 +0,0 @@ -/* ===-------- ia32intrin.h ---------------------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __X86INTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __IA32INTRIN_H -#define __IA32INTRIN_H - -/** Find the first set bit starting from the lsb. Result is undefined if - * input is 0. - * - * \headerfile - * - * This intrinsic corresponds to the BSF instruction or the - * TZCNT instruction. - * - * \param __A - * A 32-bit integer operand. - * \returns A 32-bit integer containing the bit number. - */ -static __inline__ int __attribute__((__always_inline__, __nodebug__)) -__bsfd(int __A) { - return __builtin_ctz(__A); -} - -/** Find the first set bit starting from the msb. Result is undefined if - * input is 0. - * - * \headerfile - * - * This intrinsic corresponds to the BSR instruction or the - * LZCNT instruction and an XOR . - * - * \param __A - * A 32-bit integer operand. - * \returns A 32-bit integer containing the bit number. - */ -static __inline__ int __attribute__((__always_inline__, __nodebug__)) -__bsrd(int __A) { - return 31 - __builtin_clz(__A); -} - -/** Swaps the bytes in the input. Converting little endian to big endian or - * vice versa. - * - * \headerfile - * - * This intrinsic corresponds to the BSWAP instruction. - * - * \param __A - * A 32-bit integer operand. - * \returns A 32-bit integer containing the swapped bytes. - */ -static __inline__ int __attribute__((__always_inline__, __nodebug__)) -__bswapd(int __A) { - return __builtin_bswap32(__A); -} - -static __inline__ int __attribute__((__always_inline__, __nodebug__)) -_bswap(int __A) { - return __builtin_bswap32(__A); -} - -#define _bit_scan_forward(A) __bsfd((A)) -#define _bit_scan_reverse(A) __bsrd((A)) - -#ifdef __x86_64__ -/** Find the first set bit starting from the lsb. Result is undefined if - * input is 0. - * - * \headerfile - * - * This intrinsic corresponds to the BSF instruction or the - * TZCNT instruction. - * - * \param __A - * A 64-bit integer operand. - * \returns A 32-bit integer containing the bit number. - */ -static __inline__ int __attribute__((__always_inline__, __nodebug__)) -__bsfq(long long __A) { - return __builtin_ctzll(__A); -} - -/** Find the first set bit starting from the msb. Result is undefined if - * input is 0. - * - * \headerfile - * - * This intrinsic corresponds to the BSR instruction or the - * LZCNT instruction and an XOR . - * - * \param __A - * A 64-bit integer operand. - * \returns A 32-bit integer containing the bit number. - */ -static __inline__ int __attribute__((__always_inline__, __nodebug__)) -__bsrq(long long __A) { - return 63 - __builtin_clzll(__A); -} - -/** Swaps the bytes in the input. Converting little endian to big endian or - * vice versa. - * - * \headerfile - * - * This intrinsic corresponds to the BSWAP instruction. - * - * \param __A - * A 64-bit integer operand. - * \returns A 64-bit integer containing the swapped bytes. - */ -static __inline__ long long __attribute__((__always_inline__, __nodebug__)) -__bswapq(long long __A) { - return __builtin_bswap64(__A); -} - -#define _bswap64(A) __bswapq((A)) -#endif - -/** Counts the number of bits in the source operand having a value of 1. - * - * \headerfile - * - * This intrinsic corresponds to the POPCNT instruction or a - * a sequence of arithmetic and logic ops to calculate it. - * - * \param __A - * An unsigned 32-bit integer operand. - * \returns A 32-bit integer containing the number of bits with value 1 in the - * source operand. - */ -static __inline__ int __attribute__((__always_inline__, __nodebug__)) -__popcntd(unsigned int __A) -{ - return __builtin_popcount(__A); -} - -#define _popcnt32(A) __popcntd((A)) - -#ifdef __x86_64__ -/** Counts the number of bits in the source operand having a value of 1. - * - * \headerfile - * - * This intrinsic corresponds to the POPCNT instruction or a - * a sequence of arithmetic and logic ops to calculate it. - * - * \param __A - * An unsigned 64-bit integer operand. - * \returns A 64-bit integer containing the number of bits with value 1 in the - * source operand. - */ -static __inline__ long long __attribute__((__always_inline__, __nodebug__)) -__popcntq(unsigned long long __A) -{ - return __builtin_popcountll(__A); -} - -#define _popcnt64(A) __popcntq((A)) -#endif /* __x86_64__ */ - -#ifdef __x86_64__ -static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__)) -__readeflags(void) -{ - return __builtin_ia32_readeflags_u64(); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__)) -__writeeflags(unsigned long long __f) -{ - __builtin_ia32_writeeflags_u64(__f); -} - -#else /* !__x86_64__ */ -static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__)) -__readeflags(void) -{ - return __builtin_ia32_readeflags_u32(); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__)) -__writeeflags(unsigned int __f) -{ - __builtin_ia32_writeeflags_u32(__f); -} -#endif /* !__x86_64__ */ - -/** Adds the unsigned integer operand to the CRC-32C checksum of the - * unsigned char operand. - * - * \headerfile - * - * This intrinsic corresponds to the CRC32B instruction. - * - * \param __C - * An unsigned integer operand to add to the CRC-32C checksum of operand - * \a __D. - * \param __D - * An unsigned 8-bit integer operand used to compute the CRC-32C checksum. - * \returns The result of adding operand \a __C to the CRC-32C checksum of - * operand \a __D. - */ -static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) -__crc32b(unsigned int __C, unsigned char __D) -{ - return __builtin_ia32_crc32qi(__C, __D); -} - -/** Adds the unsigned integer operand to the CRC-32C checksum of the - * unsigned short operand. - * - * \headerfile - * - * This intrinsic corresponds to the CRC32W instruction. - * - * \param __C - * An unsigned integer operand to add to the CRC-32C checksum of operand - * \a __D. - * \param __D - * An unsigned 16-bit integer operand used to compute the CRC-32C checksum. - * \returns The result of adding operand \a __C to the CRC-32C checksum of - * operand \a __D. - */ -static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) -__crc32w(unsigned int __C, unsigned short __D) -{ - return __builtin_ia32_crc32hi(__C, __D); -} - -/** Adds the unsigned integer operand to the CRC-32C checksum of the - * second unsigned integer operand. - * - * \headerfile - * - * This intrinsic corresponds to the CRC32D instruction. - * - * \param __C - * An unsigned integer operand to add to the CRC-32C checksum of operand - * \a __D. - * \param __D - * An unsigned 32-bit integer operand used to compute the CRC-32C checksum. - * \returns The result of adding operand \a __C to the CRC-32C checksum of - * operand \a __D. - */ -static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) -__crc32d(unsigned int __C, unsigned int __D) -{ - return __builtin_ia32_crc32si(__C, __D); -} - -#ifdef __x86_64__ -/** Adds the unsigned integer operand to the CRC-32C checksum of the - * unsigned 64-bit integer operand. - * - * \headerfile - * - * This intrinsic corresponds to the CRC32Q instruction. - * - * \param __C - * An unsigned integer operand to add to the CRC-32C checksum of operand - * \a __D. - * \param __D - * An unsigned 64-bit integer operand used to compute the CRC-32C checksum. - * \returns The result of adding operand \a __C to the CRC-32C checksum of - * operand \a __D. - */ -static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) -__crc32q(unsigned long long __C, unsigned long long __D) -{ - return __builtin_ia32_crc32di(__C, __D); -} -#endif /* __x86_64__ */ - -static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__)) -__rdpmc(int __A) { - return __builtin_ia32_rdpmc(__A); -} - -/* __rdtscp */ -static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__)) -__rdtscp(unsigned int *__A) { - return __builtin_ia32_rdtscp(__A); -} - -#define _rdtsc() __rdtsc() - -#define _rdpmc(A) __rdpmc(A) - -static __inline__ void __attribute__((__always_inline__, __nodebug__)) -_wbinvd(void) { - __builtin_ia32_wbinvd(); -} - -static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__)) -__rolb(unsigned char __X, int __C) { - return __builtin_rotateleft8(__X, __C); -} - -static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__)) -__rorb(unsigned char __X, int __C) { - return __builtin_rotateright8(__X, __C); -} - -static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__)) -__rolw(unsigned short __X, int __C) { - return __builtin_rotateleft16(__X, __C); -} - -static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__)) -__rorw(unsigned short __X, int __C) { - return __builtin_rotateright16(__X, __C); -} - -static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__)) -__rold(unsigned int __X, int __C) { - return __builtin_rotateleft32(__X, __C); -} - -static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__)) -__rord(unsigned int __X, int __C) { - return __builtin_rotateright32(__X, __C); -} - -#ifdef __x86_64__ -static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__)) -__rolq(unsigned long long __X, int __C) { - return __builtin_rotateleft64(__X, __C); -} - -static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__)) -__rorq(unsigned long long __X, int __C) { - return __builtin_rotateright64(__X, __C); -} -#endif /* __x86_64__ */ - -#ifndef _MSC_VER -/* These are already provided as builtins for MSVC. */ -/* Select the correct function based on the size of long. */ -#ifdef __LP64__ -#define _lrotl(a,b) __rolq((a), (b)) -#define _lrotr(a,b) __rorq((a), (b)) -#else -#define _lrotl(a,b) __rold((a), (b)) -#define _lrotr(a,b) __rord((a), (b)) -#endif -#define _rotl(a,b) __rold((a), (b)) -#define _rotr(a,b) __rord((a), (b)) -#endif // _MSC_VER - -/* These are not builtins so need to be provided in all modes. */ -#define _rotwl(a,b) __rolw((a), (b)) -#define _rotwr(a,b) __rorw((a), (b)) - -#endif /* __IA32INTRIN_H */ diff --git a/bin/app/data/cxx/include/immintrin.h b/bin/app/data/cxx/include/immintrin.h deleted file mode 100644 index 7555ad82..00000000 --- a/bin/app/data/cxx/include/immintrin.h +++ /dev/null @@ -1,522 +0,0 @@ -/*===---- immintrin.h - Intel intrinsics -----------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#define __IMMINTRIN_H - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__MMX__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE2__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE3__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSSE3__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__SSE4_2__) || defined(__SSE4_1__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AES__) || defined(__PCLMUL__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLFLUSHOPT__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLWB__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX2__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__F16C__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__VPCLMULQDQ__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__BMI2__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__LZCNT__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__POPCNT__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__FMA__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512F__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VL__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512BW__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512BITALG__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512CD__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VPOPCNTDQ__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VL__) && defined(__AVX512VPOPCNTDQ__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VNNI__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VL__) && defined(__AVX512VNNI__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512DQ__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VL__) && defined(__AVX512BITALG__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VL__) && defined(__AVX512BW__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VL__) && defined(__AVX512CD__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VL__) && defined(__AVX512DQ__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512ER__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512IFMA__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512IFMA__) && defined(__AVX512VL__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VBMI__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VBMI__) && defined(__AVX512VL__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VBMI2__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VBMI2__) && defined(__AVX512VL__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512PF__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512BF16__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VL__) && defined(__AVX512BF16__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PKU__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__VAES__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__GFNI__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDPID__) -/// Returns the value of the IA32_TSC_AUX MSR (0xc0000103). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the RDPID instruction. -static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("rdpid"))) -_rdpid_u32(void) { - return __builtin_ia32_rdpid(); -} -#endif // __RDPID__ - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDRND__) -static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd"))) -_rdrand16_step(unsigned short *__p) -{ - return __builtin_ia32_rdrand16_step(__p); -} - -static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd"))) -_rdrand32_step(unsigned int *__p) -{ - return __builtin_ia32_rdrand32_step(__p); -} - -#ifdef __x86_64__ -static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd"))) -_rdrand64_step(unsigned long long *__p) -{ - return __builtin_ia32_rdrand64_step(__p); -} -#endif -#endif /* __RDRND__ */ - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__FSGSBASE__) -#ifdef __x86_64__ -static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) -_readfsbase_u32(void) -{ - return __builtin_ia32_rdfsbase32(); -} - -static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) -_readfsbase_u64(void) -{ - return __builtin_ia32_rdfsbase64(); -} - -static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) -_readgsbase_u32(void) -{ - return __builtin_ia32_rdgsbase32(); -} - -static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) -_readgsbase_u64(void) -{ - return __builtin_ia32_rdgsbase64(); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) -_writefsbase_u32(unsigned int __V) -{ - __builtin_ia32_wrfsbase32(__V); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) -_writefsbase_u64(unsigned long long __V) -{ - __builtin_ia32_wrfsbase64(__V); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) -_writegsbase_u32(unsigned int __V) -{ - __builtin_ia32_wrgsbase32(__V); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) -_writegsbase_u64(unsigned long long __V) -{ - __builtin_ia32_wrgsbase64(__V); -} - -#endif -#endif /* __FSGSBASE__ */ - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__MOVBE__) - -/* The structs used below are to force the load/store to be unaligned. This - * is accomplished with the __packed__ attribute. The __may_alias__ prevents - * tbaa metadata from being generated based on the struct and the type of the - * field inside of it. - */ - -static __inline__ short __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) -_loadbe_i16(void const * __P) { - struct __loadu_i16 { - short __v; - } __attribute__((__packed__, __may_alias__)); - return __builtin_bswap16(((struct __loadu_i16*)__P)->__v); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) -_storebe_i16(void * __P, short __D) { - struct __storeu_i16 { - short __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_i16*)__P)->__v = __builtin_bswap16(__D); -} - -static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) -_loadbe_i32(void const * __P) { - struct __loadu_i32 { - int __v; - } __attribute__((__packed__, __may_alias__)); - return __builtin_bswap32(((struct __loadu_i32*)__P)->__v); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) -_storebe_i32(void * __P, int __D) { - struct __storeu_i32 { - int __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_i32*)__P)->__v = __builtin_bswap32(__D); -} - -#ifdef __x86_64__ -static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) -_loadbe_i64(void const * __P) { - struct __loadu_i64 { - long long __v; - } __attribute__((__packed__, __may_alias__)); - return __builtin_bswap64(((struct __loadu_i64*)__P)->__v); -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) -_storebe_i64(void * __P, long long __D) { - struct __storeu_i64 { - long long __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_i64*)__P)->__v = __builtin_bswap64(__D); -} -#endif -#endif /* __MOVBE */ - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RTM__) -#include -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SHA__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__FXSR__) -#include -#endif - -/* No feature check desired due to internal MSC_VER checks */ -#include - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVEOPT__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVEC__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVES__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SHSTK__) -#include -#endif - -/* Some intrinsics inside adxintrin.h are available only on processors with ADX, - * whereas others are also available at all times. */ -#include - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDSEED__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__WBNOINVD__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLDEMOTE__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__WAITPKG__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - defined(__MOVDIRI__) || defined(__MOVDIR64B__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PCONFIG__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SGX__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PTWRITE__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__INVPCID__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - defined(__AVX512VP2INTERSECT__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || \ - (defined(__AVX512VL__) && defined(__AVX512VP2INTERSECT__)) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__ENQCMD__) -#include -#endif - -#if defined(_MSC_VER) && __has_extension(gnu_asm) -/* Define the default attributes for these intrinsics */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__)) -#ifdef __cplusplus -extern "C" { -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Exchange HLE -\*----------------------------------------------------------------------------*/ -#if defined(__i386__) || defined(__x86_64__) -static __inline__ long __DEFAULT_FN_ATTRS -_InterlockedExchange_HLEAcquire(long volatile *_Target, long _Value) { - __asm__ __volatile__(".byte 0xf2 ; lock ; xchg %0, %1" - : "+r" (_Value), "+m" (*_Target) :: "memory"); - return _Value; -} -static __inline__ long __DEFAULT_FN_ATTRS -_InterlockedExchange_HLERelease(long volatile *_Target, long _Value) { - __asm__ __volatile__(".byte 0xf3 ; lock ; xchg %0, %1" - : "+r" (_Value), "+m" (*_Target) :: "memory"); - return _Value; -} -#endif -#if defined(__x86_64__) -static __inline__ __int64 __DEFAULT_FN_ATTRS -_InterlockedExchange64_HLEAcquire(__int64 volatile *_Target, __int64 _Value) { - __asm__ __volatile__(".byte 0xf2 ; lock ; xchg %0, %1" - : "+r" (_Value), "+m" (*_Target) :: "memory"); - return _Value; -} -static __inline__ __int64 __DEFAULT_FN_ATTRS -_InterlockedExchange64_HLERelease(__int64 volatile *_Target, __int64 _Value) { - __asm__ __volatile__(".byte 0xf3 ; lock ; xchg %0, %1" - : "+r" (_Value), "+m" (*_Target) :: "memory"); - return _Value; -} -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Compare Exchange HLE -\*----------------------------------------------------------------------------*/ -#if defined(__i386__) || defined(__x86_64__) -static __inline__ long __DEFAULT_FN_ATTRS -_InterlockedCompareExchange_HLEAcquire(long volatile *_Destination, - long _Exchange, long _Comparand) { - __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg %2, %1" - : "+a" (_Comparand), "+m" (*_Destination) - : "r" (_Exchange) : "memory"); - return _Comparand; -} -static __inline__ long __DEFAULT_FN_ATTRS -_InterlockedCompareExchange_HLERelease(long volatile *_Destination, - long _Exchange, long _Comparand) { - __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg %2, %1" - : "+a" (_Comparand), "+m" (*_Destination) - : "r" (_Exchange) : "memory"); - return _Comparand; -} -#endif -#if defined(__x86_64__) -static __inline__ __int64 __DEFAULT_FN_ATTRS -_InterlockedCompareExchange64_HLEAcquire(__int64 volatile *_Destination, - __int64 _Exchange, __int64 _Comparand) { - __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg %2, %1" - : "+a" (_Comparand), "+m" (*_Destination) - : "r" (_Exchange) : "memory"); - return _Comparand; -} -static __inline__ __int64 __DEFAULT_FN_ATTRS -_InterlockedCompareExchange64_HLERelease(__int64 volatile *_Destination, - __int64 _Exchange, __int64 _Comparand) { - __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg %2, %1" - : "+a" (_Comparand), "+m" (*_Destination) - : "r" (_Exchange) : "memory"); - return _Comparand; -} -#endif -#ifdef __cplusplus -} -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif /* defined(_MSC_VER) && __has_extension(gnu_asm) */ - -#endif /* __IMMINTRIN_H */ diff --git a/bin/app/data/cxx/include/intrin.h b/bin/app/data/cxx/include/intrin.h deleted file mode 100644 index 9786ba14..00000000 --- a/bin/app/data/cxx/include/intrin.h +++ /dev/null @@ -1,589 +0,0 @@ -/* ===-------- intrin.h ---------------------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* Only include this if we're compiling for the windows platform. */ -#ifndef _MSC_VER -#include_next -#else - -#ifndef __INTRIN_H -#define __INTRIN_H - -/* First include the standard intrinsics. */ -#if defined(__i386__) || defined(__x86_64__) -#include -#endif - -#if defined(__arm__) -#include -#endif - -#if defined(__aarch64__) -#include -#endif - -/* For the definition of jmp_buf. */ -#if __STDC_HOSTED__ -#include -#endif - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__)) - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(__MMX__) -/* And the random ones that aren't in those files. */ -__m64 _m_from_float(float); -float _m_to_float(__m64); -#endif - -/* Other assorted instruction intrinsics. */ -void __addfsbyte(unsigned long, unsigned char); -void __addfsdword(unsigned long, unsigned long); -void __addfsword(unsigned long, unsigned short); -void __code_seg(const char *); -static __inline__ -void __cpuid(int[4], int); -static __inline__ -void __cpuidex(int[4], int, int); -static __inline__ -__int64 __emul(int, int); -static __inline__ -unsigned __int64 __emulu(unsigned int, unsigned int); -unsigned int __getcallerseflags(void); -static __inline__ -void __halt(void); -unsigned char __inbyte(unsigned short); -void __inbytestring(unsigned short, unsigned char *, unsigned long); -void __incfsbyte(unsigned long); -void __incfsdword(unsigned long); -void __incfsword(unsigned long); -unsigned long __indword(unsigned short); -void __indwordstring(unsigned short, unsigned long *, unsigned long); -void __int2c(void); -void __invlpg(void *); -unsigned short __inword(unsigned short); -void __inwordstring(unsigned short, unsigned short *, unsigned long); -void __lidt(void *); -unsigned __int64 __ll_lshift(unsigned __int64, int); -__int64 __ll_rshift(__int64, int); -static __inline__ -void __movsb(unsigned char *, unsigned char const *, size_t); -static __inline__ -void __movsd(unsigned long *, unsigned long const *, size_t); -static __inline__ -void __movsw(unsigned short *, unsigned short const *, size_t); -static __inline__ -void __nop(void); -void __nvreg_restore_fence(void); -void __nvreg_save_fence(void); -void __outbyte(unsigned short, unsigned char); -void __outbytestring(unsigned short, unsigned char *, unsigned long); -void __outdword(unsigned short, unsigned long); -void __outdwordstring(unsigned short, unsigned long *, unsigned long); -void __outword(unsigned short, unsigned short); -void __outwordstring(unsigned short, unsigned short *, unsigned long); -unsigned long __readcr0(void); -unsigned long __readcr2(void); -static __inline__ -unsigned long __readcr3(void); -unsigned long __readcr4(void); -unsigned long __readcr8(void); -unsigned int __readdr(unsigned int); -#ifdef __i386__ -static __inline__ -unsigned char __readfsbyte(unsigned long); -static __inline__ -unsigned __int64 __readfsqword(unsigned long); -static __inline__ -unsigned short __readfsword(unsigned long); -#endif -static __inline__ -unsigned __int64 __readmsr(unsigned long); -unsigned __int64 __readpmc(unsigned long); -unsigned long __segmentlimit(unsigned long); -void __sidt(void *); -static __inline__ -void __stosb(unsigned char *, unsigned char, size_t); -static __inline__ -void __stosd(unsigned long *, unsigned long, size_t); -static __inline__ -void __stosw(unsigned short *, unsigned short, size_t); -void __svm_clgi(void); -void __svm_invlpga(void *, int); -void __svm_skinit(int); -void __svm_stgi(void); -void __svm_vmload(size_t); -void __svm_vmrun(size_t); -void __svm_vmsave(size_t); -void __ud2(void); -unsigned __int64 __ull_rshift(unsigned __int64, int); -void __vmx_off(void); -void __vmx_vmptrst(unsigned __int64 *); -void __wbinvd(void); -void __writecr0(unsigned int); -static __inline__ -void __writecr3(unsigned int); -void __writecr4(unsigned int); -void __writecr8(unsigned int); -void __writedr(unsigned int, unsigned int); -void __writefsbyte(unsigned long, unsigned char); -void __writefsdword(unsigned long, unsigned long); -void __writefsqword(unsigned long, unsigned __int64); -void __writefsword(unsigned long, unsigned short); -void __writemsr(unsigned long, unsigned __int64); -static __inline__ -void *_AddressOfReturnAddress(void); -static __inline__ -unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask); -static __inline__ -unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask); -unsigned char _bittest(long const *, long); -unsigned char _bittestandcomplement(long *, long); -unsigned char _bittestandreset(long *, long); -unsigned char _bittestandset(long *, long); -void __cdecl _disable(void); -void __cdecl _enable(void); -long _InterlockedAddLargeStatistic(__int64 volatile *_Addend, long _Value); -unsigned char _interlockedbittestandreset(long volatile *, long); -unsigned char _interlockedbittestandset(long volatile *, long); -void *_InterlockedCompareExchangePointer_HLEAcquire(void *volatile *, void *, - void *); -void *_InterlockedCompareExchangePointer_HLERelease(void *volatile *, void *, - void *); -long _InterlockedExchangeAdd_HLEAcquire(long volatile *, long); -long _InterlockedExchangeAdd_HLERelease(long volatile *, long); -__int64 _InterlockedExchangeAdd64_HLEAcquire(__int64 volatile *, __int64); -__int64 _InterlockedExchangeAdd64_HLERelease(__int64 volatile *, __int64); -void __cdecl _invpcid(unsigned int, void *); -static __inline__ void -__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead"))) -_ReadBarrier(void); -static __inline__ void -__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead"))) -_ReadWriteBarrier(void); -unsigned int _rorx_u32(unsigned int, const unsigned int); -int _sarx_i32(int, unsigned int); -#if __STDC_HOSTED__ -int __cdecl _setjmp(jmp_buf); -#endif -unsigned int _shlx_u32(unsigned int, unsigned int); -unsigned int _shrx_u32(unsigned int, unsigned int); -void _Store_HLERelease(long volatile *, long); -void _Store64_HLERelease(__int64 volatile *, __int64); -void _StorePointer_HLERelease(void *volatile *, void *); -static __inline__ void -__attribute__((__deprecated__("use other intrinsics or C++11 atomics instead"))) -_WriteBarrier(void); -unsigned __int32 xbegin(void); -void _xend(void); - -/* These additional intrinsics are turned on in x64/amd64/x86_64 mode. */ -#ifdef __x86_64__ -void __addgsbyte(unsigned long, unsigned char); -void __addgsdword(unsigned long, unsigned long); -void __addgsqword(unsigned long, unsigned __int64); -void __addgsword(unsigned long, unsigned short); -static __inline__ -void __faststorefence(void); -void __incgsbyte(unsigned long); -void __incgsdword(unsigned long); -void __incgsqword(unsigned long); -void __incgsword(unsigned long); -static __inline__ -void __movsq(unsigned long long *, unsigned long long const *, size_t); -static __inline__ -unsigned char __readgsbyte(unsigned long); -static __inline__ -unsigned long __readgsdword(unsigned long); -static __inline__ -unsigned __int64 __readgsqword(unsigned long); -unsigned short __readgsword(unsigned long); -unsigned __int64 __shiftleft128(unsigned __int64 _LowPart, - unsigned __int64 _HighPart, - unsigned char _Shift); -unsigned __int64 __shiftright128(unsigned __int64 _LowPart, - unsigned __int64 _HighPart, - unsigned char _Shift); -static __inline__ -void __stosq(unsigned __int64 *, unsigned __int64, size_t); -unsigned char __vmx_on(unsigned __int64 *); -unsigned char __vmx_vmclear(unsigned __int64 *); -unsigned char __vmx_vmlaunch(void); -unsigned char __vmx_vmptrld(unsigned __int64 *); -unsigned char __vmx_vmread(size_t, size_t *); -unsigned char __vmx_vmresume(void); -unsigned char __vmx_vmwrite(size_t, size_t); -void __writegsbyte(unsigned long, unsigned char); -void __writegsdword(unsigned long, unsigned long); -void __writegsqword(unsigned long, unsigned __int64); -void __writegsword(unsigned long, unsigned short); -unsigned char _bittest64(__int64 const *, __int64); -unsigned char _bittestandcomplement64(__int64 *, __int64); -unsigned char _bittestandreset64(__int64 *, __int64); -unsigned char _bittestandset64(__int64 *, __int64); -long _InterlockedAnd_np(long volatile *_Value, long _Mask); -short _InterlockedAnd16_np(short volatile *_Value, short _Mask); -__int64 _InterlockedAnd64_np(__int64 volatile *_Value, __int64 _Mask); -char _InterlockedAnd8_np(char volatile *_Value, char _Mask); -unsigned char _interlockedbittestandreset64(__int64 volatile *, __int64); -unsigned char _interlockedbittestandset64(__int64 volatile *, __int64); -long _InterlockedCompareExchange_np(long volatile *_Destination, long _Exchange, - long _Comparand); -unsigned char _InterlockedCompareExchange128(__int64 volatile *_Destination, - __int64 _ExchangeHigh, - __int64 _ExchangeLow, - __int64 *_CompareandResult); -unsigned char _InterlockedCompareExchange128_np(__int64 volatile *_Destination, - __int64 _ExchangeHigh, - __int64 _ExchangeLow, - __int64 *_ComparandResult); -short _InterlockedCompareExchange16_np(short volatile *_Destination, - short _Exchange, short _Comparand); -__int64 _InterlockedCompareExchange64_np(__int64 volatile *_Destination, - __int64 _Exchange, __int64 _Comparand); -void *_InterlockedCompareExchangePointer_np(void *volatile *_Destination, - void *_Exchange, void *_Comparand); -long _InterlockedOr_np(long volatile *_Value, long _Mask); -short _InterlockedOr16_np(short volatile *_Value, short _Mask); -__int64 _InterlockedOr64_np(__int64 volatile *_Value, __int64 _Mask); -char _InterlockedOr8_np(char volatile *_Value, char _Mask); -long _InterlockedXor_np(long volatile *_Value, long _Mask); -short _InterlockedXor16_np(short volatile *_Value, short _Mask); -__int64 _InterlockedXor64_np(__int64 volatile *_Value, __int64 _Mask); -char _InterlockedXor8_np(char volatile *_Value, char _Mask); -unsigned __int64 _rorx_u64(unsigned __int64, const unsigned int); -__int64 _sarx_i64(__int64, unsigned int); -unsigned __int64 _shlx_u64(unsigned __int64, unsigned int); -unsigned __int64 _shrx_u64(unsigned __int64, unsigned int); -static __inline__ -__int64 __mulh(__int64, __int64); -static __inline__ -unsigned __int64 __umulh(unsigned __int64, unsigned __int64); -static __inline__ -__int64 _mul128(__int64, __int64, __int64*); -static __inline__ -unsigned __int64 _umul128(unsigned __int64, - unsigned __int64, - unsigned __int64*); - -#endif /* __x86_64__ */ - -#if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) - -static __inline__ -unsigned char _BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask); -static __inline__ -unsigned char _BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask); - -static __inline__ -__int64 _InterlockedDecrement64(__int64 volatile *_Addend); -static __inline__ -__int64 _InterlockedExchange64(__int64 volatile *_Target, __int64 _Value); -static __inline__ -__int64 _InterlockedExchangeAdd64(__int64 volatile *_Addend, __int64 _Value); -static __inline__ -__int64 _InterlockedExchangeSub64(__int64 volatile *_Subend, __int64 _Value); -static __inline__ -__int64 _InterlockedIncrement64(__int64 volatile *_Addend); -static __inline__ -__int64 _InterlockedOr64(__int64 volatile *_Value, __int64 _Mask); -static __inline__ -__int64 _InterlockedXor64(__int64 volatile *_Value, __int64 _Mask); -static __inline__ -__int64 _InterlockedAnd64(__int64 volatile *_Value, __int64 _Mask); - -#endif - -/*----------------------------------------------------------------------------*\ -|* Interlocked Exchange Add -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedExchangeAdd8_acq(char volatile *_Addend, char _Value); -char _InterlockedExchangeAdd8_nf(char volatile *_Addend, char _Value); -char _InterlockedExchangeAdd8_rel(char volatile *_Addend, char _Value); -short _InterlockedExchangeAdd16_acq(short volatile *_Addend, short _Value); -short _InterlockedExchangeAdd16_nf(short volatile *_Addend, short _Value); -short _InterlockedExchangeAdd16_rel(short volatile *_Addend, short _Value); -long _InterlockedExchangeAdd_acq(long volatile *_Addend, long _Value); -long _InterlockedExchangeAdd_nf(long volatile *_Addend, long _Value); -long _InterlockedExchangeAdd_rel(long volatile *_Addend, long _Value); -__int64 _InterlockedExchangeAdd64_acq(__int64 volatile *_Addend, __int64 _Value); -__int64 _InterlockedExchangeAdd64_nf(__int64 volatile *_Addend, __int64 _Value); -__int64 _InterlockedExchangeAdd64_rel(__int64 volatile *_Addend, __int64 _Value); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Increment -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -short _InterlockedIncrement16_acq(short volatile *_Value); -short _InterlockedIncrement16_nf(short volatile *_Value); -short _InterlockedIncrement16_rel(short volatile *_Value); -long _InterlockedIncrement_acq(long volatile *_Value); -long _InterlockedIncrement_nf(long volatile *_Value); -long _InterlockedIncrement_rel(long volatile *_Value); -__int64 _InterlockedIncrement64_acq(__int64 volatile *_Value); -__int64 _InterlockedIncrement64_nf(__int64 volatile *_Value); -__int64 _InterlockedIncrement64_rel(__int64 volatile *_Value); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Decrement -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -short _InterlockedDecrement16_acq(short volatile *_Value); -short _InterlockedDecrement16_nf(short volatile *_Value); -short _InterlockedDecrement16_rel(short volatile *_Value); -long _InterlockedDecrement_acq(long volatile *_Value); -long _InterlockedDecrement_nf(long volatile *_Value); -long _InterlockedDecrement_rel(long volatile *_Value); -__int64 _InterlockedDecrement64_acq(__int64 volatile *_Value); -__int64 _InterlockedDecrement64_nf(__int64 volatile *_Value); -__int64 _InterlockedDecrement64_rel(__int64 volatile *_Value); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked And -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedAnd8_acq(char volatile *_Value, char _Mask); -char _InterlockedAnd8_nf(char volatile *_Value, char _Mask); -char _InterlockedAnd8_rel(char volatile *_Value, char _Mask); -short _InterlockedAnd16_acq(short volatile *_Value, short _Mask); -short _InterlockedAnd16_nf(short volatile *_Value, short _Mask); -short _InterlockedAnd16_rel(short volatile *_Value, short _Mask); -long _InterlockedAnd_acq(long volatile *_Value, long _Mask); -long _InterlockedAnd_nf(long volatile *_Value, long _Mask); -long _InterlockedAnd_rel(long volatile *_Value, long _Mask); -__int64 _InterlockedAnd64_acq(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedAnd64_nf(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedAnd64_rel(__int64 volatile *_Value, __int64 _Mask); -#endif -/*----------------------------------------------------------------------------*\ -|* Bit Counting and Testing -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -unsigned char _interlockedbittestandset_acq(long volatile *_BitBase, - long _BitPos); -unsigned char _interlockedbittestandset_nf(long volatile *_BitBase, - long _BitPos); -unsigned char _interlockedbittestandset_rel(long volatile *_BitBase, - long _BitPos); -unsigned char _interlockedbittestandreset_acq(long volatile *_BitBase, - long _BitPos); -unsigned char _interlockedbittestandreset_nf(long volatile *_BitBase, - long _BitPos); -unsigned char _interlockedbittestandreset_rel(long volatile *_BitBase, - long _BitPos); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Or -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedOr8_acq(char volatile *_Value, char _Mask); -char _InterlockedOr8_nf(char volatile *_Value, char _Mask); -char _InterlockedOr8_rel(char volatile *_Value, char _Mask); -short _InterlockedOr16_acq(short volatile *_Value, short _Mask); -short _InterlockedOr16_nf(short volatile *_Value, short _Mask); -short _InterlockedOr16_rel(short volatile *_Value, short _Mask); -long _InterlockedOr_acq(long volatile *_Value, long _Mask); -long _InterlockedOr_nf(long volatile *_Value, long _Mask); -long _InterlockedOr_rel(long volatile *_Value, long _Mask); -__int64 _InterlockedOr64_acq(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedOr64_nf(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedOr64_rel(__int64 volatile *_Value, __int64 _Mask); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Xor -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedXor8_acq(char volatile *_Value, char _Mask); -char _InterlockedXor8_nf(char volatile *_Value, char _Mask); -char _InterlockedXor8_rel(char volatile *_Value, char _Mask); -short _InterlockedXor16_acq(short volatile *_Value, short _Mask); -short _InterlockedXor16_nf(short volatile *_Value, short _Mask); -short _InterlockedXor16_rel(short volatile *_Value, short _Mask); -long _InterlockedXor_acq(long volatile *_Value, long _Mask); -long _InterlockedXor_nf(long volatile *_Value, long _Mask); -long _InterlockedXor_rel(long volatile *_Value, long _Mask); -__int64 _InterlockedXor64_acq(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedXor64_nf(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedXor64_rel(__int64 volatile *_Value, __int64 _Mask); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Exchange -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedExchange8_acq(char volatile *_Target, char _Value); -char _InterlockedExchange8_nf(char volatile *_Target, char _Value); -char _InterlockedExchange8_rel(char volatile *_Target, char _Value); -short _InterlockedExchange16_acq(short volatile *_Target, short _Value); -short _InterlockedExchange16_nf(short volatile *_Target, short _Value); -short _InterlockedExchange16_rel(short volatile *_Target, short _Value); -long _InterlockedExchange_acq(long volatile *_Target, long _Value); -long _InterlockedExchange_nf(long volatile *_Target, long _Value); -long _InterlockedExchange_rel(long volatile *_Target, long _Value); -__int64 _InterlockedExchange64_acq(__int64 volatile *_Target, __int64 _Value); -__int64 _InterlockedExchange64_nf(__int64 volatile *_Target, __int64 _Value); -__int64 _InterlockedExchange64_rel(__int64 volatile *_Target, __int64 _Value); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Compare Exchange -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedCompareExchange8_acq(char volatile *_Destination, - char _Exchange, char _Comparand); -char _InterlockedCompareExchange8_nf(char volatile *_Destination, - char _Exchange, char _Comparand); -char _InterlockedCompareExchange8_rel(char volatile *_Destination, - char _Exchange, char _Comparand); -short _InterlockedCompareExchange16_acq(short volatile *_Destination, - short _Exchange, short _Comparand); -short _InterlockedCompareExchange16_nf(short volatile *_Destination, - short _Exchange, short _Comparand); -short _InterlockedCompareExchange16_rel(short volatile *_Destination, - short _Exchange, short _Comparand); -long _InterlockedCompareExchange_acq(long volatile *_Destination, - long _Exchange, long _Comparand); -long _InterlockedCompareExchange_nf(long volatile *_Destination, - long _Exchange, long _Comparand); -long _InterlockedCompareExchange_rel(long volatile *_Destination, - long _Exchange, long _Comparand); -__int64 _InterlockedCompareExchange64_acq(__int64 volatile *_Destination, - __int64 _Exchange, __int64 _Comparand); -__int64 _InterlockedCompareExchange64_nf(__int64 volatile *_Destination, - __int64 _Exchange, __int64 _Comparand); -__int64 _InterlockedCompareExchange64_rel(__int64 volatile *_Destination, - __int64 _Exchange, __int64 _Comparand); -#endif - -/*----------------------------------------------------------------------------*\ -|* movs, stos -\*----------------------------------------------------------------------------*/ -#if defined(__i386__) || defined(__x86_64__) -static __inline__ void __DEFAULT_FN_ATTRS -__movsb(unsigned char *__dst, unsigned char const *__src, size_t __n) { - __asm__ __volatile__("rep movsb" : "+D"(__dst), "+S"(__src), "+c"(__n) - : : "memory"); -} -static __inline__ void __DEFAULT_FN_ATTRS -__movsd(unsigned long *__dst, unsigned long const *__src, size_t __n) { - __asm__ __volatile__("rep movsl" : "+D"(__dst), "+S"(__src), "+c"(__n) - : : "memory"); -} -static __inline__ void __DEFAULT_FN_ATTRS -__movsw(unsigned short *__dst, unsigned short const *__src, size_t __n) { - __asm__ __volatile__("rep movsw" : "+D"(__dst), "+S"(__src), "+c"(__n) - : : "memory"); -} -static __inline__ void __DEFAULT_FN_ATTRS -__stosd(unsigned long *__dst, unsigned long __x, size_t __n) { - __asm__ __volatile__("rep stosl" : "+D"(__dst), "+c"(__n) : "a"(__x) - : "memory"); -} -static __inline__ void __DEFAULT_FN_ATTRS -__stosw(unsigned short *__dst, unsigned short __x, size_t __n) { - __asm__ __volatile__("rep stosw" : "+D"(__dst), "+c"(__n) : "a"(__x) - : "memory"); -} -#endif -#ifdef __x86_64__ -static __inline__ void __DEFAULT_FN_ATTRS -__movsq(unsigned long long *__dst, unsigned long long const *__src, size_t __n) { - __asm__ __volatile__("rep movsq" : "+D"(__dst), "+S"(__src), "+c"(__n) - : : "memory"); -} -static __inline__ void __DEFAULT_FN_ATTRS -__stosq(unsigned __int64 *__dst, unsigned __int64 __x, size_t __n) { - __asm__ __volatile__("rep stosq" : "+D"(__dst), "+c"(__n) : "a"(__x) - : "memory"); -} -#endif - -/*----------------------------------------------------------------------------*\ -|* Misc -\*----------------------------------------------------------------------------*/ -#if defined(__i386__) || defined(__x86_64__) -static __inline__ void __DEFAULT_FN_ATTRS -__cpuid(int __info[4], int __level) { - __asm__ ("cpuid" : "=a"(__info[0]), "=b" (__info[1]), "=c"(__info[2]), "=d"(__info[3]) - : "a"(__level), "c"(0)); -} -static __inline__ void __DEFAULT_FN_ATTRS -__cpuidex(int __info[4], int __level, int __ecx) { - __asm__ ("cpuid" : "=a"(__info[0]), "=b" (__info[1]), "=c"(__info[2]), "=d"(__info[3]) - : "a"(__level), "c"(__ecx)); -} -static __inline__ void __DEFAULT_FN_ATTRS -__halt(void) { - __asm__ volatile ("hlt"); -} -#endif - -#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) -static __inline__ void __DEFAULT_FN_ATTRS -__nop(void) { - __asm__ volatile ("nop"); -} -#endif - -/*----------------------------------------------------------------------------*\ -|* MS AArch64 specific -\*----------------------------------------------------------------------------*/ -#if defined(__aarch64__) -unsigned __int64 __getReg(int); -long _InterlockedAdd(long volatile *Addend, long Value); -__int64 _ReadStatusReg(int); -void _WriteStatusReg(int, __int64); - -unsigned short __cdecl _byteswap_ushort(unsigned short val); -unsigned long __cdecl _byteswap_ulong (unsigned long val); -unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64 val); -#endif - -/*----------------------------------------------------------------------------*\ -|* Privileged intrinsics -\*----------------------------------------------------------------------------*/ -#if defined(__i386__) || defined(__x86_64__) -static __inline__ unsigned __int64 __DEFAULT_FN_ATTRS -__readmsr(unsigned long __register) { - // Loads the contents of a 64-bit model specific register (MSR) specified in - // the ECX register into registers EDX:EAX. The EDX register is loaded with - // the high-order 32 bits of the MSR and the EAX register is loaded with the - // low-order 32 bits. If less than 64 bits are implemented in the MSR being - // read, the values returned to EDX:EAX in unimplemented bit locations are - // undefined. - unsigned long __edx; - unsigned long __eax; - __asm__ ("rdmsr" : "=d"(__edx), "=a"(__eax) : "c"(__register)); - return (((unsigned __int64)__edx) << 32) | (unsigned __int64)__eax; -} - -static __inline__ unsigned long __DEFAULT_FN_ATTRS -__readcr3(void) { - unsigned long __cr3_val; - __asm__ __volatile__ ("mov %%cr3, %0" : "=q"(__cr3_val) : : "memory"); - return __cr3_val; -} - -static __inline__ void __DEFAULT_FN_ATTRS -__writecr3(unsigned int __cr3_val) { - __asm__ ("mov %0, %%cr3" : : "q"(__cr3_val) : "memory"); -} -#endif - -#ifdef __cplusplus -} -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif /* __INTRIN_H */ -#endif /* _MSC_VER */ diff --git a/bin/app/data/cxx/include/inttypes.h b/bin/app/data/cxx/include/inttypes.h deleted file mode 100644 index 1c894c4a..00000000 --- a/bin/app/data/cxx/include/inttypes.h +++ /dev/null @@ -1,97 +0,0 @@ -/*===---- inttypes.h - Standard header for integer printf macros ----------===*\ - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * -\*===----------------------------------------------------------------------===*/ - -#ifndef __CLANG_INTTYPES_H -// AIX system headers need inttypes.h to be re-enterable while _STD_TYPES_T -// is defined until an inclusion of it without _STD_TYPES_T occurs, in which -// case the header guard macro is defined. -#if !defined(_AIX) || !defined(_STD_TYPES_T) -#define __CLANG_INTTYPES_H -#endif - -#if defined(_MSC_VER) && _MSC_VER < 1800 -#error MSVC does not have inttypes.h prior to Visual Studio 2013 -#endif - -#include_next - -#if defined(_MSC_VER) && _MSC_VER < 1900 -/* MSVC headers define int32_t as int, but PRIx32 as "lx" instead of "x". - * This triggers format warnings, so fix it up here. */ -#undef PRId32 -#undef PRIdLEAST32 -#undef PRIdFAST32 -#undef PRIi32 -#undef PRIiLEAST32 -#undef PRIiFAST32 -#undef PRIo32 -#undef PRIoLEAST32 -#undef PRIoFAST32 -#undef PRIu32 -#undef PRIuLEAST32 -#undef PRIuFAST32 -#undef PRIx32 -#undef PRIxLEAST32 -#undef PRIxFAST32 -#undef PRIX32 -#undef PRIXLEAST32 -#undef PRIXFAST32 - -#undef SCNd32 -#undef SCNdLEAST32 -#undef SCNdFAST32 -#undef SCNi32 -#undef SCNiLEAST32 -#undef SCNiFAST32 -#undef SCNo32 -#undef SCNoLEAST32 -#undef SCNoFAST32 -#undef SCNu32 -#undef SCNuLEAST32 -#undef SCNuFAST32 -#undef SCNx32 -#undef SCNxLEAST32 -#undef SCNxFAST32 - -#define PRId32 "d" -#define PRIdLEAST32 "d" -#define PRIdFAST32 "d" -#define PRIi32 "i" -#define PRIiLEAST32 "i" -#define PRIiFAST32 "i" -#define PRIo32 "o" -#define PRIoLEAST32 "o" -#define PRIoFAST32 "o" -#define PRIu32 "u" -#define PRIuLEAST32 "u" -#define PRIuFAST32 "u" -#define PRIx32 "x" -#define PRIxLEAST32 "x" -#define PRIxFAST32 "x" -#define PRIX32 "X" -#define PRIXLEAST32 "X" -#define PRIXFAST32 "X" - -#define SCNd32 "d" -#define SCNdLEAST32 "d" -#define SCNdFAST32 "d" -#define SCNi32 "i" -#define SCNiLEAST32 "i" -#define SCNiFAST32 "i" -#define SCNo32 "o" -#define SCNoLEAST32 "o" -#define SCNoFAST32 "o" -#define SCNu32 "u" -#define SCNuLEAST32 "u" -#define SCNuFAST32 "u" -#define SCNx32 "x" -#define SCNxLEAST32 "x" -#define SCNxFAST32 "x" -#endif - -#endif /* __CLANG_INTTYPES_H */ diff --git a/bin/app/data/cxx/include/invpcidintrin.h b/bin/app/data/cxx/include/invpcidintrin.h deleted file mode 100644 index 48dae0a8..00000000 --- a/bin/app/data/cxx/include/invpcidintrin.h +++ /dev/null @@ -1,23 +0,0 @@ -/*===------------- invpcidintrin.h - INVPCID intrinsic ---------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __INVPCIDINTRIN_H -#define __INVPCIDINTRIN_H - -static __inline__ void - __attribute__((__always_inline__, __nodebug__, __target__("invpcid"))) -_invpcid(unsigned int __type, void *__descriptor) { - __builtin_ia32_invpcid(__type, __descriptor); -} - -#endif /* __INVPCIDINTRIN_H */ diff --git a/bin/app/data/cxx/include/iso646.h b/bin/app/data/cxx/include/iso646.h deleted file mode 100644 index e0a20c6f..00000000 --- a/bin/app/data/cxx/include/iso646.h +++ /dev/null @@ -1,27 +0,0 @@ -/*===---- iso646.h - Standard header for alternate spellings of operators---=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __ISO646_H -#define __ISO646_H - -#ifndef __cplusplus -#define and && -#define and_eq &= -#define bitand & -#define bitor | -#define compl ~ -#define not ! -#define not_eq != -#define or || -#define or_eq |= -#define xor ^ -#define xor_eq ^= -#endif - -#endif /* __ISO646_H */ diff --git a/bin/app/data/cxx/include/limits.h b/bin/app/data/cxx/include/limits.h deleted file mode 100644 index c653580b..00000000 --- a/bin/app/data/cxx/include/limits.h +++ /dev/null @@ -1,102 +0,0 @@ -/*===---- limits.h - Standard header for integer sizes --------------------===*\ - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * -\*===----------------------------------------------------------------------===*/ - -#ifndef __CLANG_LIMITS_H -#define __CLANG_LIMITS_H - -/* The system's limits.h may, in turn, try to #include_next GCC's limits.h. - Avert this #include_next madness. */ -#if defined __GNUC__ && !defined _GCC_LIMITS_H_ -#define _GCC_LIMITS_H_ -#endif - -/* System headers include a number of constants from POSIX in . - Include it if we're hosted. */ -#if __STDC_HOSTED__ && __has_include_next() -#include_next -#endif - -/* Many system headers try to "help us out" by defining these. No really, we - know how big each datatype is. */ -#undef SCHAR_MIN -#undef SCHAR_MAX -#undef UCHAR_MAX -#undef SHRT_MIN -#undef SHRT_MAX -#undef USHRT_MAX -#undef INT_MIN -#undef INT_MAX -#undef UINT_MAX -#undef LONG_MIN -#undef LONG_MAX -#undef ULONG_MAX - -#undef CHAR_BIT -#undef CHAR_MIN -#undef CHAR_MAX - -/* C90/99 5.2.4.2.1 */ -#define SCHAR_MAX __SCHAR_MAX__ -#define SHRT_MAX __SHRT_MAX__ -#define INT_MAX __INT_MAX__ -#define LONG_MAX __LONG_MAX__ - -#define SCHAR_MIN (-__SCHAR_MAX__-1) -#define SHRT_MIN (-__SHRT_MAX__ -1) -#define INT_MIN (-__INT_MAX__ -1) -#define LONG_MIN (-__LONG_MAX__ -1L) - -#define UCHAR_MAX (__SCHAR_MAX__*2 +1) -#define USHRT_MAX (__SHRT_MAX__ *2 +1) -#define UINT_MAX (__INT_MAX__ *2U +1U) -#define ULONG_MAX (__LONG_MAX__ *2UL+1UL) - -#ifndef MB_LEN_MAX -#define MB_LEN_MAX 1 -#endif - -#define CHAR_BIT __CHAR_BIT__ - -#ifdef __CHAR_UNSIGNED__ /* -funsigned-char */ -#define CHAR_MIN 0 -#define CHAR_MAX UCHAR_MAX -#else -#define CHAR_MIN SCHAR_MIN -#define CHAR_MAX __SCHAR_MAX__ -#endif - -/* C99 5.2.4.2.1: Added long long. - C++11 18.3.3.2: same contents as the Standard C Library header . - */ -#if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L - -#undef LLONG_MIN -#undef LLONG_MAX -#undef ULLONG_MAX - -#define LLONG_MAX __LONG_LONG_MAX__ -#define LLONG_MIN (-__LONG_LONG_MAX__-1LL) -#define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) -#endif - -/* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. It's too bad - that we don't have something like #pragma poison that could be used to - deprecate a macro - the code should just use LLONG_MAX and friends. - */ -#if defined(__GNU_LIBRARY__) ? defined(__USE_GNU) : !defined(__STRICT_ANSI__) - -#undef LONG_LONG_MIN -#undef LONG_LONG_MAX -#undef ULONG_LONG_MAX - -#define LONG_LONG_MAX __LONG_LONG_MAX__ -#define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL) -#define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) -#endif - -#endif /* __CLANG_LIMITS_H */ diff --git a/bin/app/data/cxx/include/lwpintrin.h b/bin/app/data/cxx/include/lwpintrin.h deleted file mode 100644 index d8ab0db0..00000000 --- a/bin/app/data/cxx/include/lwpintrin.h +++ /dev/null @@ -1,136 +0,0 @@ -/*===---- lwpintrin.h - LWP intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __X86INTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __LWPINTRIN_H -#define __LWPINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("lwp"))) - -/// Parses the LWPCB at the specified address and enables -/// profiling if valid. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the LLWPCB instruction. -/// -/// \param __addr -/// Address to the new Lightweight Profiling Control Block (LWPCB). If the -/// LWPCB is valid, writes the address into the LWP_CBADDR MSR and enables -/// Lightweight Profiling. -static __inline__ void __DEFAULT_FN_ATTRS -__llwpcb (void *__addr) -{ - __builtin_ia32_llwpcb(__addr); -} - -/// Flushes the LWP state to memory and returns the address of the LWPCB. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the SLWPCB instruction. -/// -/// \return -/// Address to the current Lightweight Profiling Control Block (LWPCB). -/// If LWP is not currently enabled, returns NULL. -static __inline__ void* __DEFAULT_FN_ATTRS -__slwpcb (void) -{ - return __builtin_ia32_slwpcb(); -} - -/// Inserts programmed event record into the LWP event ring buffer -/// and advances the ring buffer pointer. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the LWPINS instruction. -/// -/// \param DATA2 -/// A 32-bit value is zero-extended and inserted into the 64-bit Data2 field. -/// \param DATA1 -/// A 32-bit value is inserted into the 32-bit Data1 field. -/// \param FLAGS -/// A 32-bit immediate value is inserted into the 32-bit Flags field. -/// \returns If the ring buffer is full and LWP is running in Synchronized Mode, -/// the event record overwrites the last record in the buffer, the MissedEvents -/// counter in the LWPCB is incremented, the head pointer is not advanced, and -/// 1 is returned. Otherwise 0 is returned. -#define __lwpins32(DATA2, DATA1, FLAGS) \ - (__builtin_ia32_lwpins32((unsigned int) (DATA2), (unsigned int) (DATA1), \ - (unsigned int) (FLAGS))) - -/// Decrements the LWP programmed value sample event counter. If the result is -/// negative, inserts an event record into the LWP event ring buffer in memory -/// and advances the ring buffer pointer. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the LWPVAL instruction. -/// -/// \param DATA2 -/// A 32-bit value is zero-extended and inserted into the 64-bit Data2 field. -/// \param DATA1 -/// A 32-bit value is inserted into the 32-bit Data1 field. -/// \param FLAGS -/// A 32-bit immediate value is inserted into the 32-bit Flags field. -#define __lwpval32(DATA2, DATA1, FLAGS) \ - (__builtin_ia32_lwpval32((unsigned int) (DATA2), (unsigned int) (DATA1), \ - (unsigned int) (FLAGS))) - -#ifdef __x86_64__ - -/// Inserts programmed event record into the LWP event ring buffer -/// and advances the ring buffer pointer. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the LWPINS instruction. -/// -/// \param DATA2 -/// A 64-bit value is inserted into the 64-bit Data2 field. -/// \param DATA1 -/// A 32-bit value is inserted into the 32-bit Data1 field. -/// \param FLAGS -/// A 32-bit immediate value is inserted into the 32-bit Flags field. -/// \returns If the ring buffer is full and LWP is running in Synchronized Mode, -/// the event record overwrites the last record in the buffer, the MissedEvents -/// counter in the LWPCB is incremented, the head pointer is not advanced, and -/// 1 is returned. Otherwise 0 is returned. -#define __lwpins64(DATA2, DATA1, FLAGS) \ - (__builtin_ia32_lwpins64((unsigned long long) (DATA2), (unsigned int) (DATA1), \ - (unsigned int) (FLAGS))) - -/// Decrements the LWP programmed value sample event counter. If the result is -/// negative, inserts an event record into the LWP event ring buffer in memory -/// and advances the ring buffer pointer. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the LWPVAL instruction. -/// -/// \param DATA2 -/// A 64-bit value is and inserted into the 64-bit Data2 field. -/// \param DATA1 -/// A 32-bit value is inserted into the 32-bit Data1 field. -/// \param FLAGS -/// A 32-bit immediate value is inserted into the 32-bit Flags field. -#define __lwpval64(DATA2, DATA1, FLAGS) \ - (__builtin_ia32_lwpval64((unsigned long long) (DATA2), (unsigned int) (DATA1), \ - (unsigned int) (FLAGS))) - -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif /* __LWPINTRIN_H */ diff --git a/bin/app/data/cxx/include/lzcntintrin.h b/bin/app/data/cxx/include/lzcntintrin.h deleted file mode 100644 index f4ddce9d..00000000 --- a/bin/app/data/cxx/include/lzcntintrin.h +++ /dev/null @@ -1,104 +0,0 @@ -/*===---- lzcntintrin.h - LZCNT intrinsics ---------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __LZCNTINTRIN_H -#define __LZCNTINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("lzcnt"))) - -#ifndef _MSC_VER -/// Counts the number of leading zero bits in the operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c LZCNT instruction. -/// -/// \param __X -/// An unsigned 16-bit integer whose leading zeros are to be counted. -/// \returns An unsigned 16-bit integer containing the number of leading zero -/// bits in the operand. -#define __lzcnt16(X) __builtin_ia32_lzcnt_u16((unsigned short)(X)) -#endif // _MSC_VER - -/// Counts the number of leading zero bits in the operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c LZCNT instruction. -/// -/// \param __X -/// An unsigned 32-bit integer whose leading zeros are to be counted. -/// \returns An unsigned 32-bit integer containing the number of leading zero -/// bits in the operand. -/// \see _lzcnt_u32 -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__lzcnt32(unsigned int __X) -{ - return __builtin_ia32_lzcnt_u32(__X); -} - -/// Counts the number of leading zero bits in the operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c LZCNT instruction. -/// -/// \param __X -/// An unsigned 32-bit integer whose leading zeros are to be counted. -/// \returns An unsigned 32-bit integer containing the number of leading zero -/// bits in the operand. -/// \see __lzcnt32 -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_lzcnt_u32(unsigned int __X) -{ - return __builtin_ia32_lzcnt_u32(__X); -} - -#ifdef __x86_64__ -#ifndef _MSC_VER -/// Counts the number of leading zero bits in the operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c LZCNT instruction. -/// -/// \param __X -/// An unsigned 64-bit integer whose leading zeros are to be counted. -/// \returns An unsigned 64-bit integer containing the number of leading zero -/// bits in the operand. -/// \see _lzcnt_u64 -#define __lzcnt64(X) __builtin_ia32_lzcnt_u64((unsigned long long)(X)) -#endif // _MSC_VER - -/// Counts the number of leading zero bits in the operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c LZCNT instruction. -/// -/// \param __X -/// An unsigned 64-bit integer whose leading zeros are to be counted. -/// \returns An unsigned 64-bit integer containing the number of leading zero -/// bits in the operand. -/// \see __lzcnt64 -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -_lzcnt_u64(unsigned long long __X) -{ - return __builtin_ia32_lzcnt_u64(__X); -} -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif /* __LZCNTINTRIN_H */ diff --git a/bin/app/data/cxx/include/mm3dnow.h b/bin/app/data/cxx/include/mm3dnow.h deleted file mode 100644 index 22ab13aa..00000000 --- a/bin/app/data/cxx/include/mm3dnow.h +++ /dev/null @@ -1,157 +0,0 @@ -/*===---- mm3dnow.h - 3DNow! intrinsics ------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef _MM3DNOW_H_INCLUDED -#define _MM3DNOW_H_INCLUDED - -#include -#include - -typedef float __v2sf __attribute__((__vector_size__(8))); - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("3dnow"), __min_vector_width__(64))) - -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("3dnow"))) -_m_femms(void) { - __builtin_ia32_femms(); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pavgusb(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pavgusb((__v8qi)__m1, (__v8qi)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pf2id(__m64 __m) { - return (__m64)__builtin_ia32_pf2id((__v2sf)__m); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfacc(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfacc((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfadd(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfadd((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfcmpeq(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfcmpeq((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfcmpge(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfcmpge((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfcmpgt(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfcmpgt((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfmax(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfmax((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfmin(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfmin((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfmul(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfmul((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfrcp(__m64 __m) { - return (__m64)__builtin_ia32_pfrcp((__v2sf)__m); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfrcpit1(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfrcpit1((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfrcpit2(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfrcpit2((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfrsqrt(__m64 __m) { - return (__m64)__builtin_ia32_pfrsqrt((__v2sf)__m); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfrsqrtit1(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfrsqit1((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfsub(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfsub((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfsubr(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfsubr((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pi2fd(__m64 __m) { - return (__m64)__builtin_ia32_pi2fd((__v2si)__m); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pmulhrw(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pmulhrw((__v4hi)__m1, (__v4hi)__m2); -} - -/* Handle the 3dnowa instructions here. */ -#undef __DEFAULT_FN_ATTRS -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("3dnowa"), __min_vector_width__(64))) - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pf2iw(__m64 __m) { - return (__m64)__builtin_ia32_pf2iw((__v2sf)__m); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfnacc(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfnacc((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pfpnacc(__m64 __m1, __m64 __m2) { - return (__m64)__builtin_ia32_pfpnacc((__v2sf)__m1, (__v2sf)__m2); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pi2fw(__m64 __m) { - return (__m64)__builtin_ia32_pi2fw((__v2si)__m); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pswapdsf(__m64 __m) { - return (__m64)__builtin_ia32_pswapdsf((__v2sf)__m); -} - -static __inline__ __m64 __DEFAULT_FN_ATTRS -_m_pswapdsi(__m64 __m) { - return (__m64)__builtin_ia32_pswapdsi((__v2si)__m); -} - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/mm_malloc.h b/bin/app/data/cxx/include/mm_malloc.h deleted file mode 100644 index 0ea32517..00000000 --- a/bin/app/data/cxx/include/mm_malloc.h +++ /dev/null @@ -1,61 +0,0 @@ -/*===---- mm_malloc.h - Allocating and Freeing Aligned Memory Blocks -------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __MM_MALLOC_H -#define __MM_MALLOC_H - -#include - -#ifdef _WIN32 -#include -#else -#ifndef __cplusplus -extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size); -#else -// Some systems (e.g. those with GNU libc) declare posix_memalign with an -// exception specifier. Via an "egregious workaround" in -// Sema::CheckEquivalentExceptionSpec, Clang accepts the following as a valid -// redeclaration of glibc's declaration. -extern "C" int posix_memalign(void **__memptr, size_t __alignment, size_t __size); -#endif -#endif - -#if !(defined(_WIN32) && defined(_mm_malloc)) -static __inline__ void *__attribute__((__always_inline__, __nodebug__, - __malloc__)) -_mm_malloc(size_t __size, size_t __align) -{ - if (__align == 1) { - return malloc(__size); - } - - if (!(__align & (__align - 1)) && __align < sizeof(void *)) - __align = sizeof(void *); - - void *__mallocedMemory; -#if defined(__MINGW32__) - __mallocedMemory = __mingw_aligned_malloc(__size, __align); -#elif defined(_WIN32) - __mallocedMemory = _aligned_malloc(__size, __align); -#else - if (posix_memalign(&__mallocedMemory, __align, __size)) - return 0; -#endif - - return __mallocedMemory; -} - -static __inline__ void __attribute__((__always_inline__, __nodebug__)) -_mm_free(void *__p) -{ - free(__p); -} -#endif - -#endif /* __MM_MALLOC_H */ diff --git a/bin/app/data/cxx/include/mmintrin.h b/bin/app/data/cxx/include/mmintrin.h deleted file mode 100644 index 79a8b550..00000000 --- a/bin/app/data/cxx/include/mmintrin.h +++ /dev/null @@ -1,1558 +0,0 @@ -/*===---- mmintrin.h - MMX intrinsics --------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __MMINTRIN_H -#define __MMINTRIN_H - -typedef long long __m64 __attribute__((__vector_size__(8), __aligned__(8))); - -typedef long long __v1di __attribute__((__vector_size__(8))); -typedef int __v2si __attribute__((__vector_size__(8))); -typedef short __v4hi __attribute__((__vector_size__(8))); -typedef char __v8qi __attribute__((__vector_size__(8))); - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) - -/// Clears the MMX state by setting the state of the x87 stack registers -/// to empty. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the EMMS instruction. -/// -static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("mmx"))) -_mm_empty(void) -{ - __builtin_ia32_emms(); -} - -/// Constructs a 64-bit integer vector, setting the lower 32 bits to the -/// value of the 32-bit integer parameter and setting the upper 32 bits to 0. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVD instruction. -/// -/// \param __i -/// A 32-bit integer value. -/// \returns A 64-bit integer vector. The lower 32 bits contain the value of the -/// parameter. The upper 32 bits are set to 0. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_cvtsi32_si64(int __i) -{ - return (__m64)__builtin_ia32_vec_init_v2si(__i, 0); -} - -/// Returns the lower 32 bits of a 64-bit integer vector as a 32-bit -/// signed integer. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVD instruction. -/// -/// \param __m -/// A 64-bit integer vector. -/// \returns A 32-bit signed integer value containing the lower 32 bits of the -/// parameter. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_cvtsi64_si32(__m64 __m) -{ - return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0); -} - -/// Casts a 64-bit signed integer value into a 64-bit integer vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVQ instruction. -/// -/// \param __i -/// A 64-bit signed integer. -/// \returns A 64-bit integer vector containing the same bitwise pattern as the -/// parameter. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_cvtsi64_m64(long long __i) -{ - return (__m64)__i; -} - -/// Casts a 64-bit integer vector into a 64-bit signed integer value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVQ instruction. -/// -/// \param __m -/// A 64-bit integer vector. -/// \returns A 64-bit signed integer containing the same bitwise pattern as the -/// parameter. -static __inline__ long long __DEFAULT_FN_ATTRS -_mm_cvtm64_si64(__m64 __m) -{ - return (long long)__m; -} - -/// Converts 16-bit signed integers from both 64-bit integer vector -/// parameters of [4 x i16] into 8-bit signed integer values, and constructs -/// a 64-bit integer vector of [8 x i8] as the result. Positive values -/// greater than 0x7F are saturated to 0x7F. Negative values less than 0x80 -/// are saturated to 0x80. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PACKSSWB instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a -/// 16-bit signed integer and is converted to an 8-bit signed integer with -/// saturation. Positive values greater than 0x7F are saturated to 0x7F. -/// Negative values less than 0x80 are saturated to 0x80. The converted -/// [4 x i8] values are written to the lower 32 bits of the result. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a -/// 16-bit signed integer and is converted to an 8-bit signed integer with -/// saturation. Positive values greater than 0x7F are saturated to 0x7F. -/// Negative values less than 0x80 are saturated to 0x80. The converted -/// [4 x i8] values are written to the upper 32 bits of the result. -/// \returns A 64-bit integer vector of [8 x i8] containing the converted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_packs_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2); -} - -/// Converts 32-bit signed integers from both 64-bit integer vector -/// parameters of [2 x i32] into 16-bit signed integer values, and constructs -/// a 64-bit integer vector of [4 x i16] as the result. Positive values -/// greater than 0x7FFF are saturated to 0x7FFF. Negative values less than -/// 0x8000 are saturated to 0x8000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PACKSSDW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [2 x i32]. Each 32-bit element is treated as a -/// 32-bit signed integer and is converted to a 16-bit signed integer with -/// saturation. Positive values greater than 0x7FFF are saturated to 0x7FFF. -/// Negative values less than 0x8000 are saturated to 0x8000. The converted -/// [2 x i16] values are written to the lower 32 bits of the result. -/// \param __m2 -/// A 64-bit integer vector of [2 x i32]. Each 32-bit element is treated as a -/// 32-bit signed integer and is converted to a 16-bit signed integer with -/// saturation. Positive values greater than 0x7FFF are saturated to 0x7FFF. -/// Negative values less than 0x8000 are saturated to 0x8000. The converted -/// [2 x i16] values are written to the upper 32 bits of the result. -/// \returns A 64-bit integer vector of [4 x i16] containing the converted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_packs_pi32(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2); -} - -/// Converts 16-bit signed integers from both 64-bit integer vector -/// parameters of [4 x i16] into 8-bit unsigned integer values, and -/// constructs a 64-bit integer vector of [8 x i8] as the result. Values -/// greater than 0xFF are saturated to 0xFF. Values less than 0 are saturated -/// to 0. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PACKUSWB instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a -/// 16-bit signed integer and is converted to an 8-bit unsigned integer with -/// saturation. Values greater than 0xFF are saturated to 0xFF. Values less -/// than 0 are saturated to 0. The converted [4 x i8] values are written to -/// the lower 32 bits of the result. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. Each 16-bit element is treated as a -/// 16-bit signed integer and is converted to an 8-bit unsigned integer with -/// saturation. Values greater than 0xFF are saturated to 0xFF. Values less -/// than 0 are saturated to 0. The converted [4 x i8] values are written to -/// the upper 32 bits of the result. -/// \returns A 64-bit integer vector of [8 x i8] containing the converted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_packs_pu16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2); -} - -/// Unpacks the upper 32 bits from two 64-bit integer vectors of [8 x i8] -/// and interleaves them into a 64-bit integer vector of [8 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PUNPCKHBW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [8 x i8]. \n -/// Bits [39:32] are written to bits [7:0] of the result. \n -/// Bits [47:40] are written to bits [23:16] of the result. \n -/// Bits [55:48] are written to bits [39:32] of the result. \n -/// Bits [63:56] are written to bits [55:48] of the result. -/// \param __m2 -/// A 64-bit integer vector of [8 x i8]. -/// Bits [39:32] are written to bits [15:8] of the result. \n -/// Bits [47:40] are written to bits [31:24] of the result. \n -/// Bits [55:48] are written to bits [47:40] of the result. \n -/// Bits [63:56] are written to bits [63:56] of the result. -/// \returns A 64-bit integer vector of [8 x i8] containing the interleaved -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_unpackhi_pi8(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2); -} - -/// Unpacks the upper 32 bits from two 64-bit integer vectors of -/// [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PUNPCKHWD instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. -/// Bits [47:32] are written to bits [15:0] of the result. \n -/// Bits [63:48] are written to bits [47:32] of the result. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. -/// Bits [47:32] are written to bits [31:16] of the result. \n -/// Bits [63:48] are written to bits [63:48] of the result. -/// \returns A 64-bit integer vector of [4 x i16] containing the interleaved -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_unpackhi_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2); -} - -/// Unpacks the upper 32 bits from two 64-bit integer vectors of -/// [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PUNPCKHDQ instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [2 x i32]. The upper 32 bits are written to -/// the lower 32 bits of the result. -/// \param __m2 -/// A 64-bit integer vector of [2 x i32]. The upper 32 bits are written to -/// the upper 32 bits of the result. -/// \returns A 64-bit integer vector of [2 x i32] containing the interleaved -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_unpackhi_pi32(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2); -} - -/// Unpacks the lower 32 bits from two 64-bit integer vectors of [8 x i8] -/// and interleaves them into a 64-bit integer vector of [8 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PUNPCKLBW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [8 x i8]. -/// Bits [7:0] are written to bits [7:0] of the result. \n -/// Bits [15:8] are written to bits [23:16] of the result. \n -/// Bits [23:16] are written to bits [39:32] of the result. \n -/// Bits [31:24] are written to bits [55:48] of the result. -/// \param __m2 -/// A 64-bit integer vector of [8 x i8]. -/// Bits [7:0] are written to bits [15:8] of the result. \n -/// Bits [15:8] are written to bits [31:24] of the result. \n -/// Bits [23:16] are written to bits [47:40] of the result. \n -/// Bits [31:24] are written to bits [63:56] of the result. -/// \returns A 64-bit integer vector of [8 x i8] containing the interleaved -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_unpacklo_pi8(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2); -} - -/// Unpacks the lower 32 bits from two 64-bit integer vectors of -/// [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PUNPCKLWD instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. -/// Bits [15:0] are written to bits [15:0] of the result. \n -/// Bits [31:16] are written to bits [47:32] of the result. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. -/// Bits [15:0] are written to bits [31:16] of the result. \n -/// Bits [31:16] are written to bits [63:48] of the result. -/// \returns A 64-bit integer vector of [4 x i16] containing the interleaved -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_unpacklo_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2); -} - -/// Unpacks the lower 32 bits from two 64-bit integer vectors of -/// [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PUNPCKLDQ instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [2 x i32]. The lower 32 bits are written to -/// the lower 32 bits of the result. -/// \param __m2 -/// A 64-bit integer vector of [2 x i32]. The lower 32 bits are written to -/// the upper 32 bits of the result. -/// \returns A 64-bit integer vector of [2 x i32] containing the interleaved -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_unpacklo_pi32(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2); -} - -/// Adds each 8-bit integer element of the first 64-bit integer vector -/// of [8 x i8] to the corresponding 8-bit integer element of the second -/// 64-bit integer vector of [8 x i8]. The lower 8 bits of the results are -/// packed into a 64-bit integer vector of [8 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PADDB instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [8 x i8]. -/// \param __m2 -/// A 64-bit integer vector of [8 x i8]. -/// \returns A 64-bit integer vector of [8 x i8] containing the sums of both -/// parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_add_pi8(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2); -} - -/// Adds each 16-bit integer element of the first 64-bit integer vector -/// of [4 x i16] to the corresponding 16-bit integer element of the second -/// 64-bit integer vector of [4 x i16]. The lower 16 bits of the results are -/// packed into a 64-bit integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PADDW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. -/// \returns A 64-bit integer vector of [4 x i16] containing the sums of both -/// parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_add_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2); -} - -/// Adds each 32-bit integer element of the first 64-bit integer vector -/// of [2 x i32] to the corresponding 32-bit integer element of the second -/// 64-bit integer vector of [2 x i32]. The lower 32 bits of the results are -/// packed into a 64-bit integer vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PADDD instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [2 x i32]. -/// \param __m2 -/// A 64-bit integer vector of [2 x i32]. -/// \returns A 64-bit integer vector of [2 x i32] containing the sums of both -/// parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_add_pi32(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2); -} - -/// Adds each 8-bit signed integer element of the first 64-bit integer -/// vector of [8 x i8] to the corresponding 8-bit signed integer element of -/// the second 64-bit integer vector of [8 x i8]. Positive sums greater than -/// 0x7F are saturated to 0x7F. Negative sums less than 0x80 are saturated to -/// 0x80. The results are packed into a 64-bit integer vector of [8 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PADDSB instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [8 x i8]. -/// \param __m2 -/// A 64-bit integer vector of [8 x i8]. -/// \returns A 64-bit integer vector of [8 x i8] containing the saturated sums -/// of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_adds_pi8(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2); -} - -/// Adds each 16-bit signed integer element of the first 64-bit integer -/// vector of [4 x i16] to the corresponding 16-bit signed integer element of -/// the second 64-bit integer vector of [4 x i16]. Positive sums greater than -/// 0x7FFF are saturated to 0x7FFF. Negative sums less than 0x8000 are -/// saturated to 0x8000. The results are packed into a 64-bit integer vector -/// of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PADDSW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. -/// \returns A 64-bit integer vector of [4 x i16] containing the saturated sums -/// of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_adds_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2); -} - -/// Adds each 8-bit unsigned integer element of the first 64-bit integer -/// vector of [8 x i8] to the corresponding 8-bit unsigned integer element of -/// the second 64-bit integer vector of [8 x i8]. Sums greater than 0xFF are -/// saturated to 0xFF. The results are packed into a 64-bit integer vector of -/// [8 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PADDUSB instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [8 x i8]. -/// \param __m2 -/// A 64-bit integer vector of [8 x i8]. -/// \returns A 64-bit integer vector of [8 x i8] containing the saturated -/// unsigned sums of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_adds_pu8(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2); -} - -/// Adds each 16-bit unsigned integer element of the first 64-bit integer -/// vector of [4 x i16] to the corresponding 16-bit unsigned integer element -/// of the second 64-bit integer vector of [4 x i16]. Sums greater than -/// 0xFFFF are saturated to 0xFFFF. The results are packed into a 64-bit -/// integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PADDUSW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. -/// \returns A 64-bit integer vector of [4 x i16] containing the saturated -/// unsigned sums of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_adds_pu16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2); -} - -/// Subtracts each 8-bit integer element of the second 64-bit integer -/// vector of [8 x i8] from the corresponding 8-bit integer element of the -/// first 64-bit integer vector of [8 x i8]. The lower 8 bits of the results -/// are packed into a 64-bit integer vector of [8 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSUBB instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [8 x i8] containing the minuends. -/// \param __m2 -/// A 64-bit integer vector of [8 x i8] containing the subtrahends. -/// \returns A 64-bit integer vector of [8 x i8] containing the differences of -/// both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_sub_pi8(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2); -} - -/// Subtracts each 16-bit integer element of the second 64-bit integer -/// vector of [4 x i16] from the corresponding 16-bit integer element of the -/// first 64-bit integer vector of [4 x i16]. The lower 16 bits of the -/// results are packed into a 64-bit integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSUBW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16] containing the minuends. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16] containing the subtrahends. -/// \returns A 64-bit integer vector of [4 x i16] containing the differences of -/// both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_sub_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2); -} - -/// Subtracts each 32-bit integer element of the second 64-bit integer -/// vector of [2 x i32] from the corresponding 32-bit integer element of the -/// first 64-bit integer vector of [2 x i32]. The lower 32 bits of the -/// results are packed into a 64-bit integer vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSUBD instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [2 x i32] containing the minuends. -/// \param __m2 -/// A 64-bit integer vector of [2 x i32] containing the subtrahends. -/// \returns A 64-bit integer vector of [2 x i32] containing the differences of -/// both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_sub_pi32(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2); -} - -/// Subtracts each 8-bit signed integer element of the second 64-bit -/// integer vector of [8 x i8] from the corresponding 8-bit signed integer -/// element of the first 64-bit integer vector of [8 x i8]. Positive results -/// greater than 0x7F are saturated to 0x7F. Negative results less than 0x80 -/// are saturated to 0x80. The results are packed into a 64-bit integer -/// vector of [8 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSUBSB instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [8 x i8] containing the minuends. -/// \param __m2 -/// A 64-bit integer vector of [8 x i8] containing the subtrahends. -/// \returns A 64-bit integer vector of [8 x i8] containing the saturated -/// differences of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_subs_pi8(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2); -} - -/// Subtracts each 16-bit signed integer element of the second 64-bit -/// integer vector of [4 x i16] from the corresponding 16-bit signed integer -/// element of the first 64-bit integer vector of [4 x i16]. Positive results -/// greater than 0x7FFF are saturated to 0x7FFF. Negative results less than -/// 0x8000 are saturated to 0x8000. The results are packed into a 64-bit -/// integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSUBSW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16] containing the minuends. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16] containing the subtrahends. -/// \returns A 64-bit integer vector of [4 x i16] containing the saturated -/// differences of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_subs_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2); -} - -/// Subtracts each 8-bit unsigned integer element of the second 64-bit -/// integer vector of [8 x i8] from the corresponding 8-bit unsigned integer -/// element of the first 64-bit integer vector of [8 x i8]. -/// -/// If an element of the first vector is less than the corresponding element -/// of the second vector, the result is saturated to 0. The results are -/// packed into a 64-bit integer vector of [8 x i8]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSUBUSB instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [8 x i8] containing the minuends. -/// \param __m2 -/// A 64-bit integer vector of [8 x i8] containing the subtrahends. -/// \returns A 64-bit integer vector of [8 x i8] containing the saturated -/// differences of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_subs_pu8(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2); -} - -/// Subtracts each 16-bit unsigned integer element of the second 64-bit -/// integer vector of [4 x i16] from the corresponding 16-bit unsigned -/// integer element of the first 64-bit integer vector of [4 x i16]. -/// -/// If an element of the first vector is less than the corresponding element -/// of the second vector, the result is saturated to 0. The results are -/// packed into a 64-bit integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSUBUSW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16] containing the minuends. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16] containing the subtrahends. -/// \returns A 64-bit integer vector of [4 x i16] containing the saturated -/// differences of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_subs_pu16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2); -} - -/// Multiplies each 16-bit signed integer element of the first 64-bit -/// integer vector of [4 x i16] by the corresponding 16-bit signed integer -/// element of the second 64-bit integer vector of [4 x i16] and get four -/// 32-bit products. Adds adjacent pairs of products to get two 32-bit sums. -/// The lower 32 bits of these two sums are packed into a 64-bit integer -/// vector of [2 x i32]. -/// -/// For example, bits [15:0] of both parameters are multiplied, bits [31:16] -/// of both parameters are multiplied, and the sum of both results is written -/// to bits [31:0] of the result. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PMADDWD instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. -/// \returns A 64-bit integer vector of [2 x i32] containing the sums of -/// products of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_madd_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2); -} - -/// Multiplies each 16-bit signed integer element of the first 64-bit -/// integer vector of [4 x i16] by the corresponding 16-bit signed integer -/// element of the second 64-bit integer vector of [4 x i16]. Packs the upper -/// 16 bits of the 32-bit products into a 64-bit integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PMULHW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. -/// \returns A 64-bit integer vector of [4 x i16] containing the upper 16 bits -/// of the products of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_mulhi_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2); -} - -/// Multiplies each 16-bit signed integer element of the first 64-bit -/// integer vector of [4 x i16] by the corresponding 16-bit signed integer -/// element of the second 64-bit integer vector of [4 x i16]. Packs the lower -/// 16 bits of the 32-bit products into a 64-bit integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PMULLW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. -/// \returns A 64-bit integer vector of [4 x i16] containing the lower 16 bits -/// of the products of both parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_mullo_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2); -} - -/// Left-shifts each 16-bit signed integer element of the first -/// parameter, which is a 64-bit integer vector of [4 x i16], by the number -/// of bits specified by the second parameter, which is a 64-bit integer. The -/// lower 16 bits of the results are packed into a 64-bit integer vector of -/// [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSLLW instruction. -/// -/// \param __m -/// A 64-bit integer vector of [4 x i16]. -/// \param __count -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted -/// values. If \a __count is greater or equal to 16, the result is set to all -/// 0. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_sll_pi16(__m64 __m, __m64 __count) -{ - return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count); -} - -/// Left-shifts each 16-bit signed integer element of a 64-bit integer -/// vector of [4 x i16] by the number of bits specified by a 32-bit integer. -/// The lower 16 bits of the results are packed into a 64-bit integer vector -/// of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSLLW instruction. -/// -/// \param __m -/// A 64-bit integer vector of [4 x i16]. -/// \param __count -/// A 32-bit integer value. -/// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted -/// values. If \a __count is greater or equal to 16, the result is set to all -/// 0. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_slli_pi16(__m64 __m, int __count) -{ - return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count); -} - -/// Left-shifts each 32-bit signed integer element of the first -/// parameter, which is a 64-bit integer vector of [2 x i32], by the number -/// of bits specified by the second parameter, which is a 64-bit integer. The -/// lower 32 bits of the results are packed into a 64-bit integer vector of -/// [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSLLD instruction. -/// -/// \param __m -/// A 64-bit integer vector of [2 x i32]. -/// \param __count -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted -/// values. If \a __count is greater or equal to 32, the result is set to all -/// 0. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_sll_pi32(__m64 __m, __m64 __count) -{ - return (__m64)__builtin_ia32_pslld((__v2si)__m, __count); -} - -/// Left-shifts each 32-bit signed integer element of a 64-bit integer -/// vector of [2 x i32] by the number of bits specified by a 32-bit integer. -/// The lower 32 bits of the results are packed into a 64-bit integer vector -/// of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSLLD instruction. -/// -/// \param __m -/// A 64-bit integer vector of [2 x i32]. -/// \param __count -/// A 32-bit integer value. -/// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted -/// values. If \a __count is greater or equal to 32, the result is set to all -/// 0. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_slli_pi32(__m64 __m, int __count) -{ - return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count); -} - -/// Left-shifts the first 64-bit integer parameter by the number of bits -/// specified by the second 64-bit integer parameter. The lower 64 bits of -/// result are returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSLLQ instruction. -/// -/// \param __m -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \param __count -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \returns A 64-bit integer vector containing the left-shifted value. If -/// \a __count is greater or equal to 64, the result is set to 0. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_sll_si64(__m64 __m, __m64 __count) -{ - return (__m64)__builtin_ia32_psllq((__v1di)__m, __count); -} - -/// Left-shifts the first parameter, which is a 64-bit integer, by the -/// number of bits specified by the second parameter, which is a 32-bit -/// integer. The lower 64 bits of result are returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSLLQ instruction. -/// -/// \param __m -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \param __count -/// A 32-bit integer value. -/// \returns A 64-bit integer vector containing the left-shifted value. If -/// \a __count is greater or equal to 64, the result is set to 0. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_slli_si64(__m64 __m, int __count) -{ - return (__m64)__builtin_ia32_psllqi((__v1di)__m, __count); -} - -/// Right-shifts each 16-bit integer element of the first parameter, -/// which is a 64-bit integer vector of [4 x i16], by the number of bits -/// specified by the second parameter, which is a 64-bit integer. -/// -/// High-order bits are filled with the sign bit of the initial value of each -/// 16-bit element. The 16-bit results are packed into a 64-bit integer -/// vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSRAW instruction. -/// -/// \param __m -/// A 64-bit integer vector of [4 x i16]. -/// \param __count -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_sra_pi16(__m64 __m, __m64 __count) -{ - return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count); -} - -/// Right-shifts each 16-bit integer element of a 64-bit integer vector -/// of [4 x i16] by the number of bits specified by a 32-bit integer. -/// -/// High-order bits are filled with the sign bit of the initial value of each -/// 16-bit element. The 16-bit results are packed into a 64-bit integer -/// vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSRAW instruction. -/// -/// \param __m -/// A 64-bit integer vector of [4 x i16]. -/// \param __count -/// A 32-bit integer value. -/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_srai_pi16(__m64 __m, int __count) -{ - return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count); -} - -/// Right-shifts each 32-bit integer element of the first parameter, -/// which is a 64-bit integer vector of [2 x i32], by the number of bits -/// specified by the second parameter, which is a 64-bit integer. -/// -/// High-order bits are filled with the sign bit of the initial value of each -/// 32-bit element. The 32-bit results are packed into a 64-bit integer -/// vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSRAD instruction. -/// -/// \param __m -/// A 64-bit integer vector of [2 x i32]. -/// \param __count -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_sra_pi32(__m64 __m, __m64 __count) -{ - return (__m64)__builtin_ia32_psrad((__v2si)__m, __count); -} - -/// Right-shifts each 32-bit integer element of a 64-bit integer vector -/// of [2 x i32] by the number of bits specified by a 32-bit integer. -/// -/// High-order bits are filled with the sign bit of the initial value of each -/// 32-bit element. The 32-bit results are packed into a 64-bit integer -/// vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSRAD instruction. -/// -/// \param __m -/// A 64-bit integer vector of [2 x i32]. -/// \param __count -/// A 32-bit integer value. -/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_srai_pi32(__m64 __m, int __count) -{ - return (__m64)__builtin_ia32_psradi((__v2si)__m, __count); -} - -/// Right-shifts each 16-bit integer element of the first parameter, -/// which is a 64-bit integer vector of [4 x i16], by the number of bits -/// specified by the second parameter, which is a 64-bit integer. -/// -/// High-order bits are cleared. The 16-bit results are packed into a 64-bit -/// integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSRLW instruction. -/// -/// \param __m -/// A 64-bit integer vector of [4 x i16]. -/// \param __count -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_srl_pi16(__m64 __m, __m64 __count) -{ - return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count); -} - -/// Right-shifts each 16-bit integer element of a 64-bit integer vector -/// of [4 x i16] by the number of bits specified by a 32-bit integer. -/// -/// High-order bits are cleared. The 16-bit results are packed into a 64-bit -/// integer vector of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSRLW instruction. -/// -/// \param __m -/// A 64-bit integer vector of [4 x i16]. -/// \param __count -/// A 32-bit integer value. -/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_srli_pi16(__m64 __m, int __count) -{ - return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count); -} - -/// Right-shifts each 32-bit integer element of the first parameter, -/// which is a 64-bit integer vector of [2 x i32], by the number of bits -/// specified by the second parameter, which is a 64-bit integer. -/// -/// High-order bits are cleared. The 32-bit results are packed into a 64-bit -/// integer vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSRLD instruction. -/// -/// \param __m -/// A 64-bit integer vector of [2 x i32]. -/// \param __count -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_srl_pi32(__m64 __m, __m64 __count) -{ - return (__m64)__builtin_ia32_psrld((__v2si)__m, __count); -} - -/// Right-shifts each 32-bit integer element of a 64-bit integer vector -/// of [2 x i32] by the number of bits specified by a 32-bit integer. -/// -/// High-order bits are cleared. The 32-bit results are packed into a 64-bit -/// integer vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSRLD instruction. -/// -/// \param __m -/// A 64-bit integer vector of [2 x i32]. -/// \param __count -/// A 32-bit integer value. -/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_srli_pi32(__m64 __m, int __count) -{ - return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count); -} - -/// Right-shifts the first 64-bit integer parameter by the number of bits -/// specified by the second 64-bit integer parameter. -/// -/// High-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSRLQ instruction. -/// -/// \param __m -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \param __count -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \returns A 64-bit integer vector containing the right-shifted value. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_srl_si64(__m64 __m, __m64 __count) -{ - return (__m64)__builtin_ia32_psrlq((__v1di)__m, __count); -} - -/// Right-shifts the first parameter, which is a 64-bit integer, by the -/// number of bits specified by the second parameter, which is a 32-bit -/// integer. -/// -/// High-order bits are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSRLQ instruction. -/// -/// \param __m -/// A 64-bit integer vector interpreted as a single 64-bit integer. -/// \param __count -/// A 32-bit integer value. -/// \returns A 64-bit integer vector containing the right-shifted value. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_srli_si64(__m64 __m, int __count) -{ - return (__m64)__builtin_ia32_psrlqi((__v1di)__m, __count); -} - -/// Performs a bitwise AND of two 64-bit integer vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PAND instruction. -/// -/// \param __m1 -/// A 64-bit integer vector. -/// \param __m2 -/// A 64-bit integer vector. -/// \returns A 64-bit integer vector containing the bitwise AND of both -/// parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_and_si64(__m64 __m1, __m64 __m2) -{ - return __builtin_ia32_pand((__v1di)__m1, (__v1di)__m2); -} - -/// Performs a bitwise NOT of the first 64-bit integer vector, and then -/// performs a bitwise AND of the intermediate result and the second 64-bit -/// integer vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PANDN instruction. -/// -/// \param __m1 -/// A 64-bit integer vector. The one's complement of this parameter is used -/// in the bitwise AND. -/// \param __m2 -/// A 64-bit integer vector. -/// \returns A 64-bit integer vector containing the bitwise AND of the second -/// parameter and the one's complement of the first parameter. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_andnot_si64(__m64 __m1, __m64 __m2) -{ - return __builtin_ia32_pandn((__v1di)__m1, (__v1di)__m2); -} - -/// Performs a bitwise OR of two 64-bit integer vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the POR instruction. -/// -/// \param __m1 -/// A 64-bit integer vector. -/// \param __m2 -/// A 64-bit integer vector. -/// \returns A 64-bit integer vector containing the bitwise OR of both -/// parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_or_si64(__m64 __m1, __m64 __m2) -{ - return __builtin_ia32_por((__v1di)__m1, (__v1di)__m2); -} - -/// Performs a bitwise exclusive OR of two 64-bit integer vectors. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PXOR instruction. -/// -/// \param __m1 -/// A 64-bit integer vector. -/// \param __m2 -/// A 64-bit integer vector. -/// \returns A 64-bit integer vector containing the bitwise exclusive OR of both -/// parameters. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_xor_si64(__m64 __m1, __m64 __m2) -{ - return __builtin_ia32_pxor((__v1di)__m1, (__v1di)__m2); -} - -/// Compares the 8-bit integer elements of two 64-bit integer vectors of -/// [8 x i8] to determine if the element of the first vector is equal to the -/// corresponding element of the second vector. -/// -/// The comparison yields 0 for false, 0xFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PCMPEQB instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [8 x i8]. -/// \param __m2 -/// A 64-bit integer vector of [8 x i8]. -/// \returns A 64-bit integer vector of [8 x i8] containing the comparison -/// results. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_cmpeq_pi8(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2); -} - -/// Compares the 16-bit integer elements of two 64-bit integer vectors of -/// [4 x i16] to determine if the element of the first vector is equal to the -/// corresponding element of the second vector. -/// -/// The comparison yields 0 for false, 0xFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PCMPEQW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. -/// \returns A 64-bit integer vector of [4 x i16] containing the comparison -/// results. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_cmpeq_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2); -} - -/// Compares the 32-bit integer elements of two 64-bit integer vectors of -/// [2 x i32] to determine if the element of the first vector is equal to the -/// corresponding element of the second vector. -/// -/// The comparison yields 0 for false, 0xFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PCMPEQD instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [2 x i32]. -/// \param __m2 -/// A 64-bit integer vector of [2 x i32]. -/// \returns A 64-bit integer vector of [2 x i32] containing the comparison -/// results. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_cmpeq_pi32(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2); -} - -/// Compares the 8-bit integer elements of two 64-bit integer vectors of -/// [8 x i8] to determine if the element of the first vector is greater than -/// the corresponding element of the second vector. -/// -/// The comparison yields 0 for false, 0xFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PCMPGTB instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [8 x i8]. -/// \param __m2 -/// A 64-bit integer vector of [8 x i8]. -/// \returns A 64-bit integer vector of [8 x i8] containing the comparison -/// results. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_cmpgt_pi8(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2); -} - -/// Compares the 16-bit integer elements of two 64-bit integer vectors of -/// [4 x i16] to determine if the element of the first vector is greater than -/// the corresponding element of the second vector. -/// -/// The comparison yields 0 for false, 0xFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PCMPGTW instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [4 x i16]. -/// \param __m2 -/// A 64-bit integer vector of [4 x i16]. -/// \returns A 64-bit integer vector of [4 x i16] containing the comparison -/// results. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_cmpgt_pi16(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2); -} - -/// Compares the 32-bit integer elements of two 64-bit integer vectors of -/// [2 x i32] to determine if the element of the first vector is greater than -/// the corresponding element of the second vector. -/// -/// The comparison yields 0 for false, 0xFFFFFFFF for true. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PCMPGTD instruction. -/// -/// \param __m1 -/// A 64-bit integer vector of [2 x i32]. -/// \param __m2 -/// A 64-bit integer vector of [2 x i32]. -/// \returns A 64-bit integer vector of [2 x i32] containing the comparison -/// results. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_cmpgt_pi32(__m64 __m1, __m64 __m2) -{ - return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2); -} - -/// Constructs a 64-bit integer vector initialized to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PXOR instruction. -/// -/// \returns An initialized 64-bit integer vector with all elements set to zero. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_setzero_si64(void) -{ - return __extension__ (__m64){ 0LL }; -} - -/// Constructs a 64-bit integer vector initialized with the specified -/// 32-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __i1 -/// A 32-bit integer value used to initialize the upper 32 bits of the -/// result. -/// \param __i0 -/// A 32-bit integer value used to initialize the lower 32 bits of the -/// result. -/// \returns An initialized 64-bit integer vector. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_set_pi32(int __i1, int __i0) -{ - return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1); -} - -/// Constructs a 64-bit integer vector initialized with the specified -/// 16-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __s3 -/// A 16-bit integer value used to initialize bits [63:48] of the result. -/// \param __s2 -/// A 16-bit integer value used to initialize bits [47:32] of the result. -/// \param __s1 -/// A 16-bit integer value used to initialize bits [31:16] of the result. -/// \param __s0 -/// A 16-bit integer value used to initialize bits [15:0] of the result. -/// \returns An initialized 64-bit integer vector. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_set_pi16(short __s3, short __s2, short __s1, short __s0) -{ - return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3); -} - -/// Constructs a 64-bit integer vector initialized with the specified -/// 8-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __b7 -/// An 8-bit integer value used to initialize bits [63:56] of the result. -/// \param __b6 -/// An 8-bit integer value used to initialize bits [55:48] of the result. -/// \param __b5 -/// An 8-bit integer value used to initialize bits [47:40] of the result. -/// \param __b4 -/// An 8-bit integer value used to initialize bits [39:32] of the result. -/// \param __b3 -/// An 8-bit integer value used to initialize bits [31:24] of the result. -/// \param __b2 -/// An 8-bit integer value used to initialize bits [23:16] of the result. -/// \param __b1 -/// An 8-bit integer value used to initialize bits [15:8] of the result. -/// \param __b0 -/// An 8-bit integer value used to initialize bits [7:0] of the result. -/// \returns An initialized 64-bit integer vector. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, - char __b1, char __b0) -{ - return (__m64)__builtin_ia32_vec_init_v8qi(__b0, __b1, __b2, __b3, - __b4, __b5, __b6, __b7); -} - -/// Constructs a 64-bit integer vector of [2 x i32], with each of the -/// 32-bit integer vector elements set to the specified 32-bit integer -/// value. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __i -/// A 32-bit integer value used to initialize each vector element of the -/// result. -/// \returns An initialized 64-bit integer vector of [2 x i32]. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_set1_pi32(int __i) -{ - return _mm_set_pi32(__i, __i); -} - -/// Constructs a 64-bit integer vector of [4 x i16], with each of the -/// 16-bit integer vector elements set to the specified 16-bit integer -/// value. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __w -/// A 16-bit integer value used to initialize each vector element of the -/// result. -/// \returns An initialized 64-bit integer vector of [4 x i16]. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_set1_pi16(short __w) -{ - return _mm_set_pi16(__w, __w, __w, __w); -} - -/// Constructs a 64-bit integer vector of [8 x i8], with each of the -/// 8-bit integer vector elements set to the specified 8-bit integer value. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __b -/// An 8-bit integer value used to initialize each vector element of the -/// result. -/// \returns An initialized 64-bit integer vector of [8 x i8]. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_set1_pi8(char __b) -{ - return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b); -} - -/// Constructs a 64-bit integer vector, initialized in reverse order with -/// the specified 32-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __i0 -/// A 32-bit integer value used to initialize the lower 32 bits of the -/// result. -/// \param __i1 -/// A 32-bit integer value used to initialize the upper 32 bits of the -/// result. -/// \returns An initialized 64-bit integer vector. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_setr_pi32(int __i0, int __i1) -{ - return _mm_set_pi32(__i1, __i0); -} - -/// Constructs a 64-bit integer vector, initialized in reverse order with -/// the specified 16-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __w0 -/// A 16-bit integer value used to initialize bits [15:0] of the result. -/// \param __w1 -/// A 16-bit integer value used to initialize bits [31:16] of the result. -/// \param __w2 -/// A 16-bit integer value used to initialize bits [47:32] of the result. -/// \param __w3 -/// A 16-bit integer value used to initialize bits [63:48] of the result. -/// \returns An initialized 64-bit integer vector. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_setr_pi16(short __w0, short __w1, short __w2, short __w3) -{ - return _mm_set_pi16(__w3, __w2, __w1, __w0); -} - -/// Constructs a 64-bit integer vector, initialized in reverse order with -/// the specified 8-bit integer values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __b0 -/// An 8-bit integer value used to initialize bits [7:0] of the result. -/// \param __b1 -/// An 8-bit integer value used to initialize bits [15:8] of the result. -/// \param __b2 -/// An 8-bit integer value used to initialize bits [23:16] of the result. -/// \param __b3 -/// An 8-bit integer value used to initialize bits [31:24] of the result. -/// \param __b4 -/// An 8-bit integer value used to initialize bits [39:32] of the result. -/// \param __b5 -/// An 8-bit integer value used to initialize bits [47:40] of the result. -/// \param __b6 -/// An 8-bit integer value used to initialize bits [55:48] of the result. -/// \param __b7 -/// An 8-bit integer value used to initialize bits [63:56] of the result. -/// \returns An initialized 64-bit integer vector. -static __inline__ __m64 __DEFAULT_FN_ATTRS -_mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, - char __b6, char __b7) -{ - return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0); -} - -#undef __DEFAULT_FN_ATTRS - -/* Aliases for compatibility. */ -#define _m_empty _mm_empty -#define _m_from_int _mm_cvtsi32_si64 -#define _m_from_int64 _mm_cvtsi64_m64 -#define _m_to_int _mm_cvtsi64_si32 -#define _m_to_int64 _mm_cvtm64_si64 -#define _m_packsswb _mm_packs_pi16 -#define _m_packssdw _mm_packs_pi32 -#define _m_packuswb _mm_packs_pu16 -#define _m_punpckhbw _mm_unpackhi_pi8 -#define _m_punpckhwd _mm_unpackhi_pi16 -#define _m_punpckhdq _mm_unpackhi_pi32 -#define _m_punpcklbw _mm_unpacklo_pi8 -#define _m_punpcklwd _mm_unpacklo_pi16 -#define _m_punpckldq _mm_unpacklo_pi32 -#define _m_paddb _mm_add_pi8 -#define _m_paddw _mm_add_pi16 -#define _m_paddd _mm_add_pi32 -#define _m_paddsb _mm_adds_pi8 -#define _m_paddsw _mm_adds_pi16 -#define _m_paddusb _mm_adds_pu8 -#define _m_paddusw _mm_adds_pu16 -#define _m_psubb _mm_sub_pi8 -#define _m_psubw _mm_sub_pi16 -#define _m_psubd _mm_sub_pi32 -#define _m_psubsb _mm_subs_pi8 -#define _m_psubsw _mm_subs_pi16 -#define _m_psubusb _mm_subs_pu8 -#define _m_psubusw _mm_subs_pu16 -#define _m_pmaddwd _mm_madd_pi16 -#define _m_pmulhw _mm_mulhi_pi16 -#define _m_pmullw _mm_mullo_pi16 -#define _m_psllw _mm_sll_pi16 -#define _m_psllwi _mm_slli_pi16 -#define _m_pslld _mm_sll_pi32 -#define _m_pslldi _mm_slli_pi32 -#define _m_psllq _mm_sll_si64 -#define _m_psllqi _mm_slli_si64 -#define _m_psraw _mm_sra_pi16 -#define _m_psrawi _mm_srai_pi16 -#define _m_psrad _mm_sra_pi32 -#define _m_psradi _mm_srai_pi32 -#define _m_psrlw _mm_srl_pi16 -#define _m_psrlwi _mm_srli_pi16 -#define _m_psrld _mm_srl_pi32 -#define _m_psrldi _mm_srli_pi32 -#define _m_psrlq _mm_srl_si64 -#define _m_psrlqi _mm_srli_si64 -#define _m_pand _mm_and_si64 -#define _m_pandn _mm_andnot_si64 -#define _m_por _mm_or_si64 -#define _m_pxor _mm_xor_si64 -#define _m_pcmpeqb _mm_cmpeq_pi8 -#define _m_pcmpeqw _mm_cmpeq_pi16 -#define _m_pcmpeqd _mm_cmpeq_pi32 -#define _m_pcmpgtb _mm_cmpgt_pi8 -#define _m_pcmpgtw _mm_cmpgt_pi16 -#define _m_pcmpgtd _mm_cmpgt_pi32 - -#endif /* __MMINTRIN_H */ - diff --git a/bin/app/data/cxx/include/module.modulemap b/bin/app/data/cxx/include/module.modulemap deleted file mode 100644 index 7954a77a..00000000 --- a/bin/app/data/cxx/include/module.modulemap +++ /dev/null @@ -1,158 +0,0 @@ -/*===---- module.modulemap - intrinsics module map -------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -module _Builtin_intrinsics [system] [extern_c] { - explicit module altivec { - requires altivec - header "altivec.h" - } - - explicit module arm { - requires arm - - explicit module acle { - header "arm_acle.h" - export * - } - - explicit module neon { - requires neon - header "arm_neon.h" - header "arm_fp16.h" - export * - } - } - - explicit module intel { - requires x86 - export * - - header "immintrin.h" - textual header "f16cintrin.h" - textual header "avxintrin.h" - textual header "avx2intrin.h" - textual header "avx512fintrin.h" - textual header "avx512erintrin.h" - textual header "fmaintrin.h" - - header "x86intrin.h" - textual header "bmiintrin.h" - textual header "bmi2intrin.h" - textual header "lzcntintrin.h" - textual header "xopintrin.h" - textual header "fma4intrin.h" - textual header "mwaitxintrin.h" - textual header "clzerointrin.h" - textual header "wbnoinvdintrin.h" - textual header "cldemoteintrin.h" - textual header "waitpkgintrin.h" - textual header "movdirintrin.h" - textual header "pconfigintrin.h" - textual header "sgxintrin.h" - textual header "ptwriteintrin.h" - textual header "invpcidintrin.h" - - textual header "__wmmintrin_aes.h" - textual header "__wmmintrin_pclmul.h" - - explicit module mm_malloc { - requires !freestanding - header "mm_malloc.h" - export * // note: for dependency - } - - explicit module cpuid { - requires gnuinlineasm - header "cpuid.h" - } - - explicit module mmx { - header "mmintrin.h" - } - - explicit module sse { - export mm_malloc - export mmx - export sse2 // note: for hackish dependency - header "xmmintrin.h" - } - - explicit module sse2 { - export sse - header "emmintrin.h" - } - - explicit module sse3 { - export sse2 - header "pmmintrin.h" - } - - explicit module ssse3 { - export sse3 - header "tmmintrin.h" - } - - explicit module sse4_1 { - export ssse3 - header "smmintrin.h" - } - - explicit module sse4_2 { - export sse4_1 - header "nmmintrin.h" - } - - explicit module sse4a { - export sse3 - header "ammintrin.h" - } - - explicit module popcnt { - header "popcntintrin.h" - } - - explicit module mm3dnow { - header "mm3dnow.h" - } - - explicit module aes_pclmul { - header "wmmintrin.h" - export aes - export pclmul - } - } - - explicit module systemz { - requires systemz - export * - - header "s390intrin.h" - - explicit module htm { - requires htm - header "htmintrin.h" - header "htmxlintrin.h" - } - - explicit module zvector { - requires zvector, vx - header "vecintrin.h" - } - } -} - -module _Builtin_stddef_max_align_t [system] [extern_c] { - header "__stddef_max_align_t.h" -} - -module opencl_c { - requires opencl - header "opencl-c.h" - header "opencl-c-base.h" -} diff --git a/bin/app/data/cxx/include/movdirintrin.h b/bin/app/data/cxx/include/movdirintrin.h deleted file mode 100644 index 30c4d02c..00000000 --- a/bin/app/data/cxx/include/movdirintrin.h +++ /dev/null @@ -1,49 +0,0 @@ -/*===------------------------- movdirintrin.h ------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef _MOVDIRINTRIN_H -#define _MOVDIRINTRIN_H - -/* Move doubleword as direct store */ -static __inline__ void -__attribute__((__always_inline__, __nodebug__, __target__("movdiri"))) -_directstoreu_u32 (void *__dst, unsigned int __value) -{ - __builtin_ia32_directstore_u32((unsigned int *)__dst, (unsigned int)__value); -} - -#ifdef __x86_64__ - -/* Move quadword as direct store */ -static __inline__ void -__attribute__((__always_inline__, __nodebug__, __target__("movdiri"))) -_directstoreu_u64 (void *__dst, unsigned long __value) -{ - __builtin_ia32_directstore_u64((unsigned long *)__dst, __value); -} - -#endif /* __x86_64__ */ - -/* - * movdir64b - Move 64 bytes as direct store. - * The destination must be 64 byte aligned, and the store is atomic. - * The source address has no alignment requirement, and the load from - * the source address is not atomic. - */ -static __inline__ void -__attribute__((__always_inline__, __nodebug__, __target__("movdir64b"))) -_movdir64b (void *__dst __attribute__((align_value(64))), const void *__src) -{ - __builtin_ia32_movdir64b(__dst, __src); -} - -#endif /* _MOVDIRINTRIN_H */ diff --git a/bin/app/data/cxx/include/msa.h b/bin/app/data/cxx/include/msa.h deleted file mode 100644 index 19ea6071..00000000 --- a/bin/app/data/cxx/include/msa.h +++ /dev/null @@ -1,569 +0,0 @@ -/*===---- msa.h - MIPS MSA intrinsics --------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef _MSA_H -#define _MSA_H 1 - -#if defined(__mips_msa) -typedef signed char v16i8 __attribute__((vector_size(16), aligned(16))); -typedef signed char v16i8_b __attribute__((vector_size(16), aligned(1))); -typedef unsigned char v16u8 __attribute__((vector_size(16), aligned(16))); -typedef unsigned char v16u8_b __attribute__((vector_size(16), aligned(1))); -typedef short v8i16 __attribute__((vector_size(16), aligned(16))); -typedef short v8i16_h __attribute__((vector_size(16), aligned(2))); -typedef unsigned short v8u16 __attribute__((vector_size(16), aligned(16))); -typedef unsigned short v8u16_h __attribute__((vector_size(16), aligned(2))); -typedef int v4i32 __attribute__((vector_size(16), aligned(16))); -typedef int v4i32_w __attribute__((vector_size(16), aligned(4))); -typedef unsigned int v4u32 __attribute__((vector_size(16), aligned(16))); -typedef unsigned int v4u32_w __attribute__((vector_size(16), aligned(4))); -typedef long long v2i64 __attribute__((vector_size(16), aligned(16))); -typedef long long v2i64_d __attribute__((vector_size(16), aligned(8))); -typedef unsigned long long v2u64 __attribute__((vector_size(16), aligned(16))); -typedef unsigned long long v2u64_d __attribute__((vector_size(16), aligned(8))); -typedef float v4f32 __attribute__((vector_size(16), aligned(16))); -typedef float v4f32_w __attribute__((vector_size(16), aligned(4))); -typedef double v2f64 __attribute__ ((vector_size(16), aligned(16))); -typedef double v2f64_d __attribute__ ((vector_size(16), aligned(8))); - -#define __msa_sll_b __builtin_msa_sll_b -#define __msa_sll_h __builtin_msa_sll_h -#define __msa_sll_w __builtin_msa_sll_w -#define __msa_sll_d __builtin_msa_sll_d -#define __msa_slli_b __builtin_msa_slli_b -#define __msa_slli_h __builtin_msa_slli_h -#define __msa_slli_w __builtin_msa_slli_w -#define __msa_slli_d __builtin_msa_slli_d -#define __msa_sra_b __builtin_msa_sra_b -#define __msa_sra_h __builtin_msa_sra_h -#define __msa_sra_w __builtin_msa_sra_w -#define __msa_sra_d __builtin_msa_sra_d -#define __msa_srai_b __builtin_msa_srai_b -#define __msa_srai_h __builtin_msa_srai_h -#define __msa_srai_w __builtin_msa_srai_w -#define __msa_srai_d __builtin_msa_srai_d -#define __msa_srar_b __builtin_msa_srar_b -#define __msa_srar_h __builtin_msa_srar_h -#define __msa_srar_w __builtin_msa_srar_w -#define __msa_srar_d __builtin_msa_srar_d -#define __msa_srari_b __builtin_msa_srari_b -#define __msa_srari_h __builtin_msa_srari_h -#define __msa_srari_w __builtin_msa_srari_w -#define __msa_srari_d __builtin_msa_srari_d -#define __msa_srl_b __builtin_msa_srl_b -#define __msa_srl_h __builtin_msa_srl_h -#define __msa_srl_w __builtin_msa_srl_w -#define __msa_srl_d __builtin_msa_srl_d -#define __msa_srli_b __builtin_msa_srli_b -#define __msa_srli_h __builtin_msa_srli_h -#define __msa_srli_w __builtin_msa_srli_w -#define __msa_srli_d __builtin_msa_srli_d -#define __msa_srlr_b __builtin_msa_srlr_b -#define __msa_srlr_h __builtin_msa_srlr_h -#define __msa_srlr_w __builtin_msa_srlr_w -#define __msa_srlr_d __builtin_msa_srlr_d -#define __msa_srlri_b __builtin_msa_srlri_b -#define __msa_srlri_h __builtin_msa_srlri_h -#define __msa_srlri_w __builtin_msa_srlri_w -#define __msa_srlri_d __builtin_msa_srlri_d -#define __msa_bclr_b __builtin_msa_bclr_b -#define __msa_bclr_h __builtin_msa_bclr_h -#define __msa_bclr_w __builtin_msa_bclr_w -#define __msa_bclr_d __builtin_msa_bclr_d -#define __msa_bclri_b __builtin_msa_bclri_b -#define __msa_bclri_h __builtin_msa_bclri_h -#define __msa_bclri_w __builtin_msa_bclri_w -#define __msa_bclri_d __builtin_msa_bclri_d -#define __msa_bset_b __builtin_msa_bset_b -#define __msa_bset_h __builtin_msa_bset_h -#define __msa_bset_w __builtin_msa_bset_w -#define __msa_bset_d __builtin_msa_bset_d -#define __msa_bseti_b __builtin_msa_bseti_b -#define __msa_bseti_h __builtin_msa_bseti_h -#define __msa_bseti_w __builtin_msa_bseti_w -#define __msa_bseti_d __builtin_msa_bseti_d -#define __msa_bneg_b __builtin_msa_bneg_b -#define __msa_bneg_h __builtin_msa_bneg_h -#define __msa_bneg_w __builtin_msa_bneg_w -#define __msa_bneg_d __builtin_msa_bneg_d -#define __msa_bnegi_b __builtin_msa_bnegi_b -#define __msa_bnegi_h __builtin_msa_bnegi_h -#define __msa_bnegi_w __builtin_msa_bnegi_w -#define __msa_bnegi_d __builtin_msa_bnegi_d -#define __msa_binsl_b __builtin_msa_binsl_b -#define __msa_binsl_h __builtin_msa_binsl_h -#define __msa_binsl_w __builtin_msa_binsl_w -#define __msa_binsl_d __builtin_msa_binsl_d -#define __msa_binsli_b __builtin_msa_binsli_b -#define __msa_binsli_h __builtin_msa_binsli_h -#define __msa_binsli_w __builtin_msa_binsli_w -#define __msa_binsli_d __builtin_msa_binsli_d -#define __msa_binsr_b __builtin_msa_binsr_b -#define __msa_binsr_h __builtin_msa_binsr_h -#define __msa_binsr_w __builtin_msa_binsr_w -#define __msa_binsr_d __builtin_msa_binsr_d -#define __msa_binsri_b __builtin_msa_binsri_b -#define __msa_binsri_h __builtin_msa_binsri_h -#define __msa_binsri_w __builtin_msa_binsri_w -#define __msa_binsri_d __builtin_msa_binsri_d -#define __msa_addv_b __builtin_msa_addv_b -#define __msa_addv_h __builtin_msa_addv_h -#define __msa_addv_w __builtin_msa_addv_w -#define __msa_addv_d __builtin_msa_addv_d -#define __msa_addvi_b __builtin_msa_addvi_b -#define __msa_addvi_h __builtin_msa_addvi_h -#define __msa_addvi_w __builtin_msa_addvi_w -#define __msa_addvi_d __builtin_msa_addvi_d -#define __msa_subv_b __builtin_msa_subv_b -#define __msa_subv_h __builtin_msa_subv_h -#define __msa_subv_w __builtin_msa_subv_w -#define __msa_subv_d __builtin_msa_subv_d -#define __msa_subvi_b __builtin_msa_subvi_b -#define __msa_subvi_h __builtin_msa_subvi_h -#define __msa_subvi_w __builtin_msa_subvi_w -#define __msa_subvi_d __builtin_msa_subvi_d -#define __msa_max_s_b __builtin_msa_max_s_b -#define __msa_max_s_h __builtin_msa_max_s_h -#define __msa_max_s_w __builtin_msa_max_s_w -#define __msa_max_s_d __builtin_msa_max_s_d -#define __msa_maxi_s_b __builtin_msa_maxi_s_b -#define __msa_maxi_s_h __builtin_msa_maxi_s_h -#define __msa_maxi_s_w __builtin_msa_maxi_s_w -#define __msa_maxi_s_d __builtin_msa_maxi_s_d -#define __msa_max_u_b __builtin_msa_max_u_b -#define __msa_max_u_h __builtin_msa_max_u_h -#define __msa_max_u_w __builtin_msa_max_u_w -#define __msa_max_u_d __builtin_msa_max_u_d -#define __msa_maxi_u_b __builtin_msa_maxi_u_b -#define __msa_maxi_u_h __builtin_msa_maxi_u_h -#define __msa_maxi_u_w __builtin_msa_maxi_u_w -#define __msa_maxi_u_d __builtin_msa_maxi_u_d -#define __msa_min_s_b __builtin_msa_min_s_b -#define __msa_min_s_h __builtin_msa_min_s_h -#define __msa_min_s_w __builtin_msa_min_s_w -#define __msa_min_s_d __builtin_msa_min_s_d -#define __msa_mini_s_b __builtin_msa_mini_s_b -#define __msa_mini_s_h __builtin_msa_mini_s_h -#define __msa_mini_s_w __builtin_msa_mini_s_w -#define __msa_mini_s_d __builtin_msa_mini_s_d -#define __msa_min_u_b __builtin_msa_min_u_b -#define __msa_min_u_h __builtin_msa_min_u_h -#define __msa_min_u_w __builtin_msa_min_u_w -#define __msa_min_u_d __builtin_msa_min_u_d -#define __msa_mini_u_b __builtin_msa_mini_u_b -#define __msa_mini_u_h __builtin_msa_mini_u_h -#define __msa_mini_u_w __builtin_msa_mini_u_w -#define __msa_mini_u_d __builtin_msa_mini_u_d -#define __msa_max_a_b __builtin_msa_max_a_b -#define __msa_max_a_h __builtin_msa_max_a_h -#define __msa_max_a_w __builtin_msa_max_a_w -#define __msa_max_a_d __builtin_msa_max_a_d -#define __msa_min_a_b __builtin_msa_min_a_b -#define __msa_min_a_h __builtin_msa_min_a_h -#define __msa_min_a_w __builtin_msa_min_a_w -#define __msa_min_a_d __builtin_msa_min_a_d -#define __msa_ceq_b __builtin_msa_ceq_b -#define __msa_ceq_h __builtin_msa_ceq_h -#define __msa_ceq_w __builtin_msa_ceq_w -#define __msa_ceq_d __builtin_msa_ceq_d -#define __msa_ceqi_b __builtin_msa_ceqi_b -#define __msa_ceqi_h __builtin_msa_ceqi_h -#define __msa_ceqi_w __builtin_msa_ceqi_w -#define __msa_ceqi_d __builtin_msa_ceqi_d -#define __msa_clt_s_b __builtin_msa_clt_s_b -#define __msa_clt_s_h __builtin_msa_clt_s_h -#define __msa_clt_s_w __builtin_msa_clt_s_w -#define __msa_clt_s_d __builtin_msa_clt_s_d -#define __msa_clti_s_b __builtin_msa_clti_s_b -#define __msa_clti_s_h __builtin_msa_clti_s_h -#define __msa_clti_s_w __builtin_msa_clti_s_w -#define __msa_clti_s_d __builtin_msa_clti_s_d -#define __msa_clt_u_b __builtin_msa_clt_u_b -#define __msa_clt_u_h __builtin_msa_clt_u_h -#define __msa_clt_u_w __builtin_msa_clt_u_w -#define __msa_clt_u_d __builtin_msa_clt_u_d -#define __msa_clti_u_b __builtin_msa_clti_u_b -#define __msa_clti_u_h __builtin_msa_clti_u_h -#define __msa_clti_u_w __builtin_msa_clti_u_w -#define __msa_clti_u_d __builtin_msa_clti_u_d -#define __msa_cle_s_b __builtin_msa_cle_s_b -#define __msa_cle_s_h __builtin_msa_cle_s_h -#define __msa_cle_s_w __builtin_msa_cle_s_w -#define __msa_cle_s_d __builtin_msa_cle_s_d -#define __msa_clei_s_b __builtin_msa_clei_s_b -#define __msa_clei_s_h __builtin_msa_clei_s_h -#define __msa_clei_s_w __builtin_msa_clei_s_w -#define __msa_clei_s_d __builtin_msa_clei_s_d -#define __msa_cle_u_b __builtin_msa_cle_u_b -#define __msa_cle_u_h __builtin_msa_cle_u_h -#define __msa_cle_u_w __builtin_msa_cle_u_w -#define __msa_cle_u_d __builtin_msa_cle_u_d -#define __msa_clei_u_b __builtin_msa_clei_u_b -#define __msa_clei_u_h __builtin_msa_clei_u_h -#define __msa_clei_u_w __builtin_msa_clei_u_w -#define __msa_clei_u_d __builtin_msa_clei_u_d -#define __msa_ld_b __builtin_msa_ld_b -#define __msa_ld_h __builtin_msa_ld_h -#define __msa_ld_w __builtin_msa_ld_w -#define __msa_ld_d __builtin_msa_ld_d -#define __msa_st_b __builtin_msa_st_b -#define __msa_st_h __builtin_msa_st_h -#define __msa_st_w __builtin_msa_st_w -#define __msa_st_d __builtin_msa_st_d -#define __msa_sat_s_b __builtin_msa_sat_s_b -#define __msa_sat_s_h __builtin_msa_sat_s_h -#define __msa_sat_s_w __builtin_msa_sat_s_w -#define __msa_sat_s_d __builtin_msa_sat_s_d -#define __msa_sat_u_b __builtin_msa_sat_u_b -#define __msa_sat_u_h __builtin_msa_sat_u_h -#define __msa_sat_u_w __builtin_msa_sat_u_w -#define __msa_sat_u_d __builtin_msa_sat_u_d -#define __msa_add_a_b __builtin_msa_add_a_b -#define __msa_add_a_h __builtin_msa_add_a_h -#define __msa_add_a_w __builtin_msa_add_a_w -#define __msa_add_a_d __builtin_msa_add_a_d -#define __msa_adds_a_b __builtin_msa_adds_a_b -#define __msa_adds_a_h __builtin_msa_adds_a_h -#define __msa_adds_a_w __builtin_msa_adds_a_w -#define __msa_adds_a_d __builtin_msa_adds_a_d -#define __msa_adds_s_b __builtin_msa_adds_s_b -#define __msa_adds_s_h __builtin_msa_adds_s_h -#define __msa_adds_s_w __builtin_msa_adds_s_w -#define __msa_adds_s_d __builtin_msa_adds_s_d -#define __msa_adds_u_b __builtin_msa_adds_u_b -#define __msa_adds_u_h __builtin_msa_adds_u_h -#define __msa_adds_u_w __builtin_msa_adds_u_w -#define __msa_adds_u_d __builtin_msa_adds_u_d -#define __msa_ave_s_b __builtin_msa_ave_s_b -#define __msa_ave_s_h __builtin_msa_ave_s_h -#define __msa_ave_s_w __builtin_msa_ave_s_w -#define __msa_ave_s_d __builtin_msa_ave_s_d -#define __msa_ave_u_b __builtin_msa_ave_u_b -#define __msa_ave_u_h __builtin_msa_ave_u_h -#define __msa_ave_u_w __builtin_msa_ave_u_w -#define __msa_ave_u_d __builtin_msa_ave_u_d -#define __msa_aver_s_b __builtin_msa_aver_s_b -#define __msa_aver_s_h __builtin_msa_aver_s_h -#define __msa_aver_s_w __builtin_msa_aver_s_w -#define __msa_aver_s_d __builtin_msa_aver_s_d -#define __msa_aver_u_b __builtin_msa_aver_u_b -#define __msa_aver_u_h __builtin_msa_aver_u_h -#define __msa_aver_u_w __builtin_msa_aver_u_w -#define __msa_aver_u_d __builtin_msa_aver_u_d -#define __msa_subs_s_b __builtin_msa_subs_s_b -#define __msa_subs_s_h __builtin_msa_subs_s_h -#define __msa_subs_s_w __builtin_msa_subs_s_w -#define __msa_subs_s_d __builtin_msa_subs_s_d -#define __msa_subs_u_b __builtin_msa_subs_u_b -#define __msa_subs_u_h __builtin_msa_subs_u_h -#define __msa_subs_u_w __builtin_msa_subs_u_w -#define __msa_subs_u_d __builtin_msa_subs_u_d -#define __msa_subsuu_s_b __builtin_msa_subsuu_s_b -#define __msa_subsuu_s_h __builtin_msa_subsuu_s_h -#define __msa_subsuu_s_w __builtin_msa_subsuu_s_w -#define __msa_subsuu_s_d __builtin_msa_subsuu_s_d -#define __msa_subsus_u_b __builtin_msa_subsus_u_b -#define __msa_subsus_u_h __builtin_msa_subsus_u_h -#define __msa_subsus_u_w __builtin_msa_subsus_u_w -#define __msa_subsus_u_d __builtin_msa_subsus_u_d -#define __msa_asub_s_b __builtin_msa_asub_s_b -#define __msa_asub_s_h __builtin_msa_asub_s_h -#define __msa_asub_s_w __builtin_msa_asub_s_w -#define __msa_asub_s_d __builtin_msa_asub_s_d -#define __msa_asub_u_b __builtin_msa_asub_u_b -#define __msa_asub_u_h __builtin_msa_asub_u_h -#define __msa_asub_u_w __builtin_msa_asub_u_w -#define __msa_asub_u_d __builtin_msa_asub_u_d -#define __msa_mulv_b __builtin_msa_mulv_b -#define __msa_mulv_h __builtin_msa_mulv_h -#define __msa_mulv_w __builtin_msa_mulv_w -#define __msa_mulv_d __builtin_msa_mulv_d -#define __msa_maddv_b __builtin_msa_maddv_b -#define __msa_maddv_h __builtin_msa_maddv_h -#define __msa_maddv_w __builtin_msa_maddv_w -#define __msa_maddv_d __builtin_msa_maddv_d -#define __msa_msubv_b __builtin_msa_msubv_b -#define __msa_msubv_h __builtin_msa_msubv_h -#define __msa_msubv_w __builtin_msa_msubv_w -#define __msa_msubv_d __builtin_msa_msubv_d -#define __msa_div_s_b __builtin_msa_div_s_b -#define __msa_div_s_h __builtin_msa_div_s_h -#define __msa_div_s_w __builtin_msa_div_s_w -#define __msa_div_s_d __builtin_msa_div_s_d -#define __msa_div_u_b __builtin_msa_div_u_b -#define __msa_div_u_h __builtin_msa_div_u_h -#define __msa_div_u_w __builtin_msa_div_u_w -#define __msa_div_u_d __builtin_msa_div_u_d -#define __msa_hadd_s_h __builtin_msa_hadd_s_h -#define __msa_hadd_s_w __builtin_msa_hadd_s_w -#define __msa_hadd_s_d __builtin_msa_hadd_s_d -#define __msa_hadd_u_h __builtin_msa_hadd_u_h -#define __msa_hadd_u_w __builtin_msa_hadd_u_w -#define __msa_hadd_u_d __builtin_msa_hadd_u_d -#define __msa_hsub_s_h __builtin_msa_hsub_s_h -#define __msa_hsub_s_w __builtin_msa_hsub_s_w -#define __msa_hsub_s_d __builtin_msa_hsub_s_d -#define __msa_hsub_u_h __builtin_msa_hsub_u_h -#define __msa_hsub_u_w __builtin_msa_hsub_u_w -#define __msa_hsub_u_d __builtin_msa_hsub_u_d -#define __msa_mod_s_b __builtin_msa_mod_s_b -#define __msa_mod_s_h __builtin_msa_mod_s_h -#define __msa_mod_s_w __builtin_msa_mod_s_w -#define __msa_mod_s_d __builtin_msa_mod_s_d -#define __msa_mod_u_b __builtin_msa_mod_u_b -#define __msa_mod_u_h __builtin_msa_mod_u_h -#define __msa_mod_u_w __builtin_msa_mod_u_w -#define __msa_mod_u_d __builtin_msa_mod_u_d -#define __msa_dotp_s_h __builtin_msa_dotp_s_h -#define __msa_dotp_s_w __builtin_msa_dotp_s_w -#define __msa_dotp_s_d __builtin_msa_dotp_s_d -#define __msa_dotp_u_h __builtin_msa_dotp_u_h -#define __msa_dotp_u_w __builtin_msa_dotp_u_w -#define __msa_dotp_u_d __builtin_msa_dotp_u_d -#define __msa_dpadd_s_h __builtin_msa_dpadd_s_h -#define __msa_dpadd_s_w __builtin_msa_dpadd_s_w -#define __msa_dpadd_s_d __builtin_msa_dpadd_s_d -#define __msa_dpadd_u_h __builtin_msa_dpadd_u_h -#define __msa_dpadd_u_w __builtin_msa_dpadd_u_w -#define __msa_dpadd_u_d __builtin_msa_dpadd_u_d -#define __msa_dpsub_s_h __builtin_msa_dpsub_s_h -#define __msa_dpsub_s_w __builtin_msa_dpsub_s_w -#define __msa_dpsub_s_d __builtin_msa_dpsub_s_d -#define __msa_dpsub_u_h __builtin_msa_dpsub_u_h -#define __msa_dpsub_u_w __builtin_msa_dpsub_u_w -#define __msa_dpsub_u_d __builtin_msa_dpsub_u_d -#define __msa_sld_b __builtin_msa_sld_b -#define __msa_sld_h __builtin_msa_sld_h -#define __msa_sld_w __builtin_msa_sld_w -#define __msa_sld_d __builtin_msa_sld_d -#define __msa_sldi_b __builtin_msa_sldi_b -#define __msa_sldi_h __builtin_msa_sldi_h -#define __msa_sldi_w __builtin_msa_sldi_w -#define __msa_sldi_d __builtin_msa_sldi_d -#define __msa_splat_b __builtin_msa_splat_b -#define __msa_splat_h __builtin_msa_splat_h -#define __msa_splat_w __builtin_msa_splat_w -#define __msa_splat_d __builtin_msa_splat_d -#define __msa_splati_b __builtin_msa_splati_b -#define __msa_splati_h __builtin_msa_splati_h -#define __msa_splati_w __builtin_msa_splati_w -#define __msa_splati_d __builtin_msa_splati_d -#define __msa_pckev_b __builtin_msa_pckev_b -#define __msa_pckev_h __builtin_msa_pckev_h -#define __msa_pckev_w __builtin_msa_pckev_w -#define __msa_pckev_d __builtin_msa_pckev_d -#define __msa_pckod_b __builtin_msa_pckod_b -#define __msa_pckod_h __builtin_msa_pckod_h -#define __msa_pckod_w __builtin_msa_pckod_w -#define __msa_pckod_d __builtin_msa_pckod_d -#define __msa_ilvl_b __builtin_msa_ilvl_b -#define __msa_ilvl_h __builtin_msa_ilvl_h -#define __msa_ilvl_w __builtin_msa_ilvl_w -#define __msa_ilvl_d __builtin_msa_ilvl_d -#define __msa_ilvr_b __builtin_msa_ilvr_b -#define __msa_ilvr_h __builtin_msa_ilvr_h -#define __msa_ilvr_w __builtin_msa_ilvr_w -#define __msa_ilvr_d __builtin_msa_ilvr_d -#define __msa_ilvev_b __builtin_msa_ilvev_b -#define __msa_ilvev_h __builtin_msa_ilvev_h -#define __msa_ilvev_w __builtin_msa_ilvev_w -#define __msa_ilvev_d __builtin_msa_ilvev_d -#define __msa_ilvod_b __builtin_msa_ilvod_b -#define __msa_ilvod_h __builtin_msa_ilvod_h -#define __msa_ilvod_w __builtin_msa_ilvod_w -#define __msa_ilvod_d __builtin_msa_ilvod_d -#define __msa_vshf_b __builtin_msa_vshf_b -#define __msa_vshf_h __builtin_msa_vshf_h -#define __msa_vshf_w __builtin_msa_vshf_w -#define __msa_vshf_d __builtin_msa_vshf_d -#define __msa_and_v __builtin_msa_and_v -#define __msa_andi_b __builtin_msa_andi_b -#define __msa_or_v __builtin_msa_or_v -#define __msa_ori_b __builtin_msa_ori_b -#define __msa_nor_v __builtin_msa_nor_v -#define __msa_nori_b __builtin_msa_nori_b -#define __msa_xor_v __builtin_msa_xor_v -#define __msa_xori_b __builtin_msa_xori_b -#define __msa_bmnz_v __builtin_msa_bmnz_v -#define __msa_bmnzi_b __builtin_msa_bmnzi_b -#define __msa_bmz_v __builtin_msa_bmz_v -#define __msa_bmzi_b __builtin_msa_bmzi_b -#define __msa_bsel_v __builtin_msa_bsel_v -#define __msa_bseli_b __builtin_msa_bseli_b -#define __msa_shf_b __builtin_msa_shf_b -#define __msa_shf_h __builtin_msa_shf_h -#define __msa_shf_w __builtin_msa_shf_w -#define __msa_test_bnz_v __builtin_msa_bnz_v -#define __msa_test_bz_v __builtin_msa_bz_v -#define __msa_fill_b __builtin_msa_fill_b -#define __msa_fill_h __builtin_msa_fill_h -#define __msa_fill_w __builtin_msa_fill_w -#define __msa_fill_d __builtin_msa_fill_d -#define __msa_pcnt_b __builtin_msa_pcnt_b -#define __msa_pcnt_h __builtin_msa_pcnt_h -#define __msa_pcnt_w __builtin_msa_pcnt_w -#define __msa_pcnt_d __builtin_msa_pcnt_d -#define __msa_nloc_b __builtin_msa_nloc_b -#define __msa_nloc_h __builtin_msa_nloc_h -#define __msa_nloc_w __builtin_msa_nloc_w -#define __msa_nloc_d __builtin_msa_nloc_d -#define __msa_nlzc_b __builtin_msa_nlzc_b -#define __msa_nlzc_h __builtin_msa_nlzc_h -#define __msa_nlzc_w __builtin_msa_nlzc_w -#define __msa_nlzc_d __builtin_msa_nlzc_d -#define __msa_copy_s_b __builtin_msa_copy_s_b -#define __msa_copy_s_h __builtin_msa_copy_s_h -#define __msa_copy_s_w __builtin_msa_copy_s_w -#define __msa_copy_s_d __builtin_msa_copy_s_d -#define __msa_copy_u_b __builtin_msa_copy_u_b -#define __msa_copy_u_h __builtin_msa_copy_u_h -#define __msa_copy_u_w __builtin_msa_copy_u_w -#define __msa_copy_u_d __builtin_msa_copy_u_d -#define __msa_insert_b __builtin_msa_insert_b -#define __msa_insert_h __builtin_msa_insert_h -#define __msa_insert_w __builtin_msa_insert_w -#define __msa_insert_d __builtin_msa_insert_d -#define __msa_insve_b __builtin_msa_insve_b -#define __msa_insve_h __builtin_msa_insve_h -#define __msa_insve_w __builtin_msa_insve_w -#define __msa_insve_d __builtin_msa_insve_d -#define __msa_test_bnz_b __builtin_msa_bnz_b -#define __msa_test_bnz_h __builtin_msa_bnz_h -#define __msa_test_bnz_w __builtin_msa_bnz_w -#define __msa_test_bnz_d __builtin_msa_bnz_d -#define __msa_test_bz_b __builtin_msa_bz_b -#define __msa_test_bz_h __builtin_msa_bz_h -#define __msa_test_bz_w __builtin_msa_bz_w -#define __msa_test_bz_d __builtin_msa_bz_d -#define __msa_ldi_b __builtin_msa_ldi_b -#define __msa_ldi_h __builtin_msa_ldi_h -#define __msa_ldi_w __builtin_msa_ldi_w -#define __msa_ldi_d __builtin_msa_ldi_d -#define __msa_fcaf_w __builtin_msa_fcaf_w -#define __msa_fcaf_d __builtin_msa_fcaf_d -#define __msa_fcor_w __builtin_msa_fcor_w -#define __msa_fcor_d __builtin_msa_fcor_d -#define __msa_fcun_w __builtin_msa_fcun_w -#define __msa_fcun_d __builtin_msa_fcun_d -#define __msa_fcune_w __builtin_msa_fcune_w -#define __msa_fcune_d __builtin_msa_fcune_d -#define __msa_fcueq_w __builtin_msa_fcueq_w -#define __msa_fcueq_d __builtin_msa_fcueq_d -#define __msa_fceq_w __builtin_msa_fceq_w -#define __msa_fceq_d __builtin_msa_fceq_d -#define __msa_fcne_w __builtin_msa_fcne_w -#define __msa_fcne_d __builtin_msa_fcne_d -#define __msa_fclt_w __builtin_msa_fclt_w -#define __msa_fclt_d __builtin_msa_fclt_d -#define __msa_fcult_w __builtin_msa_fcult_w -#define __msa_fcult_d __builtin_msa_fcult_d -#define __msa_fcle_w __builtin_msa_fcle_w -#define __msa_fcle_d __builtin_msa_fcle_d -#define __msa_fcule_w __builtin_msa_fcule_w -#define __msa_fcule_d __builtin_msa_fcule_d -#define __msa_fsaf_w __builtin_msa_fsaf_w -#define __msa_fsaf_d __builtin_msa_fsaf_d -#define __msa_fsor_w __builtin_msa_fsor_w -#define __msa_fsor_d __builtin_msa_fsor_d -#define __msa_fsun_w __builtin_msa_fsun_w -#define __msa_fsun_d __builtin_msa_fsun_d -#define __msa_fsune_w __builtin_msa_fsune_w -#define __msa_fsune_d __builtin_msa_fsune_d -#define __msa_fsueq_w __builtin_msa_fsueq_w -#define __msa_fsueq_d __builtin_msa_fsueq_d -#define __msa_fseq_w __builtin_msa_fseq_w -#define __msa_fseq_d __builtin_msa_fseq_d -#define __msa_fsne_w __builtin_msa_fsne_w -#define __msa_fsne_d __builtin_msa_fsne_d -#define __msa_fslt_w __builtin_msa_fslt_w -#define __msa_fslt_d __builtin_msa_fslt_d -#define __msa_fsult_w __builtin_msa_fsult_w -#define __msa_fsult_d __builtin_msa_fsult_d -#define __msa_fsle_w __builtin_msa_fsle_w -#define __msa_fsle_d __builtin_msa_fsle_d -#define __msa_fsule_w __builtin_msa_fsule_w -#define __msa_fsule_d __builtin_msa_fsule_d -#define __msa_fadd_w __builtin_msa_fadd_w -#define __msa_fadd_d __builtin_msa_fadd_d -#define __msa_fsub_w __builtin_msa_fsub_w -#define __msa_fsub_d __builtin_msa_fsub_d -#define __msa_fmul_w __builtin_msa_fmul_w -#define __msa_fmul_d __builtin_msa_fmul_d -#define __msa_fdiv_w __builtin_msa_fdiv_w -#define __msa_fdiv_d __builtin_msa_fdiv_d -#define __msa_fmadd_w __builtin_msa_fmadd_w -#define __msa_fmadd_d __builtin_msa_fmadd_d -#define __msa_fmsub_w __builtin_msa_fmsub_w -#define __msa_fmsub_d __builtin_msa_fmsub_d -#define __msa_fexp2_w __builtin_msa_fexp2_w -#define __msa_fexp2_d __builtin_msa_fexp2_d -#define __msa_fexdo_h __builtin_msa_fexdo_h -#define __msa_fexdo_w __builtin_msa_fexdo_w -#define __msa_ftq_h __builtin_msa_ftq_h -#define __msa_ftq_w __builtin_msa_ftq_w -#define __msa_fmin_w __builtin_msa_fmin_w -#define __msa_fmin_d __builtin_msa_fmin_d -#define __msa_fmin_a_w __builtin_msa_fmin_a_w -#define __msa_fmin_a_d __builtin_msa_fmin_a_d -#define __msa_fmax_w __builtin_msa_fmax_w -#define __msa_fmax_d __builtin_msa_fmax_d -#define __msa_fmax_a_w __builtin_msa_fmax_a_w -#define __msa_fmax_a_d __builtin_msa_fmax_a_d -#define __msa_mul_q_h __builtin_msa_mul_q_h -#define __msa_mul_q_w __builtin_msa_mul_q_w -#define __msa_mulr_q_h __builtin_msa_mulr_q_h -#define __msa_mulr_q_w __builtin_msa_mulr_q_w -#define __msa_madd_q_h __builtin_msa_madd_q_h -#define __msa_madd_q_w __builtin_msa_madd_q_w -#define __msa_maddr_q_h __builtin_msa_maddr_q_h -#define __msa_maddr_q_w __builtin_msa_maddr_q_w -#define __msa_msub_q_h __builtin_msa_msub_q_h -#define __msa_msub_q_w __builtin_msa_msub_q_w -#define __msa_msubr_q_h __builtin_msa_msubr_q_h -#define __msa_msubr_q_w __builtin_msa_msubr_q_w -#define __msa_fclass_w __builtin_msa_fclass_w -#define __msa_fclass_d __builtin_msa_fclass_d -#define __msa_fsqrt_w __builtin_msa_fsqrt_w -#define __msa_fsqrt_d __builtin_msa_fsqrt_d -#define __msa_frcp_w __builtin_msa_frcp_w -#define __msa_frcp_d __builtin_msa_frcp_d -#define __msa_frint_w __builtin_msa_frint_w -#define __msa_frint_d __builtin_msa_frint_d -#define __msa_frsqrt_w __builtin_msa_frsqrt_w -#define __msa_frsqrt_d __builtin_msa_frsqrt_d -#define __msa_flog2_w __builtin_msa_flog2_w -#define __msa_flog2_d __builtin_msa_flog2_d -#define __msa_fexupl_w __builtin_msa_fexupl_w -#define __msa_fexupl_d __builtin_msa_fexupl_d -#define __msa_fexupr_w __builtin_msa_fexupr_w -#define __msa_fexupr_d __builtin_msa_fexupr_d -#define __msa_ffql_w __builtin_msa_ffql_w -#define __msa_ffql_d __builtin_msa_ffql_d -#define __msa_ffqr_w __builtin_msa_ffqr_w -#define __msa_ffqr_d __builtin_msa_ffqr_d -#define __msa_ftint_s_w __builtin_msa_ftint_s_w -#define __msa_ftint_s_d __builtin_msa_ftint_s_d -#define __msa_ftint_u_w __builtin_msa_ftint_u_w -#define __msa_ftint_u_d __builtin_msa_ftint_u_d -#define __msa_ftrunc_s_w __builtin_msa_ftrunc_s_w -#define __msa_ftrunc_s_d __builtin_msa_ftrunc_s_d -#define __msa_ftrunc_u_w __builtin_msa_ftrunc_u_w -#define __msa_ftrunc_u_d __builtin_msa_ftrunc_u_d -#define __msa_ffint_s_w __builtin_msa_ffint_s_w -#define __msa_ffint_s_d __builtin_msa_ffint_s_d -#define __msa_ffint_u_w __builtin_msa_ffint_u_w -#define __msa_ffint_u_d __builtin_msa_ffint_u_d -#define __msa_cfcmsa __builtin_msa_cfcmsa -#define __msa_move_v __builtin_msa_move_v -#define __msa_cast_to_vector_float __builtin_msa_cast_to_vector_float -#define __msa_cast_to_vector_double __builtin_msa_cast_to_vector_double -#define __msa_cast_to_scalar_float __builtin_msa_cast_to_scalar_float -#define __msa_cast_to_scalar_double __builtin_msa_cast_to_scalar_double -#endif /* defined(__mips_msa) */ -#endif /* _MSA_H */ diff --git a/bin/app/data/cxx/include/mwaitxintrin.h b/bin/app/data/cxx/include/mwaitxintrin.h deleted file mode 100644 index bca395b0..00000000 --- a/bin/app/data/cxx/include/mwaitxintrin.h +++ /dev/null @@ -1,33 +0,0 @@ -/*===---- mwaitxintrin.h - MONITORX/MWAITX intrinsics ----------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __X86INTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __MWAITXINTRIN_H -#define __MWAITXINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("mwaitx"))) -static __inline__ void __DEFAULT_FN_ATTRS -_mm_monitorx(void const * __p, unsigned __extensions, unsigned __hints) -{ - __builtin_ia32_monitorx((void *)__p, __extensions, __hints); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_mm_mwaitx(unsigned __extensions, unsigned __hints, unsigned __clock) -{ - __builtin_ia32_mwaitx(__extensions, __hints, __clock); -} - -#undef __DEFAULT_FN_ATTRS - -#endif /* __MWAITXINTRIN_H */ diff --git a/bin/app/data/cxx/include/nmmintrin.h b/bin/app/data/cxx/include/nmmintrin.h deleted file mode 100644 index 672aea49..00000000 --- a/bin/app/data/cxx/include/nmmintrin.h +++ /dev/null @@ -1,16 +0,0 @@ -/*===---- nmmintrin.h - SSE4 intrinsics ------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __NMMINTRIN_H -#define __NMMINTRIN_H - -/* To match expectations of gcc we put the sse4.2 definitions into smmintrin.h, - just include it now then. */ -#include -#endif /* __NMMINTRIN_H */ diff --git a/bin/app/data/cxx/include/opencl-c-base.h b/bin/app/data/cxx/include/opencl-c-base.h deleted file mode 100644 index 9a23333a..00000000 --- a/bin/app/data/cxx/include/opencl-c-base.h +++ /dev/null @@ -1,571 +0,0 @@ -//===----- opencl-c-base.h - OpenCL C language base definitions -----------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef _OPENCL_BASE_H_ -#define _OPENCL_BASE_H_ - -// built-in scalar data types: - -/** - * An unsigned 8-bit integer. - */ -typedef unsigned char uchar; - -/** - * An unsigned 16-bit integer. - */ -typedef unsigned short ushort; - -/** - * An unsigned 32-bit integer. - */ -typedef unsigned int uint; - -/** - * An unsigned 64-bit integer. - */ -typedef unsigned long ulong; - -/** - * The unsigned integer type of the result of the sizeof operator. This - * is a 32-bit unsigned integer if CL_DEVICE_ADDRESS_BITS - * defined in table 4.3 is 32-bits and is a 64-bit unsigned integer if - * CL_DEVICE_ADDRESS_BITS is 64-bits. - */ -typedef __SIZE_TYPE__ size_t; - -/** - * A signed integer type that is the result of subtracting two pointers. - * This is a 32-bit signed integer if CL_DEVICE_ADDRESS_BITS - * defined in table 4.3 is 32-bits and is a 64-bit signed integer if - * CL_DEVICE_ADDRESS_BITS is 64-bits. - */ -typedef __PTRDIFF_TYPE__ ptrdiff_t; - -/** - * A signed integer type with the property that any valid pointer to - * void can be converted to this type, then converted back to pointer - * to void, and the result will compare equal to the original pointer. - */ -typedef __INTPTR_TYPE__ intptr_t; - -/** - * An unsigned integer type with the property that any valid pointer to - * void can be converted to this type, then converted back to pointer - * to void, and the result will compare equal to the original pointer. - */ -typedef __UINTPTR_TYPE__ uintptr_t; - -// built-in vector data types: -typedef char char2 __attribute__((ext_vector_type(2))); -typedef char char3 __attribute__((ext_vector_type(3))); -typedef char char4 __attribute__((ext_vector_type(4))); -typedef char char8 __attribute__((ext_vector_type(8))); -typedef char char16 __attribute__((ext_vector_type(16))); -typedef uchar uchar2 __attribute__((ext_vector_type(2))); -typedef uchar uchar3 __attribute__((ext_vector_type(3))); -typedef uchar uchar4 __attribute__((ext_vector_type(4))); -typedef uchar uchar8 __attribute__((ext_vector_type(8))); -typedef uchar uchar16 __attribute__((ext_vector_type(16))); -typedef short short2 __attribute__((ext_vector_type(2))); -typedef short short3 __attribute__((ext_vector_type(3))); -typedef short short4 __attribute__((ext_vector_type(4))); -typedef short short8 __attribute__((ext_vector_type(8))); -typedef short short16 __attribute__((ext_vector_type(16))); -typedef ushort ushort2 __attribute__((ext_vector_type(2))); -typedef ushort ushort3 __attribute__((ext_vector_type(3))); -typedef ushort ushort4 __attribute__((ext_vector_type(4))); -typedef ushort ushort8 __attribute__((ext_vector_type(8))); -typedef ushort ushort16 __attribute__((ext_vector_type(16))); -typedef int int2 __attribute__((ext_vector_type(2))); -typedef int int3 __attribute__((ext_vector_type(3))); -typedef int int4 __attribute__((ext_vector_type(4))); -typedef int int8 __attribute__((ext_vector_type(8))); -typedef int int16 __attribute__((ext_vector_type(16))); -typedef uint uint2 __attribute__((ext_vector_type(2))); -typedef uint uint3 __attribute__((ext_vector_type(3))); -typedef uint uint4 __attribute__((ext_vector_type(4))); -typedef uint uint8 __attribute__((ext_vector_type(8))); -typedef uint uint16 __attribute__((ext_vector_type(16))); -typedef long long2 __attribute__((ext_vector_type(2))); -typedef long long3 __attribute__((ext_vector_type(3))); -typedef long long4 __attribute__((ext_vector_type(4))); -typedef long long8 __attribute__((ext_vector_type(8))); -typedef long long16 __attribute__((ext_vector_type(16))); -typedef ulong ulong2 __attribute__((ext_vector_type(2))); -typedef ulong ulong3 __attribute__((ext_vector_type(3))); -typedef ulong ulong4 __attribute__((ext_vector_type(4))); -typedef ulong ulong8 __attribute__((ext_vector_type(8))); -typedef ulong ulong16 __attribute__((ext_vector_type(16))); -typedef float float2 __attribute__((ext_vector_type(2))); -typedef float float3 __attribute__((ext_vector_type(3))); -typedef float float4 __attribute__((ext_vector_type(4))); -typedef float float8 __attribute__((ext_vector_type(8))); -typedef float float16 __attribute__((ext_vector_type(16))); -#ifdef cl_khr_fp16 -#pragma OPENCL EXTENSION cl_khr_fp16 : enable -typedef half half2 __attribute__((ext_vector_type(2))); -typedef half half3 __attribute__((ext_vector_type(3))); -typedef half half4 __attribute__((ext_vector_type(4))); -typedef half half8 __attribute__((ext_vector_type(8))); -typedef half half16 __attribute__((ext_vector_type(16))); -#endif -#ifdef cl_khr_fp64 -#if __OPENCL_C_VERSION__ < CL_VERSION_1_2 -#pragma OPENCL EXTENSION cl_khr_fp64 : enable -#endif -typedef double double2 __attribute__((ext_vector_type(2))); -typedef double double3 __attribute__((ext_vector_type(3))); -typedef double double4 __attribute__((ext_vector_type(4))); -typedef double double8 __attribute__((ext_vector_type(8))); -typedef double double16 __attribute__((ext_vector_type(16))); -#endif - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -#define NULL ((void*)0) -#endif - -/** - * Value of maximum non-infinite single-precision floating-point - * number. - */ -#define MAXFLOAT 0x1.fffffep127f - -/** - * A positive float constant expression. HUGE_VALF evaluates - * to +infinity. Used as an error value returned by the built-in - * math functions. - */ -#define HUGE_VALF (__builtin_huge_valf()) - -/** - * A positive double constant expression. HUGE_VAL evaluates - * to +infinity. Used as an error value returned by the built-in - * math functions. - */ -#define HUGE_VAL (__builtin_huge_val()) - -/** - * A constant expression of type float representing positive or - * unsigned infinity. - */ -#define INFINITY (__builtin_inff()) - -/** - * A constant expression of type float representing a quiet NaN. - */ -#define NAN as_float(INT_MAX) - -#define FP_ILOGB0 INT_MIN -#define FP_ILOGBNAN INT_MAX - -#define FLT_DIG 6 -#define FLT_MANT_DIG 24 -#define FLT_MAX_10_EXP +38 -#define FLT_MAX_EXP +128 -#define FLT_MIN_10_EXP -37 -#define FLT_MIN_EXP -125 -#define FLT_RADIX 2 -#define FLT_MAX 0x1.fffffep127f -#define FLT_MIN 0x1.0p-126f -#define FLT_EPSILON 0x1.0p-23f - -#define M_E_F 2.71828182845904523536028747135266250f -#define M_LOG2E_F 1.44269504088896340735992468100189214f -#define M_LOG10E_F 0.434294481903251827651128918916605082f -#define M_LN2_F 0.693147180559945309417232121458176568f -#define M_LN10_F 2.30258509299404568401799145468436421f -#define M_PI_F 3.14159265358979323846264338327950288f -#define M_PI_2_F 1.57079632679489661923132169163975144f -#define M_PI_4_F 0.785398163397448309615660845819875721f -#define M_1_PI_F 0.318309886183790671537767526745028724f -#define M_2_PI_F 0.636619772367581343075535053490057448f -#define M_2_SQRTPI_F 1.12837916709551257389615890312154517f -#define M_SQRT2_F 1.41421356237309504880168872420969808f -#define M_SQRT1_2_F 0.707106781186547524400844362104849039f - -#define DBL_DIG 15 -#define DBL_MANT_DIG 53 -#define DBL_MAX_10_EXP +308 -#define DBL_MAX_EXP +1024 -#define DBL_MIN_10_EXP -307 -#define DBL_MIN_EXP -1021 -#define DBL_RADIX 2 -#define DBL_MAX 0x1.fffffffffffffp1023 -#define DBL_MIN 0x1.0p-1022 -#define DBL_EPSILON 0x1.0p-52 - -#define M_E 0x1.5bf0a8b145769p+1 -#define M_LOG2E 0x1.71547652b82fep+0 -#define M_LOG10E 0x1.bcb7b1526e50ep-2 -#define M_LN2 0x1.62e42fefa39efp-1 -#define M_LN10 0x1.26bb1bbb55516p+1 -#define M_PI 0x1.921fb54442d18p+1 -#define M_PI_2 0x1.921fb54442d18p+0 -#define M_PI_4 0x1.921fb54442d18p-1 -#define M_1_PI 0x1.45f306dc9c883p-2 -#define M_2_PI 0x1.45f306dc9c883p-1 -#define M_2_SQRTPI 0x1.20dd750429b6dp+0 -#define M_SQRT2 0x1.6a09e667f3bcdp+0 -#define M_SQRT1_2 0x1.6a09e667f3bcdp-1 - -#ifdef cl_khr_fp16 - -#define HALF_DIG 3 -#define HALF_MANT_DIG 11 -#define HALF_MAX_10_EXP +4 -#define HALF_MAX_EXP +16 -#define HALF_MIN_10_EXP -4 -#define HALF_MIN_EXP -13 -#define HALF_RADIX 2 -#define HALF_MAX ((0x1.ffcp15h)) -#define HALF_MIN ((0x1.0p-14h)) -#define HALF_EPSILON ((0x1.0p-10h)) - -#define M_E_H 2.71828182845904523536028747135266250h -#define M_LOG2E_H 1.44269504088896340735992468100189214h -#define M_LOG10E_H 0.434294481903251827651128918916605082h -#define M_LN2_H 0.693147180559945309417232121458176568h -#define M_LN10_H 2.30258509299404568401799145468436421h -#define M_PI_H 3.14159265358979323846264338327950288h -#define M_PI_2_H 1.57079632679489661923132169163975144h -#define M_PI_4_H 0.785398163397448309615660845819875721h -#define M_1_PI_H 0.318309886183790671537767526745028724h -#define M_2_PI_H 0.636619772367581343075535053490057448h -#define M_2_SQRTPI_H 1.12837916709551257389615890312154517h -#define M_SQRT2_H 1.41421356237309504880168872420969808h -#define M_SQRT1_2_H 0.707106781186547524400844362104849039h - -#endif //cl_khr_fp16 - -#define CHAR_BIT 8 -#define SCHAR_MAX 127 -#define SCHAR_MIN (-128) -#define UCHAR_MAX 255 -#define CHAR_MAX SCHAR_MAX -#define CHAR_MIN SCHAR_MIN -#define USHRT_MAX 65535 -#define SHRT_MAX 32767 -#define SHRT_MIN (-32768) -#define UINT_MAX 0xffffffff -#define INT_MAX 2147483647 -#define INT_MIN (-2147483647-1) -#define ULONG_MAX 0xffffffffffffffffUL -#define LONG_MAX 0x7fffffffffffffffL -#define LONG_MIN (-0x7fffffffffffffffL-1) - -// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions - -// Flag type and values for barrier, mem_fence, read_mem_fence, write_mem_fence -typedef uint cl_mem_fence_flags; - -/** - * Queue a memory fence to ensure correct - * ordering of memory operations to local memory - */ -#define CLK_LOCAL_MEM_FENCE 0x01 - -/** - * Queue a memory fence to ensure correct - * ordering of memory operations to global memory - */ -#define CLK_GLOBAL_MEM_FENCE 0x02 - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -typedef enum memory_scope { - memory_scope_work_item = __OPENCL_MEMORY_SCOPE_WORK_ITEM, - memory_scope_work_group = __OPENCL_MEMORY_SCOPE_WORK_GROUP, - memory_scope_device = __OPENCL_MEMORY_SCOPE_DEVICE, - memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES, -#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) - memory_scope_sub_group = __OPENCL_MEMORY_SCOPE_SUB_GROUP -#endif -} memory_scope; - -/** - * Queue a memory fence to ensure correct ordering of memory - * operations between work-items of a work-group to - * image memory. - */ -#define CLK_IMAGE_MEM_FENCE 0x04 - -#ifndef ATOMIC_VAR_INIT -#define ATOMIC_VAR_INIT(x) (x) -#endif //ATOMIC_VAR_INIT -#define ATOMIC_FLAG_INIT 0 - -// enum values aligned with what clang uses in EmitAtomicExpr() -typedef enum memory_order -{ - memory_order_relaxed = __ATOMIC_RELAXED, - memory_order_acquire = __ATOMIC_ACQUIRE, - memory_order_release = __ATOMIC_RELEASE, - memory_order_acq_rel = __ATOMIC_ACQ_REL, - memory_order_seq_cst = __ATOMIC_SEQ_CST -} memory_order; - -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions - -// These values need to match the runtime equivalent -// -// Addressing Mode. -// -#define CLK_ADDRESS_NONE 0 -#define CLK_ADDRESS_CLAMP_TO_EDGE 2 -#define CLK_ADDRESS_CLAMP 4 -#define CLK_ADDRESS_REPEAT 6 -#define CLK_ADDRESS_MIRRORED_REPEAT 8 - -// -// Coordination Normalization -// -#define CLK_NORMALIZED_COORDS_FALSE 0 -#define CLK_NORMALIZED_COORDS_TRUE 1 - -// -// Filtering Mode. -// -#define CLK_FILTER_NEAREST 0x10 -#define CLK_FILTER_LINEAR 0x20 - -#ifdef cl_khr_gl_msaa_sharing -#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable -#endif //cl_khr_gl_msaa_sharing - -// -// Channel Datatype. -// -#define CLK_SNORM_INT8 0x10D0 -#define CLK_SNORM_INT16 0x10D1 -#define CLK_UNORM_INT8 0x10D2 -#define CLK_UNORM_INT16 0x10D3 -#define CLK_UNORM_SHORT_565 0x10D4 -#define CLK_UNORM_SHORT_555 0x10D5 -#define CLK_UNORM_INT_101010 0x10D6 -#define CLK_SIGNED_INT8 0x10D7 -#define CLK_SIGNED_INT16 0x10D8 -#define CLK_SIGNED_INT32 0x10D9 -#define CLK_UNSIGNED_INT8 0x10DA -#define CLK_UNSIGNED_INT16 0x10DB -#define CLK_UNSIGNED_INT32 0x10DC -#define CLK_HALF_FLOAT 0x10DD -#define CLK_FLOAT 0x10DE -#define CLK_UNORM_INT24 0x10DF - -// Channel order, numbering must be aligned with cl_channel_order in cl.h -// -#define CLK_R 0x10B0 -#define CLK_A 0x10B1 -#define CLK_RG 0x10B2 -#define CLK_RA 0x10B3 -#define CLK_RGB 0x10B4 -#define CLK_RGBA 0x10B5 -#define CLK_BGRA 0x10B6 -#define CLK_ARGB 0x10B7 -#define CLK_INTENSITY 0x10B8 -#define CLK_LUMINANCE 0x10B9 -#define CLK_Rx 0x10BA -#define CLK_RGx 0x10BB -#define CLK_RGBx 0x10BC -#define CLK_DEPTH 0x10BD -#define CLK_DEPTH_STENCIL 0x10BE -#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0 -#define CLK_sRGB 0x10BF -#define CLK_sRGBx 0x10C0 -#define CLK_sRGBA 0x10C1 -#define CLK_sBGRA 0x10C2 -#define CLK_ABGR 0x10C3 -#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0 - -// OpenCL v2.0 s6.13.16 - Pipe Functions -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -#define CLK_NULL_RESERVE_ID (__builtin_astype(((void*)(__SIZE_MAX__)), reserve_id_t)) - -// OpenCL v2.0 s6.13.17 - Enqueue Kernels -#define CL_COMPLETE 0x0 -#define CL_RUNNING 0x1 -#define CL_SUBMITTED 0x2 -#define CL_QUEUED 0x3 - -#define CLK_SUCCESS 0 -#define CLK_ENQUEUE_FAILURE -101 -#define CLK_INVALID_QUEUE -102 -#define CLK_INVALID_NDRANGE -160 -#define CLK_INVALID_EVENT_WAIT_LIST -57 -#define CLK_DEVICE_QUEUE_FULL -161 -#define CLK_INVALID_ARG_SIZE -51 -#define CLK_EVENT_ALLOCATION_FAILURE -100 -#define CLK_OUT_OF_RESOURCES -5 - -#define CLK_NULL_QUEUE 0 -#define CLK_NULL_EVENT (__builtin_astype(((void*)(__SIZE_MAX__)), clk_event_t)) - -// execution model related definitions -#define CLK_ENQUEUE_FLAGS_NO_WAIT 0x0 -#define CLK_ENQUEUE_FLAGS_WAIT_KERNEL 0x1 -#define CLK_ENQUEUE_FLAGS_WAIT_WORK_GROUP 0x2 - -typedef int kernel_enqueue_flags_t; -typedef int clk_profiling_info; - -// Profiling info name (see capture_event_profiling_info) -#define CLK_PROFILING_COMMAND_EXEC_TIME 0x1 - -#define MAX_WORK_DIM 3 - -typedef struct { - unsigned int workDimension; - size_t globalWorkOffset[MAX_WORK_DIM]; - size_t globalWorkSize[MAX_WORK_DIM]; - size_t localWorkSize[MAX_WORK_DIM]; -} ndrange_t; - -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -#ifdef cl_intel_device_side_avc_motion_estimation -#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin - -#define CLK_AVC_ME_MAJOR_16x16_INTEL 0x0 -#define CLK_AVC_ME_MAJOR_16x8_INTEL 0x1 -#define CLK_AVC_ME_MAJOR_8x16_INTEL 0x2 -#define CLK_AVC_ME_MAJOR_8x8_INTEL 0x3 - -#define CLK_AVC_ME_MINOR_8x8_INTEL 0x0 -#define CLK_AVC_ME_MINOR_8x4_INTEL 0x1 -#define CLK_AVC_ME_MINOR_4x8_INTEL 0x2 -#define CLK_AVC_ME_MINOR_4x4_INTEL 0x3 - -#define CLK_AVC_ME_MAJOR_FORWARD_INTEL 0x0 -#define CLK_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 -#define CLK_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 - -#define CLK_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 -#define CLK_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E -#define CLK_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D -#define CLK_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B -#define CLK_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77 -#define CLK_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F -#define CLK_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F -#define CLK_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F - -#define CLK_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 -#define CLK_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 -#define CLK_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 - -#define CLK_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 -#define CLK_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 -#define CLK_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 -#define CLK_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3 -#define CLK_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4 -#define CLK_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5 -#define CLK_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6 -#define CLK_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7 -#define CLK_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8 - -#define CLK_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 -#define CLK_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 - -#define CLK_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 -#define CLK_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 -#define CLK_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 - -#define CLK_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 -#define CLK_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 -#define CLK_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 -#define CLK_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 - -#define CLK_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 -#define CLK_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 -#define CLK_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 -#define CLK_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B -#define CLK_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 - -#define CLK_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 -#define CLK_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 -#define CLK_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 -#define CLK_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 - -#define CLK_AVC_ME_INTRA_16x16_INTEL 0x0 -#define CLK_AVC_ME_INTRA_8x8_INTEL 0x1 -#define CLK_AVC_ME_INTRA_4x4_INTEL 0x2 - -#define CLK_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 -#define CLK_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 - -#define CLK_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24) -#define CLK_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24) -#define CLK_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30) -#define CLK_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30) - -#define CLK_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 -#define CLK_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 - -#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_ALL_INTEL 0x0 -#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 -#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 -#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 - -#define CLK_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 -#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 -#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 -#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 - -#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 -#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 -#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 -#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 -#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 -#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 -#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 -#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 -#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 -#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 -#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 -#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 - -#define CLK_AVC_ME_FRAME_FORWARD_INTEL 0x1 -#define CLK_AVC_ME_FRAME_BACKWARD_INTEL 0x2 -#define CLK_AVC_ME_FRAME_DUAL_INTEL 0x3 - -#define CLK_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 -#define CLK_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 - -#define CLK_AVC_ME_INITIALIZE_INTEL 0x0 - -#define CLK_AVC_IME_PAYLOAD_INITIALIZE_INTEL 0x0 -#define CLK_AVC_REF_PAYLOAD_INITIALIZE_INTEL 0x0 -#define CLK_AVC_SIC_PAYLOAD_INITIALIZE_INTEL 0x0 - -#define CLK_AVC_IME_RESULT_INITIALIZE_INTEL 0x0 -#define CLK_AVC_REF_RESULT_INITIALIZE_INTEL 0x0 -#define CLK_AVC_SIC_RESULT_INITIALIZE_INTEL 0x0 - -#define CLK_AVC_IME_RESULT_SINGLE_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0 -#define CLK_AVC_IME_RESULT_SINGLE_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0 -#define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0 -#define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0 - -#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : end -#endif // cl_intel_device_side_avc_motion_estimation - -#endif //_OPENCL_BASE_H_ diff --git a/bin/app/data/cxx/include/opencl-c.h b/bin/app/data/cxx/include/opencl-c.h deleted file mode 100644 index 06c5ab6a..00000000 --- a/bin/app/data/cxx/include/opencl-c.h +++ /dev/null @@ -1,16502 +0,0 @@ -//===--- opencl-c.h - OpenCL C language builtin function header -----------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef _OPENCL_H_ -#define _OPENCL_H_ - -#include "opencl-c-base.h" - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -#ifndef cl_khr_depth_images -#define cl_khr_depth_images -#endif //cl_khr_depth_images -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -#if __OPENCL_C_VERSION__ < CL_VERSION_2_0 -#ifdef cl_khr_3d_image_writes -#pragma OPENCL EXTENSION cl_khr_3d_image_writes : enable -#endif //cl_khr_3d_image_writes -#endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0 - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -#pragma OPENCL EXTENSION cl_intel_planar_yuv : begin -#pragma OPENCL EXTENSION cl_intel_planar_yuv : end -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) - -#define __ovld __attribute__((overloadable)) -#define __conv __attribute__((convergent)) - -// Optimizations -#define __purefn __attribute__((pure)) -#define __cnfn __attribute__((const)) - - -// OpenCL v1.1/1.2/2.0 s6.2.3 - Explicit conversions - -char __ovld __cnfn convert_char_rte(char); -char __ovld __cnfn convert_char_sat_rte(char); -char __ovld __cnfn convert_char_rtz(char); -char __ovld __cnfn convert_char_sat_rtz(char); -char __ovld __cnfn convert_char_rtp(char); -char __ovld __cnfn convert_char_sat_rtp(char); -char __ovld __cnfn convert_char_rtn(char); -char __ovld __cnfn convert_char_sat_rtn(char); -char __ovld __cnfn convert_char(char); -char __ovld __cnfn convert_char_sat(char); -char __ovld __cnfn convert_char_rte(uchar); -char __ovld __cnfn convert_char_sat_rte(uchar); -char __ovld __cnfn convert_char_rtz(uchar); -char __ovld __cnfn convert_char_sat_rtz(uchar); -char __ovld __cnfn convert_char_rtp(uchar); -char __ovld __cnfn convert_char_sat_rtp(uchar); -char __ovld __cnfn convert_char_rtn(uchar); -char __ovld __cnfn convert_char_sat_rtn(uchar); -char __ovld __cnfn convert_char(uchar); -char __ovld __cnfn convert_char_sat(uchar); -char __ovld __cnfn convert_char_rte(short); -char __ovld __cnfn convert_char_sat_rte(short); -char __ovld __cnfn convert_char_rtz(short); -char __ovld __cnfn convert_char_sat_rtz(short); -char __ovld __cnfn convert_char_rtp(short); -char __ovld __cnfn convert_char_sat_rtp(short); -char __ovld __cnfn convert_char_rtn(short); -char __ovld __cnfn convert_char_sat_rtn(short); -char __ovld __cnfn convert_char(short); -char __ovld __cnfn convert_char_sat(short); -char __ovld __cnfn convert_char_rte(ushort); -char __ovld __cnfn convert_char_sat_rte(ushort); -char __ovld __cnfn convert_char_rtz(ushort); -char __ovld __cnfn convert_char_sat_rtz(ushort); -char __ovld __cnfn convert_char_rtp(ushort); -char __ovld __cnfn convert_char_sat_rtp(ushort); -char __ovld __cnfn convert_char_rtn(ushort); -char __ovld __cnfn convert_char_sat_rtn(ushort); -char __ovld __cnfn convert_char(ushort); -char __ovld __cnfn convert_char_sat(ushort); -char __ovld __cnfn convert_char_rte(int); -char __ovld __cnfn convert_char_sat_rte(int); -char __ovld __cnfn convert_char_rtz(int); -char __ovld __cnfn convert_char_sat_rtz(int); -char __ovld __cnfn convert_char_rtp(int); -char __ovld __cnfn convert_char_sat_rtp(int); -char __ovld __cnfn convert_char_rtn(int); -char __ovld __cnfn convert_char_sat_rtn(int); -char __ovld __cnfn convert_char(int); -char __ovld __cnfn convert_char_sat(int); -char __ovld __cnfn convert_char_rte(uint); -char __ovld __cnfn convert_char_sat_rte(uint); -char __ovld __cnfn convert_char_rtz(uint); -char __ovld __cnfn convert_char_sat_rtz(uint); -char __ovld __cnfn convert_char_rtp(uint); -char __ovld __cnfn convert_char_sat_rtp(uint); -char __ovld __cnfn convert_char_rtn(uint); -char __ovld __cnfn convert_char_sat_rtn(uint); -char __ovld __cnfn convert_char(uint); -char __ovld __cnfn convert_char_sat(uint); -char __ovld __cnfn convert_char_rte(long); -char __ovld __cnfn convert_char_sat_rte(long); -char __ovld __cnfn convert_char_rtz(long); -char __ovld __cnfn convert_char_sat_rtz(long); -char __ovld __cnfn convert_char_rtp(long); -char __ovld __cnfn convert_char_sat_rtp(long); -char __ovld __cnfn convert_char_rtn(long); -char __ovld __cnfn convert_char_sat_rtn(long); -char __ovld __cnfn convert_char(long); -char __ovld __cnfn convert_char_sat(long); -char __ovld __cnfn convert_char_rte(ulong); -char __ovld __cnfn convert_char_sat_rte(ulong); -char __ovld __cnfn convert_char_rtz(ulong); -char __ovld __cnfn convert_char_sat_rtz(ulong); -char __ovld __cnfn convert_char_rtp(ulong); -char __ovld __cnfn convert_char_sat_rtp(ulong); -char __ovld __cnfn convert_char_rtn(ulong); -char __ovld __cnfn convert_char_sat_rtn(ulong); -char __ovld __cnfn convert_char(ulong); -char __ovld __cnfn convert_char_sat(ulong); -char __ovld __cnfn convert_char_rte(float); -char __ovld __cnfn convert_char_sat_rte(float); -char __ovld __cnfn convert_char_rtz(float); -char __ovld __cnfn convert_char_sat_rtz(float); -char __ovld __cnfn convert_char_rtp(float); -char __ovld __cnfn convert_char_sat_rtp(float); -char __ovld __cnfn convert_char_rtn(float); -char __ovld __cnfn convert_char_sat_rtn(float); -char __ovld __cnfn convert_char(float); -char __ovld __cnfn convert_char_sat(float); -uchar __ovld __cnfn convert_uchar_rte(char); -uchar __ovld __cnfn convert_uchar_sat_rte(char); -uchar __ovld __cnfn convert_uchar_rtz(char); -uchar __ovld __cnfn convert_uchar_sat_rtz(char); -uchar __ovld __cnfn convert_uchar_rtp(char); -uchar __ovld __cnfn convert_uchar_sat_rtp(char); -uchar __ovld __cnfn convert_uchar_rtn(char); -uchar __ovld __cnfn convert_uchar_sat_rtn(char); -uchar __ovld __cnfn convert_uchar(char); -uchar __ovld __cnfn convert_uchar_sat(char); -uchar __ovld __cnfn convert_uchar_rte(uchar); -uchar __ovld __cnfn convert_uchar_sat_rte(uchar); -uchar __ovld __cnfn convert_uchar_rtz(uchar); -uchar __ovld __cnfn convert_uchar_sat_rtz(uchar); -uchar __ovld __cnfn convert_uchar_rtp(uchar); -uchar __ovld __cnfn convert_uchar_sat_rtp(uchar); -uchar __ovld __cnfn convert_uchar_rtn(uchar); -uchar __ovld __cnfn convert_uchar_sat_rtn(uchar); -uchar __ovld __cnfn convert_uchar(uchar); -uchar __ovld __cnfn convert_uchar_sat(uchar); -uchar __ovld __cnfn convert_uchar_rte(short); -uchar __ovld __cnfn convert_uchar_sat_rte(short); -uchar __ovld __cnfn convert_uchar_rtz(short); -uchar __ovld __cnfn convert_uchar_sat_rtz(short); -uchar __ovld __cnfn convert_uchar_rtp(short); -uchar __ovld __cnfn convert_uchar_sat_rtp(short); -uchar __ovld __cnfn convert_uchar_rtn(short); -uchar __ovld __cnfn convert_uchar_sat_rtn(short); -uchar __ovld __cnfn convert_uchar(short); -uchar __ovld __cnfn convert_uchar_sat(short); -uchar __ovld __cnfn convert_uchar_rte(ushort); -uchar __ovld __cnfn convert_uchar_sat_rte(ushort); -uchar __ovld __cnfn convert_uchar_rtz(ushort); -uchar __ovld __cnfn convert_uchar_sat_rtz(ushort); -uchar __ovld __cnfn convert_uchar_rtp(ushort); -uchar __ovld __cnfn convert_uchar_sat_rtp(ushort); -uchar __ovld __cnfn convert_uchar_rtn(ushort); -uchar __ovld __cnfn convert_uchar_sat_rtn(ushort); -uchar __ovld __cnfn convert_uchar(ushort); -uchar __ovld __cnfn convert_uchar_sat(ushort); -uchar __ovld __cnfn convert_uchar_rte(int); -uchar __ovld __cnfn convert_uchar_sat_rte(int); -uchar __ovld __cnfn convert_uchar_rtz(int); -uchar __ovld __cnfn convert_uchar_sat_rtz(int); -uchar __ovld __cnfn convert_uchar_rtp(int); -uchar __ovld __cnfn convert_uchar_sat_rtp(int); -uchar __ovld __cnfn convert_uchar_rtn(int); -uchar __ovld __cnfn convert_uchar_sat_rtn(int); -uchar __ovld __cnfn convert_uchar(int); -uchar __ovld __cnfn convert_uchar_sat(int); -uchar __ovld __cnfn convert_uchar_rte(uint); -uchar __ovld __cnfn convert_uchar_sat_rte(uint); -uchar __ovld __cnfn convert_uchar_rtz(uint); -uchar __ovld __cnfn convert_uchar_sat_rtz(uint); -uchar __ovld __cnfn convert_uchar_rtp(uint); -uchar __ovld __cnfn convert_uchar_sat_rtp(uint); -uchar __ovld __cnfn convert_uchar_rtn(uint); -uchar __ovld __cnfn convert_uchar_sat_rtn(uint); -uchar __ovld __cnfn convert_uchar(uint); -uchar __ovld __cnfn convert_uchar_sat(uint); -uchar __ovld __cnfn convert_uchar_rte(long); -uchar __ovld __cnfn convert_uchar_sat_rte(long); -uchar __ovld __cnfn convert_uchar_rtz(long); -uchar __ovld __cnfn convert_uchar_sat_rtz(long); -uchar __ovld __cnfn convert_uchar_rtp(long); -uchar __ovld __cnfn convert_uchar_sat_rtp(long); -uchar __ovld __cnfn convert_uchar_rtn(long); -uchar __ovld __cnfn convert_uchar_sat_rtn(long); -uchar __ovld __cnfn convert_uchar(long); -uchar __ovld __cnfn convert_uchar_sat(long); -uchar __ovld __cnfn convert_uchar_rte(ulong); -uchar __ovld __cnfn convert_uchar_sat_rte(ulong); -uchar __ovld __cnfn convert_uchar_rtz(ulong); -uchar __ovld __cnfn convert_uchar_sat_rtz(ulong); -uchar __ovld __cnfn convert_uchar_rtp(ulong); -uchar __ovld __cnfn convert_uchar_sat_rtp(ulong); -uchar __ovld __cnfn convert_uchar_rtn(ulong); -uchar __ovld __cnfn convert_uchar_sat_rtn(ulong); -uchar __ovld __cnfn convert_uchar(ulong); -uchar __ovld __cnfn convert_uchar_sat(ulong); -uchar __ovld __cnfn convert_uchar_rte(float); -uchar __ovld __cnfn convert_uchar_sat_rte(float); -uchar __ovld __cnfn convert_uchar_rtz(float); -uchar __ovld __cnfn convert_uchar_sat_rtz(float); -uchar __ovld __cnfn convert_uchar_rtp(float); -uchar __ovld __cnfn convert_uchar_sat_rtp(float); -uchar __ovld __cnfn convert_uchar_rtn(float); -uchar __ovld __cnfn convert_uchar_sat_rtn(float); -uchar __ovld __cnfn convert_uchar(float); -uchar __ovld __cnfn convert_uchar_sat(float); - -short __ovld __cnfn convert_short_rte(char); -short __ovld __cnfn convert_short_sat_rte(char); -short __ovld __cnfn convert_short_rtz(char); -short __ovld __cnfn convert_short_sat_rtz(char); -short __ovld __cnfn convert_short_rtp(char); -short __ovld __cnfn convert_short_sat_rtp(char); -short __ovld __cnfn convert_short_rtn(char); -short __ovld __cnfn convert_short_sat_rtn(char); -short __ovld __cnfn convert_short(char); -short __ovld __cnfn convert_short_sat(char); -short __ovld __cnfn convert_short_rte(uchar); -short __ovld __cnfn convert_short_sat_rte(uchar); -short __ovld __cnfn convert_short_rtz(uchar); -short __ovld __cnfn convert_short_sat_rtz(uchar); -short __ovld __cnfn convert_short_rtp(uchar); -short __ovld __cnfn convert_short_sat_rtp(uchar); -short __ovld __cnfn convert_short_rtn(uchar); -short __ovld __cnfn convert_short_sat_rtn(uchar); -short __ovld __cnfn convert_short(uchar); -short __ovld __cnfn convert_short_sat(uchar); -short __ovld __cnfn convert_short_rte(short); -short __ovld __cnfn convert_short_sat_rte(short); -short __ovld __cnfn convert_short_rtz(short); -short __ovld __cnfn convert_short_sat_rtz(short); -short __ovld __cnfn convert_short_rtp(short); -short __ovld __cnfn convert_short_sat_rtp(short); -short __ovld __cnfn convert_short_rtn(short); -short __ovld __cnfn convert_short_sat_rtn(short); -short __ovld __cnfn convert_short(short); -short __ovld __cnfn convert_short_sat(short); -short __ovld __cnfn convert_short_rte(ushort); -short __ovld __cnfn convert_short_sat_rte(ushort); -short __ovld __cnfn convert_short_rtz(ushort); -short __ovld __cnfn convert_short_sat_rtz(ushort); -short __ovld __cnfn convert_short_rtp(ushort); -short __ovld __cnfn convert_short_sat_rtp(ushort); -short __ovld __cnfn convert_short_rtn(ushort); -short __ovld __cnfn convert_short_sat_rtn(ushort); -short __ovld __cnfn convert_short(ushort); -short __ovld __cnfn convert_short_sat(ushort); -short __ovld __cnfn convert_short_rte(int); -short __ovld __cnfn convert_short_sat_rte(int); -short __ovld __cnfn convert_short_rtz(int); -short __ovld __cnfn convert_short_sat_rtz(int); -short __ovld __cnfn convert_short_rtp(int); -short __ovld __cnfn convert_short_sat_rtp(int); -short __ovld __cnfn convert_short_rtn(int); -short __ovld __cnfn convert_short_sat_rtn(int); -short __ovld __cnfn convert_short(int); -short __ovld __cnfn convert_short_sat(int); -short __ovld __cnfn convert_short_rte(uint); -short __ovld __cnfn convert_short_sat_rte(uint); -short __ovld __cnfn convert_short_rtz(uint); -short __ovld __cnfn convert_short_sat_rtz(uint); -short __ovld __cnfn convert_short_rtp(uint); -short __ovld __cnfn convert_short_sat_rtp(uint); -short __ovld __cnfn convert_short_rtn(uint); -short __ovld __cnfn convert_short_sat_rtn(uint); -short __ovld __cnfn convert_short(uint); -short __ovld __cnfn convert_short_sat(uint); -short __ovld __cnfn convert_short_rte(long); -short __ovld __cnfn convert_short_sat_rte(long); -short __ovld __cnfn convert_short_rtz(long); -short __ovld __cnfn convert_short_sat_rtz(long); -short __ovld __cnfn convert_short_rtp(long); -short __ovld __cnfn convert_short_sat_rtp(long); -short __ovld __cnfn convert_short_rtn(long); -short __ovld __cnfn convert_short_sat_rtn(long); -short __ovld __cnfn convert_short(long); -short __ovld __cnfn convert_short_sat(long); -short __ovld __cnfn convert_short_rte(ulong); -short __ovld __cnfn convert_short_sat_rte(ulong); -short __ovld __cnfn convert_short_rtz(ulong); -short __ovld __cnfn convert_short_sat_rtz(ulong); -short __ovld __cnfn convert_short_rtp(ulong); -short __ovld __cnfn convert_short_sat_rtp(ulong); -short __ovld __cnfn convert_short_rtn(ulong); -short __ovld __cnfn convert_short_sat_rtn(ulong); -short __ovld __cnfn convert_short(ulong); -short __ovld __cnfn convert_short_sat(ulong); -short __ovld __cnfn convert_short_rte(float); -short __ovld __cnfn convert_short_sat_rte(float); -short __ovld __cnfn convert_short_rtz(float); -short __ovld __cnfn convert_short_sat_rtz(float); -short __ovld __cnfn convert_short_rtp(float); -short __ovld __cnfn convert_short_sat_rtp(float); -short __ovld __cnfn convert_short_rtn(float); -short __ovld __cnfn convert_short_sat_rtn(float); -short __ovld __cnfn convert_short(float); -short __ovld __cnfn convert_short_sat(float); -ushort __ovld __cnfn convert_ushort_rte(char); -ushort __ovld __cnfn convert_ushort_sat_rte(char); -ushort __ovld __cnfn convert_ushort_rtz(char); -ushort __ovld __cnfn convert_ushort_sat_rtz(char); -ushort __ovld __cnfn convert_ushort_rtp(char); -ushort __ovld __cnfn convert_ushort_sat_rtp(char); -ushort __ovld __cnfn convert_ushort_rtn(char); -ushort __ovld __cnfn convert_ushort_sat_rtn(char); -ushort __ovld __cnfn convert_ushort(char); -ushort __ovld __cnfn convert_ushort_sat(char); -ushort __ovld __cnfn convert_ushort_rte(uchar); -ushort __ovld __cnfn convert_ushort_sat_rte(uchar); -ushort __ovld __cnfn convert_ushort_rtz(uchar); -ushort __ovld __cnfn convert_ushort_sat_rtz(uchar); -ushort __ovld __cnfn convert_ushort_rtp(uchar); -ushort __ovld __cnfn convert_ushort_sat_rtp(uchar); -ushort __ovld __cnfn convert_ushort_rtn(uchar); -ushort __ovld __cnfn convert_ushort_sat_rtn(uchar); -ushort __ovld __cnfn convert_ushort(uchar); -ushort __ovld __cnfn convert_ushort_sat(uchar); -ushort __ovld __cnfn convert_ushort_rte(short); -ushort __ovld __cnfn convert_ushort_sat_rte(short); -ushort __ovld __cnfn convert_ushort_rtz(short); -ushort __ovld __cnfn convert_ushort_sat_rtz(short); -ushort __ovld __cnfn convert_ushort_rtp(short); -ushort __ovld __cnfn convert_ushort_sat_rtp(short); -ushort __ovld __cnfn convert_ushort_rtn(short); -ushort __ovld __cnfn convert_ushort_sat_rtn(short); -ushort __ovld __cnfn convert_ushort(short); -ushort __ovld __cnfn convert_ushort_sat(short); -ushort __ovld __cnfn convert_ushort_rte(ushort); -ushort __ovld __cnfn convert_ushort_sat_rte(ushort); -ushort __ovld __cnfn convert_ushort_rtz(ushort); -ushort __ovld __cnfn convert_ushort_sat_rtz(ushort); -ushort __ovld __cnfn convert_ushort_rtp(ushort); -ushort __ovld __cnfn convert_ushort_sat_rtp(ushort); -ushort __ovld __cnfn convert_ushort_rtn(ushort); -ushort __ovld __cnfn convert_ushort_sat_rtn(ushort); -ushort __ovld __cnfn convert_ushort(ushort); -ushort __ovld __cnfn convert_ushort_sat(ushort); -ushort __ovld __cnfn convert_ushort_rte(int); -ushort __ovld __cnfn convert_ushort_sat_rte(int); -ushort __ovld __cnfn convert_ushort_rtz(int); -ushort __ovld __cnfn convert_ushort_sat_rtz(int); -ushort __ovld __cnfn convert_ushort_rtp(int); -ushort __ovld __cnfn convert_ushort_sat_rtp(int); -ushort __ovld __cnfn convert_ushort_rtn(int); -ushort __ovld __cnfn convert_ushort_sat_rtn(int); -ushort __ovld __cnfn convert_ushort(int); -ushort __ovld __cnfn convert_ushort_sat(int); -ushort __ovld __cnfn convert_ushort_rte(uint); -ushort __ovld __cnfn convert_ushort_sat_rte(uint); -ushort __ovld __cnfn convert_ushort_rtz(uint); -ushort __ovld __cnfn convert_ushort_sat_rtz(uint); -ushort __ovld __cnfn convert_ushort_rtp(uint); -ushort __ovld __cnfn convert_ushort_sat_rtp(uint); -ushort __ovld __cnfn convert_ushort_rtn(uint); -ushort __ovld __cnfn convert_ushort_sat_rtn(uint); -ushort __ovld __cnfn convert_ushort(uint); -ushort __ovld __cnfn convert_ushort_sat(uint); -ushort __ovld __cnfn convert_ushort_rte(long); -ushort __ovld __cnfn convert_ushort_sat_rte(long); -ushort __ovld __cnfn convert_ushort_rtz(long); -ushort __ovld __cnfn convert_ushort_sat_rtz(long); -ushort __ovld __cnfn convert_ushort_rtp(long); -ushort __ovld __cnfn convert_ushort_sat_rtp(long); -ushort __ovld __cnfn convert_ushort_rtn(long); -ushort __ovld __cnfn convert_ushort_sat_rtn(long); -ushort __ovld __cnfn convert_ushort(long); -ushort __ovld __cnfn convert_ushort_sat(long); -ushort __ovld __cnfn convert_ushort_rte(ulong); -ushort __ovld __cnfn convert_ushort_sat_rte(ulong); -ushort __ovld __cnfn convert_ushort_rtz(ulong); -ushort __ovld __cnfn convert_ushort_sat_rtz(ulong); -ushort __ovld __cnfn convert_ushort_rtp(ulong); -ushort __ovld __cnfn convert_ushort_sat_rtp(ulong); -ushort __ovld __cnfn convert_ushort_rtn(ulong); -ushort __ovld __cnfn convert_ushort_sat_rtn(ulong); -ushort __ovld __cnfn convert_ushort(ulong); -ushort __ovld __cnfn convert_ushort_sat(ulong); -ushort __ovld __cnfn convert_ushort_rte(float); -ushort __ovld __cnfn convert_ushort_sat_rte(float); -ushort __ovld __cnfn convert_ushort_rtz(float); -ushort __ovld __cnfn convert_ushort_sat_rtz(float); -ushort __ovld __cnfn convert_ushort_rtp(float); -ushort __ovld __cnfn convert_ushort_sat_rtp(float); -ushort __ovld __cnfn convert_ushort_rtn(float); -ushort __ovld __cnfn convert_ushort_sat_rtn(float); -ushort __ovld __cnfn convert_ushort(float); -ushort __ovld __cnfn convert_ushort_sat(float); -int __ovld __cnfn convert_int_rte(char); -int __ovld __cnfn convert_int_sat_rte(char); -int __ovld __cnfn convert_int_rtz(char); -int __ovld __cnfn convert_int_sat_rtz(char); -int __ovld __cnfn convert_int_rtp(char); -int __ovld __cnfn convert_int_sat_rtp(char); -int __ovld __cnfn convert_int_rtn(char); -int __ovld __cnfn convert_int_sat_rtn(char); -int __ovld __cnfn convert_int(char); -int __ovld __cnfn convert_int_sat(char); -int __ovld __cnfn convert_int_rte(uchar); -int __ovld __cnfn convert_int_sat_rte(uchar); -int __ovld __cnfn convert_int_rtz(uchar); -int __ovld __cnfn convert_int_sat_rtz(uchar); -int __ovld __cnfn convert_int_rtp(uchar); -int __ovld __cnfn convert_int_sat_rtp(uchar); -int __ovld __cnfn convert_int_rtn(uchar); -int __ovld __cnfn convert_int_sat_rtn(uchar); -int __ovld __cnfn convert_int(uchar); -int __ovld __cnfn convert_int_sat(uchar); -int __ovld __cnfn convert_int_rte(short); -int __ovld __cnfn convert_int_sat_rte(short); -int __ovld __cnfn convert_int_rtz(short); -int __ovld __cnfn convert_int_sat_rtz(short); -int __ovld __cnfn convert_int_rtp(short); -int __ovld __cnfn convert_int_sat_rtp(short); -int __ovld __cnfn convert_int_rtn(short); -int __ovld __cnfn convert_int_sat_rtn(short); -int __ovld __cnfn convert_int(short); -int __ovld __cnfn convert_int_sat(short); -int __ovld __cnfn convert_int_rte(ushort); -int __ovld __cnfn convert_int_sat_rte(ushort); -int __ovld __cnfn convert_int_rtz(ushort); -int __ovld __cnfn convert_int_sat_rtz(ushort); -int __ovld __cnfn convert_int_rtp(ushort); -int __ovld __cnfn convert_int_sat_rtp(ushort); -int __ovld __cnfn convert_int_rtn(ushort); -int __ovld __cnfn convert_int_sat_rtn(ushort); -int __ovld __cnfn convert_int(ushort); -int __ovld __cnfn convert_int_sat(ushort); -int __ovld __cnfn convert_int_rte(int); -int __ovld __cnfn convert_int_sat_rte(int); -int __ovld __cnfn convert_int_rtz(int); -int __ovld __cnfn convert_int_sat_rtz(int); -int __ovld __cnfn convert_int_rtp(int); -int __ovld __cnfn convert_int_sat_rtp(int); -int __ovld __cnfn convert_int_rtn(int); -int __ovld __cnfn convert_int_sat_rtn(int); -int __ovld __cnfn convert_int(int); -int __ovld __cnfn convert_int_sat(int); -int __ovld __cnfn convert_int_rte(uint); -int __ovld __cnfn convert_int_sat_rte(uint); -int __ovld __cnfn convert_int_rtz(uint); -int __ovld __cnfn convert_int_sat_rtz(uint); -int __ovld __cnfn convert_int_rtp(uint); -int __ovld __cnfn convert_int_sat_rtp(uint); -int __ovld __cnfn convert_int_rtn(uint); -int __ovld __cnfn convert_int_sat_rtn(uint); -int __ovld __cnfn convert_int(uint); -int __ovld __cnfn convert_int_sat(uint); -int __ovld __cnfn convert_int_rte(long); -int __ovld __cnfn convert_int_sat_rte(long); -int __ovld __cnfn convert_int_rtz(long); -int __ovld __cnfn convert_int_sat_rtz(long); -int __ovld __cnfn convert_int_rtp(long); -int __ovld __cnfn convert_int_sat_rtp(long); -int __ovld __cnfn convert_int_rtn(long); -int __ovld __cnfn convert_int_sat_rtn(long); -int __ovld __cnfn convert_int(long); -int __ovld __cnfn convert_int_sat(long); -int __ovld __cnfn convert_int_rte(ulong); -int __ovld __cnfn convert_int_sat_rte(ulong); -int __ovld __cnfn convert_int_rtz(ulong); -int __ovld __cnfn convert_int_sat_rtz(ulong); -int __ovld __cnfn convert_int_rtp(ulong); -int __ovld __cnfn convert_int_sat_rtp(ulong); -int __ovld __cnfn convert_int_rtn(ulong); -int __ovld __cnfn convert_int_sat_rtn(ulong); -int __ovld __cnfn convert_int(ulong); -int __ovld __cnfn convert_int_sat(ulong); -int __ovld __cnfn convert_int_rte(float); -int __ovld __cnfn convert_int_sat_rte(float); -int __ovld __cnfn convert_int_rtz(float); -int __ovld __cnfn convert_int_sat_rtz(float); -int __ovld __cnfn convert_int_rtp(float); -int __ovld __cnfn convert_int_sat_rtp(float); -int __ovld __cnfn convert_int_rtn(float); -int __ovld __cnfn convert_int_sat_rtn(float); -int __ovld __cnfn convert_int(float); -int __ovld __cnfn convert_int_sat(float); -uint __ovld __cnfn convert_uint_rte(char); -uint __ovld __cnfn convert_uint_sat_rte(char); -uint __ovld __cnfn convert_uint_rtz(char); -uint __ovld __cnfn convert_uint_sat_rtz(char); -uint __ovld __cnfn convert_uint_rtp(char); -uint __ovld __cnfn convert_uint_sat_rtp(char); -uint __ovld __cnfn convert_uint_rtn(char); -uint __ovld __cnfn convert_uint_sat_rtn(char); -uint __ovld __cnfn convert_uint(char); -uint __ovld __cnfn convert_uint_sat(char); -uint __ovld __cnfn convert_uint_rte(uchar); -uint __ovld __cnfn convert_uint_sat_rte(uchar); -uint __ovld __cnfn convert_uint_rtz(uchar); -uint __ovld __cnfn convert_uint_sat_rtz(uchar); -uint __ovld __cnfn convert_uint_rtp(uchar); -uint __ovld __cnfn convert_uint_sat_rtp(uchar); -uint __ovld __cnfn convert_uint_rtn(uchar); -uint __ovld __cnfn convert_uint_sat_rtn(uchar); -uint __ovld __cnfn convert_uint(uchar); -uint __ovld __cnfn convert_uint_sat(uchar); -uint __ovld __cnfn convert_uint_rte(short); -uint __ovld __cnfn convert_uint_sat_rte(short); -uint __ovld __cnfn convert_uint_rtz(short); -uint __ovld __cnfn convert_uint_sat_rtz(short); -uint __ovld __cnfn convert_uint_rtp(short); -uint __ovld __cnfn convert_uint_sat_rtp(short); -uint __ovld __cnfn convert_uint_rtn(short); -uint __ovld __cnfn convert_uint_sat_rtn(short); -uint __ovld __cnfn convert_uint(short); -uint __ovld __cnfn convert_uint_sat(short); -uint __ovld __cnfn convert_uint_rte(ushort); -uint __ovld __cnfn convert_uint_sat_rte(ushort); -uint __ovld __cnfn convert_uint_rtz(ushort); -uint __ovld __cnfn convert_uint_sat_rtz(ushort); -uint __ovld __cnfn convert_uint_rtp(ushort); -uint __ovld __cnfn convert_uint_sat_rtp(ushort); -uint __ovld __cnfn convert_uint_rtn(ushort); -uint __ovld __cnfn convert_uint_sat_rtn(ushort); -uint __ovld __cnfn convert_uint(ushort); -uint __ovld __cnfn convert_uint_sat(ushort); -uint __ovld __cnfn convert_uint_rte(int); -uint __ovld __cnfn convert_uint_sat_rte(int); -uint __ovld __cnfn convert_uint_rtz(int); -uint __ovld __cnfn convert_uint_sat_rtz(int); -uint __ovld __cnfn convert_uint_rtp(int); -uint __ovld __cnfn convert_uint_sat_rtp(int); -uint __ovld __cnfn convert_uint_rtn(int); -uint __ovld __cnfn convert_uint_sat_rtn(int); -uint __ovld __cnfn convert_uint(int); -uint __ovld __cnfn convert_uint_sat(int); -uint __ovld __cnfn convert_uint_rte(uint); -uint __ovld __cnfn convert_uint_sat_rte(uint); -uint __ovld __cnfn convert_uint_rtz(uint); -uint __ovld __cnfn convert_uint_sat_rtz(uint); -uint __ovld __cnfn convert_uint_rtp(uint); -uint __ovld __cnfn convert_uint_sat_rtp(uint); -uint __ovld __cnfn convert_uint_rtn(uint); -uint __ovld __cnfn convert_uint_sat_rtn(uint); -uint __ovld __cnfn convert_uint(uint); -uint __ovld __cnfn convert_uint_sat(uint); -uint __ovld __cnfn convert_uint_rte(long); -uint __ovld __cnfn convert_uint_sat_rte(long); -uint __ovld __cnfn convert_uint_rtz(long); -uint __ovld __cnfn convert_uint_sat_rtz(long); -uint __ovld __cnfn convert_uint_rtp(long); -uint __ovld __cnfn convert_uint_sat_rtp(long); -uint __ovld __cnfn convert_uint_rtn(long); -uint __ovld __cnfn convert_uint_sat_rtn(long); -uint __ovld __cnfn convert_uint(long); -uint __ovld __cnfn convert_uint_sat(long); -uint __ovld __cnfn convert_uint_rte(ulong); -uint __ovld __cnfn convert_uint_sat_rte(ulong); -uint __ovld __cnfn convert_uint_rtz(ulong); -uint __ovld __cnfn convert_uint_sat_rtz(ulong); -uint __ovld __cnfn convert_uint_rtp(ulong); -uint __ovld __cnfn convert_uint_sat_rtp(ulong); -uint __ovld __cnfn convert_uint_rtn(ulong); -uint __ovld __cnfn convert_uint_sat_rtn(ulong); -uint __ovld __cnfn convert_uint(ulong); -uint __ovld __cnfn convert_uint_sat(ulong); -uint __ovld __cnfn convert_uint_rte(float); -uint __ovld __cnfn convert_uint_sat_rte(float); -uint __ovld __cnfn convert_uint_rtz(float); -uint __ovld __cnfn convert_uint_sat_rtz(float); -uint __ovld __cnfn convert_uint_rtp(float); -uint __ovld __cnfn convert_uint_sat_rtp(float); -uint __ovld __cnfn convert_uint_rtn(float); -uint __ovld __cnfn convert_uint_sat_rtn(float); -uint __ovld __cnfn convert_uint(float); -uint __ovld __cnfn convert_uint_sat(float); -long __ovld __cnfn convert_long_rte(char); -long __ovld __cnfn convert_long_sat_rte(char); -long __ovld __cnfn convert_long_rtz(char); -long __ovld __cnfn convert_long_sat_rtz(char); -long __ovld __cnfn convert_long_rtp(char); -long __ovld __cnfn convert_long_sat_rtp(char); -long __ovld __cnfn convert_long_rtn(char); -long __ovld __cnfn convert_long_sat_rtn(char); -long __ovld __cnfn convert_long(char); -long __ovld __cnfn convert_long_sat(char); -long __ovld __cnfn convert_long_rte(uchar); -long __ovld __cnfn convert_long_sat_rte(uchar); -long __ovld __cnfn convert_long_rtz(uchar); -long __ovld __cnfn convert_long_sat_rtz(uchar); -long __ovld __cnfn convert_long_rtp(uchar); -long __ovld __cnfn convert_long_sat_rtp(uchar); -long __ovld __cnfn convert_long_rtn(uchar); -long __ovld __cnfn convert_long_sat_rtn(uchar); -long __ovld __cnfn convert_long(uchar); -long __ovld __cnfn convert_long_sat(uchar); -long __ovld __cnfn convert_long_rte(short); -long __ovld __cnfn convert_long_sat_rte(short); -long __ovld __cnfn convert_long_rtz(short); -long __ovld __cnfn convert_long_sat_rtz(short); -long __ovld __cnfn convert_long_rtp(short); -long __ovld __cnfn convert_long_sat_rtp(short); -long __ovld __cnfn convert_long_rtn(short); -long __ovld __cnfn convert_long_sat_rtn(short); -long __ovld __cnfn convert_long(short); -long __ovld __cnfn convert_long_sat(short); -long __ovld __cnfn convert_long_rte(ushort); -long __ovld __cnfn convert_long_sat_rte(ushort); -long __ovld __cnfn convert_long_rtz(ushort); -long __ovld __cnfn convert_long_sat_rtz(ushort); -long __ovld __cnfn convert_long_rtp(ushort); -long __ovld __cnfn convert_long_sat_rtp(ushort); -long __ovld __cnfn convert_long_rtn(ushort); -long __ovld __cnfn convert_long_sat_rtn(ushort); -long __ovld __cnfn convert_long(ushort); -long __ovld __cnfn convert_long_sat(ushort); -long __ovld __cnfn convert_long_rte(int); -long __ovld __cnfn convert_long_sat_rte(int); -long __ovld __cnfn convert_long_rtz(int); -long __ovld __cnfn convert_long_sat_rtz(int); -long __ovld __cnfn convert_long_rtp(int); -long __ovld __cnfn convert_long_sat_rtp(int); -long __ovld __cnfn convert_long_rtn(int); -long __ovld __cnfn convert_long_sat_rtn(int); -long __ovld __cnfn convert_long(int); -long __ovld __cnfn convert_long_sat(int); -long __ovld __cnfn convert_long_rte(uint); -long __ovld __cnfn convert_long_sat_rte(uint); -long __ovld __cnfn convert_long_rtz(uint); -long __ovld __cnfn convert_long_sat_rtz(uint); -long __ovld __cnfn convert_long_rtp(uint); -long __ovld __cnfn convert_long_sat_rtp(uint); -long __ovld __cnfn convert_long_rtn(uint); -long __ovld __cnfn convert_long_sat_rtn(uint); -long __ovld __cnfn convert_long(uint); -long __ovld __cnfn convert_long_sat(uint); -long __ovld __cnfn convert_long_rte(long); -long __ovld __cnfn convert_long_sat_rte(long); -long __ovld __cnfn convert_long_rtz(long); -long __ovld __cnfn convert_long_sat_rtz(long); -long __ovld __cnfn convert_long_rtp(long); -long __ovld __cnfn convert_long_sat_rtp(long); -long __ovld __cnfn convert_long_rtn(long); -long __ovld __cnfn convert_long_sat_rtn(long); -long __ovld __cnfn convert_long(long); -long __ovld __cnfn convert_long_sat(long); -long __ovld __cnfn convert_long_rte(ulong); -long __ovld __cnfn convert_long_sat_rte(ulong); -long __ovld __cnfn convert_long_rtz(ulong); -long __ovld __cnfn convert_long_sat_rtz(ulong); -long __ovld __cnfn convert_long_rtp(ulong); -long __ovld __cnfn convert_long_sat_rtp(ulong); -long __ovld __cnfn convert_long_rtn(ulong); -long __ovld __cnfn convert_long_sat_rtn(ulong); -long __ovld __cnfn convert_long(ulong); -long __ovld __cnfn convert_long_sat(ulong); -long __ovld __cnfn convert_long_rte(float); -long __ovld __cnfn convert_long_sat_rte(float); -long __ovld __cnfn convert_long_rtz(float); -long __ovld __cnfn convert_long_sat_rtz(float); -long __ovld __cnfn convert_long_rtp(float); -long __ovld __cnfn convert_long_sat_rtp(float); -long __ovld __cnfn convert_long_rtn(float); -long __ovld __cnfn convert_long_sat_rtn(float); -long __ovld __cnfn convert_long(float); -long __ovld __cnfn convert_long_sat(float); -ulong __ovld __cnfn convert_ulong_rte(char); -ulong __ovld __cnfn convert_ulong_sat_rte(char); -ulong __ovld __cnfn convert_ulong_rtz(char); -ulong __ovld __cnfn convert_ulong_sat_rtz(char); -ulong __ovld __cnfn convert_ulong_rtp(char); -ulong __ovld __cnfn convert_ulong_sat_rtp(char); -ulong __ovld __cnfn convert_ulong_rtn(char); -ulong __ovld __cnfn convert_ulong_sat_rtn(char); -ulong __ovld __cnfn convert_ulong(char); -ulong __ovld __cnfn convert_ulong_sat(char); -ulong __ovld __cnfn convert_ulong_rte(uchar); -ulong __ovld __cnfn convert_ulong_sat_rte(uchar); -ulong __ovld __cnfn convert_ulong_rtz(uchar); -ulong __ovld __cnfn convert_ulong_sat_rtz(uchar); -ulong __ovld __cnfn convert_ulong_rtp(uchar); -ulong __ovld __cnfn convert_ulong_sat_rtp(uchar); -ulong __ovld __cnfn convert_ulong_rtn(uchar); -ulong __ovld __cnfn convert_ulong_sat_rtn(uchar); -ulong __ovld __cnfn convert_ulong(uchar); -ulong __ovld __cnfn convert_ulong_sat(uchar); -ulong __ovld __cnfn convert_ulong_rte(short); -ulong __ovld __cnfn convert_ulong_sat_rte(short); -ulong __ovld __cnfn convert_ulong_rtz(short); -ulong __ovld __cnfn convert_ulong_sat_rtz(short); -ulong __ovld __cnfn convert_ulong_rtp(short); -ulong __ovld __cnfn convert_ulong_sat_rtp(short); -ulong __ovld __cnfn convert_ulong_rtn(short); -ulong __ovld __cnfn convert_ulong_sat_rtn(short); -ulong __ovld __cnfn convert_ulong(short); -ulong __ovld __cnfn convert_ulong_sat(short); -ulong __ovld __cnfn convert_ulong_rte(ushort); -ulong __ovld __cnfn convert_ulong_sat_rte(ushort); -ulong __ovld __cnfn convert_ulong_rtz(ushort); -ulong __ovld __cnfn convert_ulong_sat_rtz(ushort); -ulong __ovld __cnfn convert_ulong_rtp(ushort); -ulong __ovld __cnfn convert_ulong_sat_rtp(ushort); -ulong __ovld __cnfn convert_ulong_rtn(ushort); -ulong __ovld __cnfn convert_ulong_sat_rtn(ushort); -ulong __ovld __cnfn convert_ulong(ushort); -ulong __ovld __cnfn convert_ulong_sat(ushort); -ulong __ovld __cnfn convert_ulong_rte(int); -ulong __ovld __cnfn convert_ulong_sat_rte(int); -ulong __ovld __cnfn convert_ulong_rtz(int); -ulong __ovld __cnfn convert_ulong_sat_rtz(int); -ulong __ovld __cnfn convert_ulong_rtp(int); -ulong __ovld __cnfn convert_ulong_sat_rtp(int); -ulong __ovld __cnfn convert_ulong_rtn(int); -ulong __ovld __cnfn convert_ulong_sat_rtn(int); -ulong __ovld __cnfn convert_ulong(int); -ulong __ovld __cnfn convert_ulong_sat(int); -ulong __ovld __cnfn convert_ulong_rte(uint); -ulong __ovld __cnfn convert_ulong_sat_rte(uint); -ulong __ovld __cnfn convert_ulong_rtz(uint); -ulong __ovld __cnfn convert_ulong_sat_rtz(uint); -ulong __ovld __cnfn convert_ulong_rtp(uint); -ulong __ovld __cnfn convert_ulong_sat_rtp(uint); -ulong __ovld __cnfn convert_ulong_rtn(uint); -ulong __ovld __cnfn convert_ulong_sat_rtn(uint); -ulong __ovld __cnfn convert_ulong(uint); -ulong __ovld __cnfn convert_ulong_sat(uint); -ulong __ovld __cnfn convert_ulong_rte(long); -ulong __ovld __cnfn convert_ulong_sat_rte(long); -ulong __ovld __cnfn convert_ulong_rtz(long); -ulong __ovld __cnfn convert_ulong_sat_rtz(long); -ulong __ovld __cnfn convert_ulong_rtp(long); -ulong __ovld __cnfn convert_ulong_sat_rtp(long); -ulong __ovld __cnfn convert_ulong_rtn(long); -ulong __ovld __cnfn convert_ulong_sat_rtn(long); -ulong __ovld __cnfn convert_ulong(long); -ulong __ovld __cnfn convert_ulong_sat(long); -ulong __ovld __cnfn convert_ulong_rte(ulong); -ulong __ovld __cnfn convert_ulong_sat_rte(ulong); -ulong __ovld __cnfn convert_ulong_rtz(ulong); -ulong __ovld __cnfn convert_ulong_sat_rtz(ulong); -ulong __ovld __cnfn convert_ulong_rtp(ulong); -ulong __ovld __cnfn convert_ulong_sat_rtp(ulong); -ulong __ovld __cnfn convert_ulong_rtn(ulong); -ulong __ovld __cnfn convert_ulong_sat_rtn(ulong); -ulong __ovld __cnfn convert_ulong(ulong); -ulong __ovld __cnfn convert_ulong_sat(ulong); -ulong __ovld __cnfn convert_ulong_rte(float); -ulong __ovld __cnfn convert_ulong_sat_rte(float); -ulong __ovld __cnfn convert_ulong_rtz(float); -ulong __ovld __cnfn convert_ulong_sat_rtz(float); -ulong __ovld __cnfn convert_ulong_rtp(float); -ulong __ovld __cnfn convert_ulong_sat_rtp(float); -ulong __ovld __cnfn convert_ulong_rtn(float); -ulong __ovld __cnfn convert_ulong_sat_rtn(float); -ulong __ovld __cnfn convert_ulong(float); -ulong __ovld __cnfn convert_ulong_sat(float); -float __ovld __cnfn convert_float_rte(char); -float __ovld __cnfn convert_float_rtz(char); -float __ovld __cnfn convert_float_rtp(char); -float __ovld __cnfn convert_float_rtn(char); -float __ovld __cnfn convert_float(char); -float __ovld __cnfn convert_float_rte(uchar); -float __ovld __cnfn convert_float_rtz(uchar); -float __ovld __cnfn convert_float_rtp(uchar); -float __ovld __cnfn convert_float_rtn(uchar); -float __ovld __cnfn convert_float(uchar); -float __ovld __cnfn convert_float_rte(short); -float __ovld __cnfn convert_float_rtz(short); -float __ovld __cnfn convert_float_rtp(short); -float __ovld __cnfn convert_float_rtn(short); -float __ovld __cnfn convert_float(short); -float __ovld __cnfn convert_float_rte(ushort); -float __ovld __cnfn convert_float_rtz(ushort); -float __ovld __cnfn convert_float_rtp(ushort); -float __ovld __cnfn convert_float_rtn(ushort); -float __ovld __cnfn convert_float(ushort); -float __ovld __cnfn convert_float_rte(int); -float __ovld __cnfn convert_float_rtz(int); -float __ovld __cnfn convert_float_rtp(int); -float __ovld __cnfn convert_float_rtn(int); -float __ovld __cnfn convert_float(int); -float __ovld __cnfn convert_float_rte(uint); -float __ovld __cnfn convert_float_rtz(uint); -float __ovld __cnfn convert_float_rtp(uint); -float __ovld __cnfn convert_float_rtn(uint); -float __ovld __cnfn convert_float(uint); -float __ovld __cnfn convert_float_rte(long); -float __ovld __cnfn convert_float_rtz(long); -float __ovld __cnfn convert_float_rtp(long); -float __ovld __cnfn convert_float_rtn(long); -float __ovld __cnfn convert_float(long); -float __ovld __cnfn convert_float_rte(ulong); -float __ovld __cnfn convert_float_rtz(ulong); -float __ovld __cnfn convert_float_rtp(ulong); -float __ovld __cnfn convert_float_rtn(ulong); -float __ovld __cnfn convert_float(ulong); -float __ovld __cnfn convert_float_rte(float); -float __ovld __cnfn convert_float_rtz(float); -float __ovld __cnfn convert_float_rtp(float); -float __ovld __cnfn convert_float_rtn(float); -float __ovld __cnfn convert_float(float); -char2 __ovld __cnfn convert_char2_rte(char2); -char2 __ovld __cnfn convert_char2_sat_rte(char2); -char2 __ovld __cnfn convert_char2_rtz(char2); -char2 __ovld __cnfn convert_char2_sat_rtz(char2); -char2 __ovld __cnfn convert_char2_rtp(char2); -char2 __ovld __cnfn convert_char2_sat_rtp(char2); -char2 __ovld __cnfn convert_char2_rtn(char2); -char2 __ovld __cnfn convert_char2_sat_rtn(char2); -char2 __ovld __cnfn convert_char2(char2); -char2 __ovld __cnfn convert_char2_sat(char2); -char2 __ovld __cnfn convert_char2_rte(uchar2); -char2 __ovld __cnfn convert_char2_sat_rte(uchar2); -char2 __ovld __cnfn convert_char2_rtz(uchar2); -char2 __ovld __cnfn convert_char2_sat_rtz(uchar2); -char2 __ovld __cnfn convert_char2_rtp(uchar2); -char2 __ovld __cnfn convert_char2_sat_rtp(uchar2); -char2 __ovld __cnfn convert_char2_rtn(uchar2); -char2 __ovld __cnfn convert_char2_sat_rtn(uchar2); -char2 __ovld __cnfn convert_char2(uchar2); -char2 __ovld __cnfn convert_char2_sat(uchar2); -char2 __ovld __cnfn convert_char2_rte(short2); -char2 __ovld __cnfn convert_char2_sat_rte(short2); -char2 __ovld __cnfn convert_char2_rtz(short2); -char2 __ovld __cnfn convert_char2_sat_rtz(short2); -char2 __ovld __cnfn convert_char2_rtp(short2); -char2 __ovld __cnfn convert_char2_sat_rtp(short2); -char2 __ovld __cnfn convert_char2_rtn(short2); -char2 __ovld __cnfn convert_char2_sat_rtn(short2); -char2 __ovld __cnfn convert_char2(short2); -char2 __ovld __cnfn convert_char2_sat(short2); -char2 __ovld __cnfn convert_char2_rte(ushort2); -char2 __ovld __cnfn convert_char2_sat_rte(ushort2); -char2 __ovld __cnfn convert_char2_rtz(ushort2); -char2 __ovld __cnfn convert_char2_sat_rtz(ushort2); -char2 __ovld __cnfn convert_char2_rtp(ushort2); -char2 __ovld __cnfn convert_char2_sat_rtp(ushort2); -char2 __ovld __cnfn convert_char2_rtn(ushort2); -char2 __ovld __cnfn convert_char2_sat_rtn(ushort2); -char2 __ovld __cnfn convert_char2(ushort2); -char2 __ovld __cnfn convert_char2_sat(ushort2); -char2 __ovld __cnfn convert_char2_rte(int2); -char2 __ovld __cnfn convert_char2_sat_rte(int2); -char2 __ovld __cnfn convert_char2_rtz(int2); -char2 __ovld __cnfn convert_char2_sat_rtz(int2); -char2 __ovld __cnfn convert_char2_rtp(int2); -char2 __ovld __cnfn convert_char2_sat_rtp(int2); -char2 __ovld __cnfn convert_char2_rtn(int2); -char2 __ovld __cnfn convert_char2_sat_rtn(int2); -char2 __ovld __cnfn convert_char2(int2); -char2 __ovld __cnfn convert_char2_sat(int2); -char2 __ovld __cnfn convert_char2_rte(uint2); -char2 __ovld __cnfn convert_char2_sat_rte(uint2); -char2 __ovld __cnfn convert_char2_rtz(uint2); -char2 __ovld __cnfn convert_char2_sat_rtz(uint2); -char2 __ovld __cnfn convert_char2_rtp(uint2); -char2 __ovld __cnfn convert_char2_sat_rtp(uint2); -char2 __ovld __cnfn convert_char2_rtn(uint2); -char2 __ovld __cnfn convert_char2_sat_rtn(uint2); -char2 __ovld __cnfn convert_char2(uint2); -char2 __ovld __cnfn convert_char2_sat(uint2); -char2 __ovld __cnfn convert_char2_rte(long2); -char2 __ovld __cnfn convert_char2_sat_rte(long2); -char2 __ovld __cnfn convert_char2_rtz(long2); -char2 __ovld __cnfn convert_char2_sat_rtz(long2); -char2 __ovld __cnfn convert_char2_rtp(long2); -char2 __ovld __cnfn convert_char2_sat_rtp(long2); -char2 __ovld __cnfn convert_char2_rtn(long2); -char2 __ovld __cnfn convert_char2_sat_rtn(long2); -char2 __ovld __cnfn convert_char2(long2); -char2 __ovld __cnfn convert_char2_sat(long2); -char2 __ovld __cnfn convert_char2_rte(ulong2); -char2 __ovld __cnfn convert_char2_sat_rte(ulong2); -char2 __ovld __cnfn convert_char2_rtz(ulong2); -char2 __ovld __cnfn convert_char2_sat_rtz(ulong2); -char2 __ovld __cnfn convert_char2_rtp(ulong2); -char2 __ovld __cnfn convert_char2_sat_rtp(ulong2); -char2 __ovld __cnfn convert_char2_rtn(ulong2); -char2 __ovld __cnfn convert_char2_sat_rtn(ulong2); -char2 __ovld __cnfn convert_char2(ulong2); -char2 __ovld __cnfn convert_char2_sat(ulong2); -char2 __ovld __cnfn convert_char2_rte(float2); -char2 __ovld __cnfn convert_char2_sat_rte(float2); -char2 __ovld __cnfn convert_char2_rtz(float2); -char2 __ovld __cnfn convert_char2_sat_rtz(float2); -char2 __ovld __cnfn convert_char2_rtp(float2); -char2 __ovld __cnfn convert_char2_sat_rtp(float2); -char2 __ovld __cnfn convert_char2_rtn(float2); -char2 __ovld __cnfn convert_char2_sat_rtn(float2); -char2 __ovld __cnfn convert_char2(float2); -char2 __ovld __cnfn convert_char2_sat(float2); -uchar2 __ovld __cnfn convert_uchar2_rte(char2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(char2); -uchar2 __ovld __cnfn convert_uchar2_rtz(char2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(char2); -uchar2 __ovld __cnfn convert_uchar2_rtp(char2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(char2); -uchar2 __ovld __cnfn convert_uchar2_rtn(char2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(char2); -uchar2 __ovld __cnfn convert_uchar2(char2); -uchar2 __ovld __cnfn convert_uchar2_sat(char2); -uchar2 __ovld __cnfn convert_uchar2_rte(uchar2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(uchar2); -uchar2 __ovld __cnfn convert_uchar2_rtz(uchar2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uchar2); -uchar2 __ovld __cnfn convert_uchar2_rtp(uchar2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uchar2); -uchar2 __ovld __cnfn convert_uchar2_rtn(uchar2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uchar2); -uchar2 __ovld __cnfn convert_uchar2(uchar2); -uchar2 __ovld __cnfn convert_uchar2_sat(uchar2); -uchar2 __ovld __cnfn convert_uchar2_rte(short2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(short2); -uchar2 __ovld __cnfn convert_uchar2_rtz(short2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(short2); -uchar2 __ovld __cnfn convert_uchar2_rtp(short2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(short2); -uchar2 __ovld __cnfn convert_uchar2_rtn(short2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(short2); -uchar2 __ovld __cnfn convert_uchar2(short2); -uchar2 __ovld __cnfn convert_uchar2_sat(short2); -uchar2 __ovld __cnfn convert_uchar2_rte(ushort2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(ushort2); -uchar2 __ovld __cnfn convert_uchar2_rtz(ushort2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ushort2); -uchar2 __ovld __cnfn convert_uchar2_rtp(ushort2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ushort2); -uchar2 __ovld __cnfn convert_uchar2_rtn(ushort2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ushort2); -uchar2 __ovld __cnfn convert_uchar2(ushort2); -uchar2 __ovld __cnfn convert_uchar2_sat(ushort2); -uchar2 __ovld __cnfn convert_uchar2_rte(int2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(int2); -uchar2 __ovld __cnfn convert_uchar2_rtz(int2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(int2); -uchar2 __ovld __cnfn convert_uchar2_rtp(int2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(int2); -uchar2 __ovld __cnfn convert_uchar2_rtn(int2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(int2); -uchar2 __ovld __cnfn convert_uchar2(int2); -uchar2 __ovld __cnfn convert_uchar2_sat(int2); -uchar2 __ovld __cnfn convert_uchar2_rte(uint2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(uint2); -uchar2 __ovld __cnfn convert_uchar2_rtz(uint2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uint2); -uchar2 __ovld __cnfn convert_uchar2_rtp(uint2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uint2); -uchar2 __ovld __cnfn convert_uchar2_rtn(uint2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uint2); -uchar2 __ovld __cnfn convert_uchar2(uint2); -uchar2 __ovld __cnfn convert_uchar2_sat(uint2); -uchar2 __ovld __cnfn convert_uchar2_rte(long2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(long2); -uchar2 __ovld __cnfn convert_uchar2_rtz(long2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(long2); -uchar2 __ovld __cnfn convert_uchar2_rtp(long2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(long2); -uchar2 __ovld __cnfn convert_uchar2_rtn(long2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(long2); -uchar2 __ovld __cnfn convert_uchar2(long2); -uchar2 __ovld __cnfn convert_uchar2_sat(long2); -uchar2 __ovld __cnfn convert_uchar2_rte(ulong2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(ulong2); -uchar2 __ovld __cnfn convert_uchar2_rtz(ulong2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ulong2); -uchar2 __ovld __cnfn convert_uchar2_rtp(ulong2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ulong2); -uchar2 __ovld __cnfn convert_uchar2_rtn(ulong2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ulong2); -uchar2 __ovld __cnfn convert_uchar2(ulong2); -uchar2 __ovld __cnfn convert_uchar2_sat(ulong2); -uchar2 __ovld __cnfn convert_uchar2_rte(float2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(float2); -uchar2 __ovld __cnfn convert_uchar2_rtz(float2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(float2); -uchar2 __ovld __cnfn convert_uchar2_rtp(float2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(float2); -uchar2 __ovld __cnfn convert_uchar2_rtn(float2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(float2); -uchar2 __ovld __cnfn convert_uchar2(float2); -uchar2 __ovld __cnfn convert_uchar2_sat(float2); -short2 __ovld __cnfn convert_short2_rte(char2); -short2 __ovld __cnfn convert_short2_sat_rte(char2); -short2 __ovld __cnfn convert_short2_rtz(char2); -short2 __ovld __cnfn convert_short2_sat_rtz(char2); -short2 __ovld __cnfn convert_short2_rtp(char2); -short2 __ovld __cnfn convert_short2_sat_rtp(char2); -short2 __ovld __cnfn convert_short2_rtn(char2); -short2 __ovld __cnfn convert_short2_sat_rtn(char2); -short2 __ovld __cnfn convert_short2(char2); -short2 __ovld __cnfn convert_short2_sat(char2); -short2 __ovld __cnfn convert_short2_rte(uchar2); -short2 __ovld __cnfn convert_short2_sat_rte(uchar2); -short2 __ovld __cnfn convert_short2_rtz(uchar2); -short2 __ovld __cnfn convert_short2_sat_rtz(uchar2); -short2 __ovld __cnfn convert_short2_rtp(uchar2); -short2 __ovld __cnfn convert_short2_sat_rtp(uchar2); -short2 __ovld __cnfn convert_short2_rtn(uchar2); -short2 __ovld __cnfn convert_short2_sat_rtn(uchar2); -short2 __ovld __cnfn convert_short2(uchar2); -short2 __ovld __cnfn convert_short2_sat(uchar2); -short2 __ovld __cnfn convert_short2_rte(short2); -short2 __ovld __cnfn convert_short2_sat_rte(short2); -short2 __ovld __cnfn convert_short2_rtz(short2); -short2 __ovld __cnfn convert_short2_sat_rtz(short2); -short2 __ovld __cnfn convert_short2_rtp(short2); -short2 __ovld __cnfn convert_short2_sat_rtp(short2); -short2 __ovld __cnfn convert_short2_rtn(short2); -short2 __ovld __cnfn convert_short2_sat_rtn(short2); -short2 __ovld __cnfn convert_short2(short2); -short2 __ovld __cnfn convert_short2_sat(short2); -short2 __ovld __cnfn convert_short2_rte(ushort2); -short2 __ovld __cnfn convert_short2_sat_rte(ushort2); -short2 __ovld __cnfn convert_short2_rtz(ushort2); -short2 __ovld __cnfn convert_short2_sat_rtz(ushort2); -short2 __ovld __cnfn convert_short2_rtp(ushort2); -short2 __ovld __cnfn convert_short2_sat_rtp(ushort2); -short2 __ovld __cnfn convert_short2_rtn(ushort2); -short2 __ovld __cnfn convert_short2_sat_rtn(ushort2); -short2 __ovld __cnfn convert_short2(ushort2); -short2 __ovld __cnfn convert_short2_sat(ushort2); -short2 __ovld __cnfn convert_short2_rte(int2); -short2 __ovld __cnfn convert_short2_sat_rte(int2); -short2 __ovld __cnfn convert_short2_rtz(int2); -short2 __ovld __cnfn convert_short2_sat_rtz(int2); -short2 __ovld __cnfn convert_short2_rtp(int2); -short2 __ovld __cnfn convert_short2_sat_rtp(int2); -short2 __ovld __cnfn convert_short2_rtn(int2); -short2 __ovld __cnfn convert_short2_sat_rtn(int2); -short2 __ovld __cnfn convert_short2(int2); -short2 __ovld __cnfn convert_short2_sat(int2); -short2 __ovld __cnfn convert_short2_rte(uint2); -short2 __ovld __cnfn convert_short2_sat_rte(uint2); -short2 __ovld __cnfn convert_short2_rtz(uint2); -short2 __ovld __cnfn convert_short2_sat_rtz(uint2); -short2 __ovld __cnfn convert_short2_rtp(uint2); -short2 __ovld __cnfn convert_short2_sat_rtp(uint2); -short2 __ovld __cnfn convert_short2_rtn(uint2); -short2 __ovld __cnfn convert_short2_sat_rtn(uint2); -short2 __ovld __cnfn convert_short2(uint2); -short2 __ovld __cnfn convert_short2_sat(uint2); -short2 __ovld __cnfn convert_short2_rte(long2); -short2 __ovld __cnfn convert_short2_sat_rte(long2); -short2 __ovld __cnfn convert_short2_rtz(long2); -short2 __ovld __cnfn convert_short2_sat_rtz(long2); -short2 __ovld __cnfn convert_short2_rtp(long2); -short2 __ovld __cnfn convert_short2_sat_rtp(long2); -short2 __ovld __cnfn convert_short2_rtn(long2); -short2 __ovld __cnfn convert_short2_sat_rtn(long2); -short2 __ovld __cnfn convert_short2(long2); -short2 __ovld __cnfn convert_short2_sat(long2); -short2 __ovld __cnfn convert_short2_rte(ulong2); -short2 __ovld __cnfn convert_short2_sat_rte(ulong2); -short2 __ovld __cnfn convert_short2_rtz(ulong2); -short2 __ovld __cnfn convert_short2_sat_rtz(ulong2); -short2 __ovld __cnfn convert_short2_rtp(ulong2); -short2 __ovld __cnfn convert_short2_sat_rtp(ulong2); -short2 __ovld __cnfn convert_short2_rtn(ulong2); -short2 __ovld __cnfn convert_short2_sat_rtn(ulong2); -short2 __ovld __cnfn convert_short2(ulong2); -short2 __ovld __cnfn convert_short2_sat(ulong2); -short2 __ovld __cnfn convert_short2_rte(float2); -short2 __ovld __cnfn convert_short2_sat_rte(float2); -short2 __ovld __cnfn convert_short2_rtz(float2); -short2 __ovld __cnfn convert_short2_sat_rtz(float2); -short2 __ovld __cnfn convert_short2_rtp(float2); -short2 __ovld __cnfn convert_short2_sat_rtp(float2); -short2 __ovld __cnfn convert_short2_rtn(float2); -short2 __ovld __cnfn convert_short2_sat_rtn(float2); -short2 __ovld __cnfn convert_short2(float2); -short2 __ovld __cnfn convert_short2_sat(float2); -ushort2 __ovld __cnfn convert_ushort2_rte(char2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(char2); -ushort2 __ovld __cnfn convert_ushort2_rtz(char2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(char2); -ushort2 __ovld __cnfn convert_ushort2_rtp(char2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(char2); -ushort2 __ovld __cnfn convert_ushort2_rtn(char2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(char2); -ushort2 __ovld __cnfn convert_ushort2(char2); -ushort2 __ovld __cnfn convert_ushort2_sat(char2); -ushort2 __ovld __cnfn convert_ushort2_rte(uchar2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(uchar2); -ushort2 __ovld __cnfn convert_ushort2_rtz(uchar2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uchar2); -ushort2 __ovld __cnfn convert_ushort2_rtp(uchar2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uchar2); -ushort2 __ovld __cnfn convert_ushort2_rtn(uchar2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uchar2); -ushort2 __ovld __cnfn convert_ushort2(uchar2); -ushort2 __ovld __cnfn convert_ushort2_sat(uchar2); -ushort2 __ovld __cnfn convert_ushort2_rte(short2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(short2); -ushort2 __ovld __cnfn convert_ushort2_rtz(short2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(short2); -ushort2 __ovld __cnfn convert_ushort2_rtp(short2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(short2); -ushort2 __ovld __cnfn convert_ushort2_rtn(short2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(short2); -ushort2 __ovld __cnfn convert_ushort2(short2); -ushort2 __ovld __cnfn convert_ushort2_sat(short2); -ushort2 __ovld __cnfn convert_ushort2_rte(ushort2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(ushort2); -ushort2 __ovld __cnfn convert_ushort2_rtz(ushort2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ushort2); -ushort2 __ovld __cnfn convert_ushort2_rtp(ushort2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ushort2); -ushort2 __ovld __cnfn convert_ushort2_rtn(ushort2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ushort2); -ushort2 __ovld __cnfn convert_ushort2(ushort2); -ushort2 __ovld __cnfn convert_ushort2_sat(ushort2); -ushort2 __ovld __cnfn convert_ushort2_rte(int2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(int2); -ushort2 __ovld __cnfn convert_ushort2_rtz(int2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(int2); -ushort2 __ovld __cnfn convert_ushort2_rtp(int2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(int2); -ushort2 __ovld __cnfn convert_ushort2_rtn(int2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(int2); -ushort2 __ovld __cnfn convert_ushort2(int2); -ushort2 __ovld __cnfn convert_ushort2_sat(int2); -ushort2 __ovld __cnfn convert_ushort2_rte(uint2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(uint2); -ushort2 __ovld __cnfn convert_ushort2_rtz(uint2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uint2); -ushort2 __ovld __cnfn convert_ushort2_rtp(uint2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uint2); -ushort2 __ovld __cnfn convert_ushort2_rtn(uint2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uint2); -ushort2 __ovld __cnfn convert_ushort2(uint2); -ushort2 __ovld __cnfn convert_ushort2_sat(uint2); -ushort2 __ovld __cnfn convert_ushort2_rte(long2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(long2); -ushort2 __ovld __cnfn convert_ushort2_rtz(long2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(long2); -ushort2 __ovld __cnfn convert_ushort2_rtp(long2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(long2); -ushort2 __ovld __cnfn convert_ushort2_rtn(long2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(long2); -ushort2 __ovld __cnfn convert_ushort2(long2); -ushort2 __ovld __cnfn convert_ushort2_sat(long2); -ushort2 __ovld __cnfn convert_ushort2_rte(ulong2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(ulong2); -ushort2 __ovld __cnfn convert_ushort2_rtz(ulong2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ulong2); -ushort2 __ovld __cnfn convert_ushort2_rtp(ulong2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ulong2); -ushort2 __ovld __cnfn convert_ushort2_rtn(ulong2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ulong2); -ushort2 __ovld __cnfn convert_ushort2(ulong2); -ushort2 __ovld __cnfn convert_ushort2_sat(ulong2); -ushort2 __ovld __cnfn convert_ushort2_rte(float2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(float2); -ushort2 __ovld __cnfn convert_ushort2_rtz(float2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(float2); -ushort2 __ovld __cnfn convert_ushort2_rtp(float2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(float2); -ushort2 __ovld __cnfn convert_ushort2_rtn(float2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(float2); -ushort2 __ovld __cnfn convert_ushort2(float2); -ushort2 __ovld __cnfn convert_ushort2_sat(float2); -int2 __ovld __cnfn convert_int2_rte(char2); -int2 __ovld __cnfn convert_int2_sat_rte(char2); -int2 __ovld __cnfn convert_int2_rtz(char2); -int2 __ovld __cnfn convert_int2_sat_rtz(char2); -int2 __ovld __cnfn convert_int2_rtp(char2); -int2 __ovld __cnfn convert_int2_sat_rtp(char2); -int2 __ovld __cnfn convert_int2_rtn(char2); -int2 __ovld __cnfn convert_int2_sat_rtn(char2); -int2 __ovld __cnfn convert_int2(char2); -int2 __ovld __cnfn convert_int2_sat(char2); -int2 __ovld __cnfn convert_int2_rte(uchar2); -int2 __ovld __cnfn convert_int2_sat_rte(uchar2); -int2 __ovld __cnfn convert_int2_rtz(uchar2); -int2 __ovld __cnfn convert_int2_sat_rtz(uchar2); -int2 __ovld __cnfn convert_int2_rtp(uchar2); -int2 __ovld __cnfn convert_int2_sat_rtp(uchar2); -int2 __ovld __cnfn convert_int2_rtn(uchar2); -int2 __ovld __cnfn convert_int2_sat_rtn(uchar2); -int2 __ovld __cnfn convert_int2(uchar2); -int2 __ovld __cnfn convert_int2_sat(uchar2); -int2 __ovld __cnfn convert_int2_rte(short2); -int2 __ovld __cnfn convert_int2_sat_rte(short2); -int2 __ovld __cnfn convert_int2_rtz(short2); -int2 __ovld __cnfn convert_int2_sat_rtz(short2); -int2 __ovld __cnfn convert_int2_rtp(short2); -int2 __ovld __cnfn convert_int2_sat_rtp(short2); -int2 __ovld __cnfn convert_int2_rtn(short2); -int2 __ovld __cnfn convert_int2_sat_rtn(short2); -int2 __ovld __cnfn convert_int2(short2); -int2 __ovld __cnfn convert_int2_sat(short2); -int2 __ovld __cnfn convert_int2_rte(ushort2); -int2 __ovld __cnfn convert_int2_sat_rte(ushort2); -int2 __ovld __cnfn convert_int2_rtz(ushort2); -int2 __ovld __cnfn convert_int2_sat_rtz(ushort2); -int2 __ovld __cnfn convert_int2_rtp(ushort2); -int2 __ovld __cnfn convert_int2_sat_rtp(ushort2); -int2 __ovld __cnfn convert_int2_rtn(ushort2); -int2 __ovld __cnfn convert_int2_sat_rtn(ushort2); -int2 __ovld __cnfn convert_int2(ushort2); -int2 __ovld __cnfn convert_int2_sat(ushort2); -int2 __ovld __cnfn convert_int2_rte(int2); -int2 __ovld __cnfn convert_int2_sat_rte(int2); -int2 __ovld __cnfn convert_int2_rtz(int2); -int2 __ovld __cnfn convert_int2_sat_rtz(int2); -int2 __ovld __cnfn convert_int2_rtp(int2); -int2 __ovld __cnfn convert_int2_sat_rtp(int2); -int2 __ovld __cnfn convert_int2_rtn(int2); -int2 __ovld __cnfn convert_int2_sat_rtn(int2); -int2 __ovld __cnfn convert_int2(int2); -int2 __ovld __cnfn convert_int2_sat(int2); -int2 __ovld __cnfn convert_int2_rte(uint2); -int2 __ovld __cnfn convert_int2_sat_rte(uint2); -int2 __ovld __cnfn convert_int2_rtz(uint2); -int2 __ovld __cnfn convert_int2_sat_rtz(uint2); -int2 __ovld __cnfn convert_int2_rtp(uint2); -int2 __ovld __cnfn convert_int2_sat_rtp(uint2); -int2 __ovld __cnfn convert_int2_rtn(uint2); -int2 __ovld __cnfn convert_int2_sat_rtn(uint2); -int2 __ovld __cnfn convert_int2(uint2); -int2 __ovld __cnfn convert_int2_sat(uint2); -int2 __ovld __cnfn convert_int2_rte(long2); -int2 __ovld __cnfn convert_int2_sat_rte(long2); -int2 __ovld __cnfn convert_int2_rtz(long2); -int2 __ovld __cnfn convert_int2_sat_rtz(long2); -int2 __ovld __cnfn convert_int2_rtp(long2); -int2 __ovld __cnfn convert_int2_sat_rtp(long2); -int2 __ovld __cnfn convert_int2_rtn(long2); -int2 __ovld __cnfn convert_int2_sat_rtn(long2); -int2 __ovld __cnfn convert_int2(long2); -int2 __ovld __cnfn convert_int2_sat(long2); -int2 __ovld __cnfn convert_int2_rte(ulong2); -int2 __ovld __cnfn convert_int2_sat_rte(ulong2); -int2 __ovld __cnfn convert_int2_rtz(ulong2); -int2 __ovld __cnfn convert_int2_sat_rtz(ulong2); -int2 __ovld __cnfn convert_int2_rtp(ulong2); -int2 __ovld __cnfn convert_int2_sat_rtp(ulong2); -int2 __ovld __cnfn convert_int2_rtn(ulong2); -int2 __ovld __cnfn convert_int2_sat_rtn(ulong2); -int2 __ovld __cnfn convert_int2(ulong2); -int2 __ovld __cnfn convert_int2_sat(ulong2); -int2 __ovld __cnfn convert_int2_rte(float2); -int2 __ovld __cnfn convert_int2_sat_rte(float2); -int2 __ovld __cnfn convert_int2_rtz(float2); -int2 __ovld __cnfn convert_int2_sat_rtz(float2); -int2 __ovld __cnfn convert_int2_rtp(float2); -int2 __ovld __cnfn convert_int2_sat_rtp(float2); -int2 __ovld __cnfn convert_int2_rtn(float2); -int2 __ovld __cnfn convert_int2_sat_rtn(float2); -int2 __ovld __cnfn convert_int2(float2); -int2 __ovld __cnfn convert_int2_sat(float2); -uint2 __ovld __cnfn convert_uint2_rte(char2); -uint2 __ovld __cnfn convert_uint2_sat_rte(char2); -uint2 __ovld __cnfn convert_uint2_rtz(char2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(char2); -uint2 __ovld __cnfn convert_uint2_rtp(char2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(char2); -uint2 __ovld __cnfn convert_uint2_rtn(char2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(char2); -uint2 __ovld __cnfn convert_uint2(char2); -uint2 __ovld __cnfn convert_uint2_sat(char2); -uint2 __ovld __cnfn convert_uint2_rte(uchar2); -uint2 __ovld __cnfn convert_uint2_sat_rte(uchar2); -uint2 __ovld __cnfn convert_uint2_rtz(uchar2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(uchar2); -uint2 __ovld __cnfn convert_uint2_rtp(uchar2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(uchar2); -uint2 __ovld __cnfn convert_uint2_rtn(uchar2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(uchar2); -uint2 __ovld __cnfn convert_uint2(uchar2); -uint2 __ovld __cnfn convert_uint2_sat(uchar2); -uint2 __ovld __cnfn convert_uint2_rte(short2); -uint2 __ovld __cnfn convert_uint2_sat_rte(short2); -uint2 __ovld __cnfn convert_uint2_rtz(short2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(short2); -uint2 __ovld __cnfn convert_uint2_rtp(short2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(short2); -uint2 __ovld __cnfn convert_uint2_rtn(short2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(short2); -uint2 __ovld __cnfn convert_uint2(short2); -uint2 __ovld __cnfn convert_uint2_sat(short2); -uint2 __ovld __cnfn convert_uint2_rte(ushort2); -uint2 __ovld __cnfn convert_uint2_sat_rte(ushort2); -uint2 __ovld __cnfn convert_uint2_rtz(ushort2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(ushort2); -uint2 __ovld __cnfn convert_uint2_rtp(ushort2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(ushort2); -uint2 __ovld __cnfn convert_uint2_rtn(ushort2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(ushort2); -uint2 __ovld __cnfn convert_uint2(ushort2); -uint2 __ovld __cnfn convert_uint2_sat(ushort2); -uint2 __ovld __cnfn convert_uint2_rte(int2); -uint2 __ovld __cnfn convert_uint2_sat_rte(int2); -uint2 __ovld __cnfn convert_uint2_rtz(int2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(int2); -uint2 __ovld __cnfn convert_uint2_rtp(int2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(int2); -uint2 __ovld __cnfn convert_uint2_rtn(int2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(int2); -uint2 __ovld __cnfn convert_uint2(int2); -uint2 __ovld __cnfn convert_uint2_sat(int2); -uint2 __ovld __cnfn convert_uint2_rte(uint2); -uint2 __ovld __cnfn convert_uint2_sat_rte(uint2); -uint2 __ovld __cnfn convert_uint2_rtz(uint2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(uint2); -uint2 __ovld __cnfn convert_uint2_rtp(uint2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(uint2); -uint2 __ovld __cnfn convert_uint2_rtn(uint2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(uint2); -uint2 __ovld __cnfn convert_uint2(uint2); -uint2 __ovld __cnfn convert_uint2_sat(uint2); -uint2 __ovld __cnfn convert_uint2_rte(long2); -uint2 __ovld __cnfn convert_uint2_sat_rte(long2); -uint2 __ovld __cnfn convert_uint2_rtz(long2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(long2); -uint2 __ovld __cnfn convert_uint2_rtp(long2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(long2); -uint2 __ovld __cnfn convert_uint2_rtn(long2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(long2); -uint2 __ovld __cnfn convert_uint2(long2); -uint2 __ovld __cnfn convert_uint2_sat(long2); -uint2 __ovld __cnfn convert_uint2_rte(ulong2); -uint2 __ovld __cnfn convert_uint2_sat_rte(ulong2); -uint2 __ovld __cnfn convert_uint2_rtz(ulong2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(ulong2); -uint2 __ovld __cnfn convert_uint2_rtp(ulong2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(ulong2); -uint2 __ovld __cnfn convert_uint2_rtn(ulong2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(ulong2); -uint2 __ovld __cnfn convert_uint2(ulong2); -uint2 __ovld __cnfn convert_uint2_sat(ulong2); -uint2 __ovld __cnfn convert_uint2_rte(float2); -uint2 __ovld __cnfn convert_uint2_sat_rte(float2); -uint2 __ovld __cnfn convert_uint2_rtz(float2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(float2); -uint2 __ovld __cnfn convert_uint2_rtp(float2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(float2); -uint2 __ovld __cnfn convert_uint2_rtn(float2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(float2); -uint2 __ovld __cnfn convert_uint2(float2); -uint2 __ovld __cnfn convert_uint2_sat(float2); -long2 __ovld __cnfn convert_long2_rte(char2); -long2 __ovld __cnfn convert_long2_sat_rte(char2); -long2 __ovld __cnfn convert_long2_rtz(char2); -long2 __ovld __cnfn convert_long2_sat_rtz(char2); -long2 __ovld __cnfn convert_long2_rtp(char2); -long2 __ovld __cnfn convert_long2_sat_rtp(char2); -long2 __ovld __cnfn convert_long2_rtn(char2); -long2 __ovld __cnfn convert_long2_sat_rtn(char2); -long2 __ovld __cnfn convert_long2(char2); -long2 __ovld __cnfn convert_long2_sat(char2); -long2 __ovld __cnfn convert_long2_rte(uchar2); -long2 __ovld __cnfn convert_long2_sat_rte(uchar2); -long2 __ovld __cnfn convert_long2_rtz(uchar2); -long2 __ovld __cnfn convert_long2_sat_rtz(uchar2); -long2 __ovld __cnfn convert_long2_rtp(uchar2); -long2 __ovld __cnfn convert_long2_sat_rtp(uchar2); -long2 __ovld __cnfn convert_long2_rtn(uchar2); -long2 __ovld __cnfn convert_long2_sat_rtn(uchar2); -long2 __ovld __cnfn convert_long2(uchar2); -long2 __ovld __cnfn convert_long2_sat(uchar2); -long2 __ovld __cnfn convert_long2_rte(short2); -long2 __ovld __cnfn convert_long2_sat_rte(short2); -long2 __ovld __cnfn convert_long2_rtz(short2); -long2 __ovld __cnfn convert_long2_sat_rtz(short2); -long2 __ovld __cnfn convert_long2_rtp(short2); -long2 __ovld __cnfn convert_long2_sat_rtp(short2); -long2 __ovld __cnfn convert_long2_rtn(short2); -long2 __ovld __cnfn convert_long2_sat_rtn(short2); -long2 __ovld __cnfn convert_long2(short2); -long2 __ovld __cnfn convert_long2_sat(short2); -long2 __ovld __cnfn convert_long2_rte(ushort2); -long2 __ovld __cnfn convert_long2_sat_rte(ushort2); -long2 __ovld __cnfn convert_long2_rtz(ushort2); -long2 __ovld __cnfn convert_long2_sat_rtz(ushort2); -long2 __ovld __cnfn convert_long2_rtp(ushort2); -long2 __ovld __cnfn convert_long2_sat_rtp(ushort2); -long2 __ovld __cnfn convert_long2_rtn(ushort2); -long2 __ovld __cnfn convert_long2_sat_rtn(ushort2); -long2 __ovld __cnfn convert_long2(ushort2); -long2 __ovld __cnfn convert_long2_sat(ushort2); -long2 __ovld __cnfn convert_long2_rte(int2); -long2 __ovld __cnfn convert_long2_sat_rte(int2); -long2 __ovld __cnfn convert_long2_rtz(int2); -long2 __ovld __cnfn convert_long2_sat_rtz(int2); -long2 __ovld __cnfn convert_long2_rtp(int2); -long2 __ovld __cnfn convert_long2_sat_rtp(int2); -long2 __ovld __cnfn convert_long2_rtn(int2); -long2 __ovld __cnfn convert_long2_sat_rtn(int2); -long2 __ovld __cnfn convert_long2(int2); -long2 __ovld __cnfn convert_long2_sat(int2); -long2 __ovld __cnfn convert_long2_rte(uint2); -long2 __ovld __cnfn convert_long2_sat_rte(uint2); -long2 __ovld __cnfn convert_long2_rtz(uint2); -long2 __ovld __cnfn convert_long2_sat_rtz(uint2); -long2 __ovld __cnfn convert_long2_rtp(uint2); -long2 __ovld __cnfn convert_long2_sat_rtp(uint2); -long2 __ovld __cnfn convert_long2_rtn(uint2); -long2 __ovld __cnfn convert_long2_sat_rtn(uint2); -long2 __ovld __cnfn convert_long2(uint2); -long2 __ovld __cnfn convert_long2_sat(uint2); -long2 __ovld __cnfn convert_long2_rte(long2); -long2 __ovld __cnfn convert_long2_sat_rte(long2); -long2 __ovld __cnfn convert_long2_rtz(long2); -long2 __ovld __cnfn convert_long2_sat_rtz(long2); -long2 __ovld __cnfn convert_long2_rtp(long2); -long2 __ovld __cnfn convert_long2_sat_rtp(long2); -long2 __ovld __cnfn convert_long2_rtn(long2); -long2 __ovld __cnfn convert_long2_sat_rtn(long2); -long2 __ovld __cnfn convert_long2(long2); -long2 __ovld __cnfn convert_long2_sat(long2); -long2 __ovld __cnfn convert_long2_rte(ulong2); -long2 __ovld __cnfn convert_long2_sat_rte(ulong2); -long2 __ovld __cnfn convert_long2_rtz(ulong2); -long2 __ovld __cnfn convert_long2_sat_rtz(ulong2); -long2 __ovld __cnfn convert_long2_rtp(ulong2); -long2 __ovld __cnfn convert_long2_sat_rtp(ulong2); -long2 __ovld __cnfn convert_long2_rtn(ulong2); -long2 __ovld __cnfn convert_long2_sat_rtn(ulong2); -long2 __ovld __cnfn convert_long2(ulong2); -long2 __ovld __cnfn convert_long2_sat(ulong2); -long2 __ovld __cnfn convert_long2_rte(float2); -long2 __ovld __cnfn convert_long2_sat_rte(float2); -long2 __ovld __cnfn convert_long2_rtz(float2); -long2 __ovld __cnfn convert_long2_sat_rtz(float2); -long2 __ovld __cnfn convert_long2_rtp(float2); -long2 __ovld __cnfn convert_long2_sat_rtp(float2); -long2 __ovld __cnfn convert_long2_rtn(float2); -long2 __ovld __cnfn convert_long2_sat_rtn(float2); -long2 __ovld __cnfn convert_long2(float2); -long2 __ovld __cnfn convert_long2_sat(float2); -ulong2 __ovld __cnfn convert_ulong2_rte(char2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(char2); -ulong2 __ovld __cnfn convert_ulong2_rtz(char2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(char2); -ulong2 __ovld __cnfn convert_ulong2_rtp(char2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(char2); -ulong2 __ovld __cnfn convert_ulong2_rtn(char2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(char2); -ulong2 __ovld __cnfn convert_ulong2(char2); -ulong2 __ovld __cnfn convert_ulong2_sat(char2); -ulong2 __ovld __cnfn convert_ulong2_rte(uchar2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(uchar2); -ulong2 __ovld __cnfn convert_ulong2_rtz(uchar2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uchar2); -ulong2 __ovld __cnfn convert_ulong2_rtp(uchar2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uchar2); -ulong2 __ovld __cnfn convert_ulong2_rtn(uchar2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uchar2); -ulong2 __ovld __cnfn convert_ulong2(uchar2); -ulong2 __ovld __cnfn convert_ulong2_sat(uchar2); -ulong2 __ovld __cnfn convert_ulong2_rte(short2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(short2); -ulong2 __ovld __cnfn convert_ulong2_rtz(short2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(short2); -ulong2 __ovld __cnfn convert_ulong2_rtp(short2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(short2); -ulong2 __ovld __cnfn convert_ulong2_rtn(short2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(short2); -ulong2 __ovld __cnfn convert_ulong2(short2); -ulong2 __ovld __cnfn convert_ulong2_sat(short2); -ulong2 __ovld __cnfn convert_ulong2_rte(ushort2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(ushort2); -ulong2 __ovld __cnfn convert_ulong2_rtz(ushort2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ushort2); -ulong2 __ovld __cnfn convert_ulong2_rtp(ushort2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ushort2); -ulong2 __ovld __cnfn convert_ulong2_rtn(ushort2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ushort2); -ulong2 __ovld __cnfn convert_ulong2(ushort2); -ulong2 __ovld __cnfn convert_ulong2_sat(ushort2); -ulong2 __ovld __cnfn convert_ulong2_rte(int2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(int2); -ulong2 __ovld __cnfn convert_ulong2_rtz(int2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(int2); -ulong2 __ovld __cnfn convert_ulong2_rtp(int2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(int2); -ulong2 __ovld __cnfn convert_ulong2_rtn(int2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(int2); -ulong2 __ovld __cnfn convert_ulong2(int2); -ulong2 __ovld __cnfn convert_ulong2_sat(int2); -ulong2 __ovld __cnfn convert_ulong2_rte(uint2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(uint2); -ulong2 __ovld __cnfn convert_ulong2_rtz(uint2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uint2); -ulong2 __ovld __cnfn convert_ulong2_rtp(uint2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uint2); -ulong2 __ovld __cnfn convert_ulong2_rtn(uint2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uint2); -ulong2 __ovld __cnfn convert_ulong2(uint2); -ulong2 __ovld __cnfn convert_ulong2_sat(uint2); -ulong2 __ovld __cnfn convert_ulong2_rte(long2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(long2); -ulong2 __ovld __cnfn convert_ulong2_rtz(long2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(long2); -ulong2 __ovld __cnfn convert_ulong2_rtp(long2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(long2); -ulong2 __ovld __cnfn convert_ulong2_rtn(long2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(long2); -ulong2 __ovld __cnfn convert_ulong2(long2); -ulong2 __ovld __cnfn convert_ulong2_sat(long2); -ulong2 __ovld __cnfn convert_ulong2_rte(ulong2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(ulong2); -ulong2 __ovld __cnfn convert_ulong2_rtz(ulong2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ulong2); -ulong2 __ovld __cnfn convert_ulong2_rtp(ulong2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ulong2); -ulong2 __ovld __cnfn convert_ulong2_rtn(ulong2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ulong2); -ulong2 __ovld __cnfn convert_ulong2(ulong2); -ulong2 __ovld __cnfn convert_ulong2_sat(ulong2); -ulong2 __ovld __cnfn convert_ulong2_rte(float2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(float2); -ulong2 __ovld __cnfn convert_ulong2_rtz(float2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(float2); -ulong2 __ovld __cnfn convert_ulong2_rtp(float2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(float2); -ulong2 __ovld __cnfn convert_ulong2_rtn(float2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(float2); -ulong2 __ovld __cnfn convert_ulong2(float2); -ulong2 __ovld __cnfn convert_ulong2_sat(float2); -float2 __ovld __cnfn convert_float2_rte(char2); -float2 __ovld __cnfn convert_float2_rtz(char2); -float2 __ovld __cnfn convert_float2_rtp(char2); -float2 __ovld __cnfn convert_float2_rtn(char2); -float2 __ovld __cnfn convert_float2(char2); -float2 __ovld __cnfn convert_float2_rte(uchar2); -float2 __ovld __cnfn convert_float2_rtz(uchar2); -float2 __ovld __cnfn convert_float2_rtp(uchar2); -float2 __ovld __cnfn convert_float2_rtn(uchar2); -float2 __ovld __cnfn convert_float2(uchar2); -float2 __ovld __cnfn convert_float2_rte(short2); -float2 __ovld __cnfn convert_float2_rtz(short2); -float2 __ovld __cnfn convert_float2_rtp(short2); -float2 __ovld __cnfn convert_float2_rtn(short2); -float2 __ovld __cnfn convert_float2(short2); -float2 __ovld __cnfn convert_float2_rte(ushort2); -float2 __ovld __cnfn convert_float2_rtz(ushort2); -float2 __ovld __cnfn convert_float2_rtp(ushort2); -float2 __ovld __cnfn convert_float2_rtn(ushort2); -float2 __ovld __cnfn convert_float2(ushort2); -float2 __ovld __cnfn convert_float2_rte(int2); -float2 __ovld __cnfn convert_float2_rtz(int2); -float2 __ovld __cnfn convert_float2_rtp(int2); -float2 __ovld __cnfn convert_float2_rtn(int2); -float2 __ovld __cnfn convert_float2(int2); -float2 __ovld __cnfn convert_float2_rte(uint2); -float2 __ovld __cnfn convert_float2_rtz(uint2); -float2 __ovld __cnfn convert_float2_rtp(uint2); -float2 __ovld __cnfn convert_float2_rtn(uint2); -float2 __ovld __cnfn convert_float2(uint2); -float2 __ovld __cnfn convert_float2_rte(long2); -float2 __ovld __cnfn convert_float2_rtz(long2); -float2 __ovld __cnfn convert_float2_rtp(long2); -float2 __ovld __cnfn convert_float2_rtn(long2); -float2 __ovld __cnfn convert_float2(long2); -float2 __ovld __cnfn convert_float2_rte(ulong2); -float2 __ovld __cnfn convert_float2_rtz(ulong2); -float2 __ovld __cnfn convert_float2_rtp(ulong2); -float2 __ovld __cnfn convert_float2_rtn(ulong2); -float2 __ovld __cnfn convert_float2(ulong2); -float2 __ovld __cnfn convert_float2_rte(float2); -float2 __ovld __cnfn convert_float2_rtz(float2); -float2 __ovld __cnfn convert_float2_rtp(float2); -float2 __ovld __cnfn convert_float2_rtn(float2); -float2 __ovld __cnfn convert_float2(float2); -char3 __ovld __cnfn convert_char3_rte(char3); -char3 __ovld __cnfn convert_char3_sat_rte(char3); -char3 __ovld __cnfn convert_char3_rtz(char3); -char3 __ovld __cnfn convert_char3_sat_rtz(char3); -char3 __ovld __cnfn convert_char3_rtp(char3); -char3 __ovld __cnfn convert_char3_sat_rtp(char3); -char3 __ovld __cnfn convert_char3_rtn(char3); -char3 __ovld __cnfn convert_char3_sat_rtn(char3); -char3 __ovld __cnfn convert_char3(char3); -char3 __ovld __cnfn convert_char3_sat(char3); -char3 __ovld __cnfn convert_char3_rte(uchar3); -char3 __ovld __cnfn convert_char3_sat_rte(uchar3); -char3 __ovld __cnfn convert_char3_rtz(uchar3); -char3 __ovld __cnfn convert_char3_sat_rtz(uchar3); -char3 __ovld __cnfn convert_char3_rtp(uchar3); -char3 __ovld __cnfn convert_char3_sat_rtp(uchar3); -char3 __ovld __cnfn convert_char3_rtn(uchar3); -char3 __ovld __cnfn convert_char3_sat_rtn(uchar3); -char3 __ovld __cnfn convert_char3(uchar3); -char3 __ovld __cnfn convert_char3_sat(uchar3); -char3 __ovld __cnfn convert_char3_rte(short3); -char3 __ovld __cnfn convert_char3_sat_rte(short3); -char3 __ovld __cnfn convert_char3_rtz(short3); -char3 __ovld __cnfn convert_char3_sat_rtz(short3); -char3 __ovld __cnfn convert_char3_rtp(short3); -char3 __ovld __cnfn convert_char3_sat_rtp(short3); -char3 __ovld __cnfn convert_char3_rtn(short3); -char3 __ovld __cnfn convert_char3_sat_rtn(short3); -char3 __ovld __cnfn convert_char3(short3); -char3 __ovld __cnfn convert_char3_sat(short3); -char3 __ovld __cnfn convert_char3_rte(ushort3); -char3 __ovld __cnfn convert_char3_sat_rte(ushort3); -char3 __ovld __cnfn convert_char3_rtz(ushort3); -char3 __ovld __cnfn convert_char3_sat_rtz(ushort3); -char3 __ovld __cnfn convert_char3_rtp(ushort3); -char3 __ovld __cnfn convert_char3_sat_rtp(ushort3); -char3 __ovld __cnfn convert_char3_rtn(ushort3); -char3 __ovld __cnfn convert_char3_sat_rtn(ushort3); -char3 __ovld __cnfn convert_char3(ushort3); -char3 __ovld __cnfn convert_char3_sat(ushort3); -char3 __ovld __cnfn convert_char3_rte(int3); -char3 __ovld __cnfn convert_char3_sat_rte(int3); -char3 __ovld __cnfn convert_char3_rtz(int3); -char3 __ovld __cnfn convert_char3_sat_rtz(int3); -char3 __ovld __cnfn convert_char3_rtp(int3); -char3 __ovld __cnfn convert_char3_sat_rtp(int3); -char3 __ovld __cnfn convert_char3_rtn(int3); -char3 __ovld __cnfn convert_char3_sat_rtn(int3); -char3 __ovld __cnfn convert_char3(int3); -char3 __ovld __cnfn convert_char3_sat(int3); -char3 __ovld __cnfn convert_char3_rte(uint3); -char3 __ovld __cnfn convert_char3_sat_rte(uint3); -char3 __ovld __cnfn convert_char3_rtz(uint3); -char3 __ovld __cnfn convert_char3_sat_rtz(uint3); -char3 __ovld __cnfn convert_char3_rtp(uint3); -char3 __ovld __cnfn convert_char3_sat_rtp(uint3); -char3 __ovld __cnfn convert_char3_rtn(uint3); -char3 __ovld __cnfn convert_char3_sat_rtn(uint3); -char3 __ovld __cnfn convert_char3(uint3); -char3 __ovld __cnfn convert_char3_sat(uint3); -char3 __ovld __cnfn convert_char3_rte(long3); -char3 __ovld __cnfn convert_char3_sat_rte(long3); -char3 __ovld __cnfn convert_char3_rtz(long3); -char3 __ovld __cnfn convert_char3_sat_rtz(long3); -char3 __ovld __cnfn convert_char3_rtp(long3); -char3 __ovld __cnfn convert_char3_sat_rtp(long3); -char3 __ovld __cnfn convert_char3_rtn(long3); -char3 __ovld __cnfn convert_char3_sat_rtn(long3); -char3 __ovld __cnfn convert_char3(long3); -char3 __ovld __cnfn convert_char3_sat(long3); -char3 __ovld __cnfn convert_char3_rte(ulong3); -char3 __ovld __cnfn convert_char3_sat_rte(ulong3); -char3 __ovld __cnfn convert_char3_rtz(ulong3); -char3 __ovld __cnfn convert_char3_sat_rtz(ulong3); -char3 __ovld __cnfn convert_char3_rtp(ulong3); -char3 __ovld __cnfn convert_char3_sat_rtp(ulong3); -char3 __ovld __cnfn convert_char3_rtn(ulong3); -char3 __ovld __cnfn convert_char3_sat_rtn(ulong3); -char3 __ovld __cnfn convert_char3(ulong3); -char3 __ovld __cnfn convert_char3_sat(ulong3); -char3 __ovld __cnfn convert_char3_rte(float3); -char3 __ovld __cnfn convert_char3_sat_rte(float3); -char3 __ovld __cnfn convert_char3_rtz(float3); -char3 __ovld __cnfn convert_char3_sat_rtz(float3); -char3 __ovld __cnfn convert_char3_rtp(float3); -char3 __ovld __cnfn convert_char3_sat_rtp(float3); -char3 __ovld __cnfn convert_char3_rtn(float3); -char3 __ovld __cnfn convert_char3_sat_rtn(float3); -char3 __ovld __cnfn convert_char3(float3); -char3 __ovld __cnfn convert_char3_sat(float3); -uchar3 __ovld __cnfn convert_uchar3_rte(char3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(char3); -uchar3 __ovld __cnfn convert_uchar3_rtz(char3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(char3); -uchar3 __ovld __cnfn convert_uchar3_rtp(char3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(char3); -uchar3 __ovld __cnfn convert_uchar3_rtn(char3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(char3); -uchar3 __ovld __cnfn convert_uchar3(char3); -uchar3 __ovld __cnfn convert_uchar3_sat(char3); -uchar3 __ovld __cnfn convert_uchar3_rte(uchar3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(uchar3); -uchar3 __ovld __cnfn convert_uchar3_rtz(uchar3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uchar3); -uchar3 __ovld __cnfn convert_uchar3_rtp(uchar3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uchar3); -uchar3 __ovld __cnfn convert_uchar3_rtn(uchar3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uchar3); -uchar3 __ovld __cnfn convert_uchar3(uchar3); -uchar3 __ovld __cnfn convert_uchar3_sat(uchar3); -uchar3 __ovld __cnfn convert_uchar3_rte(short3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(short3); -uchar3 __ovld __cnfn convert_uchar3_rtz(short3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(short3); -uchar3 __ovld __cnfn convert_uchar3_rtp(short3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(short3); -uchar3 __ovld __cnfn convert_uchar3_rtn(short3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(short3); -uchar3 __ovld __cnfn convert_uchar3(short3); -uchar3 __ovld __cnfn convert_uchar3_sat(short3); -uchar3 __ovld __cnfn convert_uchar3_rte(ushort3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(ushort3); -uchar3 __ovld __cnfn convert_uchar3_rtz(ushort3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ushort3); -uchar3 __ovld __cnfn convert_uchar3_rtp(ushort3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ushort3); -uchar3 __ovld __cnfn convert_uchar3_rtn(ushort3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ushort3); -uchar3 __ovld __cnfn convert_uchar3(ushort3); -uchar3 __ovld __cnfn convert_uchar3_sat(ushort3); -uchar3 __ovld __cnfn convert_uchar3_rte(int3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(int3); -uchar3 __ovld __cnfn convert_uchar3_rtz(int3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(int3); -uchar3 __ovld __cnfn convert_uchar3_rtp(int3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(int3); -uchar3 __ovld __cnfn convert_uchar3_rtn(int3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(int3); -uchar3 __ovld __cnfn convert_uchar3(int3); -uchar3 __ovld __cnfn convert_uchar3_sat(int3); -uchar3 __ovld __cnfn convert_uchar3_rte(uint3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(uint3); -uchar3 __ovld __cnfn convert_uchar3_rtz(uint3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uint3); -uchar3 __ovld __cnfn convert_uchar3_rtp(uint3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uint3); -uchar3 __ovld __cnfn convert_uchar3_rtn(uint3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uint3); -uchar3 __ovld __cnfn convert_uchar3(uint3); -uchar3 __ovld __cnfn convert_uchar3_sat(uint3); -uchar3 __ovld __cnfn convert_uchar3_rte(long3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(long3); -uchar3 __ovld __cnfn convert_uchar3_rtz(long3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(long3); -uchar3 __ovld __cnfn convert_uchar3_rtp(long3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(long3); -uchar3 __ovld __cnfn convert_uchar3_rtn(long3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(long3); -uchar3 __ovld __cnfn convert_uchar3(long3); -uchar3 __ovld __cnfn convert_uchar3_sat(long3); -uchar3 __ovld __cnfn convert_uchar3_rte(ulong3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(ulong3); -uchar3 __ovld __cnfn convert_uchar3_rtz(ulong3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ulong3); -uchar3 __ovld __cnfn convert_uchar3_rtp(ulong3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ulong3); -uchar3 __ovld __cnfn convert_uchar3_rtn(ulong3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ulong3); -uchar3 __ovld __cnfn convert_uchar3(ulong3); -uchar3 __ovld __cnfn convert_uchar3_sat(ulong3); -uchar3 __ovld __cnfn convert_uchar3_rte(float3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(float3); -uchar3 __ovld __cnfn convert_uchar3_rtz(float3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(float3); -uchar3 __ovld __cnfn convert_uchar3_rtp(float3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(float3); -uchar3 __ovld __cnfn convert_uchar3_rtn(float3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(float3); -uchar3 __ovld __cnfn convert_uchar3(float3); -uchar3 __ovld __cnfn convert_uchar3_sat(float3); -short3 __ovld __cnfn convert_short3_rte(char3); -short3 __ovld __cnfn convert_short3_sat_rte(char3); -short3 __ovld __cnfn convert_short3_rtz(char3); -short3 __ovld __cnfn convert_short3_sat_rtz(char3); -short3 __ovld __cnfn convert_short3_rtp(char3); -short3 __ovld __cnfn convert_short3_sat_rtp(char3); -short3 __ovld __cnfn convert_short3_rtn(char3); -short3 __ovld __cnfn convert_short3_sat_rtn(char3); -short3 __ovld __cnfn convert_short3(char3); -short3 __ovld __cnfn convert_short3_sat(char3); -short3 __ovld __cnfn convert_short3_rte(uchar3); -short3 __ovld __cnfn convert_short3_sat_rte(uchar3); -short3 __ovld __cnfn convert_short3_rtz(uchar3); -short3 __ovld __cnfn convert_short3_sat_rtz(uchar3); -short3 __ovld __cnfn convert_short3_rtp(uchar3); -short3 __ovld __cnfn convert_short3_sat_rtp(uchar3); -short3 __ovld __cnfn convert_short3_rtn(uchar3); -short3 __ovld __cnfn convert_short3_sat_rtn(uchar3); -short3 __ovld __cnfn convert_short3(uchar3); -short3 __ovld __cnfn convert_short3_sat(uchar3); -short3 __ovld __cnfn convert_short3_rte(short3); -short3 __ovld __cnfn convert_short3_sat_rte(short3); -short3 __ovld __cnfn convert_short3_rtz(short3); -short3 __ovld __cnfn convert_short3_sat_rtz(short3); -short3 __ovld __cnfn convert_short3_rtp(short3); -short3 __ovld __cnfn convert_short3_sat_rtp(short3); -short3 __ovld __cnfn convert_short3_rtn(short3); -short3 __ovld __cnfn convert_short3_sat_rtn(short3); -short3 __ovld __cnfn convert_short3(short3); -short3 __ovld __cnfn convert_short3_sat(short3); -short3 __ovld __cnfn convert_short3_rte(ushort3); -short3 __ovld __cnfn convert_short3_sat_rte(ushort3); -short3 __ovld __cnfn convert_short3_rtz(ushort3); -short3 __ovld __cnfn convert_short3_sat_rtz(ushort3); -short3 __ovld __cnfn convert_short3_rtp(ushort3); -short3 __ovld __cnfn convert_short3_sat_rtp(ushort3); -short3 __ovld __cnfn convert_short3_rtn(ushort3); -short3 __ovld __cnfn convert_short3_sat_rtn(ushort3); -short3 __ovld __cnfn convert_short3(ushort3); -short3 __ovld __cnfn convert_short3_sat(ushort3); -short3 __ovld __cnfn convert_short3_rte(int3); -short3 __ovld __cnfn convert_short3_sat_rte(int3); -short3 __ovld __cnfn convert_short3_rtz(int3); -short3 __ovld __cnfn convert_short3_sat_rtz(int3); -short3 __ovld __cnfn convert_short3_rtp(int3); -short3 __ovld __cnfn convert_short3_sat_rtp(int3); -short3 __ovld __cnfn convert_short3_rtn(int3); -short3 __ovld __cnfn convert_short3_sat_rtn(int3); -short3 __ovld __cnfn convert_short3(int3); -short3 __ovld __cnfn convert_short3_sat(int3); -short3 __ovld __cnfn convert_short3_rte(uint3); -short3 __ovld __cnfn convert_short3_sat_rte(uint3); -short3 __ovld __cnfn convert_short3_rtz(uint3); -short3 __ovld __cnfn convert_short3_sat_rtz(uint3); -short3 __ovld __cnfn convert_short3_rtp(uint3); -short3 __ovld __cnfn convert_short3_sat_rtp(uint3); -short3 __ovld __cnfn convert_short3_rtn(uint3); -short3 __ovld __cnfn convert_short3_sat_rtn(uint3); -short3 __ovld __cnfn convert_short3(uint3); -short3 __ovld __cnfn convert_short3_sat(uint3); -short3 __ovld __cnfn convert_short3_rte(long3); -short3 __ovld __cnfn convert_short3_sat_rte(long3); -short3 __ovld __cnfn convert_short3_rtz(long3); -short3 __ovld __cnfn convert_short3_sat_rtz(long3); -short3 __ovld __cnfn convert_short3_rtp(long3); -short3 __ovld __cnfn convert_short3_sat_rtp(long3); -short3 __ovld __cnfn convert_short3_rtn(long3); -short3 __ovld __cnfn convert_short3_sat_rtn(long3); -short3 __ovld __cnfn convert_short3(long3); -short3 __ovld __cnfn convert_short3_sat(long3); -short3 __ovld __cnfn convert_short3_rte(ulong3); -short3 __ovld __cnfn convert_short3_sat_rte(ulong3); -short3 __ovld __cnfn convert_short3_rtz(ulong3); -short3 __ovld __cnfn convert_short3_sat_rtz(ulong3); -short3 __ovld __cnfn convert_short3_rtp(ulong3); -short3 __ovld __cnfn convert_short3_sat_rtp(ulong3); -short3 __ovld __cnfn convert_short3_rtn(ulong3); -short3 __ovld __cnfn convert_short3_sat_rtn(ulong3); -short3 __ovld __cnfn convert_short3(ulong3); -short3 __ovld __cnfn convert_short3_sat(ulong3); -short3 __ovld __cnfn convert_short3_rte(float3); -short3 __ovld __cnfn convert_short3_sat_rte(float3); -short3 __ovld __cnfn convert_short3_rtz(float3); -short3 __ovld __cnfn convert_short3_sat_rtz(float3); -short3 __ovld __cnfn convert_short3_rtp(float3); -short3 __ovld __cnfn convert_short3_sat_rtp(float3); -short3 __ovld __cnfn convert_short3_rtn(float3); -short3 __ovld __cnfn convert_short3_sat_rtn(float3); -short3 __ovld __cnfn convert_short3(float3); -short3 __ovld __cnfn convert_short3_sat(float3); -ushort3 __ovld __cnfn convert_ushort3_rte(char3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(char3); -ushort3 __ovld __cnfn convert_ushort3_rtz(char3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(char3); -ushort3 __ovld __cnfn convert_ushort3_rtp(char3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(char3); -ushort3 __ovld __cnfn convert_ushort3_rtn(char3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(char3); -ushort3 __ovld __cnfn convert_ushort3(char3); -ushort3 __ovld __cnfn convert_ushort3_sat(char3); -ushort3 __ovld __cnfn convert_ushort3_rte(uchar3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(uchar3); -ushort3 __ovld __cnfn convert_ushort3_rtz(uchar3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uchar3); -ushort3 __ovld __cnfn convert_ushort3_rtp(uchar3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uchar3); -ushort3 __ovld __cnfn convert_ushort3_rtn(uchar3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uchar3); -ushort3 __ovld __cnfn convert_ushort3(uchar3); -ushort3 __ovld __cnfn convert_ushort3_sat(uchar3); -ushort3 __ovld __cnfn convert_ushort3_rte(short3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(short3); -ushort3 __ovld __cnfn convert_ushort3_rtz(short3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(short3); -ushort3 __ovld __cnfn convert_ushort3_rtp(short3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(short3); -ushort3 __ovld __cnfn convert_ushort3_rtn(short3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(short3); -ushort3 __ovld __cnfn convert_ushort3(short3); -ushort3 __ovld __cnfn convert_ushort3_sat(short3); -ushort3 __ovld __cnfn convert_ushort3_rte(ushort3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(ushort3); -ushort3 __ovld __cnfn convert_ushort3_rtz(ushort3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ushort3); -ushort3 __ovld __cnfn convert_ushort3_rtp(ushort3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ushort3); -ushort3 __ovld __cnfn convert_ushort3_rtn(ushort3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ushort3); -ushort3 __ovld __cnfn convert_ushort3(ushort3); -ushort3 __ovld __cnfn convert_ushort3_sat(ushort3); -ushort3 __ovld __cnfn convert_ushort3_rte(int3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(int3); -ushort3 __ovld __cnfn convert_ushort3_rtz(int3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(int3); -ushort3 __ovld __cnfn convert_ushort3_rtp(int3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(int3); -ushort3 __ovld __cnfn convert_ushort3_rtn(int3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(int3); -ushort3 __ovld __cnfn convert_ushort3(int3); -ushort3 __ovld __cnfn convert_ushort3_sat(int3); -ushort3 __ovld __cnfn convert_ushort3_rte(uint3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(uint3); -ushort3 __ovld __cnfn convert_ushort3_rtz(uint3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uint3); -ushort3 __ovld __cnfn convert_ushort3_rtp(uint3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uint3); -ushort3 __ovld __cnfn convert_ushort3_rtn(uint3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uint3); -ushort3 __ovld __cnfn convert_ushort3(uint3); -ushort3 __ovld __cnfn convert_ushort3_sat(uint3); -ushort3 __ovld __cnfn convert_ushort3_rte(long3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(long3); -ushort3 __ovld __cnfn convert_ushort3_rtz(long3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(long3); -ushort3 __ovld __cnfn convert_ushort3_rtp(long3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(long3); -ushort3 __ovld __cnfn convert_ushort3_rtn(long3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(long3); -ushort3 __ovld __cnfn convert_ushort3(long3); -ushort3 __ovld __cnfn convert_ushort3_sat(long3); -ushort3 __ovld __cnfn convert_ushort3_rte(ulong3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(ulong3); -ushort3 __ovld __cnfn convert_ushort3_rtz(ulong3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ulong3); -ushort3 __ovld __cnfn convert_ushort3_rtp(ulong3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ulong3); -ushort3 __ovld __cnfn convert_ushort3_rtn(ulong3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ulong3); -ushort3 __ovld __cnfn convert_ushort3(ulong3); -ushort3 __ovld __cnfn convert_ushort3_sat(ulong3); -ushort3 __ovld __cnfn convert_ushort3_rte(float3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(float3); -ushort3 __ovld __cnfn convert_ushort3_rtz(float3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(float3); -ushort3 __ovld __cnfn convert_ushort3_rtp(float3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(float3); -ushort3 __ovld __cnfn convert_ushort3_rtn(float3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(float3); -ushort3 __ovld __cnfn convert_ushort3(float3); -ushort3 __ovld __cnfn convert_ushort3_sat(float3); -int3 __ovld __cnfn convert_int3_rte(char3); -int3 __ovld __cnfn convert_int3_sat_rte(char3); -int3 __ovld __cnfn convert_int3_rtz(char3); -int3 __ovld __cnfn convert_int3_sat_rtz(char3); -int3 __ovld __cnfn convert_int3_rtp(char3); -int3 __ovld __cnfn convert_int3_sat_rtp(char3); -int3 __ovld __cnfn convert_int3_rtn(char3); -int3 __ovld __cnfn convert_int3_sat_rtn(char3); -int3 __ovld __cnfn convert_int3(char3); -int3 __ovld __cnfn convert_int3_sat(char3); -int3 __ovld __cnfn convert_int3_rte(uchar3); -int3 __ovld __cnfn convert_int3_sat_rte(uchar3); -int3 __ovld __cnfn convert_int3_rtz(uchar3); -int3 __ovld __cnfn convert_int3_sat_rtz(uchar3); -int3 __ovld __cnfn convert_int3_rtp(uchar3); -int3 __ovld __cnfn convert_int3_sat_rtp(uchar3); -int3 __ovld __cnfn convert_int3_rtn(uchar3); -int3 __ovld __cnfn convert_int3_sat_rtn(uchar3); -int3 __ovld __cnfn convert_int3(uchar3); -int3 __ovld __cnfn convert_int3_sat(uchar3); -int3 __ovld __cnfn convert_int3_rte(short3); -int3 __ovld __cnfn convert_int3_sat_rte(short3); -int3 __ovld __cnfn convert_int3_rtz(short3); -int3 __ovld __cnfn convert_int3_sat_rtz(short3); -int3 __ovld __cnfn convert_int3_rtp(short3); -int3 __ovld __cnfn convert_int3_sat_rtp(short3); -int3 __ovld __cnfn convert_int3_rtn(short3); -int3 __ovld __cnfn convert_int3_sat_rtn(short3); -int3 __ovld __cnfn convert_int3(short3); -int3 __ovld __cnfn convert_int3_sat(short3); -int3 __ovld __cnfn convert_int3_rte(ushort3); -int3 __ovld __cnfn convert_int3_sat_rte(ushort3); -int3 __ovld __cnfn convert_int3_rtz(ushort3); -int3 __ovld __cnfn convert_int3_sat_rtz(ushort3); -int3 __ovld __cnfn convert_int3_rtp(ushort3); -int3 __ovld __cnfn convert_int3_sat_rtp(ushort3); -int3 __ovld __cnfn convert_int3_rtn(ushort3); -int3 __ovld __cnfn convert_int3_sat_rtn(ushort3); -int3 __ovld __cnfn convert_int3(ushort3); -int3 __ovld __cnfn convert_int3_sat(ushort3); -int3 __ovld __cnfn convert_int3_rte(int3); -int3 __ovld __cnfn convert_int3_sat_rte(int3); -int3 __ovld __cnfn convert_int3_rtz(int3); -int3 __ovld __cnfn convert_int3_sat_rtz(int3); -int3 __ovld __cnfn convert_int3_rtp(int3); -int3 __ovld __cnfn convert_int3_sat_rtp(int3); -int3 __ovld __cnfn convert_int3_rtn(int3); -int3 __ovld __cnfn convert_int3_sat_rtn(int3); -int3 __ovld __cnfn convert_int3(int3); -int3 __ovld __cnfn convert_int3_sat(int3); -int3 __ovld __cnfn convert_int3_rte(uint3); -int3 __ovld __cnfn convert_int3_sat_rte(uint3); -int3 __ovld __cnfn convert_int3_rtz(uint3); -int3 __ovld __cnfn convert_int3_sat_rtz(uint3); -int3 __ovld __cnfn convert_int3_rtp(uint3); -int3 __ovld __cnfn convert_int3_sat_rtp(uint3); -int3 __ovld __cnfn convert_int3_rtn(uint3); -int3 __ovld __cnfn convert_int3_sat_rtn(uint3); -int3 __ovld __cnfn convert_int3(uint3); -int3 __ovld __cnfn convert_int3_sat(uint3); -int3 __ovld __cnfn convert_int3_rte(long3); -int3 __ovld __cnfn convert_int3_sat_rte(long3); -int3 __ovld __cnfn convert_int3_rtz(long3); -int3 __ovld __cnfn convert_int3_sat_rtz(long3); -int3 __ovld __cnfn convert_int3_rtp(long3); -int3 __ovld __cnfn convert_int3_sat_rtp(long3); -int3 __ovld __cnfn convert_int3_rtn(long3); -int3 __ovld __cnfn convert_int3_sat_rtn(long3); -int3 __ovld __cnfn convert_int3(long3); -int3 __ovld __cnfn convert_int3_sat(long3); -int3 __ovld __cnfn convert_int3_rte(ulong3); -int3 __ovld __cnfn convert_int3_sat_rte(ulong3); -int3 __ovld __cnfn convert_int3_rtz(ulong3); -int3 __ovld __cnfn convert_int3_sat_rtz(ulong3); -int3 __ovld __cnfn convert_int3_rtp(ulong3); -int3 __ovld __cnfn convert_int3_sat_rtp(ulong3); -int3 __ovld __cnfn convert_int3_rtn(ulong3); -int3 __ovld __cnfn convert_int3_sat_rtn(ulong3); -int3 __ovld __cnfn convert_int3(ulong3); -int3 __ovld __cnfn convert_int3_sat(ulong3); -int3 __ovld __cnfn convert_int3_rte(float3); -int3 __ovld __cnfn convert_int3_sat_rte(float3); -int3 __ovld __cnfn convert_int3_rtz(float3); -int3 __ovld __cnfn convert_int3_sat_rtz(float3); -int3 __ovld __cnfn convert_int3_rtp(float3); -int3 __ovld __cnfn convert_int3_sat_rtp(float3); -int3 __ovld __cnfn convert_int3_rtn(float3); -int3 __ovld __cnfn convert_int3_sat_rtn(float3); -int3 __ovld __cnfn convert_int3(float3); -int3 __ovld __cnfn convert_int3_sat(float3); -uint3 __ovld __cnfn convert_uint3_rte(char3); -uint3 __ovld __cnfn convert_uint3_sat_rte(char3); -uint3 __ovld __cnfn convert_uint3_rtz(char3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(char3); -uint3 __ovld __cnfn convert_uint3_rtp(char3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(char3); -uint3 __ovld __cnfn convert_uint3_rtn(char3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(char3); -uint3 __ovld __cnfn convert_uint3(char3); -uint3 __ovld __cnfn convert_uint3_sat(char3); -uint3 __ovld __cnfn convert_uint3_rte(uchar3); -uint3 __ovld __cnfn convert_uint3_sat_rte(uchar3); -uint3 __ovld __cnfn convert_uint3_rtz(uchar3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(uchar3); -uint3 __ovld __cnfn convert_uint3_rtp(uchar3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(uchar3); -uint3 __ovld __cnfn convert_uint3_rtn(uchar3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(uchar3); -uint3 __ovld __cnfn convert_uint3(uchar3); -uint3 __ovld __cnfn convert_uint3_sat(uchar3); -uint3 __ovld __cnfn convert_uint3_rte(short3); -uint3 __ovld __cnfn convert_uint3_sat_rte(short3); -uint3 __ovld __cnfn convert_uint3_rtz(short3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(short3); -uint3 __ovld __cnfn convert_uint3_rtp(short3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(short3); -uint3 __ovld __cnfn convert_uint3_rtn(short3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(short3); -uint3 __ovld __cnfn convert_uint3(short3); -uint3 __ovld __cnfn convert_uint3_sat(short3); -uint3 __ovld __cnfn convert_uint3_rte(ushort3); -uint3 __ovld __cnfn convert_uint3_sat_rte(ushort3); -uint3 __ovld __cnfn convert_uint3_rtz(ushort3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(ushort3); -uint3 __ovld __cnfn convert_uint3_rtp(ushort3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(ushort3); -uint3 __ovld __cnfn convert_uint3_rtn(ushort3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(ushort3); -uint3 __ovld __cnfn convert_uint3(ushort3); -uint3 __ovld __cnfn convert_uint3_sat(ushort3); -uint3 __ovld __cnfn convert_uint3_rte(int3); -uint3 __ovld __cnfn convert_uint3_sat_rte(int3); -uint3 __ovld __cnfn convert_uint3_rtz(int3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(int3); -uint3 __ovld __cnfn convert_uint3_rtp(int3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(int3); -uint3 __ovld __cnfn convert_uint3_rtn(int3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(int3); -uint3 __ovld __cnfn convert_uint3(int3); -uint3 __ovld __cnfn convert_uint3_sat(int3); -uint3 __ovld __cnfn convert_uint3_rte(uint3); -uint3 __ovld __cnfn convert_uint3_sat_rte(uint3); -uint3 __ovld __cnfn convert_uint3_rtz(uint3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(uint3); -uint3 __ovld __cnfn convert_uint3_rtp(uint3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(uint3); -uint3 __ovld __cnfn convert_uint3_rtn(uint3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(uint3); -uint3 __ovld __cnfn convert_uint3(uint3); -uint3 __ovld __cnfn convert_uint3_sat(uint3); -uint3 __ovld __cnfn convert_uint3_rte(long3); -uint3 __ovld __cnfn convert_uint3_sat_rte(long3); -uint3 __ovld __cnfn convert_uint3_rtz(long3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(long3); -uint3 __ovld __cnfn convert_uint3_rtp(long3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(long3); -uint3 __ovld __cnfn convert_uint3_rtn(long3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(long3); -uint3 __ovld __cnfn convert_uint3(long3); -uint3 __ovld __cnfn convert_uint3_sat(long3); -uint3 __ovld __cnfn convert_uint3_rte(ulong3); -uint3 __ovld __cnfn convert_uint3_sat_rte(ulong3); -uint3 __ovld __cnfn convert_uint3_rtz(ulong3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(ulong3); -uint3 __ovld __cnfn convert_uint3_rtp(ulong3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(ulong3); -uint3 __ovld __cnfn convert_uint3_rtn(ulong3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(ulong3); -uint3 __ovld __cnfn convert_uint3(ulong3); -uint3 __ovld __cnfn convert_uint3_sat(ulong3); -uint3 __ovld __cnfn convert_uint3_rte(float3); -uint3 __ovld __cnfn convert_uint3_sat_rte(float3); -uint3 __ovld __cnfn convert_uint3_rtz(float3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(float3); -uint3 __ovld __cnfn convert_uint3_rtp(float3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(float3); -uint3 __ovld __cnfn convert_uint3_rtn(float3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(float3); -uint3 __ovld __cnfn convert_uint3(float3); -uint3 __ovld __cnfn convert_uint3_sat(float3); -long3 __ovld __cnfn convert_long3_rte(char3); -long3 __ovld __cnfn convert_long3_sat_rte(char3); -long3 __ovld __cnfn convert_long3_rtz(char3); -long3 __ovld __cnfn convert_long3_sat_rtz(char3); -long3 __ovld __cnfn convert_long3_rtp(char3); -long3 __ovld __cnfn convert_long3_sat_rtp(char3); -long3 __ovld __cnfn convert_long3_rtn(char3); -long3 __ovld __cnfn convert_long3_sat_rtn(char3); -long3 __ovld __cnfn convert_long3(char3); -long3 __ovld __cnfn convert_long3_sat(char3); -long3 __ovld __cnfn convert_long3_rte(uchar3); -long3 __ovld __cnfn convert_long3_sat_rte(uchar3); -long3 __ovld __cnfn convert_long3_rtz(uchar3); -long3 __ovld __cnfn convert_long3_sat_rtz(uchar3); -long3 __ovld __cnfn convert_long3_rtp(uchar3); -long3 __ovld __cnfn convert_long3_sat_rtp(uchar3); -long3 __ovld __cnfn convert_long3_rtn(uchar3); -long3 __ovld __cnfn convert_long3_sat_rtn(uchar3); -long3 __ovld __cnfn convert_long3(uchar3); -long3 __ovld __cnfn convert_long3_sat(uchar3); -long3 __ovld __cnfn convert_long3_rte(short3); -long3 __ovld __cnfn convert_long3_sat_rte(short3); -long3 __ovld __cnfn convert_long3_rtz(short3); -long3 __ovld __cnfn convert_long3_sat_rtz(short3); -long3 __ovld __cnfn convert_long3_rtp(short3); -long3 __ovld __cnfn convert_long3_sat_rtp(short3); -long3 __ovld __cnfn convert_long3_rtn(short3); -long3 __ovld __cnfn convert_long3_sat_rtn(short3); -long3 __ovld __cnfn convert_long3(short3); -long3 __ovld __cnfn convert_long3_sat(short3); -long3 __ovld __cnfn convert_long3_rte(ushort3); -long3 __ovld __cnfn convert_long3_sat_rte(ushort3); -long3 __ovld __cnfn convert_long3_rtz(ushort3); -long3 __ovld __cnfn convert_long3_sat_rtz(ushort3); -long3 __ovld __cnfn convert_long3_rtp(ushort3); -long3 __ovld __cnfn convert_long3_sat_rtp(ushort3); -long3 __ovld __cnfn convert_long3_rtn(ushort3); -long3 __ovld __cnfn convert_long3_sat_rtn(ushort3); -long3 __ovld __cnfn convert_long3(ushort3); -long3 __ovld __cnfn convert_long3_sat(ushort3); -long3 __ovld __cnfn convert_long3_rte(int3); -long3 __ovld __cnfn convert_long3_sat_rte(int3); -long3 __ovld __cnfn convert_long3_rtz(int3); -long3 __ovld __cnfn convert_long3_sat_rtz(int3); -long3 __ovld __cnfn convert_long3_rtp(int3); -long3 __ovld __cnfn convert_long3_sat_rtp(int3); -long3 __ovld __cnfn convert_long3_rtn(int3); -long3 __ovld __cnfn convert_long3_sat_rtn(int3); -long3 __ovld __cnfn convert_long3(int3); -long3 __ovld __cnfn convert_long3_sat(int3); -long3 __ovld __cnfn convert_long3_rte(uint3); -long3 __ovld __cnfn convert_long3_sat_rte(uint3); -long3 __ovld __cnfn convert_long3_rtz(uint3); -long3 __ovld __cnfn convert_long3_sat_rtz(uint3); -long3 __ovld __cnfn convert_long3_rtp(uint3); -long3 __ovld __cnfn convert_long3_sat_rtp(uint3); -long3 __ovld __cnfn convert_long3_rtn(uint3); -long3 __ovld __cnfn convert_long3_sat_rtn(uint3); -long3 __ovld __cnfn convert_long3(uint3); -long3 __ovld __cnfn convert_long3_sat(uint3); -long3 __ovld __cnfn convert_long3_rte(long3); -long3 __ovld __cnfn convert_long3_sat_rte(long3); -long3 __ovld __cnfn convert_long3_rtz(long3); -long3 __ovld __cnfn convert_long3_sat_rtz(long3); -long3 __ovld __cnfn convert_long3_rtp(long3); -long3 __ovld __cnfn convert_long3_sat_rtp(long3); -long3 __ovld __cnfn convert_long3_rtn(long3); -long3 __ovld __cnfn convert_long3_sat_rtn(long3); -long3 __ovld __cnfn convert_long3(long3); -long3 __ovld __cnfn convert_long3_sat(long3); -long3 __ovld __cnfn convert_long3_rte(ulong3); -long3 __ovld __cnfn convert_long3_sat_rte(ulong3); -long3 __ovld __cnfn convert_long3_rtz(ulong3); -long3 __ovld __cnfn convert_long3_sat_rtz(ulong3); -long3 __ovld __cnfn convert_long3_rtp(ulong3); -long3 __ovld __cnfn convert_long3_sat_rtp(ulong3); -long3 __ovld __cnfn convert_long3_rtn(ulong3); -long3 __ovld __cnfn convert_long3_sat_rtn(ulong3); -long3 __ovld __cnfn convert_long3(ulong3); -long3 __ovld __cnfn convert_long3_sat(ulong3); -long3 __ovld __cnfn convert_long3_rte(float3); -long3 __ovld __cnfn convert_long3_sat_rte(float3); -long3 __ovld __cnfn convert_long3_rtz(float3); -long3 __ovld __cnfn convert_long3_sat_rtz(float3); -long3 __ovld __cnfn convert_long3_rtp(float3); -long3 __ovld __cnfn convert_long3_sat_rtp(float3); -long3 __ovld __cnfn convert_long3_rtn(float3); -long3 __ovld __cnfn convert_long3_sat_rtn(float3); -long3 __ovld __cnfn convert_long3(float3); -long3 __ovld __cnfn convert_long3_sat(float3); -ulong3 __ovld __cnfn convert_ulong3_rte(char3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(char3); -ulong3 __ovld __cnfn convert_ulong3_rtz(char3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(char3); -ulong3 __ovld __cnfn convert_ulong3_rtp(char3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(char3); -ulong3 __ovld __cnfn convert_ulong3_rtn(char3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(char3); -ulong3 __ovld __cnfn convert_ulong3(char3); -ulong3 __ovld __cnfn convert_ulong3_sat(char3); -ulong3 __ovld __cnfn convert_ulong3_rte(uchar3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(uchar3); -ulong3 __ovld __cnfn convert_ulong3_rtz(uchar3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uchar3); -ulong3 __ovld __cnfn convert_ulong3_rtp(uchar3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uchar3); -ulong3 __ovld __cnfn convert_ulong3_rtn(uchar3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uchar3); -ulong3 __ovld __cnfn convert_ulong3(uchar3); -ulong3 __ovld __cnfn convert_ulong3_sat(uchar3); -ulong3 __ovld __cnfn convert_ulong3_rte(short3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(short3); -ulong3 __ovld __cnfn convert_ulong3_rtz(short3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(short3); -ulong3 __ovld __cnfn convert_ulong3_rtp(short3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(short3); -ulong3 __ovld __cnfn convert_ulong3_rtn(short3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(short3); -ulong3 __ovld __cnfn convert_ulong3(short3); -ulong3 __ovld __cnfn convert_ulong3_sat(short3); -ulong3 __ovld __cnfn convert_ulong3_rte(ushort3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(ushort3); -ulong3 __ovld __cnfn convert_ulong3_rtz(ushort3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ushort3); -ulong3 __ovld __cnfn convert_ulong3_rtp(ushort3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ushort3); -ulong3 __ovld __cnfn convert_ulong3_rtn(ushort3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ushort3); -ulong3 __ovld __cnfn convert_ulong3(ushort3); -ulong3 __ovld __cnfn convert_ulong3_sat(ushort3); -ulong3 __ovld __cnfn convert_ulong3_rte(int3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(int3); -ulong3 __ovld __cnfn convert_ulong3_rtz(int3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(int3); -ulong3 __ovld __cnfn convert_ulong3_rtp(int3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(int3); -ulong3 __ovld __cnfn convert_ulong3_rtn(int3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(int3); -ulong3 __ovld __cnfn convert_ulong3(int3); -ulong3 __ovld __cnfn convert_ulong3_sat(int3); -ulong3 __ovld __cnfn convert_ulong3_rte(uint3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(uint3); -ulong3 __ovld __cnfn convert_ulong3_rtz(uint3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uint3); -ulong3 __ovld __cnfn convert_ulong3_rtp(uint3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uint3); -ulong3 __ovld __cnfn convert_ulong3_rtn(uint3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uint3); -ulong3 __ovld __cnfn convert_ulong3(uint3); -ulong3 __ovld __cnfn convert_ulong3_sat(uint3); -ulong3 __ovld __cnfn convert_ulong3_rte(long3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(long3); -ulong3 __ovld __cnfn convert_ulong3_rtz(long3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(long3); -ulong3 __ovld __cnfn convert_ulong3_rtp(long3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(long3); -ulong3 __ovld __cnfn convert_ulong3_rtn(long3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(long3); -ulong3 __ovld __cnfn convert_ulong3(long3); -ulong3 __ovld __cnfn convert_ulong3_sat(long3); -ulong3 __ovld __cnfn convert_ulong3_rte(ulong3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(ulong3); -ulong3 __ovld __cnfn convert_ulong3_rtz(ulong3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ulong3); -ulong3 __ovld __cnfn convert_ulong3_rtp(ulong3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ulong3); -ulong3 __ovld __cnfn convert_ulong3_rtn(ulong3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ulong3); -ulong3 __ovld __cnfn convert_ulong3(ulong3); -ulong3 __ovld __cnfn convert_ulong3_sat(ulong3); -ulong3 __ovld __cnfn convert_ulong3_rte(float3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(float3); -ulong3 __ovld __cnfn convert_ulong3_rtz(float3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(float3); -ulong3 __ovld __cnfn convert_ulong3_rtp(float3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(float3); -ulong3 __ovld __cnfn convert_ulong3_rtn(float3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(float3); -ulong3 __ovld __cnfn convert_ulong3(float3); -ulong3 __ovld __cnfn convert_ulong3_sat(float3); -float3 __ovld __cnfn convert_float3_rte(char3); -float3 __ovld __cnfn convert_float3_rtz(char3); -float3 __ovld __cnfn convert_float3_rtp(char3); -float3 __ovld __cnfn convert_float3_rtn(char3); -float3 __ovld __cnfn convert_float3(char3); -float3 __ovld __cnfn convert_float3_rte(uchar3); -float3 __ovld __cnfn convert_float3_rtz(uchar3); -float3 __ovld __cnfn convert_float3_rtp(uchar3); -float3 __ovld __cnfn convert_float3_rtn(uchar3); -float3 __ovld __cnfn convert_float3(uchar3); -float3 __ovld __cnfn convert_float3_rte(short3); -float3 __ovld __cnfn convert_float3_rtz(short3); -float3 __ovld __cnfn convert_float3_rtp(short3); -float3 __ovld __cnfn convert_float3_rtn(short3); -float3 __ovld __cnfn convert_float3(short3); -float3 __ovld __cnfn convert_float3_rte(ushort3); -float3 __ovld __cnfn convert_float3_rtz(ushort3); -float3 __ovld __cnfn convert_float3_rtp(ushort3); -float3 __ovld __cnfn convert_float3_rtn(ushort3); -float3 __ovld __cnfn convert_float3(ushort3); -float3 __ovld __cnfn convert_float3_rte(int3); -float3 __ovld __cnfn convert_float3_rtz(int3); -float3 __ovld __cnfn convert_float3_rtp(int3); -float3 __ovld __cnfn convert_float3_rtn(int3); -float3 __ovld __cnfn convert_float3(int3); -float3 __ovld __cnfn convert_float3_rte(uint3); -float3 __ovld __cnfn convert_float3_rtz(uint3); -float3 __ovld __cnfn convert_float3_rtp(uint3); -float3 __ovld __cnfn convert_float3_rtn(uint3); -float3 __ovld __cnfn convert_float3(uint3); -float3 __ovld __cnfn convert_float3_rte(long3); -float3 __ovld __cnfn convert_float3_rtz(long3); -float3 __ovld __cnfn convert_float3_rtp(long3); -float3 __ovld __cnfn convert_float3_rtn(long3); -float3 __ovld __cnfn convert_float3(long3); -float3 __ovld __cnfn convert_float3_rte(ulong3); -float3 __ovld __cnfn convert_float3_rtz(ulong3); -float3 __ovld __cnfn convert_float3_rtp(ulong3); -float3 __ovld __cnfn convert_float3_rtn(ulong3); -float3 __ovld __cnfn convert_float3(ulong3); -float3 __ovld __cnfn convert_float3_rte(float3); -float3 __ovld __cnfn convert_float3_rtz(float3); -float3 __ovld __cnfn convert_float3_rtp(float3); -float3 __ovld __cnfn convert_float3_rtn(float3); -float3 __ovld __cnfn convert_float3(float3); -char4 __ovld __cnfn convert_char4_rte(char4); -char4 __ovld __cnfn convert_char4_sat_rte(char4); -char4 __ovld __cnfn convert_char4_rtz(char4); -char4 __ovld __cnfn convert_char4_sat_rtz(char4); -char4 __ovld __cnfn convert_char4_rtp(char4); -char4 __ovld __cnfn convert_char4_sat_rtp(char4); -char4 __ovld __cnfn convert_char4_rtn(char4); -char4 __ovld __cnfn convert_char4_sat_rtn(char4); -char4 __ovld __cnfn convert_char4(char4); -char4 __ovld __cnfn convert_char4_sat(char4); -char4 __ovld __cnfn convert_char4_rte(uchar4); -char4 __ovld __cnfn convert_char4_sat_rte(uchar4); -char4 __ovld __cnfn convert_char4_rtz(uchar4); -char4 __ovld __cnfn convert_char4_sat_rtz(uchar4); -char4 __ovld __cnfn convert_char4_rtp(uchar4); -char4 __ovld __cnfn convert_char4_sat_rtp(uchar4); -char4 __ovld __cnfn convert_char4_rtn(uchar4); -char4 __ovld __cnfn convert_char4_sat_rtn(uchar4); -char4 __ovld __cnfn convert_char4(uchar4); -char4 __ovld __cnfn convert_char4_sat(uchar4); -char4 __ovld __cnfn convert_char4_rte(short4); -char4 __ovld __cnfn convert_char4_sat_rte(short4); -char4 __ovld __cnfn convert_char4_rtz(short4); -char4 __ovld __cnfn convert_char4_sat_rtz(short4); -char4 __ovld __cnfn convert_char4_rtp(short4); -char4 __ovld __cnfn convert_char4_sat_rtp(short4); -char4 __ovld __cnfn convert_char4_rtn(short4); -char4 __ovld __cnfn convert_char4_sat_rtn(short4); -char4 __ovld __cnfn convert_char4(short4); -char4 __ovld __cnfn convert_char4_sat(short4); -char4 __ovld __cnfn convert_char4_rte(ushort4); -char4 __ovld __cnfn convert_char4_sat_rte(ushort4); -char4 __ovld __cnfn convert_char4_rtz(ushort4); -char4 __ovld __cnfn convert_char4_sat_rtz(ushort4); -char4 __ovld __cnfn convert_char4_rtp(ushort4); -char4 __ovld __cnfn convert_char4_sat_rtp(ushort4); -char4 __ovld __cnfn convert_char4_rtn(ushort4); -char4 __ovld __cnfn convert_char4_sat_rtn(ushort4); -char4 __ovld __cnfn convert_char4(ushort4); -char4 __ovld __cnfn convert_char4_sat(ushort4); -char4 __ovld __cnfn convert_char4_rte(int4); -char4 __ovld __cnfn convert_char4_sat_rte(int4); -char4 __ovld __cnfn convert_char4_rtz(int4); -char4 __ovld __cnfn convert_char4_sat_rtz(int4); -char4 __ovld __cnfn convert_char4_rtp(int4); -char4 __ovld __cnfn convert_char4_sat_rtp(int4); -char4 __ovld __cnfn convert_char4_rtn(int4); -char4 __ovld __cnfn convert_char4_sat_rtn(int4); -char4 __ovld __cnfn convert_char4(int4); -char4 __ovld __cnfn convert_char4_sat(int4); -char4 __ovld __cnfn convert_char4_rte(uint4); -char4 __ovld __cnfn convert_char4_sat_rte(uint4); -char4 __ovld __cnfn convert_char4_rtz(uint4); -char4 __ovld __cnfn convert_char4_sat_rtz(uint4); -char4 __ovld __cnfn convert_char4_rtp(uint4); -char4 __ovld __cnfn convert_char4_sat_rtp(uint4); -char4 __ovld __cnfn convert_char4_rtn(uint4); -char4 __ovld __cnfn convert_char4_sat_rtn(uint4); -char4 __ovld __cnfn convert_char4(uint4); -char4 __ovld __cnfn convert_char4_sat(uint4); -char4 __ovld __cnfn convert_char4_rte(long4); -char4 __ovld __cnfn convert_char4_sat_rte(long4); -char4 __ovld __cnfn convert_char4_rtz(long4); -char4 __ovld __cnfn convert_char4_sat_rtz(long4); -char4 __ovld __cnfn convert_char4_rtp(long4); -char4 __ovld __cnfn convert_char4_sat_rtp(long4); -char4 __ovld __cnfn convert_char4_rtn(long4); -char4 __ovld __cnfn convert_char4_sat_rtn(long4); -char4 __ovld __cnfn convert_char4(long4); -char4 __ovld __cnfn convert_char4_sat(long4); -char4 __ovld __cnfn convert_char4_rte(ulong4); -char4 __ovld __cnfn convert_char4_sat_rte(ulong4); -char4 __ovld __cnfn convert_char4_rtz(ulong4); -char4 __ovld __cnfn convert_char4_sat_rtz(ulong4); -char4 __ovld __cnfn convert_char4_rtp(ulong4); -char4 __ovld __cnfn convert_char4_sat_rtp(ulong4); -char4 __ovld __cnfn convert_char4_rtn(ulong4); -char4 __ovld __cnfn convert_char4_sat_rtn(ulong4); -char4 __ovld __cnfn convert_char4(ulong4); -char4 __ovld __cnfn convert_char4_sat(ulong4); -char4 __ovld __cnfn convert_char4_rte(float4); -char4 __ovld __cnfn convert_char4_sat_rte(float4); -char4 __ovld __cnfn convert_char4_rtz(float4); -char4 __ovld __cnfn convert_char4_sat_rtz(float4); -char4 __ovld __cnfn convert_char4_rtp(float4); -char4 __ovld __cnfn convert_char4_sat_rtp(float4); -char4 __ovld __cnfn convert_char4_rtn(float4); -char4 __ovld __cnfn convert_char4_sat_rtn(float4); -char4 __ovld __cnfn convert_char4(float4); -char4 __ovld __cnfn convert_char4_sat(float4); -uchar4 __ovld __cnfn convert_uchar4_rte(char4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(char4); -uchar4 __ovld __cnfn convert_uchar4_rtz(char4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(char4); -uchar4 __ovld __cnfn convert_uchar4_rtp(char4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(char4); -uchar4 __ovld __cnfn convert_uchar4_rtn(char4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(char4); -uchar4 __ovld __cnfn convert_uchar4(char4); -uchar4 __ovld __cnfn convert_uchar4_sat(char4); -uchar4 __ovld __cnfn convert_uchar4_rte(uchar4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(uchar4); -uchar4 __ovld __cnfn convert_uchar4_rtz(uchar4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uchar4); -uchar4 __ovld __cnfn convert_uchar4_rtp(uchar4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uchar4); -uchar4 __ovld __cnfn convert_uchar4_rtn(uchar4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uchar4); -uchar4 __ovld __cnfn convert_uchar4(uchar4); -uchar4 __ovld __cnfn convert_uchar4_sat(uchar4); -uchar4 __ovld __cnfn convert_uchar4_rte(short4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(short4); -uchar4 __ovld __cnfn convert_uchar4_rtz(short4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(short4); -uchar4 __ovld __cnfn convert_uchar4_rtp(short4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(short4); -uchar4 __ovld __cnfn convert_uchar4_rtn(short4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(short4); -uchar4 __ovld __cnfn convert_uchar4(short4); -uchar4 __ovld __cnfn convert_uchar4_sat(short4); -uchar4 __ovld __cnfn convert_uchar4_rte(ushort4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(ushort4); -uchar4 __ovld __cnfn convert_uchar4_rtz(ushort4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ushort4); -uchar4 __ovld __cnfn convert_uchar4_rtp(ushort4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ushort4); -uchar4 __ovld __cnfn convert_uchar4_rtn(ushort4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ushort4); -uchar4 __ovld __cnfn convert_uchar4(ushort4); -uchar4 __ovld __cnfn convert_uchar4_sat(ushort4); -uchar4 __ovld __cnfn convert_uchar4_rte(int4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(int4); -uchar4 __ovld __cnfn convert_uchar4_rtz(int4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(int4); -uchar4 __ovld __cnfn convert_uchar4_rtp(int4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(int4); -uchar4 __ovld __cnfn convert_uchar4_rtn(int4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(int4); -uchar4 __ovld __cnfn convert_uchar4(int4); -uchar4 __ovld __cnfn convert_uchar4_sat(int4); -uchar4 __ovld __cnfn convert_uchar4_rte(uint4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(uint4); -uchar4 __ovld __cnfn convert_uchar4_rtz(uint4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uint4); -uchar4 __ovld __cnfn convert_uchar4_rtp(uint4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uint4); -uchar4 __ovld __cnfn convert_uchar4_rtn(uint4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uint4); -uchar4 __ovld __cnfn convert_uchar4(uint4); -uchar4 __ovld __cnfn convert_uchar4_sat(uint4); -uchar4 __ovld __cnfn convert_uchar4_rte(long4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(long4); -uchar4 __ovld __cnfn convert_uchar4_rtz(long4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(long4); -uchar4 __ovld __cnfn convert_uchar4_rtp(long4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(long4); -uchar4 __ovld __cnfn convert_uchar4_rtn(long4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(long4); -uchar4 __ovld __cnfn convert_uchar4(long4); -uchar4 __ovld __cnfn convert_uchar4_sat(long4); -uchar4 __ovld __cnfn convert_uchar4_rte(ulong4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(ulong4); -uchar4 __ovld __cnfn convert_uchar4_rtz(ulong4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ulong4); -uchar4 __ovld __cnfn convert_uchar4_rtp(ulong4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ulong4); -uchar4 __ovld __cnfn convert_uchar4_rtn(ulong4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ulong4); -uchar4 __ovld __cnfn convert_uchar4(ulong4); -uchar4 __ovld __cnfn convert_uchar4_sat(ulong4); -uchar4 __ovld __cnfn convert_uchar4_rte(float4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(float4); -uchar4 __ovld __cnfn convert_uchar4_rtz(float4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(float4); -uchar4 __ovld __cnfn convert_uchar4_rtp(float4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(float4); -uchar4 __ovld __cnfn convert_uchar4_rtn(float4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(float4); -uchar4 __ovld __cnfn convert_uchar4(float4); -uchar4 __ovld __cnfn convert_uchar4_sat(float4); -short4 __ovld __cnfn convert_short4_rte(char4); -short4 __ovld __cnfn convert_short4_sat_rte(char4); -short4 __ovld __cnfn convert_short4_rtz(char4); -short4 __ovld __cnfn convert_short4_sat_rtz(char4); -short4 __ovld __cnfn convert_short4_rtp(char4); -short4 __ovld __cnfn convert_short4_sat_rtp(char4); -short4 __ovld __cnfn convert_short4_rtn(char4); -short4 __ovld __cnfn convert_short4_sat_rtn(char4); -short4 __ovld __cnfn convert_short4(char4); -short4 __ovld __cnfn convert_short4_sat(char4); -short4 __ovld __cnfn convert_short4_rte(uchar4); -short4 __ovld __cnfn convert_short4_sat_rte(uchar4); -short4 __ovld __cnfn convert_short4_rtz(uchar4); -short4 __ovld __cnfn convert_short4_sat_rtz(uchar4); -short4 __ovld __cnfn convert_short4_rtp(uchar4); -short4 __ovld __cnfn convert_short4_sat_rtp(uchar4); -short4 __ovld __cnfn convert_short4_rtn(uchar4); -short4 __ovld __cnfn convert_short4_sat_rtn(uchar4); -short4 __ovld __cnfn convert_short4(uchar4); -short4 __ovld __cnfn convert_short4_sat(uchar4); -short4 __ovld __cnfn convert_short4_rte(short4); -short4 __ovld __cnfn convert_short4_sat_rte(short4); -short4 __ovld __cnfn convert_short4_rtz(short4); -short4 __ovld __cnfn convert_short4_sat_rtz(short4); -short4 __ovld __cnfn convert_short4_rtp(short4); -short4 __ovld __cnfn convert_short4_sat_rtp(short4); -short4 __ovld __cnfn convert_short4_rtn(short4); -short4 __ovld __cnfn convert_short4_sat_rtn(short4); -short4 __ovld __cnfn convert_short4(short4); -short4 __ovld __cnfn convert_short4_sat(short4); -short4 __ovld __cnfn convert_short4_rte(ushort4); -short4 __ovld __cnfn convert_short4_sat_rte(ushort4); -short4 __ovld __cnfn convert_short4_rtz(ushort4); -short4 __ovld __cnfn convert_short4_sat_rtz(ushort4); -short4 __ovld __cnfn convert_short4_rtp(ushort4); -short4 __ovld __cnfn convert_short4_sat_rtp(ushort4); -short4 __ovld __cnfn convert_short4_rtn(ushort4); -short4 __ovld __cnfn convert_short4_sat_rtn(ushort4); -short4 __ovld __cnfn convert_short4(ushort4); -short4 __ovld __cnfn convert_short4_sat(ushort4); -short4 __ovld __cnfn convert_short4_rte(int4); -short4 __ovld __cnfn convert_short4_sat_rte(int4); -short4 __ovld __cnfn convert_short4_rtz(int4); -short4 __ovld __cnfn convert_short4_sat_rtz(int4); -short4 __ovld __cnfn convert_short4_rtp(int4); -short4 __ovld __cnfn convert_short4_sat_rtp(int4); -short4 __ovld __cnfn convert_short4_rtn(int4); -short4 __ovld __cnfn convert_short4_sat_rtn(int4); -short4 __ovld __cnfn convert_short4(int4); -short4 __ovld __cnfn convert_short4_sat(int4); -short4 __ovld __cnfn convert_short4_rte(uint4); -short4 __ovld __cnfn convert_short4_sat_rte(uint4); -short4 __ovld __cnfn convert_short4_rtz(uint4); -short4 __ovld __cnfn convert_short4_sat_rtz(uint4); -short4 __ovld __cnfn convert_short4_rtp(uint4); -short4 __ovld __cnfn convert_short4_sat_rtp(uint4); -short4 __ovld __cnfn convert_short4_rtn(uint4); -short4 __ovld __cnfn convert_short4_sat_rtn(uint4); -short4 __ovld __cnfn convert_short4(uint4); -short4 __ovld __cnfn convert_short4_sat(uint4); -short4 __ovld __cnfn convert_short4_rte(long4); -short4 __ovld __cnfn convert_short4_sat_rte(long4); -short4 __ovld __cnfn convert_short4_rtz(long4); -short4 __ovld __cnfn convert_short4_sat_rtz(long4); -short4 __ovld __cnfn convert_short4_rtp(long4); -short4 __ovld __cnfn convert_short4_sat_rtp(long4); -short4 __ovld __cnfn convert_short4_rtn(long4); -short4 __ovld __cnfn convert_short4_sat_rtn(long4); -short4 __ovld __cnfn convert_short4(long4); -short4 __ovld __cnfn convert_short4_sat(long4); -short4 __ovld __cnfn convert_short4_rte(ulong4); -short4 __ovld __cnfn convert_short4_sat_rte(ulong4); -short4 __ovld __cnfn convert_short4_rtz(ulong4); -short4 __ovld __cnfn convert_short4_sat_rtz(ulong4); -short4 __ovld __cnfn convert_short4_rtp(ulong4); -short4 __ovld __cnfn convert_short4_sat_rtp(ulong4); -short4 __ovld __cnfn convert_short4_rtn(ulong4); -short4 __ovld __cnfn convert_short4_sat_rtn(ulong4); -short4 __ovld __cnfn convert_short4(ulong4); -short4 __ovld __cnfn convert_short4_sat(ulong4); -short4 __ovld __cnfn convert_short4_rte(float4); -short4 __ovld __cnfn convert_short4_sat_rte(float4); -short4 __ovld __cnfn convert_short4_rtz(float4); -short4 __ovld __cnfn convert_short4_sat_rtz(float4); -short4 __ovld __cnfn convert_short4_rtp(float4); -short4 __ovld __cnfn convert_short4_sat_rtp(float4); -short4 __ovld __cnfn convert_short4_rtn(float4); -short4 __ovld __cnfn convert_short4_sat_rtn(float4); -short4 __ovld __cnfn convert_short4(float4); -short4 __ovld __cnfn convert_short4_sat(float4); -ushort4 __ovld __cnfn convert_ushort4_rte(char4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(char4); -ushort4 __ovld __cnfn convert_ushort4_rtz(char4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(char4); -ushort4 __ovld __cnfn convert_ushort4_rtp(char4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(char4); -ushort4 __ovld __cnfn convert_ushort4_rtn(char4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(char4); -ushort4 __ovld __cnfn convert_ushort4(char4); -ushort4 __ovld __cnfn convert_ushort4_sat(char4); -ushort4 __ovld __cnfn convert_ushort4_rte(uchar4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(uchar4); -ushort4 __ovld __cnfn convert_ushort4_rtz(uchar4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uchar4); -ushort4 __ovld __cnfn convert_ushort4_rtp(uchar4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uchar4); -ushort4 __ovld __cnfn convert_ushort4_rtn(uchar4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uchar4); -ushort4 __ovld __cnfn convert_ushort4(uchar4); -ushort4 __ovld __cnfn convert_ushort4_sat(uchar4); -ushort4 __ovld __cnfn convert_ushort4_rte(short4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(short4); -ushort4 __ovld __cnfn convert_ushort4_rtz(short4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(short4); -ushort4 __ovld __cnfn convert_ushort4_rtp(short4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(short4); -ushort4 __ovld __cnfn convert_ushort4_rtn(short4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(short4); -ushort4 __ovld __cnfn convert_ushort4(short4); -ushort4 __ovld __cnfn convert_ushort4_sat(short4); -ushort4 __ovld __cnfn convert_ushort4_rte(ushort4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(ushort4); -ushort4 __ovld __cnfn convert_ushort4_rtz(ushort4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ushort4); -ushort4 __ovld __cnfn convert_ushort4_rtp(ushort4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ushort4); -ushort4 __ovld __cnfn convert_ushort4_rtn(ushort4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ushort4); -ushort4 __ovld __cnfn convert_ushort4(ushort4); -ushort4 __ovld __cnfn convert_ushort4_sat(ushort4); -ushort4 __ovld __cnfn convert_ushort4_rte(int4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(int4); -ushort4 __ovld __cnfn convert_ushort4_rtz(int4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(int4); -ushort4 __ovld __cnfn convert_ushort4_rtp(int4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(int4); -ushort4 __ovld __cnfn convert_ushort4_rtn(int4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(int4); -ushort4 __ovld __cnfn convert_ushort4(int4); -ushort4 __ovld __cnfn convert_ushort4_sat(int4); -ushort4 __ovld __cnfn convert_ushort4_rte(uint4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(uint4); -ushort4 __ovld __cnfn convert_ushort4_rtz(uint4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uint4); -ushort4 __ovld __cnfn convert_ushort4_rtp(uint4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uint4); -ushort4 __ovld __cnfn convert_ushort4_rtn(uint4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uint4); -ushort4 __ovld __cnfn convert_ushort4(uint4); -ushort4 __ovld __cnfn convert_ushort4_sat(uint4); -ushort4 __ovld __cnfn convert_ushort4_rte(long4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(long4); -ushort4 __ovld __cnfn convert_ushort4_rtz(long4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(long4); -ushort4 __ovld __cnfn convert_ushort4_rtp(long4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(long4); -ushort4 __ovld __cnfn convert_ushort4_rtn(long4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(long4); -ushort4 __ovld __cnfn convert_ushort4(long4); -ushort4 __ovld __cnfn convert_ushort4_sat(long4); -ushort4 __ovld __cnfn convert_ushort4_rte(ulong4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(ulong4); -ushort4 __ovld __cnfn convert_ushort4_rtz(ulong4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ulong4); -ushort4 __ovld __cnfn convert_ushort4_rtp(ulong4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ulong4); -ushort4 __ovld __cnfn convert_ushort4_rtn(ulong4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ulong4); -ushort4 __ovld __cnfn convert_ushort4(ulong4); -ushort4 __ovld __cnfn convert_ushort4_sat(ulong4); -ushort4 __ovld __cnfn convert_ushort4_rte(float4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(float4); -ushort4 __ovld __cnfn convert_ushort4_rtz(float4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(float4); -ushort4 __ovld __cnfn convert_ushort4_rtp(float4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(float4); -ushort4 __ovld __cnfn convert_ushort4_rtn(float4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(float4); -ushort4 __ovld __cnfn convert_ushort4(float4); -ushort4 __ovld __cnfn convert_ushort4_sat(float4); -int4 __ovld __cnfn convert_int4_rte(char4); -int4 __ovld __cnfn convert_int4_sat_rte(char4); -int4 __ovld __cnfn convert_int4_rtz(char4); -int4 __ovld __cnfn convert_int4_sat_rtz(char4); -int4 __ovld __cnfn convert_int4_rtp(char4); -int4 __ovld __cnfn convert_int4_sat_rtp(char4); -int4 __ovld __cnfn convert_int4_rtn(char4); -int4 __ovld __cnfn convert_int4_sat_rtn(char4); -int4 __ovld __cnfn convert_int4(char4); -int4 __ovld __cnfn convert_int4_sat(char4); -int4 __ovld __cnfn convert_int4_rte(uchar4); -int4 __ovld __cnfn convert_int4_sat_rte(uchar4); -int4 __ovld __cnfn convert_int4_rtz(uchar4); -int4 __ovld __cnfn convert_int4_sat_rtz(uchar4); -int4 __ovld __cnfn convert_int4_rtp(uchar4); -int4 __ovld __cnfn convert_int4_sat_rtp(uchar4); -int4 __ovld __cnfn convert_int4_rtn(uchar4); -int4 __ovld __cnfn convert_int4_sat_rtn(uchar4); -int4 __ovld __cnfn convert_int4(uchar4); -int4 __ovld __cnfn convert_int4_sat(uchar4); -int4 __ovld __cnfn convert_int4_rte(short4); -int4 __ovld __cnfn convert_int4_sat_rte(short4); -int4 __ovld __cnfn convert_int4_rtz(short4); -int4 __ovld __cnfn convert_int4_sat_rtz(short4); -int4 __ovld __cnfn convert_int4_rtp(short4); -int4 __ovld __cnfn convert_int4_sat_rtp(short4); -int4 __ovld __cnfn convert_int4_rtn(short4); -int4 __ovld __cnfn convert_int4_sat_rtn(short4); -int4 __ovld __cnfn convert_int4(short4); -int4 __ovld __cnfn convert_int4_sat(short4); -int4 __ovld __cnfn convert_int4_rte(ushort4); -int4 __ovld __cnfn convert_int4_sat_rte(ushort4); -int4 __ovld __cnfn convert_int4_rtz(ushort4); -int4 __ovld __cnfn convert_int4_sat_rtz(ushort4); -int4 __ovld __cnfn convert_int4_rtp(ushort4); -int4 __ovld __cnfn convert_int4_sat_rtp(ushort4); -int4 __ovld __cnfn convert_int4_rtn(ushort4); -int4 __ovld __cnfn convert_int4_sat_rtn(ushort4); -int4 __ovld __cnfn convert_int4(ushort4); -int4 __ovld __cnfn convert_int4_sat(ushort4); -int4 __ovld __cnfn convert_int4_rte(int4); -int4 __ovld __cnfn convert_int4_sat_rte(int4); -int4 __ovld __cnfn convert_int4_rtz(int4); -int4 __ovld __cnfn convert_int4_sat_rtz(int4); -int4 __ovld __cnfn convert_int4_rtp(int4); -int4 __ovld __cnfn convert_int4_sat_rtp(int4); -int4 __ovld __cnfn convert_int4_rtn(int4); -int4 __ovld __cnfn convert_int4_sat_rtn(int4); -int4 __ovld __cnfn convert_int4(int4); -int4 __ovld __cnfn convert_int4_sat(int4); -int4 __ovld __cnfn convert_int4_rte(uint4); -int4 __ovld __cnfn convert_int4_sat_rte(uint4); -int4 __ovld __cnfn convert_int4_rtz(uint4); -int4 __ovld __cnfn convert_int4_sat_rtz(uint4); -int4 __ovld __cnfn convert_int4_rtp(uint4); -int4 __ovld __cnfn convert_int4_sat_rtp(uint4); -int4 __ovld __cnfn convert_int4_rtn(uint4); -int4 __ovld __cnfn convert_int4_sat_rtn(uint4); -int4 __ovld __cnfn convert_int4(uint4); -int4 __ovld __cnfn convert_int4_sat(uint4); -int4 __ovld __cnfn convert_int4_rte(long4); -int4 __ovld __cnfn convert_int4_sat_rte(long4); -int4 __ovld __cnfn convert_int4_rtz(long4); -int4 __ovld __cnfn convert_int4_sat_rtz(long4); -int4 __ovld __cnfn convert_int4_rtp(long4); -int4 __ovld __cnfn convert_int4_sat_rtp(long4); -int4 __ovld __cnfn convert_int4_rtn(long4); -int4 __ovld __cnfn convert_int4_sat_rtn(long4); -int4 __ovld __cnfn convert_int4(long4); -int4 __ovld __cnfn convert_int4_sat(long4); -int4 __ovld __cnfn convert_int4_rte(ulong4); -int4 __ovld __cnfn convert_int4_sat_rte(ulong4); -int4 __ovld __cnfn convert_int4_rtz(ulong4); -int4 __ovld __cnfn convert_int4_sat_rtz(ulong4); -int4 __ovld __cnfn convert_int4_rtp(ulong4); -int4 __ovld __cnfn convert_int4_sat_rtp(ulong4); -int4 __ovld __cnfn convert_int4_rtn(ulong4); -int4 __ovld __cnfn convert_int4_sat_rtn(ulong4); -int4 __ovld __cnfn convert_int4(ulong4); -int4 __ovld __cnfn convert_int4_sat(ulong4); -int4 __ovld __cnfn convert_int4_rte(float4); -int4 __ovld __cnfn convert_int4_sat_rte(float4); -int4 __ovld __cnfn convert_int4_rtz(float4); -int4 __ovld __cnfn convert_int4_sat_rtz(float4); -int4 __ovld __cnfn convert_int4_rtp(float4); -int4 __ovld __cnfn convert_int4_sat_rtp(float4); -int4 __ovld __cnfn convert_int4_rtn(float4); -int4 __ovld __cnfn convert_int4_sat_rtn(float4); -int4 __ovld __cnfn convert_int4(float4); -int4 __ovld __cnfn convert_int4_sat(float4); -uint4 __ovld __cnfn convert_uint4_rte(char4); -uint4 __ovld __cnfn convert_uint4_sat_rte(char4); -uint4 __ovld __cnfn convert_uint4_rtz(char4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(char4); -uint4 __ovld __cnfn convert_uint4_rtp(char4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(char4); -uint4 __ovld __cnfn convert_uint4_rtn(char4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(char4); -uint4 __ovld __cnfn convert_uint4(char4); -uint4 __ovld __cnfn convert_uint4_sat(char4); -uint4 __ovld __cnfn convert_uint4_rte(uchar4); -uint4 __ovld __cnfn convert_uint4_sat_rte(uchar4); -uint4 __ovld __cnfn convert_uint4_rtz(uchar4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(uchar4); -uint4 __ovld __cnfn convert_uint4_rtp(uchar4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(uchar4); -uint4 __ovld __cnfn convert_uint4_rtn(uchar4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(uchar4); -uint4 __ovld __cnfn convert_uint4(uchar4); -uint4 __ovld __cnfn convert_uint4_sat(uchar4); -uint4 __ovld __cnfn convert_uint4_rte(short4); -uint4 __ovld __cnfn convert_uint4_sat_rte(short4); -uint4 __ovld __cnfn convert_uint4_rtz(short4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(short4); -uint4 __ovld __cnfn convert_uint4_rtp(short4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(short4); -uint4 __ovld __cnfn convert_uint4_rtn(short4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(short4); -uint4 __ovld __cnfn convert_uint4(short4); -uint4 __ovld __cnfn convert_uint4_sat(short4); -uint4 __ovld __cnfn convert_uint4_rte(ushort4); -uint4 __ovld __cnfn convert_uint4_sat_rte(ushort4); -uint4 __ovld __cnfn convert_uint4_rtz(ushort4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(ushort4); -uint4 __ovld __cnfn convert_uint4_rtp(ushort4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(ushort4); -uint4 __ovld __cnfn convert_uint4_rtn(ushort4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(ushort4); -uint4 __ovld __cnfn convert_uint4(ushort4); -uint4 __ovld __cnfn convert_uint4_sat(ushort4); -uint4 __ovld __cnfn convert_uint4_rte(int4); -uint4 __ovld __cnfn convert_uint4_sat_rte(int4); -uint4 __ovld __cnfn convert_uint4_rtz(int4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(int4); -uint4 __ovld __cnfn convert_uint4_rtp(int4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(int4); -uint4 __ovld __cnfn convert_uint4_rtn(int4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(int4); -uint4 __ovld __cnfn convert_uint4(int4); -uint4 __ovld __cnfn convert_uint4_sat(int4); -uint4 __ovld __cnfn convert_uint4_rte(uint4); -uint4 __ovld __cnfn convert_uint4_sat_rte(uint4); -uint4 __ovld __cnfn convert_uint4_rtz(uint4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(uint4); -uint4 __ovld __cnfn convert_uint4_rtp(uint4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(uint4); -uint4 __ovld __cnfn convert_uint4_rtn(uint4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(uint4); -uint4 __ovld __cnfn convert_uint4(uint4); -uint4 __ovld __cnfn convert_uint4_sat(uint4); -uint4 __ovld __cnfn convert_uint4_rte(long4); -uint4 __ovld __cnfn convert_uint4_sat_rte(long4); -uint4 __ovld __cnfn convert_uint4_rtz(long4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(long4); -uint4 __ovld __cnfn convert_uint4_rtp(long4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(long4); -uint4 __ovld __cnfn convert_uint4_rtn(long4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(long4); -uint4 __ovld __cnfn convert_uint4(long4); -uint4 __ovld __cnfn convert_uint4_sat(long4); -uint4 __ovld __cnfn convert_uint4_rte(ulong4); -uint4 __ovld __cnfn convert_uint4_sat_rte(ulong4); -uint4 __ovld __cnfn convert_uint4_rtz(ulong4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(ulong4); -uint4 __ovld __cnfn convert_uint4_rtp(ulong4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(ulong4); -uint4 __ovld __cnfn convert_uint4_rtn(ulong4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(ulong4); -uint4 __ovld __cnfn convert_uint4(ulong4); -uint4 __ovld __cnfn convert_uint4_sat(ulong4); -uint4 __ovld __cnfn convert_uint4_rte(float4); -uint4 __ovld __cnfn convert_uint4_sat_rte(float4); -uint4 __ovld __cnfn convert_uint4_rtz(float4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(float4); -uint4 __ovld __cnfn convert_uint4_rtp(float4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(float4); -uint4 __ovld __cnfn convert_uint4_rtn(float4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(float4); -uint4 __ovld __cnfn convert_uint4(float4); -uint4 __ovld __cnfn convert_uint4_sat(float4); -long4 __ovld __cnfn convert_long4_rte(char4); -long4 __ovld __cnfn convert_long4_sat_rte(char4); -long4 __ovld __cnfn convert_long4_rtz(char4); -long4 __ovld __cnfn convert_long4_sat_rtz(char4); -long4 __ovld __cnfn convert_long4_rtp(char4); -long4 __ovld __cnfn convert_long4_sat_rtp(char4); -long4 __ovld __cnfn convert_long4_rtn(char4); -long4 __ovld __cnfn convert_long4_sat_rtn(char4); -long4 __ovld __cnfn convert_long4(char4); -long4 __ovld __cnfn convert_long4_sat(char4); -long4 __ovld __cnfn convert_long4_rte(uchar4); -long4 __ovld __cnfn convert_long4_sat_rte(uchar4); -long4 __ovld __cnfn convert_long4_rtz(uchar4); -long4 __ovld __cnfn convert_long4_sat_rtz(uchar4); -long4 __ovld __cnfn convert_long4_rtp(uchar4); -long4 __ovld __cnfn convert_long4_sat_rtp(uchar4); -long4 __ovld __cnfn convert_long4_rtn(uchar4); -long4 __ovld __cnfn convert_long4_sat_rtn(uchar4); -long4 __ovld __cnfn convert_long4(uchar4); -long4 __ovld __cnfn convert_long4_sat(uchar4); -long4 __ovld __cnfn convert_long4_rte(short4); -long4 __ovld __cnfn convert_long4_sat_rte(short4); -long4 __ovld __cnfn convert_long4_rtz(short4); -long4 __ovld __cnfn convert_long4_sat_rtz(short4); -long4 __ovld __cnfn convert_long4_rtp(short4); -long4 __ovld __cnfn convert_long4_sat_rtp(short4); -long4 __ovld __cnfn convert_long4_rtn(short4); -long4 __ovld __cnfn convert_long4_sat_rtn(short4); -long4 __ovld __cnfn convert_long4(short4); -long4 __ovld __cnfn convert_long4_sat(short4); -long4 __ovld __cnfn convert_long4_rte(ushort4); -long4 __ovld __cnfn convert_long4_sat_rte(ushort4); -long4 __ovld __cnfn convert_long4_rtz(ushort4); -long4 __ovld __cnfn convert_long4_sat_rtz(ushort4); -long4 __ovld __cnfn convert_long4_rtp(ushort4); -long4 __ovld __cnfn convert_long4_sat_rtp(ushort4); -long4 __ovld __cnfn convert_long4_rtn(ushort4); -long4 __ovld __cnfn convert_long4_sat_rtn(ushort4); -long4 __ovld __cnfn convert_long4(ushort4); -long4 __ovld __cnfn convert_long4_sat(ushort4); -long4 __ovld __cnfn convert_long4_rte(int4); -long4 __ovld __cnfn convert_long4_sat_rte(int4); -long4 __ovld __cnfn convert_long4_rtz(int4); -long4 __ovld __cnfn convert_long4_sat_rtz(int4); -long4 __ovld __cnfn convert_long4_rtp(int4); -long4 __ovld __cnfn convert_long4_sat_rtp(int4); -long4 __ovld __cnfn convert_long4_rtn(int4); -long4 __ovld __cnfn convert_long4_sat_rtn(int4); -long4 __ovld __cnfn convert_long4(int4); -long4 __ovld __cnfn convert_long4_sat(int4); -long4 __ovld __cnfn convert_long4_rte(uint4); -long4 __ovld __cnfn convert_long4_sat_rte(uint4); -long4 __ovld __cnfn convert_long4_rtz(uint4); -long4 __ovld __cnfn convert_long4_sat_rtz(uint4); -long4 __ovld __cnfn convert_long4_rtp(uint4); -long4 __ovld __cnfn convert_long4_sat_rtp(uint4); -long4 __ovld __cnfn convert_long4_rtn(uint4); -long4 __ovld __cnfn convert_long4_sat_rtn(uint4); -long4 __ovld __cnfn convert_long4(uint4); -long4 __ovld __cnfn convert_long4_sat(uint4); -long4 __ovld __cnfn convert_long4_rte(long4); -long4 __ovld __cnfn convert_long4_sat_rte(long4); -long4 __ovld __cnfn convert_long4_rtz(long4); -long4 __ovld __cnfn convert_long4_sat_rtz(long4); -long4 __ovld __cnfn convert_long4_rtp(long4); -long4 __ovld __cnfn convert_long4_sat_rtp(long4); -long4 __ovld __cnfn convert_long4_rtn(long4); -long4 __ovld __cnfn convert_long4_sat_rtn(long4); -long4 __ovld __cnfn convert_long4(long4); -long4 __ovld __cnfn convert_long4_sat(long4); -long4 __ovld __cnfn convert_long4_rte(ulong4); -long4 __ovld __cnfn convert_long4_sat_rte(ulong4); -long4 __ovld __cnfn convert_long4_rtz(ulong4); -long4 __ovld __cnfn convert_long4_sat_rtz(ulong4); -long4 __ovld __cnfn convert_long4_rtp(ulong4); -long4 __ovld __cnfn convert_long4_sat_rtp(ulong4); -long4 __ovld __cnfn convert_long4_rtn(ulong4); -long4 __ovld __cnfn convert_long4_sat_rtn(ulong4); -long4 __ovld __cnfn convert_long4(ulong4); -long4 __ovld __cnfn convert_long4_sat(ulong4); -long4 __ovld __cnfn convert_long4_rte(float4); -long4 __ovld __cnfn convert_long4_sat_rte(float4); -long4 __ovld __cnfn convert_long4_rtz(float4); -long4 __ovld __cnfn convert_long4_sat_rtz(float4); -long4 __ovld __cnfn convert_long4_rtp(float4); -long4 __ovld __cnfn convert_long4_sat_rtp(float4); -long4 __ovld __cnfn convert_long4_rtn(float4); -long4 __ovld __cnfn convert_long4_sat_rtn(float4); -long4 __ovld __cnfn convert_long4(float4); -long4 __ovld __cnfn convert_long4_sat(float4); -ulong4 __ovld __cnfn convert_ulong4_rte(char4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(char4); -ulong4 __ovld __cnfn convert_ulong4_rtz(char4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(char4); -ulong4 __ovld __cnfn convert_ulong4_rtp(char4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(char4); -ulong4 __ovld __cnfn convert_ulong4_rtn(char4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(char4); -ulong4 __ovld __cnfn convert_ulong4(char4); -ulong4 __ovld __cnfn convert_ulong4_sat(char4); -ulong4 __ovld __cnfn convert_ulong4_rte(uchar4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(uchar4); -ulong4 __ovld __cnfn convert_ulong4_rtz(uchar4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uchar4); -ulong4 __ovld __cnfn convert_ulong4_rtp(uchar4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uchar4); -ulong4 __ovld __cnfn convert_ulong4_rtn(uchar4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uchar4); -ulong4 __ovld __cnfn convert_ulong4(uchar4); -ulong4 __ovld __cnfn convert_ulong4_sat(uchar4); -ulong4 __ovld __cnfn convert_ulong4_rte(short4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(short4); -ulong4 __ovld __cnfn convert_ulong4_rtz(short4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(short4); -ulong4 __ovld __cnfn convert_ulong4_rtp(short4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(short4); -ulong4 __ovld __cnfn convert_ulong4_rtn(short4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(short4); -ulong4 __ovld __cnfn convert_ulong4(short4); -ulong4 __ovld __cnfn convert_ulong4_sat(short4); -ulong4 __ovld __cnfn convert_ulong4_rte(ushort4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(ushort4); -ulong4 __ovld __cnfn convert_ulong4_rtz(ushort4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ushort4); -ulong4 __ovld __cnfn convert_ulong4_rtp(ushort4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ushort4); -ulong4 __ovld __cnfn convert_ulong4_rtn(ushort4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ushort4); -ulong4 __ovld __cnfn convert_ulong4(ushort4); -ulong4 __ovld __cnfn convert_ulong4_sat(ushort4); -ulong4 __ovld __cnfn convert_ulong4_rte(int4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(int4); -ulong4 __ovld __cnfn convert_ulong4_rtz(int4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(int4); -ulong4 __ovld __cnfn convert_ulong4_rtp(int4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(int4); -ulong4 __ovld __cnfn convert_ulong4_rtn(int4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(int4); -ulong4 __ovld __cnfn convert_ulong4(int4); -ulong4 __ovld __cnfn convert_ulong4_sat(int4); -ulong4 __ovld __cnfn convert_ulong4_rte(uint4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(uint4); -ulong4 __ovld __cnfn convert_ulong4_rtz(uint4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uint4); -ulong4 __ovld __cnfn convert_ulong4_rtp(uint4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uint4); -ulong4 __ovld __cnfn convert_ulong4_rtn(uint4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uint4); -ulong4 __ovld __cnfn convert_ulong4(uint4); -ulong4 __ovld __cnfn convert_ulong4_sat(uint4); -ulong4 __ovld __cnfn convert_ulong4_rte(long4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(long4); -ulong4 __ovld __cnfn convert_ulong4_rtz(long4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(long4); -ulong4 __ovld __cnfn convert_ulong4_rtp(long4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(long4); -ulong4 __ovld __cnfn convert_ulong4_rtn(long4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(long4); -ulong4 __ovld __cnfn convert_ulong4(long4); -ulong4 __ovld __cnfn convert_ulong4_sat(long4); -ulong4 __ovld __cnfn convert_ulong4_rte(ulong4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(ulong4); -ulong4 __ovld __cnfn convert_ulong4_rtz(ulong4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ulong4); -ulong4 __ovld __cnfn convert_ulong4_rtp(ulong4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ulong4); -ulong4 __ovld __cnfn convert_ulong4_rtn(ulong4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ulong4); -ulong4 __ovld __cnfn convert_ulong4(ulong4); -ulong4 __ovld __cnfn convert_ulong4_sat(ulong4); -ulong4 __ovld __cnfn convert_ulong4_rte(float4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(float4); -ulong4 __ovld __cnfn convert_ulong4_rtz(float4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(float4); -ulong4 __ovld __cnfn convert_ulong4_rtp(float4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(float4); -ulong4 __ovld __cnfn convert_ulong4_rtn(float4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(float4); -ulong4 __ovld __cnfn convert_ulong4(float4); -ulong4 __ovld __cnfn convert_ulong4_sat(float4); -float4 __ovld __cnfn convert_float4_rte(char4); -float4 __ovld __cnfn convert_float4_rtz(char4); -float4 __ovld __cnfn convert_float4_rtp(char4); -float4 __ovld __cnfn convert_float4_rtn(char4); -float4 __ovld __cnfn convert_float4(char4); -float4 __ovld __cnfn convert_float4_rte(uchar4); -float4 __ovld __cnfn convert_float4_rtz(uchar4); -float4 __ovld __cnfn convert_float4_rtp(uchar4); -float4 __ovld __cnfn convert_float4_rtn(uchar4); -float4 __ovld __cnfn convert_float4(uchar4); -float4 __ovld __cnfn convert_float4_rte(short4); -float4 __ovld __cnfn convert_float4_rtz(short4); -float4 __ovld __cnfn convert_float4_rtp(short4); -float4 __ovld __cnfn convert_float4_rtn(short4); -float4 __ovld __cnfn convert_float4(short4); -float4 __ovld __cnfn convert_float4_rte(ushort4); -float4 __ovld __cnfn convert_float4_rtz(ushort4); -float4 __ovld __cnfn convert_float4_rtp(ushort4); -float4 __ovld __cnfn convert_float4_rtn(ushort4); -float4 __ovld __cnfn convert_float4(ushort4); -float4 __ovld __cnfn convert_float4_rte(int4); -float4 __ovld __cnfn convert_float4_rtz(int4); -float4 __ovld __cnfn convert_float4_rtp(int4); -float4 __ovld __cnfn convert_float4_rtn(int4); -float4 __ovld __cnfn convert_float4(int4); -float4 __ovld __cnfn convert_float4_rte(uint4); -float4 __ovld __cnfn convert_float4_rtz(uint4); -float4 __ovld __cnfn convert_float4_rtp(uint4); -float4 __ovld __cnfn convert_float4_rtn(uint4); -float4 __ovld __cnfn convert_float4(uint4); -float4 __ovld __cnfn convert_float4_rte(long4); -float4 __ovld __cnfn convert_float4_rtz(long4); -float4 __ovld __cnfn convert_float4_rtp(long4); -float4 __ovld __cnfn convert_float4_rtn(long4); -float4 __ovld __cnfn convert_float4(long4); -float4 __ovld __cnfn convert_float4_rte(ulong4); -float4 __ovld __cnfn convert_float4_rtz(ulong4); -float4 __ovld __cnfn convert_float4_rtp(ulong4); -float4 __ovld __cnfn convert_float4_rtn(ulong4); -float4 __ovld __cnfn convert_float4(ulong4); -float4 __ovld __cnfn convert_float4_rte(float4); -float4 __ovld __cnfn convert_float4_rtz(float4); -float4 __ovld __cnfn convert_float4_rtp(float4); -float4 __ovld __cnfn convert_float4_rtn(float4); -float4 __ovld __cnfn convert_float4(float4); -char8 __ovld __cnfn convert_char8_rte(char8); -char8 __ovld __cnfn convert_char8_sat_rte(char8); -char8 __ovld __cnfn convert_char8_rtz(char8); -char8 __ovld __cnfn convert_char8_sat_rtz(char8); -char8 __ovld __cnfn convert_char8_rtp(char8); -char8 __ovld __cnfn convert_char8_sat_rtp(char8); -char8 __ovld __cnfn convert_char8_rtn(char8); -char8 __ovld __cnfn convert_char8_sat_rtn(char8); -char8 __ovld __cnfn convert_char8(char8); -char8 __ovld __cnfn convert_char8_sat(char8); -char8 __ovld __cnfn convert_char8_rte(uchar8); -char8 __ovld __cnfn convert_char8_sat_rte(uchar8); -char8 __ovld __cnfn convert_char8_rtz(uchar8); -char8 __ovld __cnfn convert_char8_sat_rtz(uchar8); -char8 __ovld __cnfn convert_char8_rtp(uchar8); -char8 __ovld __cnfn convert_char8_sat_rtp(uchar8); -char8 __ovld __cnfn convert_char8_rtn(uchar8); -char8 __ovld __cnfn convert_char8_sat_rtn(uchar8); -char8 __ovld __cnfn convert_char8(uchar8); -char8 __ovld __cnfn convert_char8_sat(uchar8); -char8 __ovld __cnfn convert_char8_rte(short8); -char8 __ovld __cnfn convert_char8_sat_rte(short8); -char8 __ovld __cnfn convert_char8_rtz(short8); -char8 __ovld __cnfn convert_char8_sat_rtz(short8); -char8 __ovld __cnfn convert_char8_rtp(short8); -char8 __ovld __cnfn convert_char8_sat_rtp(short8); -char8 __ovld __cnfn convert_char8_rtn(short8); -char8 __ovld __cnfn convert_char8_sat_rtn(short8); -char8 __ovld __cnfn convert_char8(short8); -char8 __ovld __cnfn convert_char8_sat(short8); -char8 __ovld __cnfn convert_char8_rte(ushort8); -char8 __ovld __cnfn convert_char8_sat_rte(ushort8); -char8 __ovld __cnfn convert_char8_rtz(ushort8); -char8 __ovld __cnfn convert_char8_sat_rtz(ushort8); -char8 __ovld __cnfn convert_char8_rtp(ushort8); -char8 __ovld __cnfn convert_char8_sat_rtp(ushort8); -char8 __ovld __cnfn convert_char8_rtn(ushort8); -char8 __ovld __cnfn convert_char8_sat_rtn(ushort8); -char8 __ovld __cnfn convert_char8(ushort8); -char8 __ovld __cnfn convert_char8_sat(ushort8); -char8 __ovld __cnfn convert_char8_rte(int8); -char8 __ovld __cnfn convert_char8_sat_rte(int8); -char8 __ovld __cnfn convert_char8_rtz(int8); -char8 __ovld __cnfn convert_char8_sat_rtz(int8); -char8 __ovld __cnfn convert_char8_rtp(int8); -char8 __ovld __cnfn convert_char8_sat_rtp(int8); -char8 __ovld __cnfn convert_char8_rtn(int8); -char8 __ovld __cnfn convert_char8_sat_rtn(int8); -char8 __ovld __cnfn convert_char8(int8); -char8 __ovld __cnfn convert_char8_sat(int8); -char8 __ovld __cnfn convert_char8_rte(uint8); -char8 __ovld __cnfn convert_char8_sat_rte(uint8); -char8 __ovld __cnfn convert_char8_rtz(uint8); -char8 __ovld __cnfn convert_char8_sat_rtz(uint8); -char8 __ovld __cnfn convert_char8_rtp(uint8); -char8 __ovld __cnfn convert_char8_sat_rtp(uint8); -char8 __ovld __cnfn convert_char8_rtn(uint8); -char8 __ovld __cnfn convert_char8_sat_rtn(uint8); -char8 __ovld __cnfn convert_char8(uint8); -char8 __ovld __cnfn convert_char8_sat(uint8); -char8 __ovld __cnfn convert_char8_rte(long8); -char8 __ovld __cnfn convert_char8_sat_rte(long8); -char8 __ovld __cnfn convert_char8_rtz(long8); -char8 __ovld __cnfn convert_char8_sat_rtz(long8); -char8 __ovld __cnfn convert_char8_rtp(long8); -char8 __ovld __cnfn convert_char8_sat_rtp(long8); -char8 __ovld __cnfn convert_char8_rtn(long8); -char8 __ovld __cnfn convert_char8_sat_rtn(long8); -char8 __ovld __cnfn convert_char8(long8); -char8 __ovld __cnfn convert_char8_sat(long8); -char8 __ovld __cnfn convert_char8_rte(ulong8); -char8 __ovld __cnfn convert_char8_sat_rte(ulong8); -char8 __ovld __cnfn convert_char8_rtz(ulong8); -char8 __ovld __cnfn convert_char8_sat_rtz(ulong8); -char8 __ovld __cnfn convert_char8_rtp(ulong8); -char8 __ovld __cnfn convert_char8_sat_rtp(ulong8); -char8 __ovld __cnfn convert_char8_rtn(ulong8); -char8 __ovld __cnfn convert_char8_sat_rtn(ulong8); -char8 __ovld __cnfn convert_char8(ulong8); -char8 __ovld __cnfn convert_char8_sat(ulong8); -char8 __ovld __cnfn convert_char8_rte(float8); -char8 __ovld __cnfn convert_char8_sat_rte(float8); -char8 __ovld __cnfn convert_char8_rtz(float8); -char8 __ovld __cnfn convert_char8_sat_rtz(float8); -char8 __ovld __cnfn convert_char8_rtp(float8); -char8 __ovld __cnfn convert_char8_sat_rtp(float8); -char8 __ovld __cnfn convert_char8_rtn(float8); -char8 __ovld __cnfn convert_char8_sat_rtn(float8); -char8 __ovld __cnfn convert_char8(float8); -char8 __ovld __cnfn convert_char8_sat(float8); -uchar8 __ovld __cnfn convert_uchar8_rte(char8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(char8); -uchar8 __ovld __cnfn convert_uchar8_rtz(char8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(char8); -uchar8 __ovld __cnfn convert_uchar8_rtp(char8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(char8); -uchar8 __ovld __cnfn convert_uchar8_rtn(char8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(char8); -uchar8 __ovld __cnfn convert_uchar8(char8); -uchar8 __ovld __cnfn convert_uchar8_sat(char8); -uchar8 __ovld __cnfn convert_uchar8_rte(uchar8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(uchar8); -uchar8 __ovld __cnfn convert_uchar8_rtz(uchar8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uchar8); -uchar8 __ovld __cnfn convert_uchar8_rtp(uchar8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uchar8); -uchar8 __ovld __cnfn convert_uchar8_rtn(uchar8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uchar8); -uchar8 __ovld __cnfn convert_uchar8(uchar8); -uchar8 __ovld __cnfn convert_uchar8_sat(uchar8); -uchar8 __ovld __cnfn convert_uchar8_rte(short8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(short8); -uchar8 __ovld __cnfn convert_uchar8_rtz(short8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(short8); -uchar8 __ovld __cnfn convert_uchar8_rtp(short8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(short8); -uchar8 __ovld __cnfn convert_uchar8_rtn(short8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(short8); -uchar8 __ovld __cnfn convert_uchar8(short8); -uchar8 __ovld __cnfn convert_uchar8_sat(short8); -uchar8 __ovld __cnfn convert_uchar8_rte(ushort8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(ushort8); -uchar8 __ovld __cnfn convert_uchar8_rtz(ushort8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ushort8); -uchar8 __ovld __cnfn convert_uchar8_rtp(ushort8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ushort8); -uchar8 __ovld __cnfn convert_uchar8_rtn(ushort8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ushort8); -uchar8 __ovld __cnfn convert_uchar8(ushort8); -uchar8 __ovld __cnfn convert_uchar8_sat(ushort8); -uchar8 __ovld __cnfn convert_uchar8_rte(int8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(int8); -uchar8 __ovld __cnfn convert_uchar8_rtz(int8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(int8); -uchar8 __ovld __cnfn convert_uchar8_rtp(int8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(int8); -uchar8 __ovld __cnfn convert_uchar8_rtn(int8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(int8); -uchar8 __ovld __cnfn convert_uchar8(int8); -uchar8 __ovld __cnfn convert_uchar8_sat(int8); -uchar8 __ovld __cnfn convert_uchar8_rte(uint8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(uint8); -uchar8 __ovld __cnfn convert_uchar8_rtz(uint8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uint8); -uchar8 __ovld __cnfn convert_uchar8_rtp(uint8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uint8); -uchar8 __ovld __cnfn convert_uchar8_rtn(uint8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uint8); -uchar8 __ovld __cnfn convert_uchar8(uint8); -uchar8 __ovld __cnfn convert_uchar8_sat(uint8); -uchar8 __ovld __cnfn convert_uchar8_rte(long8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(long8); -uchar8 __ovld __cnfn convert_uchar8_rtz(long8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(long8); -uchar8 __ovld __cnfn convert_uchar8_rtp(long8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(long8); -uchar8 __ovld __cnfn convert_uchar8_rtn(long8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(long8); -uchar8 __ovld __cnfn convert_uchar8(long8); -uchar8 __ovld __cnfn convert_uchar8_sat(long8); -uchar8 __ovld __cnfn convert_uchar8_rte(ulong8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(ulong8); -uchar8 __ovld __cnfn convert_uchar8_rtz(ulong8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ulong8); -uchar8 __ovld __cnfn convert_uchar8_rtp(ulong8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ulong8); -uchar8 __ovld __cnfn convert_uchar8_rtn(ulong8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ulong8); -uchar8 __ovld __cnfn convert_uchar8(ulong8); -uchar8 __ovld __cnfn convert_uchar8_sat(ulong8); -uchar8 __ovld __cnfn convert_uchar8_rte(float8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(float8); -uchar8 __ovld __cnfn convert_uchar8_rtz(float8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(float8); -uchar8 __ovld __cnfn convert_uchar8_rtp(float8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(float8); -uchar8 __ovld __cnfn convert_uchar8_rtn(float8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(float8); -uchar8 __ovld __cnfn convert_uchar8(float8); -uchar8 __ovld __cnfn convert_uchar8_sat(float8); -short8 __ovld __cnfn convert_short8_rte(char8); -short8 __ovld __cnfn convert_short8_sat_rte(char8); -short8 __ovld __cnfn convert_short8_rtz(char8); -short8 __ovld __cnfn convert_short8_sat_rtz(char8); -short8 __ovld __cnfn convert_short8_rtp(char8); -short8 __ovld __cnfn convert_short8_sat_rtp(char8); -short8 __ovld __cnfn convert_short8_rtn(char8); -short8 __ovld __cnfn convert_short8_sat_rtn(char8); -short8 __ovld __cnfn convert_short8(char8); -short8 __ovld __cnfn convert_short8_sat(char8); -short8 __ovld __cnfn convert_short8_rte(uchar8); -short8 __ovld __cnfn convert_short8_sat_rte(uchar8); -short8 __ovld __cnfn convert_short8_rtz(uchar8); -short8 __ovld __cnfn convert_short8_sat_rtz(uchar8); -short8 __ovld __cnfn convert_short8_rtp(uchar8); -short8 __ovld __cnfn convert_short8_sat_rtp(uchar8); -short8 __ovld __cnfn convert_short8_rtn(uchar8); -short8 __ovld __cnfn convert_short8_sat_rtn(uchar8); -short8 __ovld __cnfn convert_short8(uchar8); -short8 __ovld __cnfn convert_short8_sat(uchar8); -short8 __ovld __cnfn convert_short8_rte(short8); -short8 __ovld __cnfn convert_short8_sat_rte(short8); -short8 __ovld __cnfn convert_short8_rtz(short8); -short8 __ovld __cnfn convert_short8_sat_rtz(short8); -short8 __ovld __cnfn convert_short8_rtp(short8); -short8 __ovld __cnfn convert_short8_sat_rtp(short8); -short8 __ovld __cnfn convert_short8_rtn(short8); -short8 __ovld __cnfn convert_short8_sat_rtn(short8); -short8 __ovld __cnfn convert_short8(short8); -short8 __ovld __cnfn convert_short8_sat(short8); -short8 __ovld __cnfn convert_short8_rte(ushort8); -short8 __ovld __cnfn convert_short8_sat_rte(ushort8); -short8 __ovld __cnfn convert_short8_rtz(ushort8); -short8 __ovld __cnfn convert_short8_sat_rtz(ushort8); -short8 __ovld __cnfn convert_short8_rtp(ushort8); -short8 __ovld __cnfn convert_short8_sat_rtp(ushort8); -short8 __ovld __cnfn convert_short8_rtn(ushort8); -short8 __ovld __cnfn convert_short8_sat_rtn(ushort8); -short8 __ovld __cnfn convert_short8(ushort8); -short8 __ovld __cnfn convert_short8_sat(ushort8); -short8 __ovld __cnfn convert_short8_rte(int8); -short8 __ovld __cnfn convert_short8_sat_rte(int8); -short8 __ovld __cnfn convert_short8_rtz(int8); -short8 __ovld __cnfn convert_short8_sat_rtz(int8); -short8 __ovld __cnfn convert_short8_rtp(int8); -short8 __ovld __cnfn convert_short8_sat_rtp(int8); -short8 __ovld __cnfn convert_short8_rtn(int8); -short8 __ovld __cnfn convert_short8_sat_rtn(int8); -short8 __ovld __cnfn convert_short8(int8); -short8 __ovld __cnfn convert_short8_sat(int8); -short8 __ovld __cnfn convert_short8_rte(uint8); -short8 __ovld __cnfn convert_short8_sat_rte(uint8); -short8 __ovld __cnfn convert_short8_rtz(uint8); -short8 __ovld __cnfn convert_short8_sat_rtz(uint8); -short8 __ovld __cnfn convert_short8_rtp(uint8); -short8 __ovld __cnfn convert_short8_sat_rtp(uint8); -short8 __ovld __cnfn convert_short8_rtn(uint8); -short8 __ovld __cnfn convert_short8_sat_rtn(uint8); -short8 __ovld __cnfn convert_short8(uint8); -short8 __ovld __cnfn convert_short8_sat(uint8); -short8 __ovld __cnfn convert_short8_rte(long8); -short8 __ovld __cnfn convert_short8_sat_rte(long8); -short8 __ovld __cnfn convert_short8_rtz(long8); -short8 __ovld __cnfn convert_short8_sat_rtz(long8); -short8 __ovld __cnfn convert_short8_rtp(long8); -short8 __ovld __cnfn convert_short8_sat_rtp(long8); -short8 __ovld __cnfn convert_short8_rtn(long8); -short8 __ovld __cnfn convert_short8_sat_rtn(long8); -short8 __ovld __cnfn convert_short8(long8); -short8 __ovld __cnfn convert_short8_sat(long8); -short8 __ovld __cnfn convert_short8_rte(ulong8); -short8 __ovld __cnfn convert_short8_sat_rte(ulong8); -short8 __ovld __cnfn convert_short8_rtz(ulong8); -short8 __ovld __cnfn convert_short8_sat_rtz(ulong8); -short8 __ovld __cnfn convert_short8_rtp(ulong8); -short8 __ovld __cnfn convert_short8_sat_rtp(ulong8); -short8 __ovld __cnfn convert_short8_rtn(ulong8); -short8 __ovld __cnfn convert_short8_sat_rtn(ulong8); -short8 __ovld __cnfn convert_short8(ulong8); -short8 __ovld __cnfn convert_short8_sat(ulong8); -short8 __ovld __cnfn convert_short8_rte(float8); -short8 __ovld __cnfn convert_short8_sat_rte(float8); -short8 __ovld __cnfn convert_short8_rtz(float8); -short8 __ovld __cnfn convert_short8_sat_rtz(float8); -short8 __ovld __cnfn convert_short8_rtp(float8); -short8 __ovld __cnfn convert_short8_sat_rtp(float8); -short8 __ovld __cnfn convert_short8_rtn(float8); -short8 __ovld __cnfn convert_short8_sat_rtn(float8); -short8 __ovld __cnfn convert_short8(float8); -short8 __ovld __cnfn convert_short8_sat(float8); -ushort8 __ovld __cnfn convert_ushort8_rte(char8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(char8); -ushort8 __ovld __cnfn convert_ushort8_rtz(char8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(char8); -ushort8 __ovld __cnfn convert_ushort8_rtp(char8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(char8); -ushort8 __ovld __cnfn convert_ushort8_rtn(char8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(char8); -ushort8 __ovld __cnfn convert_ushort8(char8); -ushort8 __ovld __cnfn convert_ushort8_sat(char8); -ushort8 __ovld __cnfn convert_ushort8_rte(uchar8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(uchar8); -ushort8 __ovld __cnfn convert_ushort8_rtz(uchar8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uchar8); -ushort8 __ovld __cnfn convert_ushort8_rtp(uchar8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uchar8); -ushort8 __ovld __cnfn convert_ushort8_rtn(uchar8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uchar8); -ushort8 __ovld __cnfn convert_ushort8(uchar8); -ushort8 __ovld __cnfn convert_ushort8_sat(uchar8); -ushort8 __ovld __cnfn convert_ushort8_rte(short8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(short8); -ushort8 __ovld __cnfn convert_ushort8_rtz(short8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(short8); -ushort8 __ovld __cnfn convert_ushort8_rtp(short8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(short8); -ushort8 __ovld __cnfn convert_ushort8_rtn(short8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(short8); -ushort8 __ovld __cnfn convert_ushort8(short8); -ushort8 __ovld __cnfn convert_ushort8_sat(short8); -ushort8 __ovld __cnfn convert_ushort8_rte(ushort8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(ushort8); -ushort8 __ovld __cnfn convert_ushort8_rtz(ushort8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ushort8); -ushort8 __ovld __cnfn convert_ushort8_rtp(ushort8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ushort8); -ushort8 __ovld __cnfn convert_ushort8_rtn(ushort8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ushort8); -ushort8 __ovld __cnfn convert_ushort8(ushort8); -ushort8 __ovld __cnfn convert_ushort8_sat(ushort8); -ushort8 __ovld __cnfn convert_ushort8_rte(int8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(int8); -ushort8 __ovld __cnfn convert_ushort8_rtz(int8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(int8); -ushort8 __ovld __cnfn convert_ushort8_rtp(int8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(int8); -ushort8 __ovld __cnfn convert_ushort8_rtn(int8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(int8); -ushort8 __ovld __cnfn convert_ushort8(int8); -ushort8 __ovld __cnfn convert_ushort8_sat(int8); -ushort8 __ovld __cnfn convert_ushort8_rte(uint8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(uint8); -ushort8 __ovld __cnfn convert_ushort8_rtz(uint8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uint8); -ushort8 __ovld __cnfn convert_ushort8_rtp(uint8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uint8); -ushort8 __ovld __cnfn convert_ushort8_rtn(uint8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uint8); -ushort8 __ovld __cnfn convert_ushort8(uint8); -ushort8 __ovld __cnfn convert_ushort8_sat(uint8); -ushort8 __ovld __cnfn convert_ushort8_rte(long8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(long8); -ushort8 __ovld __cnfn convert_ushort8_rtz(long8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(long8); -ushort8 __ovld __cnfn convert_ushort8_rtp(long8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(long8); -ushort8 __ovld __cnfn convert_ushort8_rtn(long8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(long8); -ushort8 __ovld __cnfn convert_ushort8(long8); -ushort8 __ovld __cnfn convert_ushort8_sat(long8); -ushort8 __ovld __cnfn convert_ushort8_rte(ulong8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(ulong8); -ushort8 __ovld __cnfn convert_ushort8_rtz(ulong8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ulong8); -ushort8 __ovld __cnfn convert_ushort8_rtp(ulong8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ulong8); -ushort8 __ovld __cnfn convert_ushort8_rtn(ulong8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ulong8); -ushort8 __ovld __cnfn convert_ushort8(ulong8); -ushort8 __ovld __cnfn convert_ushort8_sat(ulong8); -ushort8 __ovld __cnfn convert_ushort8_rte(float8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(float8); -ushort8 __ovld __cnfn convert_ushort8_rtz(float8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(float8); -ushort8 __ovld __cnfn convert_ushort8_rtp(float8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(float8); -ushort8 __ovld __cnfn convert_ushort8_rtn(float8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(float8); -ushort8 __ovld __cnfn convert_ushort8(float8); -ushort8 __ovld __cnfn convert_ushort8_sat(float8); -int8 __ovld __cnfn convert_int8_rte(char8); -int8 __ovld __cnfn convert_int8_sat_rte(char8); -int8 __ovld __cnfn convert_int8_rtz(char8); -int8 __ovld __cnfn convert_int8_sat_rtz(char8); -int8 __ovld __cnfn convert_int8_rtp(char8); -int8 __ovld __cnfn convert_int8_sat_rtp(char8); -int8 __ovld __cnfn convert_int8_rtn(char8); -int8 __ovld __cnfn convert_int8_sat_rtn(char8); -int8 __ovld __cnfn convert_int8(char8); -int8 __ovld __cnfn convert_int8_sat(char8); -int8 __ovld __cnfn convert_int8_rte(uchar8); -int8 __ovld __cnfn convert_int8_sat_rte(uchar8); -int8 __ovld __cnfn convert_int8_rtz(uchar8); -int8 __ovld __cnfn convert_int8_sat_rtz(uchar8); -int8 __ovld __cnfn convert_int8_rtp(uchar8); -int8 __ovld __cnfn convert_int8_sat_rtp(uchar8); -int8 __ovld __cnfn convert_int8_rtn(uchar8); -int8 __ovld __cnfn convert_int8_sat_rtn(uchar8); -int8 __ovld __cnfn convert_int8(uchar8); -int8 __ovld __cnfn convert_int8_sat(uchar8); -int8 __ovld __cnfn convert_int8_rte(short8); -int8 __ovld __cnfn convert_int8_sat_rte(short8); -int8 __ovld __cnfn convert_int8_rtz(short8); -int8 __ovld __cnfn convert_int8_sat_rtz(short8); -int8 __ovld __cnfn convert_int8_rtp(short8); -int8 __ovld __cnfn convert_int8_sat_rtp(short8); -int8 __ovld __cnfn convert_int8_rtn(short8); -int8 __ovld __cnfn convert_int8_sat_rtn(short8); -int8 __ovld __cnfn convert_int8(short8); -int8 __ovld __cnfn convert_int8_sat(short8); -int8 __ovld __cnfn convert_int8_rte(ushort8); -int8 __ovld __cnfn convert_int8_sat_rte(ushort8); -int8 __ovld __cnfn convert_int8_rtz(ushort8); -int8 __ovld __cnfn convert_int8_sat_rtz(ushort8); -int8 __ovld __cnfn convert_int8_rtp(ushort8); -int8 __ovld __cnfn convert_int8_sat_rtp(ushort8); -int8 __ovld __cnfn convert_int8_rtn(ushort8); -int8 __ovld __cnfn convert_int8_sat_rtn(ushort8); -int8 __ovld __cnfn convert_int8(ushort8); -int8 __ovld __cnfn convert_int8_sat(ushort8); -int8 __ovld __cnfn convert_int8_rte(int8); -int8 __ovld __cnfn convert_int8_sat_rte(int8); -int8 __ovld __cnfn convert_int8_rtz(int8); -int8 __ovld __cnfn convert_int8_sat_rtz(int8); -int8 __ovld __cnfn convert_int8_rtp(int8); -int8 __ovld __cnfn convert_int8_sat_rtp(int8); -int8 __ovld __cnfn convert_int8_rtn(int8); -int8 __ovld __cnfn convert_int8_sat_rtn(int8); -int8 __ovld __cnfn convert_int8(int8); -int8 __ovld __cnfn convert_int8_sat(int8); -int8 __ovld __cnfn convert_int8_rte(uint8); -int8 __ovld __cnfn convert_int8_sat_rte(uint8); -int8 __ovld __cnfn convert_int8_rtz(uint8); -int8 __ovld __cnfn convert_int8_sat_rtz(uint8); -int8 __ovld __cnfn convert_int8_rtp(uint8); -int8 __ovld __cnfn convert_int8_sat_rtp(uint8); -int8 __ovld __cnfn convert_int8_rtn(uint8); -int8 __ovld __cnfn convert_int8_sat_rtn(uint8); -int8 __ovld __cnfn convert_int8(uint8); -int8 __ovld __cnfn convert_int8_sat(uint8); -int8 __ovld __cnfn convert_int8_rte(long8); -int8 __ovld __cnfn convert_int8_sat_rte(long8); -int8 __ovld __cnfn convert_int8_rtz(long8); -int8 __ovld __cnfn convert_int8_sat_rtz(long8); -int8 __ovld __cnfn convert_int8_rtp(long8); -int8 __ovld __cnfn convert_int8_sat_rtp(long8); -int8 __ovld __cnfn convert_int8_rtn(long8); -int8 __ovld __cnfn convert_int8_sat_rtn(long8); -int8 __ovld __cnfn convert_int8(long8); -int8 __ovld __cnfn convert_int8_sat(long8); -int8 __ovld __cnfn convert_int8_rte(ulong8); -int8 __ovld __cnfn convert_int8_sat_rte(ulong8); -int8 __ovld __cnfn convert_int8_rtz(ulong8); -int8 __ovld __cnfn convert_int8_sat_rtz(ulong8); -int8 __ovld __cnfn convert_int8_rtp(ulong8); -int8 __ovld __cnfn convert_int8_sat_rtp(ulong8); -int8 __ovld __cnfn convert_int8_rtn(ulong8); -int8 __ovld __cnfn convert_int8_sat_rtn(ulong8); -int8 __ovld __cnfn convert_int8(ulong8); -int8 __ovld __cnfn convert_int8_sat(ulong8); -int8 __ovld __cnfn convert_int8_rte(float8); -int8 __ovld __cnfn convert_int8_sat_rte(float8); -int8 __ovld __cnfn convert_int8_rtz(float8); -int8 __ovld __cnfn convert_int8_sat_rtz(float8); -int8 __ovld __cnfn convert_int8_rtp(float8); -int8 __ovld __cnfn convert_int8_sat_rtp(float8); -int8 __ovld __cnfn convert_int8_rtn(float8); -int8 __ovld __cnfn convert_int8_sat_rtn(float8); -int8 __ovld __cnfn convert_int8(float8); -int8 __ovld __cnfn convert_int8_sat(float8); -uint8 __ovld __cnfn convert_uint8_rte(char8); -uint8 __ovld __cnfn convert_uint8_sat_rte(char8); -uint8 __ovld __cnfn convert_uint8_rtz(char8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(char8); -uint8 __ovld __cnfn convert_uint8_rtp(char8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(char8); -uint8 __ovld __cnfn convert_uint8_rtn(char8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(char8); -uint8 __ovld __cnfn convert_uint8(char8); -uint8 __ovld __cnfn convert_uint8_sat(char8); -uint8 __ovld __cnfn convert_uint8_rte(uchar8); -uint8 __ovld __cnfn convert_uint8_sat_rte(uchar8); -uint8 __ovld __cnfn convert_uint8_rtz(uchar8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(uchar8); -uint8 __ovld __cnfn convert_uint8_rtp(uchar8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(uchar8); -uint8 __ovld __cnfn convert_uint8_rtn(uchar8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(uchar8); -uint8 __ovld __cnfn convert_uint8(uchar8); -uint8 __ovld __cnfn convert_uint8_sat(uchar8); -uint8 __ovld __cnfn convert_uint8_rte(short8); -uint8 __ovld __cnfn convert_uint8_sat_rte(short8); -uint8 __ovld __cnfn convert_uint8_rtz(short8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(short8); -uint8 __ovld __cnfn convert_uint8_rtp(short8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(short8); -uint8 __ovld __cnfn convert_uint8_rtn(short8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(short8); -uint8 __ovld __cnfn convert_uint8(short8); -uint8 __ovld __cnfn convert_uint8_sat(short8); -uint8 __ovld __cnfn convert_uint8_rte(ushort8); -uint8 __ovld __cnfn convert_uint8_sat_rte(ushort8); -uint8 __ovld __cnfn convert_uint8_rtz(ushort8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(ushort8); -uint8 __ovld __cnfn convert_uint8_rtp(ushort8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(ushort8); -uint8 __ovld __cnfn convert_uint8_rtn(ushort8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(ushort8); -uint8 __ovld __cnfn convert_uint8(ushort8); -uint8 __ovld __cnfn convert_uint8_sat(ushort8); -uint8 __ovld __cnfn convert_uint8_rte(int8); -uint8 __ovld __cnfn convert_uint8_sat_rte(int8); -uint8 __ovld __cnfn convert_uint8_rtz(int8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(int8); -uint8 __ovld __cnfn convert_uint8_rtp(int8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(int8); -uint8 __ovld __cnfn convert_uint8_rtn(int8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(int8); -uint8 __ovld __cnfn convert_uint8(int8); -uint8 __ovld __cnfn convert_uint8_sat(int8); -uint8 __ovld __cnfn convert_uint8_rte(uint8); -uint8 __ovld __cnfn convert_uint8_sat_rte(uint8); -uint8 __ovld __cnfn convert_uint8_rtz(uint8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(uint8); -uint8 __ovld __cnfn convert_uint8_rtp(uint8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(uint8); -uint8 __ovld __cnfn convert_uint8_rtn(uint8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(uint8); -uint8 __ovld __cnfn convert_uint8(uint8); -uint8 __ovld __cnfn convert_uint8_sat(uint8); -uint8 __ovld __cnfn convert_uint8_rte(long8); -uint8 __ovld __cnfn convert_uint8_sat_rte(long8); -uint8 __ovld __cnfn convert_uint8_rtz(long8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(long8); -uint8 __ovld __cnfn convert_uint8_rtp(long8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(long8); -uint8 __ovld __cnfn convert_uint8_rtn(long8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(long8); -uint8 __ovld __cnfn convert_uint8(long8); -uint8 __ovld __cnfn convert_uint8_sat(long8); -uint8 __ovld __cnfn convert_uint8_rte(ulong8); -uint8 __ovld __cnfn convert_uint8_sat_rte(ulong8); -uint8 __ovld __cnfn convert_uint8_rtz(ulong8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(ulong8); -uint8 __ovld __cnfn convert_uint8_rtp(ulong8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(ulong8); -uint8 __ovld __cnfn convert_uint8_rtn(ulong8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(ulong8); -uint8 __ovld __cnfn convert_uint8(ulong8); -uint8 __ovld __cnfn convert_uint8_sat(ulong8); -uint8 __ovld __cnfn convert_uint8_rte(float8); -uint8 __ovld __cnfn convert_uint8_sat_rte(float8); -uint8 __ovld __cnfn convert_uint8_rtz(float8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(float8); -uint8 __ovld __cnfn convert_uint8_rtp(float8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(float8); -uint8 __ovld __cnfn convert_uint8_rtn(float8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(float8); -uint8 __ovld __cnfn convert_uint8(float8); -uint8 __ovld __cnfn convert_uint8_sat(float8); -long8 __ovld __cnfn convert_long8_rte(char8); -long8 __ovld __cnfn convert_long8_sat_rte(char8); -long8 __ovld __cnfn convert_long8_rtz(char8); -long8 __ovld __cnfn convert_long8_sat_rtz(char8); -long8 __ovld __cnfn convert_long8_rtp(char8); -long8 __ovld __cnfn convert_long8_sat_rtp(char8); -long8 __ovld __cnfn convert_long8_rtn(char8); -long8 __ovld __cnfn convert_long8_sat_rtn(char8); -long8 __ovld __cnfn convert_long8(char8); -long8 __ovld __cnfn convert_long8_sat(char8); -long8 __ovld __cnfn convert_long8_rte(uchar8); -long8 __ovld __cnfn convert_long8_sat_rte(uchar8); -long8 __ovld __cnfn convert_long8_rtz(uchar8); -long8 __ovld __cnfn convert_long8_sat_rtz(uchar8); -long8 __ovld __cnfn convert_long8_rtp(uchar8); -long8 __ovld __cnfn convert_long8_sat_rtp(uchar8); -long8 __ovld __cnfn convert_long8_rtn(uchar8); -long8 __ovld __cnfn convert_long8_sat_rtn(uchar8); -long8 __ovld __cnfn convert_long8(uchar8); -long8 __ovld __cnfn convert_long8_sat(uchar8); -long8 __ovld __cnfn convert_long8_rte(short8); -long8 __ovld __cnfn convert_long8_sat_rte(short8); -long8 __ovld __cnfn convert_long8_rtz(short8); -long8 __ovld __cnfn convert_long8_sat_rtz(short8); -long8 __ovld __cnfn convert_long8_rtp(short8); -long8 __ovld __cnfn convert_long8_sat_rtp(short8); -long8 __ovld __cnfn convert_long8_rtn(short8); -long8 __ovld __cnfn convert_long8_sat_rtn(short8); -long8 __ovld __cnfn convert_long8(short8); -long8 __ovld __cnfn convert_long8_sat(short8); -long8 __ovld __cnfn convert_long8_rte(ushort8); -long8 __ovld __cnfn convert_long8_sat_rte(ushort8); -long8 __ovld __cnfn convert_long8_rtz(ushort8); -long8 __ovld __cnfn convert_long8_sat_rtz(ushort8); -long8 __ovld __cnfn convert_long8_rtp(ushort8); -long8 __ovld __cnfn convert_long8_sat_rtp(ushort8); -long8 __ovld __cnfn convert_long8_rtn(ushort8); -long8 __ovld __cnfn convert_long8_sat_rtn(ushort8); -long8 __ovld __cnfn convert_long8(ushort8); -long8 __ovld __cnfn convert_long8_sat(ushort8); -long8 __ovld __cnfn convert_long8_rte(int8); -long8 __ovld __cnfn convert_long8_sat_rte(int8); -long8 __ovld __cnfn convert_long8_rtz(int8); -long8 __ovld __cnfn convert_long8_sat_rtz(int8); -long8 __ovld __cnfn convert_long8_rtp(int8); -long8 __ovld __cnfn convert_long8_sat_rtp(int8); -long8 __ovld __cnfn convert_long8_rtn(int8); -long8 __ovld __cnfn convert_long8_sat_rtn(int8); -long8 __ovld __cnfn convert_long8(int8); -long8 __ovld __cnfn convert_long8_sat(int8); -long8 __ovld __cnfn convert_long8_rte(uint8); -long8 __ovld __cnfn convert_long8_sat_rte(uint8); -long8 __ovld __cnfn convert_long8_rtz(uint8); -long8 __ovld __cnfn convert_long8_sat_rtz(uint8); -long8 __ovld __cnfn convert_long8_rtp(uint8); -long8 __ovld __cnfn convert_long8_sat_rtp(uint8); -long8 __ovld __cnfn convert_long8_rtn(uint8); -long8 __ovld __cnfn convert_long8_sat_rtn(uint8); -long8 __ovld __cnfn convert_long8(uint8); -long8 __ovld __cnfn convert_long8_sat(uint8); -long8 __ovld __cnfn convert_long8_rte(long8); -long8 __ovld __cnfn convert_long8_sat_rte(long8); -long8 __ovld __cnfn convert_long8_rtz(long8); -long8 __ovld __cnfn convert_long8_sat_rtz(long8); -long8 __ovld __cnfn convert_long8_rtp(long8); -long8 __ovld __cnfn convert_long8_sat_rtp(long8); -long8 __ovld __cnfn convert_long8_rtn(long8); -long8 __ovld __cnfn convert_long8_sat_rtn(long8); -long8 __ovld __cnfn convert_long8(long8); -long8 __ovld __cnfn convert_long8_sat(long8); -long8 __ovld __cnfn convert_long8_rte(ulong8); -long8 __ovld __cnfn convert_long8_sat_rte(ulong8); -long8 __ovld __cnfn convert_long8_rtz(ulong8); -long8 __ovld __cnfn convert_long8_sat_rtz(ulong8); -long8 __ovld __cnfn convert_long8_rtp(ulong8); -long8 __ovld __cnfn convert_long8_sat_rtp(ulong8); -long8 __ovld __cnfn convert_long8_rtn(ulong8); -long8 __ovld __cnfn convert_long8_sat_rtn(ulong8); -long8 __ovld __cnfn convert_long8(ulong8); -long8 __ovld __cnfn convert_long8_sat(ulong8); -long8 __ovld __cnfn convert_long8_rte(float8); -long8 __ovld __cnfn convert_long8_sat_rte(float8); -long8 __ovld __cnfn convert_long8_rtz(float8); -long8 __ovld __cnfn convert_long8_sat_rtz(float8); -long8 __ovld __cnfn convert_long8_rtp(float8); -long8 __ovld __cnfn convert_long8_sat_rtp(float8); -long8 __ovld __cnfn convert_long8_rtn(float8); -long8 __ovld __cnfn convert_long8_sat_rtn(float8); -long8 __ovld __cnfn convert_long8(float8); -long8 __ovld __cnfn convert_long8_sat(float8); -ulong8 __ovld __cnfn convert_ulong8_rte(char8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(char8); -ulong8 __ovld __cnfn convert_ulong8_rtz(char8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(char8); -ulong8 __ovld __cnfn convert_ulong8_rtp(char8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(char8); -ulong8 __ovld __cnfn convert_ulong8_rtn(char8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(char8); -ulong8 __ovld __cnfn convert_ulong8(char8); -ulong8 __ovld __cnfn convert_ulong8_sat(char8); -ulong8 __ovld __cnfn convert_ulong8_rte(uchar8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(uchar8); -ulong8 __ovld __cnfn convert_ulong8_rtz(uchar8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uchar8); -ulong8 __ovld __cnfn convert_ulong8_rtp(uchar8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uchar8); -ulong8 __ovld __cnfn convert_ulong8_rtn(uchar8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uchar8); -ulong8 __ovld __cnfn convert_ulong8(uchar8); -ulong8 __ovld __cnfn convert_ulong8_sat(uchar8); -ulong8 __ovld __cnfn convert_ulong8_rte(short8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(short8); -ulong8 __ovld __cnfn convert_ulong8_rtz(short8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(short8); -ulong8 __ovld __cnfn convert_ulong8_rtp(short8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(short8); -ulong8 __ovld __cnfn convert_ulong8_rtn(short8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(short8); -ulong8 __ovld __cnfn convert_ulong8(short8); -ulong8 __ovld __cnfn convert_ulong8_sat(short8); -ulong8 __ovld __cnfn convert_ulong8_rte(ushort8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(ushort8); -ulong8 __ovld __cnfn convert_ulong8_rtz(ushort8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ushort8); -ulong8 __ovld __cnfn convert_ulong8_rtp(ushort8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ushort8); -ulong8 __ovld __cnfn convert_ulong8_rtn(ushort8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ushort8); -ulong8 __ovld __cnfn convert_ulong8(ushort8); -ulong8 __ovld __cnfn convert_ulong8_sat(ushort8); -ulong8 __ovld __cnfn convert_ulong8_rte(int8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(int8); -ulong8 __ovld __cnfn convert_ulong8_rtz(int8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(int8); -ulong8 __ovld __cnfn convert_ulong8_rtp(int8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(int8); -ulong8 __ovld __cnfn convert_ulong8_rtn(int8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(int8); -ulong8 __ovld __cnfn convert_ulong8(int8); -ulong8 __ovld __cnfn convert_ulong8_sat(int8); -ulong8 __ovld __cnfn convert_ulong8_rte(uint8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(uint8); -ulong8 __ovld __cnfn convert_ulong8_rtz(uint8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uint8); -ulong8 __ovld __cnfn convert_ulong8_rtp(uint8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uint8); -ulong8 __ovld __cnfn convert_ulong8_rtn(uint8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uint8); -ulong8 __ovld __cnfn convert_ulong8(uint8); -ulong8 __ovld __cnfn convert_ulong8_sat(uint8); -ulong8 __ovld __cnfn convert_ulong8_rte(long8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(long8); -ulong8 __ovld __cnfn convert_ulong8_rtz(long8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(long8); -ulong8 __ovld __cnfn convert_ulong8_rtp(long8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(long8); -ulong8 __ovld __cnfn convert_ulong8_rtn(long8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(long8); -ulong8 __ovld __cnfn convert_ulong8(long8); -ulong8 __ovld __cnfn convert_ulong8_sat(long8); -ulong8 __ovld __cnfn convert_ulong8_rte(ulong8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(ulong8); -ulong8 __ovld __cnfn convert_ulong8_rtz(ulong8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ulong8); -ulong8 __ovld __cnfn convert_ulong8_rtp(ulong8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ulong8); -ulong8 __ovld __cnfn convert_ulong8_rtn(ulong8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ulong8); -ulong8 __ovld __cnfn convert_ulong8(ulong8); -ulong8 __ovld __cnfn convert_ulong8_sat(ulong8); -ulong8 __ovld __cnfn convert_ulong8_rte(float8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(float8); -ulong8 __ovld __cnfn convert_ulong8_rtz(float8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(float8); -ulong8 __ovld __cnfn convert_ulong8_rtp(float8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(float8); -ulong8 __ovld __cnfn convert_ulong8_rtn(float8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(float8); -ulong8 __ovld __cnfn convert_ulong8(float8); -ulong8 __ovld __cnfn convert_ulong8_sat(float8); -float8 __ovld __cnfn convert_float8_rte(char8); -float8 __ovld __cnfn convert_float8_rtz(char8); -float8 __ovld __cnfn convert_float8_rtp(char8); -float8 __ovld __cnfn convert_float8_rtn(char8); -float8 __ovld __cnfn convert_float8(char8); -float8 __ovld __cnfn convert_float8_rte(uchar8); -float8 __ovld __cnfn convert_float8_rtz(uchar8); -float8 __ovld __cnfn convert_float8_rtp(uchar8); -float8 __ovld __cnfn convert_float8_rtn(uchar8); -float8 __ovld __cnfn convert_float8(uchar8); -float8 __ovld __cnfn convert_float8_rte(short8); -float8 __ovld __cnfn convert_float8_rtz(short8); -float8 __ovld __cnfn convert_float8_rtp(short8); -float8 __ovld __cnfn convert_float8_rtn(short8); -float8 __ovld __cnfn convert_float8(short8); -float8 __ovld __cnfn convert_float8_rte(ushort8); -float8 __ovld __cnfn convert_float8_rtz(ushort8); -float8 __ovld __cnfn convert_float8_rtp(ushort8); -float8 __ovld __cnfn convert_float8_rtn(ushort8); -float8 __ovld __cnfn convert_float8(ushort8); -float8 __ovld __cnfn convert_float8_rte(int8); -float8 __ovld __cnfn convert_float8_rtz(int8); -float8 __ovld __cnfn convert_float8_rtp(int8); -float8 __ovld __cnfn convert_float8_rtn(int8); -float8 __ovld __cnfn convert_float8(int8); -float8 __ovld __cnfn convert_float8_rte(uint8); -float8 __ovld __cnfn convert_float8_rtz(uint8); -float8 __ovld __cnfn convert_float8_rtp(uint8); -float8 __ovld __cnfn convert_float8_rtn(uint8); -float8 __ovld __cnfn convert_float8(uint8); -float8 __ovld __cnfn convert_float8_rte(long8); -float8 __ovld __cnfn convert_float8_rtz(long8); -float8 __ovld __cnfn convert_float8_rtp(long8); -float8 __ovld __cnfn convert_float8_rtn(long8); -float8 __ovld __cnfn convert_float8(long8); -float8 __ovld __cnfn convert_float8_rte(ulong8); -float8 __ovld __cnfn convert_float8_rtz(ulong8); -float8 __ovld __cnfn convert_float8_rtp(ulong8); -float8 __ovld __cnfn convert_float8_rtn(ulong8); -float8 __ovld __cnfn convert_float8(ulong8); -float8 __ovld __cnfn convert_float8_rte(float8); -float8 __ovld __cnfn convert_float8_rtz(float8); -float8 __ovld __cnfn convert_float8_rtp(float8); -float8 __ovld __cnfn convert_float8_rtn(float8); -float8 __ovld __cnfn convert_float8(float8); -char16 __ovld __cnfn convert_char16_rte(char16); -char16 __ovld __cnfn convert_char16_sat_rte(char16); -char16 __ovld __cnfn convert_char16_rtz(char16); -char16 __ovld __cnfn convert_char16_sat_rtz(char16); -char16 __ovld __cnfn convert_char16_rtp(char16); -char16 __ovld __cnfn convert_char16_sat_rtp(char16); -char16 __ovld __cnfn convert_char16_rtn(char16); -char16 __ovld __cnfn convert_char16_sat_rtn(char16); -char16 __ovld __cnfn convert_char16(char16); -char16 __ovld __cnfn convert_char16_sat(char16); -char16 __ovld __cnfn convert_char16_rte(uchar16); -char16 __ovld __cnfn convert_char16_sat_rte(uchar16); -char16 __ovld __cnfn convert_char16_rtz(uchar16); -char16 __ovld __cnfn convert_char16_sat_rtz(uchar16); -char16 __ovld __cnfn convert_char16_rtp(uchar16); -char16 __ovld __cnfn convert_char16_sat_rtp(uchar16); -char16 __ovld __cnfn convert_char16_rtn(uchar16); -char16 __ovld __cnfn convert_char16_sat_rtn(uchar16); -char16 __ovld __cnfn convert_char16(uchar16); -char16 __ovld __cnfn convert_char16_sat(uchar16); -char16 __ovld __cnfn convert_char16_rte(short16); -char16 __ovld __cnfn convert_char16_sat_rte(short16); -char16 __ovld __cnfn convert_char16_rtz(short16); -char16 __ovld __cnfn convert_char16_sat_rtz(short16); -char16 __ovld __cnfn convert_char16_rtp(short16); -char16 __ovld __cnfn convert_char16_sat_rtp(short16); -char16 __ovld __cnfn convert_char16_rtn(short16); -char16 __ovld __cnfn convert_char16_sat_rtn(short16); -char16 __ovld __cnfn convert_char16(short16); -char16 __ovld __cnfn convert_char16_sat(short16); -char16 __ovld __cnfn convert_char16_rte(ushort16); -char16 __ovld __cnfn convert_char16_sat_rte(ushort16); -char16 __ovld __cnfn convert_char16_rtz(ushort16); -char16 __ovld __cnfn convert_char16_sat_rtz(ushort16); -char16 __ovld __cnfn convert_char16_rtp(ushort16); -char16 __ovld __cnfn convert_char16_sat_rtp(ushort16); -char16 __ovld __cnfn convert_char16_rtn(ushort16); -char16 __ovld __cnfn convert_char16_sat_rtn(ushort16); -char16 __ovld __cnfn convert_char16(ushort16); -char16 __ovld __cnfn convert_char16_sat(ushort16); -char16 __ovld __cnfn convert_char16_rte(int16); -char16 __ovld __cnfn convert_char16_sat_rte(int16); -char16 __ovld __cnfn convert_char16_rtz(int16); -char16 __ovld __cnfn convert_char16_sat_rtz(int16); -char16 __ovld __cnfn convert_char16_rtp(int16); -char16 __ovld __cnfn convert_char16_sat_rtp(int16); -char16 __ovld __cnfn convert_char16_rtn(int16); -char16 __ovld __cnfn convert_char16_sat_rtn(int16); -char16 __ovld __cnfn convert_char16(int16); -char16 __ovld __cnfn convert_char16_sat(int16); -char16 __ovld __cnfn convert_char16_rte(uint16); -char16 __ovld __cnfn convert_char16_sat_rte(uint16); -char16 __ovld __cnfn convert_char16_rtz(uint16); -char16 __ovld __cnfn convert_char16_sat_rtz(uint16); -char16 __ovld __cnfn convert_char16_rtp(uint16); -char16 __ovld __cnfn convert_char16_sat_rtp(uint16); -char16 __ovld __cnfn convert_char16_rtn(uint16); -char16 __ovld __cnfn convert_char16_sat_rtn(uint16); -char16 __ovld __cnfn convert_char16(uint16); -char16 __ovld __cnfn convert_char16_sat(uint16); -char16 __ovld __cnfn convert_char16_rte(long16); -char16 __ovld __cnfn convert_char16_sat_rte(long16); -char16 __ovld __cnfn convert_char16_rtz(long16); -char16 __ovld __cnfn convert_char16_sat_rtz(long16); -char16 __ovld __cnfn convert_char16_rtp(long16); -char16 __ovld __cnfn convert_char16_sat_rtp(long16); -char16 __ovld __cnfn convert_char16_rtn(long16); -char16 __ovld __cnfn convert_char16_sat_rtn(long16); -char16 __ovld __cnfn convert_char16(long16); -char16 __ovld __cnfn convert_char16_sat(long16); -char16 __ovld __cnfn convert_char16_rte(ulong16); -char16 __ovld __cnfn convert_char16_sat_rte(ulong16); -char16 __ovld __cnfn convert_char16_rtz(ulong16); -char16 __ovld __cnfn convert_char16_sat_rtz(ulong16); -char16 __ovld __cnfn convert_char16_rtp(ulong16); -char16 __ovld __cnfn convert_char16_sat_rtp(ulong16); -char16 __ovld __cnfn convert_char16_rtn(ulong16); -char16 __ovld __cnfn convert_char16_sat_rtn(ulong16); -char16 __ovld __cnfn convert_char16(ulong16); -char16 __ovld __cnfn convert_char16_sat(ulong16); -char16 __ovld __cnfn convert_char16_rte(float16); -char16 __ovld __cnfn convert_char16_sat_rte(float16); -char16 __ovld __cnfn convert_char16_rtz(float16); -char16 __ovld __cnfn convert_char16_sat_rtz(float16); -char16 __ovld __cnfn convert_char16_rtp(float16); -char16 __ovld __cnfn convert_char16_sat_rtp(float16); -char16 __ovld __cnfn convert_char16_rtn(float16); -char16 __ovld __cnfn convert_char16_sat_rtn(float16); -char16 __ovld __cnfn convert_char16(float16); -char16 __ovld __cnfn convert_char16_sat(float16); -uchar16 __ovld __cnfn convert_uchar16_rte(char16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(char16); -uchar16 __ovld __cnfn convert_uchar16_rtz(char16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(char16); -uchar16 __ovld __cnfn convert_uchar16_rtp(char16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(char16); -uchar16 __ovld __cnfn convert_uchar16_rtn(char16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(char16); -uchar16 __ovld __cnfn convert_uchar16(char16); -uchar16 __ovld __cnfn convert_uchar16_sat(char16); -uchar16 __ovld __cnfn convert_uchar16_rte(uchar16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(uchar16); -uchar16 __ovld __cnfn convert_uchar16_rtz(uchar16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uchar16); -uchar16 __ovld __cnfn convert_uchar16_rtp(uchar16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uchar16); -uchar16 __ovld __cnfn convert_uchar16_rtn(uchar16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uchar16); -uchar16 __ovld __cnfn convert_uchar16(uchar16); -uchar16 __ovld __cnfn convert_uchar16_sat(uchar16); -uchar16 __ovld __cnfn convert_uchar16_rte(short16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(short16); -uchar16 __ovld __cnfn convert_uchar16_rtz(short16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(short16); -uchar16 __ovld __cnfn convert_uchar16_rtp(short16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(short16); -uchar16 __ovld __cnfn convert_uchar16_rtn(short16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(short16); -uchar16 __ovld __cnfn convert_uchar16(short16); -uchar16 __ovld __cnfn convert_uchar16_sat(short16); -uchar16 __ovld __cnfn convert_uchar16_rte(ushort16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(ushort16); -uchar16 __ovld __cnfn convert_uchar16_rtz(ushort16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ushort16); -uchar16 __ovld __cnfn convert_uchar16_rtp(ushort16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ushort16); -uchar16 __ovld __cnfn convert_uchar16_rtn(ushort16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ushort16); -uchar16 __ovld __cnfn convert_uchar16(ushort16); -uchar16 __ovld __cnfn convert_uchar16_sat(ushort16); -uchar16 __ovld __cnfn convert_uchar16_rte(int16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(int16); -uchar16 __ovld __cnfn convert_uchar16_rtz(int16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(int16); -uchar16 __ovld __cnfn convert_uchar16_rtp(int16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(int16); -uchar16 __ovld __cnfn convert_uchar16_rtn(int16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(int16); -uchar16 __ovld __cnfn convert_uchar16(int16); -uchar16 __ovld __cnfn convert_uchar16_sat(int16); -uchar16 __ovld __cnfn convert_uchar16_rte(uint16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(uint16); -uchar16 __ovld __cnfn convert_uchar16_rtz(uint16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uint16); -uchar16 __ovld __cnfn convert_uchar16_rtp(uint16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uint16); -uchar16 __ovld __cnfn convert_uchar16_rtn(uint16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uint16); -uchar16 __ovld __cnfn convert_uchar16(uint16); -uchar16 __ovld __cnfn convert_uchar16_sat(uint16); -uchar16 __ovld __cnfn convert_uchar16_rte(long16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(long16); -uchar16 __ovld __cnfn convert_uchar16_rtz(long16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(long16); -uchar16 __ovld __cnfn convert_uchar16_rtp(long16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(long16); -uchar16 __ovld __cnfn convert_uchar16_rtn(long16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(long16); -uchar16 __ovld __cnfn convert_uchar16(long16); -uchar16 __ovld __cnfn convert_uchar16_sat(long16); -uchar16 __ovld __cnfn convert_uchar16_rte(ulong16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(ulong16); -uchar16 __ovld __cnfn convert_uchar16_rtz(ulong16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ulong16); -uchar16 __ovld __cnfn convert_uchar16_rtp(ulong16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ulong16); -uchar16 __ovld __cnfn convert_uchar16_rtn(ulong16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ulong16); -uchar16 __ovld __cnfn convert_uchar16(ulong16); -uchar16 __ovld __cnfn convert_uchar16_sat(ulong16); -uchar16 __ovld __cnfn convert_uchar16_rte(float16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(float16); -uchar16 __ovld __cnfn convert_uchar16_rtz(float16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(float16); -uchar16 __ovld __cnfn convert_uchar16_rtp(float16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(float16); -uchar16 __ovld __cnfn convert_uchar16_rtn(float16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(float16); -uchar16 __ovld __cnfn convert_uchar16(float16); -uchar16 __ovld __cnfn convert_uchar16_sat(float16); -short16 __ovld __cnfn convert_short16_rte(char16); -short16 __ovld __cnfn convert_short16_sat_rte(char16); -short16 __ovld __cnfn convert_short16_rtz(char16); -short16 __ovld __cnfn convert_short16_sat_rtz(char16); -short16 __ovld __cnfn convert_short16_rtp(char16); -short16 __ovld __cnfn convert_short16_sat_rtp(char16); -short16 __ovld __cnfn convert_short16_rtn(char16); -short16 __ovld __cnfn convert_short16_sat_rtn(char16); -short16 __ovld __cnfn convert_short16(char16); -short16 __ovld __cnfn convert_short16_sat(char16); -short16 __ovld __cnfn convert_short16_rte(uchar16); -short16 __ovld __cnfn convert_short16_sat_rte(uchar16); -short16 __ovld __cnfn convert_short16_rtz(uchar16); -short16 __ovld __cnfn convert_short16_sat_rtz(uchar16); -short16 __ovld __cnfn convert_short16_rtp(uchar16); -short16 __ovld __cnfn convert_short16_sat_rtp(uchar16); -short16 __ovld __cnfn convert_short16_rtn(uchar16); -short16 __ovld __cnfn convert_short16_sat_rtn(uchar16); -short16 __ovld __cnfn convert_short16(uchar16); -short16 __ovld __cnfn convert_short16_sat(uchar16); -short16 __ovld __cnfn convert_short16_rte(short16); -short16 __ovld __cnfn convert_short16_sat_rte(short16); -short16 __ovld __cnfn convert_short16_rtz(short16); -short16 __ovld __cnfn convert_short16_sat_rtz(short16); -short16 __ovld __cnfn convert_short16_rtp(short16); -short16 __ovld __cnfn convert_short16_sat_rtp(short16); -short16 __ovld __cnfn convert_short16_rtn(short16); -short16 __ovld __cnfn convert_short16_sat_rtn(short16); -short16 __ovld __cnfn convert_short16(short16); -short16 __ovld __cnfn convert_short16_sat(short16); -short16 __ovld __cnfn convert_short16_rte(ushort16); -short16 __ovld __cnfn convert_short16_sat_rte(ushort16); -short16 __ovld __cnfn convert_short16_rtz(ushort16); -short16 __ovld __cnfn convert_short16_sat_rtz(ushort16); -short16 __ovld __cnfn convert_short16_rtp(ushort16); -short16 __ovld __cnfn convert_short16_sat_rtp(ushort16); -short16 __ovld __cnfn convert_short16_rtn(ushort16); -short16 __ovld __cnfn convert_short16_sat_rtn(ushort16); -short16 __ovld __cnfn convert_short16(ushort16); -short16 __ovld __cnfn convert_short16_sat(ushort16); -short16 __ovld __cnfn convert_short16_rte(int16); -short16 __ovld __cnfn convert_short16_sat_rte(int16); -short16 __ovld __cnfn convert_short16_rtz(int16); -short16 __ovld __cnfn convert_short16_sat_rtz(int16); -short16 __ovld __cnfn convert_short16_rtp(int16); -short16 __ovld __cnfn convert_short16_sat_rtp(int16); -short16 __ovld __cnfn convert_short16_rtn(int16); -short16 __ovld __cnfn convert_short16_sat_rtn(int16); -short16 __ovld __cnfn convert_short16(int16); -short16 __ovld __cnfn convert_short16_sat(int16); -short16 __ovld __cnfn convert_short16_rte(uint16); -short16 __ovld __cnfn convert_short16_sat_rte(uint16); -short16 __ovld __cnfn convert_short16_rtz(uint16); -short16 __ovld __cnfn convert_short16_sat_rtz(uint16); -short16 __ovld __cnfn convert_short16_rtp(uint16); -short16 __ovld __cnfn convert_short16_sat_rtp(uint16); -short16 __ovld __cnfn convert_short16_rtn(uint16); -short16 __ovld __cnfn convert_short16_sat_rtn(uint16); -short16 __ovld __cnfn convert_short16(uint16); -short16 __ovld __cnfn convert_short16_sat(uint16); -short16 __ovld __cnfn convert_short16_rte(long16); -short16 __ovld __cnfn convert_short16_sat_rte(long16); -short16 __ovld __cnfn convert_short16_rtz(long16); -short16 __ovld __cnfn convert_short16_sat_rtz(long16); -short16 __ovld __cnfn convert_short16_rtp(long16); -short16 __ovld __cnfn convert_short16_sat_rtp(long16); -short16 __ovld __cnfn convert_short16_rtn(long16); -short16 __ovld __cnfn convert_short16_sat_rtn(long16); -short16 __ovld __cnfn convert_short16(long16); -short16 __ovld __cnfn convert_short16_sat(long16); -short16 __ovld __cnfn convert_short16_rte(ulong16); -short16 __ovld __cnfn convert_short16_sat_rte(ulong16); -short16 __ovld __cnfn convert_short16_rtz(ulong16); -short16 __ovld __cnfn convert_short16_sat_rtz(ulong16); -short16 __ovld __cnfn convert_short16_rtp(ulong16); -short16 __ovld __cnfn convert_short16_sat_rtp(ulong16); -short16 __ovld __cnfn convert_short16_rtn(ulong16); -short16 __ovld __cnfn convert_short16_sat_rtn(ulong16); -short16 __ovld __cnfn convert_short16(ulong16); -short16 __ovld __cnfn convert_short16_sat(ulong16); -short16 __ovld __cnfn convert_short16_rte(float16); -short16 __ovld __cnfn convert_short16_sat_rte(float16); -short16 __ovld __cnfn convert_short16_rtz(float16); -short16 __ovld __cnfn convert_short16_sat_rtz(float16); -short16 __ovld __cnfn convert_short16_rtp(float16); -short16 __ovld __cnfn convert_short16_sat_rtp(float16); -short16 __ovld __cnfn convert_short16_rtn(float16); -short16 __ovld __cnfn convert_short16_sat_rtn(float16); -short16 __ovld __cnfn convert_short16(float16); -short16 __ovld __cnfn convert_short16_sat(float16); -ushort16 __ovld __cnfn convert_ushort16_rte(char16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(char16); -ushort16 __ovld __cnfn convert_ushort16_rtz(char16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(char16); -ushort16 __ovld __cnfn convert_ushort16_rtp(char16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(char16); -ushort16 __ovld __cnfn convert_ushort16_rtn(char16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(char16); -ushort16 __ovld __cnfn convert_ushort16(char16); -ushort16 __ovld __cnfn convert_ushort16_sat(char16); -ushort16 __ovld __cnfn convert_ushort16_rte(uchar16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(uchar16); -ushort16 __ovld __cnfn convert_ushort16_rtz(uchar16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uchar16); -ushort16 __ovld __cnfn convert_ushort16_rtp(uchar16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uchar16); -ushort16 __ovld __cnfn convert_ushort16_rtn(uchar16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uchar16); -ushort16 __ovld __cnfn convert_ushort16(uchar16); -ushort16 __ovld __cnfn convert_ushort16_sat(uchar16); -ushort16 __ovld __cnfn convert_ushort16_rte(short16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(short16); -ushort16 __ovld __cnfn convert_ushort16_rtz(short16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(short16); -ushort16 __ovld __cnfn convert_ushort16_rtp(short16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(short16); -ushort16 __ovld __cnfn convert_ushort16_rtn(short16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(short16); -ushort16 __ovld __cnfn convert_ushort16(short16); -ushort16 __ovld __cnfn convert_ushort16_sat(short16); -ushort16 __ovld __cnfn convert_ushort16_rte(ushort16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(ushort16); -ushort16 __ovld __cnfn convert_ushort16_rtz(ushort16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ushort16); -ushort16 __ovld __cnfn convert_ushort16_rtp(ushort16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ushort16); -ushort16 __ovld __cnfn convert_ushort16_rtn(ushort16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ushort16); -ushort16 __ovld __cnfn convert_ushort16(ushort16); -ushort16 __ovld __cnfn convert_ushort16_sat(ushort16); -ushort16 __ovld __cnfn convert_ushort16_rte(int16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(int16); -ushort16 __ovld __cnfn convert_ushort16_rtz(int16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(int16); -ushort16 __ovld __cnfn convert_ushort16_rtp(int16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(int16); -ushort16 __ovld __cnfn convert_ushort16_rtn(int16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(int16); -ushort16 __ovld __cnfn convert_ushort16(int16); -ushort16 __ovld __cnfn convert_ushort16_sat(int16); -ushort16 __ovld __cnfn convert_ushort16_rte(uint16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(uint16); -ushort16 __ovld __cnfn convert_ushort16_rtz(uint16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uint16); -ushort16 __ovld __cnfn convert_ushort16_rtp(uint16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uint16); -ushort16 __ovld __cnfn convert_ushort16_rtn(uint16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uint16); -ushort16 __ovld __cnfn convert_ushort16(uint16); -ushort16 __ovld __cnfn convert_ushort16_sat(uint16); -ushort16 __ovld __cnfn convert_ushort16_rte(long16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(long16); -ushort16 __ovld __cnfn convert_ushort16_rtz(long16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(long16); -ushort16 __ovld __cnfn convert_ushort16_rtp(long16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(long16); -ushort16 __ovld __cnfn convert_ushort16_rtn(long16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(long16); -ushort16 __ovld __cnfn convert_ushort16(long16); -ushort16 __ovld __cnfn convert_ushort16_sat(long16); -ushort16 __ovld __cnfn convert_ushort16_rte(ulong16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(ulong16); -ushort16 __ovld __cnfn convert_ushort16_rtz(ulong16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ulong16); -ushort16 __ovld __cnfn convert_ushort16_rtp(ulong16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ulong16); -ushort16 __ovld __cnfn convert_ushort16_rtn(ulong16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ulong16); -ushort16 __ovld __cnfn convert_ushort16(ulong16); -ushort16 __ovld __cnfn convert_ushort16_sat(ulong16); -ushort16 __ovld __cnfn convert_ushort16_rte(float16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(float16); -ushort16 __ovld __cnfn convert_ushort16_rtz(float16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(float16); -ushort16 __ovld __cnfn convert_ushort16_rtp(float16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(float16); -ushort16 __ovld __cnfn convert_ushort16_rtn(float16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(float16); -ushort16 __ovld __cnfn convert_ushort16(float16); -ushort16 __ovld __cnfn convert_ushort16_sat(float16); -int16 __ovld __cnfn convert_int16_rte(char16); -int16 __ovld __cnfn convert_int16_sat_rte(char16); -int16 __ovld __cnfn convert_int16_rtz(char16); -int16 __ovld __cnfn convert_int16_sat_rtz(char16); -int16 __ovld __cnfn convert_int16_rtp(char16); -int16 __ovld __cnfn convert_int16_sat_rtp(char16); -int16 __ovld __cnfn convert_int16_rtn(char16); -int16 __ovld __cnfn convert_int16_sat_rtn(char16); -int16 __ovld __cnfn convert_int16(char16); -int16 __ovld __cnfn convert_int16_sat(char16); -int16 __ovld __cnfn convert_int16_rte(uchar16); -int16 __ovld __cnfn convert_int16_sat_rte(uchar16); -int16 __ovld __cnfn convert_int16_rtz(uchar16); -int16 __ovld __cnfn convert_int16_sat_rtz(uchar16); -int16 __ovld __cnfn convert_int16_rtp(uchar16); -int16 __ovld __cnfn convert_int16_sat_rtp(uchar16); -int16 __ovld __cnfn convert_int16_rtn(uchar16); -int16 __ovld __cnfn convert_int16_sat_rtn(uchar16); -int16 __ovld __cnfn convert_int16(uchar16); -int16 __ovld __cnfn convert_int16_sat(uchar16); -int16 __ovld __cnfn convert_int16_rte(short16); -int16 __ovld __cnfn convert_int16_sat_rte(short16); -int16 __ovld __cnfn convert_int16_rtz(short16); -int16 __ovld __cnfn convert_int16_sat_rtz(short16); -int16 __ovld __cnfn convert_int16_rtp(short16); -int16 __ovld __cnfn convert_int16_sat_rtp(short16); -int16 __ovld __cnfn convert_int16_rtn(short16); -int16 __ovld __cnfn convert_int16_sat_rtn(short16); -int16 __ovld __cnfn convert_int16(short16); -int16 __ovld __cnfn convert_int16_sat(short16); -int16 __ovld __cnfn convert_int16_rte(ushort16); -int16 __ovld __cnfn convert_int16_sat_rte(ushort16); -int16 __ovld __cnfn convert_int16_rtz(ushort16); -int16 __ovld __cnfn convert_int16_sat_rtz(ushort16); -int16 __ovld __cnfn convert_int16_rtp(ushort16); -int16 __ovld __cnfn convert_int16_sat_rtp(ushort16); -int16 __ovld __cnfn convert_int16_rtn(ushort16); -int16 __ovld __cnfn convert_int16_sat_rtn(ushort16); -int16 __ovld __cnfn convert_int16(ushort16); -int16 __ovld __cnfn convert_int16_sat(ushort16); -int16 __ovld __cnfn convert_int16_rte(int16); -int16 __ovld __cnfn convert_int16_sat_rte(int16); -int16 __ovld __cnfn convert_int16_rtz(int16); -int16 __ovld __cnfn convert_int16_sat_rtz(int16); -int16 __ovld __cnfn convert_int16_rtp(int16); -int16 __ovld __cnfn convert_int16_sat_rtp(int16); -int16 __ovld __cnfn convert_int16_rtn(int16); -int16 __ovld __cnfn convert_int16_sat_rtn(int16); -int16 __ovld __cnfn convert_int16(int16); -int16 __ovld __cnfn convert_int16_sat(int16); -int16 __ovld __cnfn convert_int16_rte(uint16); -int16 __ovld __cnfn convert_int16_sat_rte(uint16); -int16 __ovld __cnfn convert_int16_rtz(uint16); -int16 __ovld __cnfn convert_int16_sat_rtz(uint16); -int16 __ovld __cnfn convert_int16_rtp(uint16); -int16 __ovld __cnfn convert_int16_sat_rtp(uint16); -int16 __ovld __cnfn convert_int16_rtn(uint16); -int16 __ovld __cnfn convert_int16_sat_rtn(uint16); -int16 __ovld __cnfn convert_int16(uint16); -int16 __ovld __cnfn convert_int16_sat(uint16); -int16 __ovld __cnfn convert_int16_rte(long16); -int16 __ovld __cnfn convert_int16_sat_rte(long16); -int16 __ovld __cnfn convert_int16_rtz(long16); -int16 __ovld __cnfn convert_int16_sat_rtz(long16); -int16 __ovld __cnfn convert_int16_rtp(long16); -int16 __ovld __cnfn convert_int16_sat_rtp(long16); -int16 __ovld __cnfn convert_int16_rtn(long16); -int16 __ovld __cnfn convert_int16_sat_rtn(long16); -int16 __ovld __cnfn convert_int16(long16); -int16 __ovld __cnfn convert_int16_sat(long16); -int16 __ovld __cnfn convert_int16_rte(ulong16); -int16 __ovld __cnfn convert_int16_sat_rte(ulong16); -int16 __ovld __cnfn convert_int16_rtz(ulong16); -int16 __ovld __cnfn convert_int16_sat_rtz(ulong16); -int16 __ovld __cnfn convert_int16_rtp(ulong16); -int16 __ovld __cnfn convert_int16_sat_rtp(ulong16); -int16 __ovld __cnfn convert_int16_rtn(ulong16); -int16 __ovld __cnfn convert_int16_sat_rtn(ulong16); -int16 __ovld __cnfn convert_int16(ulong16); -int16 __ovld __cnfn convert_int16_sat(ulong16); -int16 __ovld __cnfn convert_int16_rte(float16); -int16 __ovld __cnfn convert_int16_sat_rte(float16); -int16 __ovld __cnfn convert_int16_rtz(float16); -int16 __ovld __cnfn convert_int16_sat_rtz(float16); -int16 __ovld __cnfn convert_int16_rtp(float16); -int16 __ovld __cnfn convert_int16_sat_rtp(float16); -int16 __ovld __cnfn convert_int16_rtn(float16); -int16 __ovld __cnfn convert_int16_sat_rtn(float16); -int16 __ovld __cnfn convert_int16(float16); -int16 __ovld __cnfn convert_int16_sat(float16); -uint16 __ovld __cnfn convert_uint16_rte(char16); -uint16 __ovld __cnfn convert_uint16_sat_rte(char16); -uint16 __ovld __cnfn convert_uint16_rtz(char16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(char16); -uint16 __ovld __cnfn convert_uint16_rtp(char16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(char16); -uint16 __ovld __cnfn convert_uint16_rtn(char16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(char16); -uint16 __ovld __cnfn convert_uint16(char16); -uint16 __ovld __cnfn convert_uint16_sat(char16); -uint16 __ovld __cnfn convert_uint16_rte(uchar16); -uint16 __ovld __cnfn convert_uint16_sat_rte(uchar16); -uint16 __ovld __cnfn convert_uint16_rtz(uchar16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(uchar16); -uint16 __ovld __cnfn convert_uint16_rtp(uchar16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(uchar16); -uint16 __ovld __cnfn convert_uint16_rtn(uchar16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(uchar16); -uint16 __ovld __cnfn convert_uint16(uchar16); -uint16 __ovld __cnfn convert_uint16_sat(uchar16); -uint16 __ovld __cnfn convert_uint16_rte(short16); -uint16 __ovld __cnfn convert_uint16_sat_rte(short16); -uint16 __ovld __cnfn convert_uint16_rtz(short16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(short16); -uint16 __ovld __cnfn convert_uint16_rtp(short16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(short16); -uint16 __ovld __cnfn convert_uint16_rtn(short16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(short16); -uint16 __ovld __cnfn convert_uint16(short16); -uint16 __ovld __cnfn convert_uint16_sat(short16); -uint16 __ovld __cnfn convert_uint16_rte(ushort16); -uint16 __ovld __cnfn convert_uint16_sat_rte(ushort16); -uint16 __ovld __cnfn convert_uint16_rtz(ushort16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(ushort16); -uint16 __ovld __cnfn convert_uint16_rtp(ushort16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(ushort16); -uint16 __ovld __cnfn convert_uint16_rtn(ushort16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(ushort16); -uint16 __ovld __cnfn convert_uint16(ushort16); -uint16 __ovld __cnfn convert_uint16_sat(ushort16); -uint16 __ovld __cnfn convert_uint16_rte(int16); -uint16 __ovld __cnfn convert_uint16_sat_rte(int16); -uint16 __ovld __cnfn convert_uint16_rtz(int16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(int16); -uint16 __ovld __cnfn convert_uint16_rtp(int16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(int16); -uint16 __ovld __cnfn convert_uint16_rtn(int16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(int16); -uint16 __ovld __cnfn convert_uint16(int16); -uint16 __ovld __cnfn convert_uint16_sat(int16); -uint16 __ovld __cnfn convert_uint16_rte(uint16); -uint16 __ovld __cnfn convert_uint16_sat_rte(uint16); -uint16 __ovld __cnfn convert_uint16_rtz(uint16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(uint16); -uint16 __ovld __cnfn convert_uint16_rtp(uint16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(uint16); -uint16 __ovld __cnfn convert_uint16_rtn(uint16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(uint16); -uint16 __ovld __cnfn convert_uint16(uint16); -uint16 __ovld __cnfn convert_uint16_sat(uint16); -uint16 __ovld __cnfn convert_uint16_rte(long16); -uint16 __ovld __cnfn convert_uint16_sat_rte(long16); -uint16 __ovld __cnfn convert_uint16_rtz(long16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(long16); -uint16 __ovld __cnfn convert_uint16_rtp(long16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(long16); -uint16 __ovld __cnfn convert_uint16_rtn(long16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(long16); -uint16 __ovld __cnfn convert_uint16(long16); -uint16 __ovld __cnfn convert_uint16_sat(long16); -uint16 __ovld __cnfn convert_uint16_rte(ulong16); -uint16 __ovld __cnfn convert_uint16_sat_rte(ulong16); -uint16 __ovld __cnfn convert_uint16_rtz(ulong16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(ulong16); -uint16 __ovld __cnfn convert_uint16_rtp(ulong16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(ulong16); -uint16 __ovld __cnfn convert_uint16_rtn(ulong16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(ulong16); -uint16 __ovld __cnfn convert_uint16(ulong16); -uint16 __ovld __cnfn convert_uint16_sat(ulong16); -uint16 __ovld __cnfn convert_uint16_rte(float16); -uint16 __ovld __cnfn convert_uint16_sat_rte(float16); -uint16 __ovld __cnfn convert_uint16_rtz(float16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(float16); -uint16 __ovld __cnfn convert_uint16_rtp(float16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(float16); -uint16 __ovld __cnfn convert_uint16_rtn(float16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(float16); -uint16 __ovld __cnfn convert_uint16(float16); -uint16 __ovld __cnfn convert_uint16_sat(float16); -long16 __ovld __cnfn convert_long16_rte(char16); -long16 __ovld __cnfn convert_long16_sat_rte(char16); -long16 __ovld __cnfn convert_long16_rtz(char16); -long16 __ovld __cnfn convert_long16_sat_rtz(char16); -long16 __ovld __cnfn convert_long16_rtp(char16); -long16 __ovld __cnfn convert_long16_sat_rtp(char16); -long16 __ovld __cnfn convert_long16_rtn(char16); -long16 __ovld __cnfn convert_long16_sat_rtn(char16); -long16 __ovld __cnfn convert_long16(char16); -long16 __ovld __cnfn convert_long16_sat(char16); -long16 __ovld __cnfn convert_long16_rte(uchar16); -long16 __ovld __cnfn convert_long16_sat_rte(uchar16); -long16 __ovld __cnfn convert_long16_rtz(uchar16); -long16 __ovld __cnfn convert_long16_sat_rtz(uchar16); -long16 __ovld __cnfn convert_long16_rtp(uchar16); -long16 __ovld __cnfn convert_long16_sat_rtp(uchar16); -long16 __ovld __cnfn convert_long16_rtn(uchar16); -long16 __ovld __cnfn convert_long16_sat_rtn(uchar16); -long16 __ovld __cnfn convert_long16(uchar16); -long16 __ovld __cnfn convert_long16_sat(uchar16); -long16 __ovld __cnfn convert_long16_rte(short16); -long16 __ovld __cnfn convert_long16_sat_rte(short16); -long16 __ovld __cnfn convert_long16_rtz(short16); -long16 __ovld __cnfn convert_long16_sat_rtz(short16); -long16 __ovld __cnfn convert_long16_rtp(short16); -long16 __ovld __cnfn convert_long16_sat_rtp(short16); -long16 __ovld __cnfn convert_long16_rtn(short16); -long16 __ovld __cnfn convert_long16_sat_rtn(short16); -long16 __ovld __cnfn convert_long16(short16); -long16 __ovld __cnfn convert_long16_sat(short16); -long16 __ovld __cnfn convert_long16_rte(ushort16); -long16 __ovld __cnfn convert_long16_sat_rte(ushort16); -long16 __ovld __cnfn convert_long16_rtz(ushort16); -long16 __ovld __cnfn convert_long16_sat_rtz(ushort16); -long16 __ovld __cnfn convert_long16_rtp(ushort16); -long16 __ovld __cnfn convert_long16_sat_rtp(ushort16); -long16 __ovld __cnfn convert_long16_rtn(ushort16); -long16 __ovld __cnfn convert_long16_sat_rtn(ushort16); -long16 __ovld __cnfn convert_long16(ushort16); -long16 __ovld __cnfn convert_long16_sat(ushort16); -long16 __ovld __cnfn convert_long16_rte(int16); -long16 __ovld __cnfn convert_long16_sat_rte(int16); -long16 __ovld __cnfn convert_long16_rtz(int16); -long16 __ovld __cnfn convert_long16_sat_rtz(int16); -long16 __ovld __cnfn convert_long16_rtp(int16); -long16 __ovld __cnfn convert_long16_sat_rtp(int16); -long16 __ovld __cnfn convert_long16_rtn(int16); -long16 __ovld __cnfn convert_long16_sat_rtn(int16); -long16 __ovld __cnfn convert_long16(int16); -long16 __ovld __cnfn convert_long16_sat(int16); -long16 __ovld __cnfn convert_long16_rte(uint16); -long16 __ovld __cnfn convert_long16_sat_rte(uint16); -long16 __ovld __cnfn convert_long16_rtz(uint16); -long16 __ovld __cnfn convert_long16_sat_rtz(uint16); -long16 __ovld __cnfn convert_long16_rtp(uint16); -long16 __ovld __cnfn convert_long16_sat_rtp(uint16); -long16 __ovld __cnfn convert_long16_rtn(uint16); -long16 __ovld __cnfn convert_long16_sat_rtn(uint16); -long16 __ovld __cnfn convert_long16(uint16); -long16 __ovld __cnfn convert_long16_sat(uint16); -long16 __ovld __cnfn convert_long16_rte(long16); -long16 __ovld __cnfn convert_long16_sat_rte(long16); -long16 __ovld __cnfn convert_long16_rtz(long16); -long16 __ovld __cnfn convert_long16_sat_rtz(long16); -long16 __ovld __cnfn convert_long16_rtp(long16); -long16 __ovld __cnfn convert_long16_sat_rtp(long16); -long16 __ovld __cnfn convert_long16_rtn(long16); -long16 __ovld __cnfn convert_long16_sat_rtn(long16); -long16 __ovld __cnfn convert_long16(long16); -long16 __ovld __cnfn convert_long16_sat(long16); -long16 __ovld __cnfn convert_long16_rte(ulong16); -long16 __ovld __cnfn convert_long16_sat_rte(ulong16); -long16 __ovld __cnfn convert_long16_rtz(ulong16); -long16 __ovld __cnfn convert_long16_sat_rtz(ulong16); -long16 __ovld __cnfn convert_long16_rtp(ulong16); -long16 __ovld __cnfn convert_long16_sat_rtp(ulong16); -long16 __ovld __cnfn convert_long16_rtn(ulong16); -long16 __ovld __cnfn convert_long16_sat_rtn(ulong16); -long16 __ovld __cnfn convert_long16(ulong16); -long16 __ovld __cnfn convert_long16_sat(ulong16); -long16 __ovld __cnfn convert_long16_rte(float16); -long16 __ovld __cnfn convert_long16_sat_rte(float16); -long16 __ovld __cnfn convert_long16_rtz(float16); -long16 __ovld __cnfn convert_long16_sat_rtz(float16); -long16 __ovld __cnfn convert_long16_rtp(float16); -long16 __ovld __cnfn convert_long16_sat_rtp(float16); -long16 __ovld __cnfn convert_long16_rtn(float16); -long16 __ovld __cnfn convert_long16_sat_rtn(float16); -long16 __ovld __cnfn convert_long16(float16); -long16 __ovld __cnfn convert_long16_sat(float16); -ulong16 __ovld __cnfn convert_ulong16_rte(char16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(char16); -ulong16 __ovld __cnfn convert_ulong16_rtz(char16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(char16); -ulong16 __ovld __cnfn convert_ulong16_rtp(char16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(char16); -ulong16 __ovld __cnfn convert_ulong16_rtn(char16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(char16); -ulong16 __ovld __cnfn convert_ulong16(char16); -ulong16 __ovld __cnfn convert_ulong16_sat(char16); -ulong16 __ovld __cnfn convert_ulong16_rte(uchar16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(uchar16); -ulong16 __ovld __cnfn convert_ulong16_rtz(uchar16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uchar16); -ulong16 __ovld __cnfn convert_ulong16_rtp(uchar16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uchar16); -ulong16 __ovld __cnfn convert_ulong16_rtn(uchar16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uchar16); -ulong16 __ovld __cnfn convert_ulong16(uchar16); -ulong16 __ovld __cnfn convert_ulong16_sat(uchar16); -ulong16 __ovld __cnfn convert_ulong16_rte(short16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(short16); -ulong16 __ovld __cnfn convert_ulong16_rtz(short16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(short16); -ulong16 __ovld __cnfn convert_ulong16_rtp(short16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(short16); -ulong16 __ovld __cnfn convert_ulong16_rtn(short16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(short16); -ulong16 __ovld __cnfn convert_ulong16(short16); -ulong16 __ovld __cnfn convert_ulong16_sat(short16); -ulong16 __ovld __cnfn convert_ulong16_rte(ushort16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(ushort16); -ulong16 __ovld __cnfn convert_ulong16_rtz(ushort16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ushort16); -ulong16 __ovld __cnfn convert_ulong16_rtp(ushort16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ushort16); -ulong16 __ovld __cnfn convert_ulong16_rtn(ushort16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ushort16); -ulong16 __ovld __cnfn convert_ulong16(ushort16); -ulong16 __ovld __cnfn convert_ulong16_sat(ushort16); -ulong16 __ovld __cnfn convert_ulong16_rte(int16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(int16); -ulong16 __ovld __cnfn convert_ulong16_rtz(int16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(int16); -ulong16 __ovld __cnfn convert_ulong16_rtp(int16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(int16); -ulong16 __ovld __cnfn convert_ulong16_rtn(int16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(int16); -ulong16 __ovld __cnfn convert_ulong16(int16); -ulong16 __ovld __cnfn convert_ulong16_sat(int16); -ulong16 __ovld __cnfn convert_ulong16_rte(uint16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(uint16); -ulong16 __ovld __cnfn convert_ulong16_rtz(uint16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uint16); -ulong16 __ovld __cnfn convert_ulong16_rtp(uint16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uint16); -ulong16 __ovld __cnfn convert_ulong16_rtn(uint16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uint16); -ulong16 __ovld __cnfn convert_ulong16(uint16); -ulong16 __ovld __cnfn convert_ulong16_sat(uint16); -ulong16 __ovld __cnfn convert_ulong16_rte(long16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(long16); -ulong16 __ovld __cnfn convert_ulong16_rtz(long16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(long16); -ulong16 __ovld __cnfn convert_ulong16_rtp(long16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(long16); -ulong16 __ovld __cnfn convert_ulong16_rtn(long16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(long16); -ulong16 __ovld __cnfn convert_ulong16(long16); -ulong16 __ovld __cnfn convert_ulong16_sat(long16); -ulong16 __ovld __cnfn convert_ulong16_rte(ulong16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(ulong16); -ulong16 __ovld __cnfn convert_ulong16_rtz(ulong16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ulong16); -ulong16 __ovld __cnfn convert_ulong16_rtp(ulong16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ulong16); -ulong16 __ovld __cnfn convert_ulong16_rtn(ulong16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ulong16); -ulong16 __ovld __cnfn convert_ulong16(ulong16); -ulong16 __ovld __cnfn convert_ulong16_sat(ulong16); -ulong16 __ovld __cnfn convert_ulong16_rte(float16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(float16); -ulong16 __ovld __cnfn convert_ulong16_rtz(float16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(float16); -ulong16 __ovld __cnfn convert_ulong16_rtp(float16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(float16); -ulong16 __ovld __cnfn convert_ulong16_rtn(float16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(float16); -ulong16 __ovld __cnfn convert_ulong16(float16); -ulong16 __ovld __cnfn convert_ulong16_sat(float16); -float16 __ovld __cnfn convert_float16_rte(char16); -float16 __ovld __cnfn convert_float16_rtz(char16); -float16 __ovld __cnfn convert_float16_rtp(char16); -float16 __ovld __cnfn convert_float16_rtn(char16); -float16 __ovld __cnfn convert_float16(char16); -float16 __ovld __cnfn convert_float16_rte(uchar16); -float16 __ovld __cnfn convert_float16_rtz(uchar16); -float16 __ovld __cnfn convert_float16_rtp(uchar16); -float16 __ovld __cnfn convert_float16_rtn(uchar16); -float16 __ovld __cnfn convert_float16(uchar16); -float16 __ovld __cnfn convert_float16_rte(short16); -float16 __ovld __cnfn convert_float16_rtz(short16); -float16 __ovld __cnfn convert_float16_rtp(short16); -float16 __ovld __cnfn convert_float16_rtn(short16); -float16 __ovld __cnfn convert_float16(short16); -float16 __ovld __cnfn convert_float16_rte(ushort16); -float16 __ovld __cnfn convert_float16_rtz(ushort16); -float16 __ovld __cnfn convert_float16_rtp(ushort16); -float16 __ovld __cnfn convert_float16_rtn(ushort16); -float16 __ovld __cnfn convert_float16(ushort16); -float16 __ovld __cnfn convert_float16_rte(int16); -float16 __ovld __cnfn convert_float16_rtz(int16); -float16 __ovld __cnfn convert_float16_rtp(int16); -float16 __ovld __cnfn convert_float16_rtn(int16); -float16 __ovld __cnfn convert_float16(int16); -float16 __ovld __cnfn convert_float16_rte(uint16); -float16 __ovld __cnfn convert_float16_rtz(uint16); -float16 __ovld __cnfn convert_float16_rtp(uint16); -float16 __ovld __cnfn convert_float16_rtn(uint16); -float16 __ovld __cnfn convert_float16(uint16); -float16 __ovld __cnfn convert_float16_rte(long16); -float16 __ovld __cnfn convert_float16_rtz(long16); -float16 __ovld __cnfn convert_float16_rtp(long16); -float16 __ovld __cnfn convert_float16_rtn(long16); -float16 __ovld __cnfn convert_float16(long16); -float16 __ovld __cnfn convert_float16_rte(ulong16); -float16 __ovld __cnfn convert_float16_rtz(ulong16); -float16 __ovld __cnfn convert_float16_rtp(ulong16); -float16 __ovld __cnfn convert_float16_rtn(ulong16); -float16 __ovld __cnfn convert_float16(ulong16); -float16 __ovld __cnfn convert_float16_rte(float16); -float16 __ovld __cnfn convert_float16_rtz(float16); -float16 __ovld __cnfn convert_float16_rtp(float16); -float16 __ovld __cnfn convert_float16_rtn(float16); -float16 __ovld __cnfn convert_float16(float16); - -// Conversions with double data type parameters or return value. - -#ifdef cl_khr_fp64 -char __ovld __cnfn convert_char(double); -char __ovld __cnfn convert_char_rte(double); -char __ovld __cnfn convert_char_rtn(double); -char __ovld __cnfn convert_char_rtp(double); -char __ovld __cnfn convert_char_rtz(double); -char __ovld __cnfn convert_char_sat(double); -char __ovld __cnfn convert_char_sat_rte(double); -char __ovld __cnfn convert_char_sat_rtn(double); -char __ovld __cnfn convert_char_sat_rtp(double); -char __ovld __cnfn convert_char_sat_rtz(double); -char2 __ovld __cnfn convert_char2(double2); -char2 __ovld __cnfn convert_char2_rte(double2); -char2 __ovld __cnfn convert_char2_rtn(double2); -char2 __ovld __cnfn convert_char2_rtp(double2); -char2 __ovld __cnfn convert_char2_rtz(double2); -char2 __ovld __cnfn convert_char2_sat(double2); -char2 __ovld __cnfn convert_char2_sat_rte(double2); -char2 __ovld __cnfn convert_char2_sat_rtn(double2); -char2 __ovld __cnfn convert_char2_sat_rtp(double2); -char2 __ovld __cnfn convert_char2_sat_rtz(double2); -char3 __ovld __cnfn convert_char3(double3); -char3 __ovld __cnfn convert_char3_rte(double3); -char3 __ovld __cnfn convert_char3_rtn(double3); -char3 __ovld __cnfn convert_char3_rtp(double3); -char3 __ovld __cnfn convert_char3_rtz(double3); -char3 __ovld __cnfn convert_char3_sat(double3); -char3 __ovld __cnfn convert_char3_sat_rte(double3); -char3 __ovld __cnfn convert_char3_sat_rtn(double3); -char3 __ovld __cnfn convert_char3_sat_rtp(double3); -char3 __ovld __cnfn convert_char3_sat_rtz(double3); -char4 __ovld __cnfn convert_char4(double4); -char4 __ovld __cnfn convert_char4_rte(double4); -char4 __ovld __cnfn convert_char4_rtn(double4); -char4 __ovld __cnfn convert_char4_rtp(double4); -char4 __ovld __cnfn convert_char4_rtz(double4); -char4 __ovld __cnfn convert_char4_sat(double4); -char4 __ovld __cnfn convert_char4_sat_rte(double4); -char4 __ovld __cnfn convert_char4_sat_rtn(double4); -char4 __ovld __cnfn convert_char4_sat_rtp(double4); -char4 __ovld __cnfn convert_char4_sat_rtz(double4); -char8 __ovld __cnfn convert_char8(double8); -char8 __ovld __cnfn convert_char8_rte(double8); -char8 __ovld __cnfn convert_char8_rtn(double8); -char8 __ovld __cnfn convert_char8_rtp(double8); -char8 __ovld __cnfn convert_char8_rtz(double8); -char8 __ovld __cnfn convert_char8_sat(double8); -char8 __ovld __cnfn convert_char8_sat_rte(double8); -char8 __ovld __cnfn convert_char8_sat_rtn(double8); -char8 __ovld __cnfn convert_char8_sat_rtp(double8); -char8 __ovld __cnfn convert_char8_sat_rtz(double8); -char16 __ovld __cnfn convert_char16(double16); -char16 __ovld __cnfn convert_char16_rte(double16); -char16 __ovld __cnfn convert_char16_rtn(double16); -char16 __ovld __cnfn convert_char16_rtp(double16); -char16 __ovld __cnfn convert_char16_rtz(double16); -char16 __ovld __cnfn convert_char16_sat(double16); -char16 __ovld __cnfn convert_char16_sat_rte(double16); -char16 __ovld __cnfn convert_char16_sat_rtn(double16); -char16 __ovld __cnfn convert_char16_sat_rtp(double16); -char16 __ovld __cnfn convert_char16_sat_rtz(double16); - -uchar __ovld __cnfn convert_uchar(double); -uchar __ovld __cnfn convert_uchar_rte(double); -uchar __ovld __cnfn convert_uchar_rtn(double); -uchar __ovld __cnfn convert_uchar_rtp(double); -uchar __ovld __cnfn convert_uchar_rtz(double); -uchar __ovld __cnfn convert_uchar_sat(double); -uchar __ovld __cnfn convert_uchar_sat_rte(double); -uchar __ovld __cnfn convert_uchar_sat_rtn(double); -uchar __ovld __cnfn convert_uchar_sat_rtp(double); -uchar __ovld __cnfn convert_uchar_sat_rtz(double); -uchar2 __ovld __cnfn convert_uchar2(double2); -uchar2 __ovld __cnfn convert_uchar2_rte(double2); -uchar2 __ovld __cnfn convert_uchar2_rtn(double2); -uchar2 __ovld __cnfn convert_uchar2_rtp(double2); -uchar2 __ovld __cnfn convert_uchar2_rtz(double2); -uchar2 __ovld __cnfn convert_uchar2_sat(double2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(double2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(double2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(double2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(double2); -uchar3 __ovld __cnfn convert_uchar3(double3); -uchar3 __ovld __cnfn convert_uchar3_rte(double3); -uchar3 __ovld __cnfn convert_uchar3_rtn(double3); -uchar3 __ovld __cnfn convert_uchar3_rtp(double3); -uchar3 __ovld __cnfn convert_uchar3_rtz(double3); -uchar3 __ovld __cnfn convert_uchar3_sat(double3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(double3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(double3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(double3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(double3); -uchar4 __ovld __cnfn convert_uchar4(double4); -uchar4 __ovld __cnfn convert_uchar4_rte(double4); -uchar4 __ovld __cnfn convert_uchar4_rtn(double4); -uchar4 __ovld __cnfn convert_uchar4_rtp(double4); -uchar4 __ovld __cnfn convert_uchar4_rtz(double4); -uchar4 __ovld __cnfn convert_uchar4_sat(double4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(double4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(double4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(double4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(double4); -uchar8 __ovld __cnfn convert_uchar8(double8); -uchar8 __ovld __cnfn convert_uchar8_rte(double8); -uchar8 __ovld __cnfn convert_uchar8_rtn(double8); -uchar8 __ovld __cnfn convert_uchar8_rtp(double8); -uchar8 __ovld __cnfn convert_uchar8_rtz(double8); -uchar8 __ovld __cnfn convert_uchar8_sat(double8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(double8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(double8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(double8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(double8); -uchar16 __ovld __cnfn convert_uchar16(double16); -uchar16 __ovld __cnfn convert_uchar16_rte(double16); -uchar16 __ovld __cnfn convert_uchar16_rtn(double16); -uchar16 __ovld __cnfn convert_uchar16_rtp(double16); -uchar16 __ovld __cnfn convert_uchar16_rtz(double16); -uchar16 __ovld __cnfn convert_uchar16_sat(double16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(double16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(double16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(double16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(double16); - -short __ovld __cnfn convert_short(double); -short __ovld __cnfn convert_short_rte(double); -short __ovld __cnfn convert_short_rtn(double); -short __ovld __cnfn convert_short_rtp(double); -short __ovld __cnfn convert_short_rtz(double); -short __ovld __cnfn convert_short_sat(double); -short __ovld __cnfn convert_short_sat_rte(double); -short __ovld __cnfn convert_short_sat_rtn(double); -short __ovld __cnfn convert_short_sat_rtp(double); -short __ovld __cnfn convert_short_sat_rtz(double); -short2 __ovld __cnfn convert_short2(double2); -short2 __ovld __cnfn convert_short2_rte(double2); -short2 __ovld __cnfn convert_short2_rtn(double2); -short2 __ovld __cnfn convert_short2_rtp(double2); -short2 __ovld __cnfn convert_short2_rtz(double2); -short2 __ovld __cnfn convert_short2_sat(double2); -short2 __ovld __cnfn convert_short2_sat_rte(double2); -short2 __ovld __cnfn convert_short2_sat_rtn(double2); -short2 __ovld __cnfn convert_short2_sat_rtp(double2); -short2 __ovld __cnfn convert_short2_sat_rtz(double2); -short3 __ovld __cnfn convert_short3(double3); -short3 __ovld __cnfn convert_short3_rte(double3); -short3 __ovld __cnfn convert_short3_rtn(double3); -short3 __ovld __cnfn convert_short3_rtp(double3); -short3 __ovld __cnfn convert_short3_rtz(double3); -short3 __ovld __cnfn convert_short3_sat(double3); -short3 __ovld __cnfn convert_short3_sat_rte(double3); -short3 __ovld __cnfn convert_short3_sat_rtn(double3); -short3 __ovld __cnfn convert_short3_sat_rtp(double3); -short3 __ovld __cnfn convert_short3_sat_rtz(double3); -short4 __ovld __cnfn convert_short4(double4); -short4 __ovld __cnfn convert_short4_rte(double4); -short4 __ovld __cnfn convert_short4_rtn(double4); -short4 __ovld __cnfn convert_short4_rtp(double4); -short4 __ovld __cnfn convert_short4_rtz(double4); -short4 __ovld __cnfn convert_short4_sat(double4); -short4 __ovld __cnfn convert_short4_sat_rte(double4); -short4 __ovld __cnfn convert_short4_sat_rtn(double4); -short4 __ovld __cnfn convert_short4_sat_rtp(double4); -short4 __ovld __cnfn convert_short4_sat_rtz(double4); -short8 __ovld __cnfn convert_short8(double8); -short8 __ovld __cnfn convert_short8_rte(double8); -short8 __ovld __cnfn convert_short8_rtn(double8); -short8 __ovld __cnfn convert_short8_rtp(double8); -short8 __ovld __cnfn convert_short8_rtz(double8); -short8 __ovld __cnfn convert_short8_sat(double8); -short8 __ovld __cnfn convert_short8_sat_rte(double8); -short8 __ovld __cnfn convert_short8_sat_rtn(double8); -short8 __ovld __cnfn convert_short8_sat_rtp(double8); -short8 __ovld __cnfn convert_short8_sat_rtz(double8); -short16 __ovld __cnfn convert_short16(double16); -short16 __ovld __cnfn convert_short16_rte(double16); -short16 __ovld __cnfn convert_short16_rtn(double16); -short16 __ovld __cnfn convert_short16_rtp(double16); -short16 __ovld __cnfn convert_short16_rtz(double16); -short16 __ovld __cnfn convert_short16_sat(double16); -short16 __ovld __cnfn convert_short16_sat_rte(double16); -short16 __ovld __cnfn convert_short16_sat_rtn(double16); -short16 __ovld __cnfn convert_short16_sat_rtp(double16); -short16 __ovld __cnfn convert_short16_sat_rtz(double16); - -ushort __ovld __cnfn convert_ushort(double); -ushort __ovld __cnfn convert_ushort_rte(double); -ushort __ovld __cnfn convert_ushort_rtn(double); -ushort __ovld __cnfn convert_ushort_rtp(double); -ushort __ovld __cnfn convert_ushort_rtz(double); -ushort __ovld __cnfn convert_ushort_sat(double); -ushort __ovld __cnfn convert_ushort_sat_rte(double); -ushort __ovld __cnfn convert_ushort_sat_rtn(double); -ushort __ovld __cnfn convert_ushort_sat_rtp(double); -ushort __ovld __cnfn convert_ushort_sat_rtz(double); -ushort2 __ovld __cnfn convert_ushort2(double2); -ushort2 __ovld __cnfn convert_ushort2_rte(double2); -ushort2 __ovld __cnfn convert_ushort2_rtn(double2); -ushort2 __ovld __cnfn convert_ushort2_rtp(double2); -ushort2 __ovld __cnfn convert_ushort2_rtz(double2); -ushort2 __ovld __cnfn convert_ushort2_sat(double2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(double2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(double2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(double2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(double2); -ushort3 __ovld __cnfn convert_ushort3(double3); -ushort3 __ovld __cnfn convert_ushort3_rte(double3); -ushort3 __ovld __cnfn convert_ushort3_rtn(double3); -ushort3 __ovld __cnfn convert_ushort3_rtp(double3); -ushort3 __ovld __cnfn convert_ushort3_rtz(double3); -ushort3 __ovld __cnfn convert_ushort3_sat(double3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(double3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(double3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(double3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(double3); -ushort4 __ovld __cnfn convert_ushort4(double4); -ushort4 __ovld __cnfn convert_ushort4_rte(double4); -ushort4 __ovld __cnfn convert_ushort4_rtn(double4); -ushort4 __ovld __cnfn convert_ushort4_rtp(double4); -ushort4 __ovld __cnfn convert_ushort4_rtz(double4); -ushort4 __ovld __cnfn convert_ushort4_sat(double4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(double4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(double4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(double4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(double4); -ushort8 __ovld __cnfn convert_ushort8(double8); -ushort8 __ovld __cnfn convert_ushort8_rte(double8); -ushort8 __ovld __cnfn convert_ushort8_rtn(double8); -ushort8 __ovld __cnfn convert_ushort8_rtp(double8); -ushort8 __ovld __cnfn convert_ushort8_rtz(double8); -ushort8 __ovld __cnfn convert_ushort8_sat(double8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(double8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(double8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(double8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(double8); -ushort16 __ovld __cnfn convert_ushort16(double16); -ushort16 __ovld __cnfn convert_ushort16_rte(double16); -ushort16 __ovld __cnfn convert_ushort16_rtn(double16); -ushort16 __ovld __cnfn convert_ushort16_rtp(double16); -ushort16 __ovld __cnfn convert_ushort16_rtz(double16); -ushort16 __ovld __cnfn convert_ushort16_sat(double16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(double16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(double16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(double16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(double16); - -int __ovld __cnfn convert_int(double); -int __ovld __cnfn convert_int_rte(double); -int __ovld __cnfn convert_int_rtn(double); -int __ovld __cnfn convert_int_rtp(double); -int __ovld __cnfn convert_int_rtz(double); -int __ovld __cnfn convert_int_sat(double); -int __ovld __cnfn convert_int_sat_rte(double); -int __ovld __cnfn convert_int_sat_rtn(double); -int __ovld __cnfn convert_int_sat_rtp(double); -int __ovld __cnfn convert_int_sat_rtz(double); -int2 __ovld __cnfn convert_int2(double2); -int2 __ovld __cnfn convert_int2_rte(double2); -int2 __ovld __cnfn convert_int2_rtn(double2); -int2 __ovld __cnfn convert_int2_rtp(double2); -int2 __ovld __cnfn convert_int2_rtz(double2); -int2 __ovld __cnfn convert_int2_sat(double2); -int2 __ovld __cnfn convert_int2_sat_rte(double2); -int2 __ovld __cnfn convert_int2_sat_rtn(double2); -int2 __ovld __cnfn convert_int2_sat_rtp(double2); -int2 __ovld __cnfn convert_int2_sat_rtz(double2); -int3 __ovld __cnfn convert_int3(double3); -int3 __ovld __cnfn convert_int3_rte(double3); -int3 __ovld __cnfn convert_int3_rtn(double3); -int3 __ovld __cnfn convert_int3_rtp(double3); -int3 __ovld __cnfn convert_int3_rtz(double3); -int3 __ovld __cnfn convert_int3_sat(double3); -int3 __ovld __cnfn convert_int3_sat_rte(double3); -int3 __ovld __cnfn convert_int3_sat_rtn(double3); -int3 __ovld __cnfn convert_int3_sat_rtp(double3); -int3 __ovld __cnfn convert_int3_sat_rtz(double3); -int4 __ovld __cnfn convert_int4(double4); -int4 __ovld __cnfn convert_int4_rte(double4); -int4 __ovld __cnfn convert_int4_rtn(double4); -int4 __ovld __cnfn convert_int4_rtp(double4); -int4 __ovld __cnfn convert_int4_rtz(double4); -int4 __ovld __cnfn convert_int4_sat(double4); -int4 __ovld __cnfn convert_int4_sat_rte(double4); -int4 __ovld __cnfn convert_int4_sat_rtn(double4); -int4 __ovld __cnfn convert_int4_sat_rtp(double4); -int4 __ovld __cnfn convert_int4_sat_rtz(double4); -int8 __ovld __cnfn convert_int8(double8); -int8 __ovld __cnfn convert_int8_rte(double8); -int8 __ovld __cnfn convert_int8_rtn(double8); -int8 __ovld __cnfn convert_int8_rtp(double8); -int8 __ovld __cnfn convert_int8_rtz(double8); -int8 __ovld __cnfn convert_int8_sat(double8); -int8 __ovld __cnfn convert_int8_sat_rte(double8); -int8 __ovld __cnfn convert_int8_sat_rtn(double8); -int8 __ovld __cnfn convert_int8_sat_rtp(double8); -int8 __ovld __cnfn convert_int8_sat_rtz(double8); -int16 __ovld __cnfn convert_int16(double16); -int16 __ovld __cnfn convert_int16_rte(double16); -int16 __ovld __cnfn convert_int16_rtn(double16); -int16 __ovld __cnfn convert_int16_rtp(double16); -int16 __ovld __cnfn convert_int16_rtz(double16); -int16 __ovld __cnfn convert_int16_sat(double16); -int16 __ovld __cnfn convert_int16_sat_rte(double16); -int16 __ovld __cnfn convert_int16_sat_rtn(double16); -int16 __ovld __cnfn convert_int16_sat_rtp(double16); -int16 __ovld __cnfn convert_int16_sat_rtz(double16); - -uint __ovld __cnfn convert_uint(double); -uint __ovld __cnfn convert_uint_rte(double); -uint __ovld __cnfn convert_uint_rtn(double); -uint __ovld __cnfn convert_uint_rtp(double); -uint __ovld __cnfn convert_uint_rtz(double); -uint __ovld __cnfn convert_uint_sat(double); -uint __ovld __cnfn convert_uint_sat_rte(double); -uint __ovld __cnfn convert_uint_sat_rtn(double); -uint __ovld __cnfn convert_uint_sat_rtp(double); -uint __ovld __cnfn convert_uint_sat_rtz(double); -uint2 __ovld __cnfn convert_uint2(double2); -uint2 __ovld __cnfn convert_uint2_rte(double2); -uint2 __ovld __cnfn convert_uint2_rtn(double2); -uint2 __ovld __cnfn convert_uint2_rtp(double2); -uint2 __ovld __cnfn convert_uint2_rtz(double2); -uint2 __ovld __cnfn convert_uint2_sat(double2); -uint2 __ovld __cnfn convert_uint2_sat_rte(double2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(double2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(double2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(double2); -uint3 __ovld __cnfn convert_uint3(double3); -uint3 __ovld __cnfn convert_uint3_rte(double3); -uint3 __ovld __cnfn convert_uint3_rtn(double3); -uint3 __ovld __cnfn convert_uint3_rtp(double3); -uint3 __ovld __cnfn convert_uint3_rtz(double3); -uint3 __ovld __cnfn convert_uint3_sat(double3); -uint3 __ovld __cnfn convert_uint3_sat_rte(double3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(double3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(double3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(double3); -uint4 __ovld __cnfn convert_uint4(double4); -uint4 __ovld __cnfn convert_uint4_rte(double4); -uint4 __ovld __cnfn convert_uint4_rtn(double4); -uint4 __ovld __cnfn convert_uint4_rtp(double4); -uint4 __ovld __cnfn convert_uint4_rtz(double4); -uint4 __ovld __cnfn convert_uint4_sat(double4); -uint4 __ovld __cnfn convert_uint4_sat_rte(double4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(double4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(double4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(double4); -uint8 __ovld __cnfn convert_uint8(double8); -uint8 __ovld __cnfn convert_uint8_rte(double8); -uint8 __ovld __cnfn convert_uint8_rtn(double8); -uint8 __ovld __cnfn convert_uint8_rtp(double8); -uint8 __ovld __cnfn convert_uint8_rtz(double8); -uint8 __ovld __cnfn convert_uint8_sat(double8); -uint8 __ovld __cnfn convert_uint8_sat_rte(double8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(double8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(double8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(double8); -uint16 __ovld __cnfn convert_uint16(double16); -uint16 __ovld __cnfn convert_uint16_rte(double16); -uint16 __ovld __cnfn convert_uint16_rtn(double16); -uint16 __ovld __cnfn convert_uint16_rtp(double16); -uint16 __ovld __cnfn convert_uint16_rtz(double16); -uint16 __ovld __cnfn convert_uint16_sat(double16); -uint16 __ovld __cnfn convert_uint16_sat_rte(double16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(double16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(double16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(double16); - -long __ovld __cnfn convert_long(double); -long __ovld __cnfn convert_long_rte(double); -long __ovld __cnfn convert_long_rtn(double); -long __ovld __cnfn convert_long_rtp(double); -long __ovld __cnfn convert_long_rtz(double); -long __ovld __cnfn convert_long_sat(double); -long __ovld __cnfn convert_long_sat_rte(double); -long __ovld __cnfn convert_long_sat_rtn(double); -long __ovld __cnfn convert_long_sat_rtp(double); -long __ovld __cnfn convert_long_sat_rtz(double); -long2 __ovld __cnfn convert_long2(double2); -long2 __ovld __cnfn convert_long2_rte(double2); -long2 __ovld __cnfn convert_long2_rtn(double2); -long2 __ovld __cnfn convert_long2_rtp(double2); -long2 __ovld __cnfn convert_long2_rtz(double2); -long2 __ovld __cnfn convert_long2_sat(double2); -long2 __ovld __cnfn convert_long2_sat_rte(double2); -long2 __ovld __cnfn convert_long2_sat_rtn(double2); -long2 __ovld __cnfn convert_long2_sat_rtp(double2); -long2 __ovld __cnfn convert_long2_sat_rtz(double2); -long3 __ovld __cnfn convert_long3(double3); -long3 __ovld __cnfn convert_long3_rte(double3); -long3 __ovld __cnfn convert_long3_rtn(double3); -long3 __ovld __cnfn convert_long3_rtp(double3); -long3 __ovld __cnfn convert_long3_rtz(double3); -long3 __ovld __cnfn convert_long3_sat(double3); -long3 __ovld __cnfn convert_long3_sat_rte(double3); -long3 __ovld __cnfn convert_long3_sat_rtn(double3); -long3 __ovld __cnfn convert_long3_sat_rtp(double3); -long3 __ovld __cnfn convert_long3_sat_rtz(double3); -long4 __ovld __cnfn convert_long4(double4); -long4 __ovld __cnfn convert_long4_rte(double4); -long4 __ovld __cnfn convert_long4_rtn(double4); -long4 __ovld __cnfn convert_long4_rtp(double4); -long4 __ovld __cnfn convert_long4_rtz(double4); -long4 __ovld __cnfn convert_long4_sat(double4); -long4 __ovld __cnfn convert_long4_sat_rte(double4); -long4 __ovld __cnfn convert_long4_sat_rtn(double4); -long4 __ovld __cnfn convert_long4_sat_rtp(double4); -long4 __ovld __cnfn convert_long4_sat_rtz(double4); -long8 __ovld __cnfn convert_long8(double8); -long8 __ovld __cnfn convert_long8_rte(double8); -long8 __ovld __cnfn convert_long8_rtn(double8); -long8 __ovld __cnfn convert_long8_rtp(double8); -long8 __ovld __cnfn convert_long8_rtz(double8); -long8 __ovld __cnfn convert_long8_sat(double8); -long8 __ovld __cnfn convert_long8_sat_rte(double8); -long8 __ovld __cnfn convert_long8_sat_rtn(double8); -long8 __ovld __cnfn convert_long8_sat_rtp(double8); -long8 __ovld __cnfn convert_long8_sat_rtz(double8); -long16 __ovld __cnfn convert_long16(double16); -long16 __ovld __cnfn convert_long16_rte(double16); -long16 __ovld __cnfn convert_long16_rtn(double16); -long16 __ovld __cnfn convert_long16_rtp(double16); -long16 __ovld __cnfn convert_long16_rtz(double16); -long16 __ovld __cnfn convert_long16_sat(double16); -long16 __ovld __cnfn convert_long16_sat_rte(double16); -long16 __ovld __cnfn convert_long16_sat_rtn(double16); -long16 __ovld __cnfn convert_long16_sat_rtp(double16); -long16 __ovld __cnfn convert_long16_sat_rtz(double16); - -ulong __ovld __cnfn convert_ulong(double); -ulong __ovld __cnfn convert_ulong_rte(double); -ulong __ovld __cnfn convert_ulong_rtn(double); -ulong __ovld __cnfn convert_ulong_rtp(double); -ulong __ovld __cnfn convert_ulong_rtz(double); -ulong __ovld __cnfn convert_ulong_sat(double); -ulong __ovld __cnfn convert_ulong_sat_rte(double); -ulong __ovld __cnfn convert_ulong_sat_rtn(double); -ulong __ovld __cnfn convert_ulong_sat_rtp(double); -ulong __ovld __cnfn convert_ulong_sat_rtz(double); -ulong2 __ovld __cnfn convert_ulong2(double2); -ulong2 __ovld __cnfn convert_ulong2_rte(double2); -ulong2 __ovld __cnfn convert_ulong2_rtn(double2); -ulong2 __ovld __cnfn convert_ulong2_rtp(double2); -ulong2 __ovld __cnfn convert_ulong2_rtz(double2); -ulong2 __ovld __cnfn convert_ulong2_sat(double2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(double2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(double2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(double2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(double2); -ulong3 __ovld __cnfn convert_ulong3(double3); -ulong3 __ovld __cnfn convert_ulong3_rte(double3); -ulong3 __ovld __cnfn convert_ulong3_rtn(double3); -ulong3 __ovld __cnfn convert_ulong3_rtp(double3); -ulong3 __ovld __cnfn convert_ulong3_rtz(double3); -ulong3 __ovld __cnfn convert_ulong3_sat(double3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(double3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(double3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(double3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(double3); -ulong4 __ovld __cnfn convert_ulong4(double4); -ulong4 __ovld __cnfn convert_ulong4_rte(double4); -ulong4 __ovld __cnfn convert_ulong4_rtn(double4); -ulong4 __ovld __cnfn convert_ulong4_rtp(double4); -ulong4 __ovld __cnfn convert_ulong4_rtz(double4); -ulong4 __ovld __cnfn convert_ulong4_sat(double4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(double4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(double4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(double4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(double4); -ulong8 __ovld __cnfn convert_ulong8(double8); -ulong8 __ovld __cnfn convert_ulong8_rte(double8); -ulong8 __ovld __cnfn convert_ulong8_rtn(double8); -ulong8 __ovld __cnfn convert_ulong8_rtp(double8); -ulong8 __ovld __cnfn convert_ulong8_rtz(double8); -ulong8 __ovld __cnfn convert_ulong8_sat(double8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(double8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(double8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(double8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(double8); -ulong16 __ovld __cnfn convert_ulong16(double16); -ulong16 __ovld __cnfn convert_ulong16_rte(double16); -ulong16 __ovld __cnfn convert_ulong16_rtn(double16); -ulong16 __ovld __cnfn convert_ulong16_rtp(double16); -ulong16 __ovld __cnfn convert_ulong16_rtz(double16); -ulong16 __ovld __cnfn convert_ulong16_sat(double16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(double16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(double16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(double16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(double16); - -float __ovld __cnfn convert_float(double); -float __ovld __cnfn convert_float_rte(double); -float __ovld __cnfn convert_float_rtn(double); -float __ovld __cnfn convert_float_rtp(double); -float __ovld __cnfn convert_float_rtz(double); -float2 __ovld __cnfn convert_float2(double2); -float2 __ovld __cnfn convert_float2_rte(double2); -float2 __ovld __cnfn convert_float2_rtn(double2); -float2 __ovld __cnfn convert_float2_rtp(double2); -float2 __ovld __cnfn convert_float2_rtz(double2); -float3 __ovld __cnfn convert_float3(double3); -float3 __ovld __cnfn convert_float3_rte(double3); -float3 __ovld __cnfn convert_float3_rtn(double3); -float3 __ovld __cnfn convert_float3_rtp(double3); -float3 __ovld __cnfn convert_float3_rtz(double3); -float4 __ovld __cnfn convert_float4(double4); -float4 __ovld __cnfn convert_float4_rte(double4); -float4 __ovld __cnfn convert_float4_rtn(double4); -float4 __ovld __cnfn convert_float4_rtp(double4); -float4 __ovld __cnfn convert_float4_rtz(double4); -float8 __ovld __cnfn convert_float8(double8); -float8 __ovld __cnfn convert_float8_rte(double8); -float8 __ovld __cnfn convert_float8_rtn(double8); -float8 __ovld __cnfn convert_float8_rtp(double8); -float8 __ovld __cnfn convert_float8_rtz(double8); -float16 __ovld __cnfn convert_float16(double16); -float16 __ovld __cnfn convert_float16_rte(double16); -float16 __ovld __cnfn convert_float16_rtn(double16); -float16 __ovld __cnfn convert_float16_rtp(double16); -float16 __ovld __cnfn convert_float16_rtz(double16); - -double __ovld __cnfn convert_double(char); -double __ovld __cnfn convert_double(double); -double __ovld __cnfn convert_double(float); -double __ovld __cnfn convert_double(int); -double __ovld __cnfn convert_double(long); -double __ovld __cnfn convert_double(short); -double __ovld __cnfn convert_double(uchar); -double __ovld __cnfn convert_double(uint); -double __ovld __cnfn convert_double(ulong); -double __ovld __cnfn convert_double(ushort); -double __ovld __cnfn convert_double_rte(char); -double __ovld __cnfn convert_double_rte(double); -double __ovld __cnfn convert_double_rte(float); -double __ovld __cnfn convert_double_rte(int); -double __ovld __cnfn convert_double_rte(long); -double __ovld __cnfn convert_double_rte(short); -double __ovld __cnfn convert_double_rte(uchar); -double __ovld __cnfn convert_double_rte(uint); -double __ovld __cnfn convert_double_rte(ulong); -double __ovld __cnfn convert_double_rte(ushort); -double __ovld __cnfn convert_double_rtn(char); -double __ovld __cnfn convert_double_rtn(double); -double __ovld __cnfn convert_double_rtn(float); -double __ovld __cnfn convert_double_rtn(int); -double __ovld __cnfn convert_double_rtn(long); -double __ovld __cnfn convert_double_rtn(short); -double __ovld __cnfn convert_double_rtn(uchar); -double __ovld __cnfn convert_double_rtn(uint); -double __ovld __cnfn convert_double_rtn(ulong); -double __ovld __cnfn convert_double_rtn(ushort); -double __ovld __cnfn convert_double_rtp(char); -double __ovld __cnfn convert_double_rtp(double); -double __ovld __cnfn convert_double_rtp(float); -double __ovld __cnfn convert_double_rtp(int); -double __ovld __cnfn convert_double_rtp(long); -double __ovld __cnfn convert_double_rtp(short); -double __ovld __cnfn convert_double_rtp(uchar); -double __ovld __cnfn convert_double_rtp(uint); -double __ovld __cnfn convert_double_rtp(ulong); -double __ovld __cnfn convert_double_rtp(ushort); -double __ovld __cnfn convert_double_rtz(char); -double __ovld __cnfn convert_double_rtz(double); -double __ovld __cnfn convert_double_rtz(float); -double __ovld __cnfn convert_double_rtz(int); -double __ovld __cnfn convert_double_rtz(long); -double __ovld __cnfn convert_double_rtz(short); -double __ovld __cnfn convert_double_rtz(uchar); -double __ovld __cnfn convert_double_rtz(uint); -double __ovld __cnfn convert_double_rtz(ulong); -double __ovld __cnfn convert_double_rtz(ushort); -double2 __ovld __cnfn convert_double2(char2); -double2 __ovld __cnfn convert_double2(double2); -double2 __ovld __cnfn convert_double2(float2); -double2 __ovld __cnfn convert_double2(int2); -double2 __ovld __cnfn convert_double2(long2); -double2 __ovld __cnfn convert_double2(short2); -double2 __ovld __cnfn convert_double2(uchar2); -double2 __ovld __cnfn convert_double2(uint2); -double2 __ovld __cnfn convert_double2(ulong2); -double2 __ovld __cnfn convert_double2(ushort2); -double2 __ovld __cnfn convert_double2_rte(char2); -double2 __ovld __cnfn convert_double2_rte(double2); -double2 __ovld __cnfn convert_double2_rte(float2); -double2 __ovld __cnfn convert_double2_rte(int2); -double2 __ovld __cnfn convert_double2_rte(long2); -double2 __ovld __cnfn convert_double2_rte(short2); -double2 __ovld __cnfn convert_double2_rte(uchar2); -double2 __ovld __cnfn convert_double2_rte(uint2); -double2 __ovld __cnfn convert_double2_rte(ulong2); -double2 __ovld __cnfn convert_double2_rte(ushort2); -double2 __ovld __cnfn convert_double2_rtn(char2); -double2 __ovld __cnfn convert_double2_rtn(double2); -double2 __ovld __cnfn convert_double2_rtn(float2); -double2 __ovld __cnfn convert_double2_rtn(int2); -double2 __ovld __cnfn convert_double2_rtn(long2); -double2 __ovld __cnfn convert_double2_rtn(short2); -double2 __ovld __cnfn convert_double2_rtn(uchar2); -double2 __ovld __cnfn convert_double2_rtn(uint2); -double2 __ovld __cnfn convert_double2_rtn(ulong2); -double2 __ovld __cnfn convert_double2_rtn(ushort2); -double2 __ovld __cnfn convert_double2_rtp(char2); -double2 __ovld __cnfn convert_double2_rtp(double2); -double2 __ovld __cnfn convert_double2_rtp(float2); -double2 __ovld __cnfn convert_double2_rtp(int2); -double2 __ovld __cnfn convert_double2_rtp(long2); -double2 __ovld __cnfn convert_double2_rtp(short2); -double2 __ovld __cnfn convert_double2_rtp(uchar2); -double2 __ovld __cnfn convert_double2_rtp(uint2); -double2 __ovld __cnfn convert_double2_rtp(ulong2); -double2 __ovld __cnfn convert_double2_rtp(ushort2); -double2 __ovld __cnfn convert_double2_rtz(char2); -double2 __ovld __cnfn convert_double2_rtz(double2); -double2 __ovld __cnfn convert_double2_rtz(float2); -double2 __ovld __cnfn convert_double2_rtz(int2); -double2 __ovld __cnfn convert_double2_rtz(long2); -double2 __ovld __cnfn convert_double2_rtz(short2); -double2 __ovld __cnfn convert_double2_rtz(uchar2); -double2 __ovld __cnfn convert_double2_rtz(uint2); -double2 __ovld __cnfn convert_double2_rtz(ulong2); -double2 __ovld __cnfn convert_double2_rtz(ushort2); -double3 __ovld __cnfn convert_double3(char3); -double3 __ovld __cnfn convert_double3(double3); -double3 __ovld __cnfn convert_double3(float3); -double3 __ovld __cnfn convert_double3(int3); -double3 __ovld __cnfn convert_double3(long3); -double3 __ovld __cnfn convert_double3(short3); -double3 __ovld __cnfn convert_double3(uchar3); -double3 __ovld __cnfn convert_double3(uint3); -double3 __ovld __cnfn convert_double3(ulong3); -double3 __ovld __cnfn convert_double3(ushort3); -double3 __ovld __cnfn convert_double3_rte(char3); -double3 __ovld __cnfn convert_double3_rte(double3); -double3 __ovld __cnfn convert_double3_rte(float3); -double3 __ovld __cnfn convert_double3_rte(int3); -double3 __ovld __cnfn convert_double3_rte(long3); -double3 __ovld __cnfn convert_double3_rte(short3); -double3 __ovld __cnfn convert_double3_rte(uchar3); -double3 __ovld __cnfn convert_double3_rte(uint3); -double3 __ovld __cnfn convert_double3_rte(ulong3); -double3 __ovld __cnfn convert_double3_rte(ushort3); -double3 __ovld __cnfn convert_double3_rtn(char3); -double3 __ovld __cnfn convert_double3_rtn(double3); -double3 __ovld __cnfn convert_double3_rtn(float3); -double3 __ovld __cnfn convert_double3_rtn(int3); -double3 __ovld __cnfn convert_double3_rtn(long3); -double3 __ovld __cnfn convert_double3_rtn(short3); -double3 __ovld __cnfn convert_double3_rtn(uchar3); -double3 __ovld __cnfn convert_double3_rtn(uint3); -double3 __ovld __cnfn convert_double3_rtn(ulong3); -double3 __ovld __cnfn convert_double3_rtn(ushort3); -double3 __ovld __cnfn convert_double3_rtp(char3); -double3 __ovld __cnfn convert_double3_rtp(double3); -double3 __ovld __cnfn convert_double3_rtp(float3); -double3 __ovld __cnfn convert_double3_rtp(int3); -double3 __ovld __cnfn convert_double3_rtp(long3); -double3 __ovld __cnfn convert_double3_rtp(short3); -double3 __ovld __cnfn convert_double3_rtp(uchar3); -double3 __ovld __cnfn convert_double3_rtp(uint3); -double3 __ovld __cnfn convert_double3_rtp(ulong3); -double3 __ovld __cnfn convert_double3_rtp(ushort3); -double3 __ovld __cnfn convert_double3_rtz(char3); -double3 __ovld __cnfn convert_double3_rtz(double3); -double3 __ovld __cnfn convert_double3_rtz(float3); -double3 __ovld __cnfn convert_double3_rtz(int3); -double3 __ovld __cnfn convert_double3_rtz(long3); -double3 __ovld __cnfn convert_double3_rtz(short3); -double3 __ovld __cnfn convert_double3_rtz(uchar3); -double3 __ovld __cnfn convert_double3_rtz(uint3); -double3 __ovld __cnfn convert_double3_rtz(ulong3); -double3 __ovld __cnfn convert_double3_rtz(ushort3); -double4 __ovld __cnfn convert_double4(char4); -double4 __ovld __cnfn convert_double4(double4); -double4 __ovld __cnfn convert_double4(float4); -double4 __ovld __cnfn convert_double4(int4); -double4 __ovld __cnfn convert_double4(long4); -double4 __ovld __cnfn convert_double4(short4); -double4 __ovld __cnfn convert_double4(uchar4); -double4 __ovld __cnfn convert_double4(uint4); -double4 __ovld __cnfn convert_double4(ulong4); -double4 __ovld __cnfn convert_double4(ushort4); -double4 __ovld __cnfn convert_double4_rte(char4); -double4 __ovld __cnfn convert_double4_rte(double4); -double4 __ovld __cnfn convert_double4_rte(float4); -double4 __ovld __cnfn convert_double4_rte(int4); -double4 __ovld __cnfn convert_double4_rte(long4); -double4 __ovld __cnfn convert_double4_rte(short4); -double4 __ovld __cnfn convert_double4_rte(uchar4); -double4 __ovld __cnfn convert_double4_rte(uint4); -double4 __ovld __cnfn convert_double4_rte(ulong4); -double4 __ovld __cnfn convert_double4_rte(ushort4); -double4 __ovld __cnfn convert_double4_rtn(char4); -double4 __ovld __cnfn convert_double4_rtn(double4); -double4 __ovld __cnfn convert_double4_rtn(float4); -double4 __ovld __cnfn convert_double4_rtn(int4); -double4 __ovld __cnfn convert_double4_rtn(long4); -double4 __ovld __cnfn convert_double4_rtn(short4); -double4 __ovld __cnfn convert_double4_rtn(uchar4); -double4 __ovld __cnfn convert_double4_rtn(uint4); -double4 __ovld __cnfn convert_double4_rtn(ulong4); -double4 __ovld __cnfn convert_double4_rtn(ushort4); -double4 __ovld __cnfn convert_double4_rtp(char4); -double4 __ovld __cnfn convert_double4_rtp(double4); -double4 __ovld __cnfn convert_double4_rtp(float4); -double4 __ovld __cnfn convert_double4_rtp(int4); -double4 __ovld __cnfn convert_double4_rtp(long4); -double4 __ovld __cnfn convert_double4_rtp(short4); -double4 __ovld __cnfn convert_double4_rtp(uchar4); -double4 __ovld __cnfn convert_double4_rtp(uint4); -double4 __ovld __cnfn convert_double4_rtp(ulong4); -double4 __ovld __cnfn convert_double4_rtp(ushort4); -double4 __ovld __cnfn convert_double4_rtz(char4); -double4 __ovld __cnfn convert_double4_rtz(double4); -double4 __ovld __cnfn convert_double4_rtz(float4); -double4 __ovld __cnfn convert_double4_rtz(int4); -double4 __ovld __cnfn convert_double4_rtz(long4); -double4 __ovld __cnfn convert_double4_rtz(short4); -double4 __ovld __cnfn convert_double4_rtz(uchar4); -double4 __ovld __cnfn convert_double4_rtz(uint4); -double4 __ovld __cnfn convert_double4_rtz(ulong4); -double4 __ovld __cnfn convert_double4_rtz(ushort4); -double8 __ovld __cnfn convert_double8(char8); -double8 __ovld __cnfn convert_double8(double8); -double8 __ovld __cnfn convert_double8(float8); -double8 __ovld __cnfn convert_double8(int8); -double8 __ovld __cnfn convert_double8(long8); -double8 __ovld __cnfn convert_double8(short8); -double8 __ovld __cnfn convert_double8(uchar8); -double8 __ovld __cnfn convert_double8(uint8); -double8 __ovld __cnfn convert_double8(ulong8); -double8 __ovld __cnfn convert_double8(ushort8); -double8 __ovld __cnfn convert_double8_rte(char8); -double8 __ovld __cnfn convert_double8_rte(double8); -double8 __ovld __cnfn convert_double8_rte(float8); -double8 __ovld __cnfn convert_double8_rte(int8); -double8 __ovld __cnfn convert_double8_rte(long8); -double8 __ovld __cnfn convert_double8_rte(short8); -double8 __ovld __cnfn convert_double8_rte(uchar8); -double8 __ovld __cnfn convert_double8_rte(uint8); -double8 __ovld __cnfn convert_double8_rte(ulong8); -double8 __ovld __cnfn convert_double8_rte(ushort8); -double8 __ovld __cnfn convert_double8_rtn(char8); -double8 __ovld __cnfn convert_double8_rtn(double8); -double8 __ovld __cnfn convert_double8_rtn(float8); -double8 __ovld __cnfn convert_double8_rtn(int8); -double8 __ovld __cnfn convert_double8_rtn(long8); -double8 __ovld __cnfn convert_double8_rtn(short8); -double8 __ovld __cnfn convert_double8_rtn(uchar8); -double8 __ovld __cnfn convert_double8_rtn(uint8); -double8 __ovld __cnfn convert_double8_rtn(ulong8); -double8 __ovld __cnfn convert_double8_rtn(ushort8); -double8 __ovld __cnfn convert_double8_rtp(char8); -double8 __ovld __cnfn convert_double8_rtp(double8); -double8 __ovld __cnfn convert_double8_rtp(float8); -double8 __ovld __cnfn convert_double8_rtp(int8); -double8 __ovld __cnfn convert_double8_rtp(long8); -double8 __ovld __cnfn convert_double8_rtp(short8); -double8 __ovld __cnfn convert_double8_rtp(uchar8); -double8 __ovld __cnfn convert_double8_rtp(uint8); -double8 __ovld __cnfn convert_double8_rtp(ulong8); -double8 __ovld __cnfn convert_double8_rtp(ushort8); -double8 __ovld __cnfn convert_double8_rtz(char8); -double8 __ovld __cnfn convert_double8_rtz(double8); -double8 __ovld __cnfn convert_double8_rtz(float8); -double8 __ovld __cnfn convert_double8_rtz(int8); -double8 __ovld __cnfn convert_double8_rtz(long8); -double8 __ovld __cnfn convert_double8_rtz(short8); -double8 __ovld __cnfn convert_double8_rtz(uchar8); -double8 __ovld __cnfn convert_double8_rtz(uint8); -double8 __ovld __cnfn convert_double8_rtz(ulong8); -double8 __ovld __cnfn convert_double8_rtz(ushort8); -double16 __ovld __cnfn convert_double16(char16); -double16 __ovld __cnfn convert_double16(double16); -double16 __ovld __cnfn convert_double16(float16); -double16 __ovld __cnfn convert_double16(int16); -double16 __ovld __cnfn convert_double16(long16); -double16 __ovld __cnfn convert_double16(short16); -double16 __ovld __cnfn convert_double16(uchar16); -double16 __ovld __cnfn convert_double16(uint16); -double16 __ovld __cnfn convert_double16(ulong16); -double16 __ovld __cnfn convert_double16(ushort16); -double16 __ovld __cnfn convert_double16_rte(char16); -double16 __ovld __cnfn convert_double16_rte(double16); -double16 __ovld __cnfn convert_double16_rte(float16); -double16 __ovld __cnfn convert_double16_rte(int16); -double16 __ovld __cnfn convert_double16_rte(long16); -double16 __ovld __cnfn convert_double16_rte(short16); -double16 __ovld __cnfn convert_double16_rte(uchar16); -double16 __ovld __cnfn convert_double16_rte(uint16); -double16 __ovld __cnfn convert_double16_rte(ulong16); -double16 __ovld __cnfn convert_double16_rte(ushort16); -double16 __ovld __cnfn convert_double16_rtn(char16); -double16 __ovld __cnfn convert_double16_rtn(double16); -double16 __ovld __cnfn convert_double16_rtn(float16); -double16 __ovld __cnfn convert_double16_rtn(int16); -double16 __ovld __cnfn convert_double16_rtn(long16); -double16 __ovld __cnfn convert_double16_rtn(short16); -double16 __ovld __cnfn convert_double16_rtn(uchar16); -double16 __ovld __cnfn convert_double16_rtn(uint16); -double16 __ovld __cnfn convert_double16_rtn(ulong16); -double16 __ovld __cnfn convert_double16_rtn(ushort16); -double16 __ovld __cnfn convert_double16_rtp(char16); -double16 __ovld __cnfn convert_double16_rtp(double16); -double16 __ovld __cnfn convert_double16_rtp(float16); -double16 __ovld __cnfn convert_double16_rtp(int16); -double16 __ovld __cnfn convert_double16_rtp(long16); -double16 __ovld __cnfn convert_double16_rtp(short16); -double16 __ovld __cnfn convert_double16_rtp(uchar16); -double16 __ovld __cnfn convert_double16_rtp(uint16); -double16 __ovld __cnfn convert_double16_rtp(ulong16); -double16 __ovld __cnfn convert_double16_rtp(ushort16); -double16 __ovld __cnfn convert_double16_rtz(char16); -double16 __ovld __cnfn convert_double16_rtz(double16); -double16 __ovld __cnfn convert_double16_rtz(float16); -double16 __ovld __cnfn convert_double16_rtz(int16); -double16 __ovld __cnfn convert_double16_rtz(long16); -double16 __ovld __cnfn convert_double16_rtz(short16); -double16 __ovld __cnfn convert_double16_rtz(uchar16); -double16 __ovld __cnfn convert_double16_rtz(uint16); -double16 __ovld __cnfn convert_double16_rtz(ulong16); -double16 __ovld __cnfn convert_double16_rtz(ushort16); -#endif //cl_khr_fp64 - -#ifdef cl_khr_fp16 -// Convert half types to non-double types. -uchar __ovld __cnfn convert_uchar(half); -uchar __ovld __cnfn convert_uchar_rte(half); -uchar __ovld __cnfn convert_uchar_rtp(half); -uchar __ovld __cnfn convert_uchar_rtn(half); -uchar __ovld __cnfn convert_uchar_rtz(half); -uchar __ovld __cnfn convert_uchar_sat(half); -uchar __ovld __cnfn convert_uchar_sat_rte(half); -uchar __ovld __cnfn convert_uchar_sat_rtp(half); -uchar __ovld __cnfn convert_uchar_sat_rtn(half); -uchar __ovld __cnfn convert_uchar_sat_rtz(half); -uchar2 __ovld __cnfn convert_uchar2(half2); -uchar2 __ovld __cnfn convert_uchar2_rte(half2); -uchar2 __ovld __cnfn convert_uchar2_rtp(half2); -uchar2 __ovld __cnfn convert_uchar2_rtn(half2); -uchar2 __ovld __cnfn convert_uchar2_rtz(half2); -uchar2 __ovld __cnfn convert_uchar2_sat(half2); -uchar2 __ovld __cnfn convert_uchar2_sat_rte(half2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtp(half2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtn(half2); -uchar2 __ovld __cnfn convert_uchar2_sat_rtz(half2); -uchar3 __ovld __cnfn convert_uchar3(half3); -uchar3 __ovld __cnfn convert_uchar3_rte(half3); -uchar3 __ovld __cnfn convert_uchar3_rtp(half3); -uchar3 __ovld __cnfn convert_uchar3_rtn(half3); -uchar3 __ovld __cnfn convert_uchar3_rtz(half3); -uchar3 __ovld __cnfn convert_uchar3_sat(half3); -uchar3 __ovld __cnfn convert_uchar3_sat_rte(half3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtp(half3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtn(half3); -uchar3 __ovld __cnfn convert_uchar3_sat_rtz(half3); -uchar4 __ovld __cnfn convert_uchar4(half4); -uchar4 __ovld __cnfn convert_uchar4_rte(half4); -uchar4 __ovld __cnfn convert_uchar4_rtp(half4); -uchar4 __ovld __cnfn convert_uchar4_rtn(half4); -uchar4 __ovld __cnfn convert_uchar4_rtz(half4); -uchar4 __ovld __cnfn convert_uchar4_sat(half4); -uchar4 __ovld __cnfn convert_uchar4_sat_rte(half4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtp(half4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtn(half4); -uchar4 __ovld __cnfn convert_uchar4_sat_rtz(half4); -uchar8 __ovld __cnfn convert_uchar8(half8); -uchar8 __ovld __cnfn convert_uchar8_rte(half8); -uchar8 __ovld __cnfn convert_uchar8_rtp(half8); -uchar8 __ovld __cnfn convert_uchar8_rtn(half8); -uchar8 __ovld __cnfn convert_uchar8_rtz(half8); -uchar8 __ovld __cnfn convert_uchar8_sat(half8); -uchar8 __ovld __cnfn convert_uchar8_sat_rte(half8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtp(half8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtn(half8); -uchar8 __ovld __cnfn convert_uchar8_sat_rtz(half8); -uchar16 __ovld __cnfn convert_uchar16(half16); -uchar16 __ovld __cnfn convert_uchar16_rte(half16); -uchar16 __ovld __cnfn convert_uchar16_rtp(half16); -uchar16 __ovld __cnfn convert_uchar16_rtn(half16); -uchar16 __ovld __cnfn convert_uchar16_rtz(half16); -uchar16 __ovld __cnfn convert_uchar16_sat(half16); -uchar16 __ovld __cnfn convert_uchar16_sat_rte(half16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtp(half16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtn(half16); -uchar16 __ovld __cnfn convert_uchar16_sat_rtz(half16); -ushort __ovld __cnfn convert_ushort(half); -ushort __ovld __cnfn convert_ushort_rte(half); -ushort __ovld __cnfn convert_ushort_rtp(half); -ushort __ovld __cnfn convert_ushort_rtn(half); -ushort __ovld __cnfn convert_ushort_rtz(half); -ushort __ovld __cnfn convert_ushort_sat(half); -ushort __ovld __cnfn convert_ushort_sat_rte(half); -ushort __ovld __cnfn convert_ushort_sat_rtp(half); -ushort __ovld __cnfn convert_ushort_sat_rtn(half); -ushort __ovld __cnfn convert_ushort_sat_rtz(half); -ushort2 __ovld __cnfn convert_ushort2(half2); -ushort2 __ovld __cnfn convert_ushort2_rte(half2); -ushort2 __ovld __cnfn convert_ushort2_rtp(half2); -ushort2 __ovld __cnfn convert_ushort2_rtn(half2); -ushort2 __ovld __cnfn convert_ushort2_rtz(half2); -ushort2 __ovld __cnfn convert_ushort2_sat(half2); -ushort2 __ovld __cnfn convert_ushort2_sat_rte(half2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtp(half2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtn(half2); -ushort2 __ovld __cnfn convert_ushort2_sat_rtz(half2); -ushort3 __ovld __cnfn convert_ushort3(half3); -ushort3 __ovld __cnfn convert_ushort3_rte(half3); -ushort3 __ovld __cnfn convert_ushort3_rtp(half3); -ushort3 __ovld __cnfn convert_ushort3_rtn(half3); -ushort3 __ovld __cnfn convert_ushort3_rtz(half3); -ushort3 __ovld __cnfn convert_ushort3_sat(half3); -ushort3 __ovld __cnfn convert_ushort3_sat_rte(half3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtp(half3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtn(half3); -ushort3 __ovld __cnfn convert_ushort3_sat_rtz(half3); -ushort4 __ovld __cnfn convert_ushort4(half4); -ushort4 __ovld __cnfn convert_ushort4_rte(half4); -ushort4 __ovld __cnfn convert_ushort4_rtp(half4); -ushort4 __ovld __cnfn convert_ushort4_rtn(half4); -ushort4 __ovld __cnfn convert_ushort4_rtz(half4); -ushort4 __ovld __cnfn convert_ushort4_sat(half4); -ushort4 __ovld __cnfn convert_ushort4_sat_rte(half4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtp(half4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtn(half4); -ushort4 __ovld __cnfn convert_ushort4_sat_rtz(half4); -ushort8 __ovld __cnfn convert_ushort8(half8); -ushort8 __ovld __cnfn convert_ushort8_rte(half8); -ushort8 __ovld __cnfn convert_ushort8_rtp(half8); -ushort8 __ovld __cnfn convert_ushort8_rtn(half8); -ushort8 __ovld __cnfn convert_ushort8_rtz(half8); -ushort8 __ovld __cnfn convert_ushort8_sat(half8); -ushort8 __ovld __cnfn convert_ushort8_sat_rte(half8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtp(half8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtn(half8); -ushort8 __ovld __cnfn convert_ushort8_sat_rtz(half8); -ushort16 __ovld __cnfn convert_ushort16(half16); -ushort16 __ovld __cnfn convert_ushort16_rte(half16); -ushort16 __ovld __cnfn convert_ushort16_rtp(half16); -ushort16 __ovld __cnfn convert_ushort16_rtn(half16); -ushort16 __ovld __cnfn convert_ushort16_rtz(half16); -ushort16 __ovld __cnfn convert_ushort16_sat(half16); -ushort16 __ovld __cnfn convert_ushort16_sat_rte(half16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtp(half16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtn(half16); -ushort16 __ovld __cnfn convert_ushort16_sat_rtz(half16); -uint __ovld __cnfn convert_uint(half); -uint __ovld __cnfn convert_uint_rte(half); -uint __ovld __cnfn convert_uint_rtp(half); -uint __ovld __cnfn convert_uint_rtn(half); -uint __ovld __cnfn convert_uint_rtz(half); -uint __ovld __cnfn convert_uint_sat(half); -uint __ovld __cnfn convert_uint_sat_rte(half); -uint __ovld __cnfn convert_uint_sat_rtp(half); -uint __ovld __cnfn convert_uint_sat_rtn(half); -uint __ovld __cnfn convert_uint_sat_rtz(half); -uint2 __ovld __cnfn convert_uint2(half2); -uint2 __ovld __cnfn convert_uint2_rte(half2); -uint2 __ovld __cnfn convert_uint2_rtp(half2); -uint2 __ovld __cnfn convert_uint2_rtn(half2); -uint2 __ovld __cnfn convert_uint2_rtz(half2); -uint2 __ovld __cnfn convert_uint2_sat(half2); -uint2 __ovld __cnfn convert_uint2_sat_rte(half2); -uint2 __ovld __cnfn convert_uint2_sat_rtp(half2); -uint2 __ovld __cnfn convert_uint2_sat_rtn(half2); -uint2 __ovld __cnfn convert_uint2_sat_rtz(half2); -uint3 __ovld __cnfn convert_uint3(half3); -uint3 __ovld __cnfn convert_uint3_rte(half3); -uint3 __ovld __cnfn convert_uint3_rtp(half3); -uint3 __ovld __cnfn convert_uint3_rtn(half3); -uint3 __ovld __cnfn convert_uint3_rtz(half3); -uint3 __ovld __cnfn convert_uint3_sat(half3); -uint3 __ovld __cnfn convert_uint3_sat_rte(half3); -uint3 __ovld __cnfn convert_uint3_sat_rtp(half3); -uint3 __ovld __cnfn convert_uint3_sat_rtn(half3); -uint3 __ovld __cnfn convert_uint3_sat_rtz(half3); -uint4 __ovld __cnfn convert_uint4(half4); -uint4 __ovld __cnfn convert_uint4_rte(half4); -uint4 __ovld __cnfn convert_uint4_rtp(half4); -uint4 __ovld __cnfn convert_uint4_rtn(half4); -uint4 __ovld __cnfn convert_uint4_rtz(half4); -uint4 __ovld __cnfn convert_uint4_sat(half4); -uint4 __ovld __cnfn convert_uint4_sat_rte(half4); -uint4 __ovld __cnfn convert_uint4_sat_rtp(half4); -uint4 __ovld __cnfn convert_uint4_sat_rtn(half4); -uint4 __ovld __cnfn convert_uint4_sat_rtz(half4); -uint8 __ovld __cnfn convert_uint8(half8); -uint8 __ovld __cnfn convert_uint8_rte(half8); -uint8 __ovld __cnfn convert_uint8_rtp(half8); -uint8 __ovld __cnfn convert_uint8_rtn(half8); -uint8 __ovld __cnfn convert_uint8_rtz(half8); -uint8 __ovld __cnfn convert_uint8_sat(half8); -uint8 __ovld __cnfn convert_uint8_sat_rte(half8); -uint8 __ovld __cnfn convert_uint8_sat_rtp(half8); -uint8 __ovld __cnfn convert_uint8_sat_rtn(half8); -uint8 __ovld __cnfn convert_uint8_sat_rtz(half8); -uint16 __ovld __cnfn convert_uint16(half16); -uint16 __ovld __cnfn convert_uint16_rte(half16); -uint16 __ovld __cnfn convert_uint16_rtp(half16); -uint16 __ovld __cnfn convert_uint16_rtn(half16); -uint16 __ovld __cnfn convert_uint16_rtz(half16); -uint16 __ovld __cnfn convert_uint16_sat(half16); -uint16 __ovld __cnfn convert_uint16_sat_rte(half16); -uint16 __ovld __cnfn convert_uint16_sat_rtp(half16); -uint16 __ovld __cnfn convert_uint16_sat_rtn(half16); -uint16 __ovld __cnfn convert_uint16_sat_rtz(half16); -ulong __ovld __cnfn convert_ulong(half); -ulong __ovld __cnfn convert_ulong_rte(half); -ulong __ovld __cnfn convert_ulong_rtp(half); -ulong __ovld __cnfn convert_ulong_rtn(half); -ulong __ovld __cnfn convert_ulong_rtz(half); -ulong __ovld __cnfn convert_ulong_sat(half); -ulong __ovld __cnfn convert_ulong_sat_rte(half); -ulong __ovld __cnfn convert_ulong_sat_rtp(half); -ulong __ovld __cnfn convert_ulong_sat_rtn(half); -ulong __ovld __cnfn convert_ulong_sat_rtz(half); -ulong2 __ovld __cnfn convert_ulong2(half2); -ulong2 __ovld __cnfn convert_ulong2_rte(half2); -ulong2 __ovld __cnfn convert_ulong2_rtp(half2); -ulong2 __ovld __cnfn convert_ulong2_rtn(half2); -ulong2 __ovld __cnfn convert_ulong2_rtz(half2); -ulong2 __ovld __cnfn convert_ulong2_sat(half2); -ulong2 __ovld __cnfn convert_ulong2_sat_rte(half2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtp(half2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtn(half2); -ulong2 __ovld __cnfn convert_ulong2_sat_rtz(half2); -ulong3 __ovld __cnfn convert_ulong3(half3); -ulong3 __ovld __cnfn convert_ulong3_rte(half3); -ulong3 __ovld __cnfn convert_ulong3_rtp(half3); -ulong3 __ovld __cnfn convert_ulong3_rtn(half3); -ulong3 __ovld __cnfn convert_ulong3_rtz(half3); -ulong3 __ovld __cnfn convert_ulong3_sat(half3); -ulong3 __ovld __cnfn convert_ulong3_sat_rte(half3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtp(half3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtn(half3); -ulong3 __ovld __cnfn convert_ulong3_sat_rtz(half3); -ulong4 __ovld __cnfn convert_ulong4(half4); -ulong4 __ovld __cnfn convert_ulong4_rte(half4); -ulong4 __ovld __cnfn convert_ulong4_rtp(half4); -ulong4 __ovld __cnfn convert_ulong4_rtn(half4); -ulong4 __ovld __cnfn convert_ulong4_rtz(half4); -ulong4 __ovld __cnfn convert_ulong4_sat(half4); -ulong4 __ovld __cnfn convert_ulong4_sat_rte(half4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtp(half4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtn(half4); -ulong4 __ovld __cnfn convert_ulong4_sat_rtz(half4); -ulong8 __ovld __cnfn convert_ulong8(half8); -ulong8 __ovld __cnfn convert_ulong8_rte(half8); -ulong8 __ovld __cnfn convert_ulong8_rtp(half8); -ulong8 __ovld __cnfn convert_ulong8_rtn(half8); -ulong8 __ovld __cnfn convert_ulong8_rtz(half8); -ulong8 __ovld __cnfn convert_ulong8_sat(half8); -ulong8 __ovld __cnfn convert_ulong8_sat_rte(half8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtp(half8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtn(half8); -ulong8 __ovld __cnfn convert_ulong8_sat_rtz(half8); -ulong16 __ovld __cnfn convert_ulong16(half16); -ulong16 __ovld __cnfn convert_ulong16_rte(half16); -ulong16 __ovld __cnfn convert_ulong16_rtp(half16); -ulong16 __ovld __cnfn convert_ulong16_rtn(half16); -ulong16 __ovld __cnfn convert_ulong16_rtz(half16); -ulong16 __ovld __cnfn convert_ulong16_sat(half16); -ulong16 __ovld __cnfn convert_ulong16_sat_rte(half16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtp(half16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtn(half16); -ulong16 __ovld __cnfn convert_ulong16_sat_rtz(half16); -char __ovld __cnfn convert_char(half); -char __ovld __cnfn convert_char_rte(half); -char __ovld __cnfn convert_char_rtp(half); -char __ovld __cnfn convert_char_rtn(half); -char __ovld __cnfn convert_char_rtz(half); -char __ovld __cnfn convert_char_sat(half); -char __ovld __cnfn convert_char_sat_rte(half); -char __ovld __cnfn convert_char_sat_rtp(half); -char __ovld __cnfn convert_char_sat_rtn(half); -char __ovld __cnfn convert_char_sat_rtz(half); -char2 __ovld __cnfn convert_char2(half2); -char2 __ovld __cnfn convert_char2_rte(half2); -char2 __ovld __cnfn convert_char2_rtp(half2); -char2 __ovld __cnfn convert_char2_rtn(half2); -char2 __ovld __cnfn convert_char2_rtz(half2); -char2 __ovld __cnfn convert_char2_sat(half2); -char2 __ovld __cnfn convert_char2_sat_rte(half2); -char2 __ovld __cnfn convert_char2_sat_rtp(half2); -char2 __ovld __cnfn convert_char2_sat_rtn(half2); -char2 __ovld __cnfn convert_char2_sat_rtz(half2); -char3 __ovld __cnfn convert_char3(half3); -char3 __ovld __cnfn convert_char3_rte(half3); -char3 __ovld __cnfn convert_char3_rtp(half3); -char3 __ovld __cnfn convert_char3_rtn(half3); -char3 __ovld __cnfn convert_char3_rtz(half3); -char3 __ovld __cnfn convert_char3_sat(half3); -char3 __ovld __cnfn convert_char3_sat_rte(half3); -char3 __ovld __cnfn convert_char3_sat_rtp(half3); -char3 __ovld __cnfn convert_char3_sat_rtn(half3); -char3 __ovld __cnfn convert_char3_sat_rtz(half3); -char4 __ovld __cnfn convert_char4(half4); -char4 __ovld __cnfn convert_char4_rte(half4); -char4 __ovld __cnfn convert_char4_rtp(half4); -char4 __ovld __cnfn convert_char4_rtn(half4); -char4 __ovld __cnfn convert_char4_rtz(half4); -char4 __ovld __cnfn convert_char4_sat(half4); -char4 __ovld __cnfn convert_char4_sat_rte(half4); -char4 __ovld __cnfn convert_char4_sat_rtp(half4); -char4 __ovld __cnfn convert_char4_sat_rtn(half4); -char4 __ovld __cnfn convert_char4_sat_rtz(half4); -char8 __ovld __cnfn convert_char8(half8); -char8 __ovld __cnfn convert_char8_rte(half8); -char8 __ovld __cnfn convert_char8_rtp(half8); -char8 __ovld __cnfn convert_char8_rtn(half8); -char8 __ovld __cnfn convert_char8_rtz(half8); -char8 __ovld __cnfn convert_char8_sat(half8); -char8 __ovld __cnfn convert_char8_sat_rte(half8); -char8 __ovld __cnfn convert_char8_sat_rtp(half8); -char8 __ovld __cnfn convert_char8_sat_rtn(half8); -char8 __ovld __cnfn convert_char8_sat_rtz(half8); -char16 __ovld __cnfn convert_char16(half16); -char16 __ovld __cnfn convert_char16_rte(half16); -char16 __ovld __cnfn convert_char16_rtp(half16); -char16 __ovld __cnfn convert_char16_rtn(half16); -char16 __ovld __cnfn convert_char16_rtz(half16); -char16 __ovld __cnfn convert_char16_sat(half16); -char16 __ovld __cnfn convert_char16_sat_rte(half16); -char16 __ovld __cnfn convert_char16_sat_rtp(half16); -char16 __ovld __cnfn convert_char16_sat_rtn(half16); -char16 __ovld __cnfn convert_char16_sat_rtz(half16); -short __ovld __cnfn convert_short(half); -short __ovld __cnfn convert_short_rte(half); -short __ovld __cnfn convert_short_rtp(half); -short __ovld __cnfn convert_short_rtn(half); -short __ovld __cnfn convert_short_rtz(half); -short __ovld __cnfn convert_short_sat(half); -short __ovld __cnfn convert_short_sat_rte(half); -short __ovld __cnfn convert_short_sat_rtp(half); -short __ovld __cnfn convert_short_sat_rtn(half); -short __ovld __cnfn convert_short_sat_rtz(half); -short2 __ovld __cnfn convert_short2(half2); -short2 __ovld __cnfn convert_short2_rte(half2); -short2 __ovld __cnfn convert_short2_rtp(half2); -short2 __ovld __cnfn convert_short2_rtn(half2); -short2 __ovld __cnfn convert_short2_rtz(half2); -short2 __ovld __cnfn convert_short2_sat(half2); -short2 __ovld __cnfn convert_short2_sat_rte(half2); -short2 __ovld __cnfn convert_short2_sat_rtp(half2); -short2 __ovld __cnfn convert_short2_sat_rtn(half2); -short2 __ovld __cnfn convert_short2_sat_rtz(half2); -short3 __ovld __cnfn convert_short3(half3); -short3 __ovld __cnfn convert_short3_rte(half3); -short3 __ovld __cnfn convert_short3_rtp(half3); -short3 __ovld __cnfn convert_short3_rtn(half3); -short3 __ovld __cnfn convert_short3_rtz(half3); -short3 __ovld __cnfn convert_short3_sat(half3); -short3 __ovld __cnfn convert_short3_sat_rte(half3); -short3 __ovld __cnfn convert_short3_sat_rtp(half3); -short3 __ovld __cnfn convert_short3_sat_rtn(half3); -short3 __ovld __cnfn convert_short3_sat_rtz(half3); -short4 __ovld __cnfn convert_short4(half4); -short4 __ovld __cnfn convert_short4_rte(half4); -short4 __ovld __cnfn convert_short4_rtp(half4); -short4 __ovld __cnfn convert_short4_rtn(half4); -short4 __ovld __cnfn convert_short4_rtz(half4); -short4 __ovld __cnfn convert_short4_sat(half4); -short4 __ovld __cnfn convert_short4_sat_rte(half4); -short4 __ovld __cnfn convert_short4_sat_rtp(half4); -short4 __ovld __cnfn convert_short4_sat_rtn(half4); -short4 __ovld __cnfn convert_short4_sat_rtz(half4); -short8 __ovld __cnfn convert_short8(half8); -short8 __ovld __cnfn convert_short8_rte(half8); -short8 __ovld __cnfn convert_short8_rtp(half8); -short8 __ovld __cnfn convert_short8_rtn(half8); -short8 __ovld __cnfn convert_short8_rtz(half8); -short8 __ovld __cnfn convert_short8_sat(half8); -short8 __ovld __cnfn convert_short8_sat_rte(half8); -short8 __ovld __cnfn convert_short8_sat_rtp(half8); -short8 __ovld __cnfn convert_short8_sat_rtn(half8); -short8 __ovld __cnfn convert_short8_sat_rtz(half8); -short16 __ovld __cnfn convert_short16(half16); -short16 __ovld __cnfn convert_short16_rte(half16); -short16 __ovld __cnfn convert_short16_rtp(half16); -short16 __ovld __cnfn convert_short16_rtn(half16); -short16 __ovld __cnfn convert_short16_rtz(half16); -short16 __ovld __cnfn convert_short16_sat(half16); -short16 __ovld __cnfn convert_short16_sat_rte(half16); -short16 __ovld __cnfn convert_short16_sat_rtp(half16); -short16 __ovld __cnfn convert_short16_sat_rtn(half16); -short16 __ovld __cnfn convert_short16_sat_rtz(half16); -int __ovld __cnfn convert_int(half); -int __ovld __cnfn convert_int_rte(half); -int __ovld __cnfn convert_int_rtp(half); -int __ovld __cnfn convert_int_rtn(half); -int __ovld __cnfn convert_int_rtz(half); -int __ovld __cnfn convert_int_sat(half); -int __ovld __cnfn convert_int_sat_rte(half); -int __ovld __cnfn convert_int_sat_rtp(half); -int __ovld __cnfn convert_int_sat_rtn(half); -int __ovld __cnfn convert_int_sat_rtz(half); -int2 __ovld __cnfn convert_int2(half2); -int2 __ovld __cnfn convert_int2_rte(half2); -int2 __ovld __cnfn convert_int2_rtp(half2); -int2 __ovld __cnfn convert_int2_rtn(half2); -int2 __ovld __cnfn convert_int2_rtz(half2); -int2 __ovld __cnfn convert_int2_sat(half2); -int2 __ovld __cnfn convert_int2_sat_rte(half2); -int2 __ovld __cnfn convert_int2_sat_rtp(half2); -int2 __ovld __cnfn convert_int2_sat_rtn(half2); -int2 __ovld __cnfn convert_int2_sat_rtz(half2); -int3 __ovld __cnfn convert_int3(half3); -int3 __ovld __cnfn convert_int3_rte(half3); -int3 __ovld __cnfn convert_int3_rtp(half3); -int3 __ovld __cnfn convert_int3_rtn(half3); -int3 __ovld __cnfn convert_int3_rtz(half3); -int3 __ovld __cnfn convert_int3_sat(half3); -int3 __ovld __cnfn convert_int3_sat_rte(half3); -int3 __ovld __cnfn convert_int3_sat_rtp(half3); -int3 __ovld __cnfn convert_int3_sat_rtn(half3); -int3 __ovld __cnfn convert_int3_sat_rtz(half3); -int4 __ovld __cnfn convert_int4(half4); -int4 __ovld __cnfn convert_int4_rte(half4); -int4 __ovld __cnfn convert_int4_rtp(half4); -int4 __ovld __cnfn convert_int4_rtn(half4); -int4 __ovld __cnfn convert_int4_rtz(half4); -int4 __ovld __cnfn convert_int4_sat(half4); -int4 __ovld __cnfn convert_int4_sat_rte(half4); -int4 __ovld __cnfn convert_int4_sat_rtp(half4); -int4 __ovld __cnfn convert_int4_sat_rtn(half4); -int4 __ovld __cnfn convert_int4_sat_rtz(half4); -int8 __ovld __cnfn convert_int8(half8); -int8 __ovld __cnfn convert_int8_rte(half8); -int8 __ovld __cnfn convert_int8_rtp(half8); -int8 __ovld __cnfn convert_int8_rtn(half8); -int8 __ovld __cnfn convert_int8_rtz(half8); -int8 __ovld __cnfn convert_int8_sat(half8); -int8 __ovld __cnfn convert_int8_sat_rte(half8); -int8 __ovld __cnfn convert_int8_sat_rtp(half8); -int8 __ovld __cnfn convert_int8_sat_rtn(half8); -int8 __ovld __cnfn convert_int8_sat_rtz(half8); -int16 __ovld __cnfn convert_int16(half16); -int16 __ovld __cnfn convert_int16_rte(half16); -int16 __ovld __cnfn convert_int16_rtp(half16); -int16 __ovld __cnfn convert_int16_rtn(half16); -int16 __ovld __cnfn convert_int16_rtz(half16); -int16 __ovld __cnfn convert_int16_sat(half16); -int16 __ovld __cnfn convert_int16_sat_rte(half16); -int16 __ovld __cnfn convert_int16_sat_rtp(half16); -int16 __ovld __cnfn convert_int16_sat_rtn(half16); -int16 __ovld __cnfn convert_int16_sat_rtz(half16); -long __ovld __cnfn convert_long(half); -long __ovld __cnfn convert_long_rte(half); -long __ovld __cnfn convert_long_rtp(half); -long __ovld __cnfn convert_long_rtn(half); -long __ovld __cnfn convert_long_rtz(half); -long __ovld __cnfn convert_long_sat(half); -long __ovld __cnfn convert_long_sat_rte(half); -long __ovld __cnfn convert_long_sat_rtp(half); -long __ovld __cnfn convert_long_sat_rtn(half); -long __ovld __cnfn convert_long_sat_rtz(half); -long2 __ovld __cnfn convert_long2(half2); -long2 __ovld __cnfn convert_long2_rte(half2); -long2 __ovld __cnfn convert_long2_rtp(half2); -long2 __ovld __cnfn convert_long2_rtn(half2); -long2 __ovld __cnfn convert_long2_rtz(half2); -long2 __ovld __cnfn convert_long2_sat(half2); -long2 __ovld __cnfn convert_long2_sat_rte(half2); -long2 __ovld __cnfn convert_long2_sat_rtp(half2); -long2 __ovld __cnfn convert_long2_sat_rtn(half2); -long2 __ovld __cnfn convert_long2_sat_rtz(half2); -long3 __ovld __cnfn convert_long3(half3); -long3 __ovld __cnfn convert_long3_rte(half3); -long3 __ovld __cnfn convert_long3_rtp(half3); -long3 __ovld __cnfn convert_long3_rtn(half3); -long3 __ovld __cnfn convert_long3_rtz(half3); -long3 __ovld __cnfn convert_long3_sat(half3); -long3 __ovld __cnfn convert_long3_sat_rte(half3); -long3 __ovld __cnfn convert_long3_sat_rtp(half3); -long3 __ovld __cnfn convert_long3_sat_rtn(half3); -long3 __ovld __cnfn convert_long3_sat_rtz(half3); -long4 __ovld __cnfn convert_long4(half4); -long4 __ovld __cnfn convert_long4_rte(half4); -long4 __ovld __cnfn convert_long4_rtp(half4); -long4 __ovld __cnfn convert_long4_rtn(half4); -long4 __ovld __cnfn convert_long4_rtz(half4); -long4 __ovld __cnfn convert_long4_sat(half4); -long4 __ovld __cnfn convert_long4_sat_rte(half4); -long4 __ovld __cnfn convert_long4_sat_rtp(half4); -long4 __ovld __cnfn convert_long4_sat_rtn(half4); -long4 __ovld __cnfn convert_long4_sat_rtz(half4); -long8 __ovld __cnfn convert_long8(half8); -long8 __ovld __cnfn convert_long8_rte(half8); -long8 __ovld __cnfn convert_long8_rtp(half8); -long8 __ovld __cnfn convert_long8_rtn(half8); -long8 __ovld __cnfn convert_long8_rtz(half8); -long8 __ovld __cnfn convert_long8_sat(half8); -long8 __ovld __cnfn convert_long8_sat_rte(half8); -long8 __ovld __cnfn convert_long8_sat_rtp(half8); -long8 __ovld __cnfn convert_long8_sat_rtn(half8); -long8 __ovld __cnfn convert_long8_sat_rtz(half8); -long16 __ovld __cnfn convert_long16(half16); -long16 __ovld __cnfn convert_long16_rte(half16); -long16 __ovld __cnfn convert_long16_rtp(half16); -long16 __ovld __cnfn convert_long16_rtn(half16); -long16 __ovld __cnfn convert_long16_rtz(half16); -long16 __ovld __cnfn convert_long16_sat(half16); -long16 __ovld __cnfn convert_long16_sat_rte(half16); -long16 __ovld __cnfn convert_long16_sat_rtp(half16); -long16 __ovld __cnfn convert_long16_sat_rtn(half16); -long16 __ovld __cnfn convert_long16_sat_rtz(half16); -float __ovld __cnfn convert_float(half); -float __ovld __cnfn convert_float_rte(half); -float __ovld __cnfn convert_float_rtp(half); -float __ovld __cnfn convert_float_rtn(half); -float __ovld __cnfn convert_float_rtz(half); -float2 __ovld __cnfn convert_float2(half2); -float2 __ovld __cnfn convert_float2_rte(half2); -float2 __ovld __cnfn convert_float2_rtp(half2); -float2 __ovld __cnfn convert_float2_rtn(half2); -float2 __ovld __cnfn convert_float2_rtz(half2); -float3 __ovld __cnfn convert_float3(half3); -float3 __ovld __cnfn convert_float3_rte(half3); -float3 __ovld __cnfn convert_float3_rtp(half3); -float3 __ovld __cnfn convert_float3_rtn(half3); -float3 __ovld __cnfn convert_float3_rtz(half3); -float4 __ovld __cnfn convert_float4(half4); -float4 __ovld __cnfn convert_float4_rte(half4); -float4 __ovld __cnfn convert_float4_rtp(half4); -float4 __ovld __cnfn convert_float4_rtn(half4); -float4 __ovld __cnfn convert_float4_rtz(half4); -float8 __ovld __cnfn convert_float8(half8); -float8 __ovld __cnfn convert_float8_rte(half8); -float8 __ovld __cnfn convert_float8_rtp(half8); -float8 __ovld __cnfn convert_float8_rtn(half8); -float8 __ovld __cnfn convert_float8_rtz(half8); -float16 __ovld __cnfn convert_float16(half16); -float16 __ovld __cnfn convert_float16_rte(half16); -float16 __ovld __cnfn convert_float16_rtp(half16); -float16 __ovld __cnfn convert_float16_rtn(half16); -float16 __ovld __cnfn convert_float16_rtz(half16); - -// Convert non-double types to half types. -half __ovld __cnfn convert_half(uchar); -half __ovld __cnfn convert_half(ushort); -half __ovld __cnfn convert_half(uint); -half __ovld __cnfn convert_half(ulong); -half __ovld __cnfn convert_half(char); -half __ovld __cnfn convert_half(short); -half __ovld __cnfn convert_half(int); -half __ovld __cnfn convert_half(long); -half __ovld __cnfn convert_half(float); -half __ovld __cnfn convert_half(half); -half __ovld __cnfn convert_half_rte(uchar); -half __ovld __cnfn convert_half_rte(ushort); -half __ovld __cnfn convert_half_rte(uint); -half __ovld __cnfn convert_half_rte(ulong); -half __ovld __cnfn convert_half_rte(char); -half __ovld __cnfn convert_half_rte(short); -half __ovld __cnfn convert_half_rte(int); -half __ovld __cnfn convert_half_rte(long); -half __ovld __cnfn convert_half_rte(float); -half __ovld __cnfn convert_half_rte(half); -half __ovld __cnfn convert_half_rtp(uchar); -half __ovld __cnfn convert_half_rtp(ushort); -half __ovld __cnfn convert_half_rtp(uint); -half __ovld __cnfn convert_half_rtp(ulong); -half __ovld __cnfn convert_half_rtp(char); -half __ovld __cnfn convert_half_rtp(short); -half __ovld __cnfn convert_half_rtp(int); -half __ovld __cnfn convert_half_rtp(long); -half __ovld __cnfn convert_half_rtp(float); -half __ovld __cnfn convert_half_rtp(half); -half __ovld __cnfn convert_half_rtn(uchar); -half __ovld __cnfn convert_half_rtn(ushort); -half __ovld __cnfn convert_half_rtn(uint); -half __ovld __cnfn convert_half_rtn(ulong); -half __ovld __cnfn convert_half_rtn(char); -half __ovld __cnfn convert_half_rtn(short); -half __ovld __cnfn convert_half_rtn(int); -half __ovld __cnfn convert_half_rtn(long); -half __ovld __cnfn convert_half_rtn(float); -half __ovld __cnfn convert_half_rtn(half); -half __ovld __cnfn convert_half_rtz(uchar); -half __ovld __cnfn convert_half_rtz(ushort); -half __ovld __cnfn convert_half_rtz(uint); -half __ovld __cnfn convert_half_rtz(ulong); -half __ovld __cnfn convert_half_rtz(char); -half __ovld __cnfn convert_half_rtz(short); -half __ovld __cnfn convert_half_rtz(int); -half __ovld __cnfn convert_half_rtz(long); -half __ovld __cnfn convert_half_rtz(float); -half __ovld __cnfn convert_half_rtz(half); -half2 __ovld __cnfn convert_half2(char2); -half2 __ovld __cnfn convert_half2(uchar2); -half2 __ovld __cnfn convert_half2(short2); -half2 __ovld __cnfn convert_half2(ushort2); -half2 __ovld __cnfn convert_half2(int2); -half2 __ovld __cnfn convert_half2(uint2); -half2 __ovld __cnfn convert_half2(long2); -half2 __ovld __cnfn convert_half2(ulong2); -half2 __ovld __cnfn convert_half2(float2); -half2 __ovld __cnfn convert_half2(half2); -half2 __ovld __cnfn convert_half2_rte(char2); -half2 __ovld __cnfn convert_half2_rte(uchar2); -half2 __ovld __cnfn convert_half2_rte(short2); -half2 __ovld __cnfn convert_half2_rte(ushort2); -half2 __ovld __cnfn convert_half2_rte(int2); -half2 __ovld __cnfn convert_half2_rte(uint2); -half2 __ovld __cnfn convert_half2_rte(long2); -half2 __ovld __cnfn convert_half2_rte(ulong2); -half2 __ovld __cnfn convert_half2_rte(float2); -half2 __ovld __cnfn convert_half2_rte(half2); -half2 __ovld __cnfn convert_half2_rtp(char2); -half2 __ovld __cnfn convert_half2_rtp(uchar2); -half2 __ovld __cnfn convert_half2_rtp(short2); -half2 __ovld __cnfn convert_half2_rtp(ushort2); -half2 __ovld __cnfn convert_half2_rtp(int2); -half2 __ovld __cnfn convert_half2_rtp(uint2); -half2 __ovld __cnfn convert_half2_rtp(long2); -half2 __ovld __cnfn convert_half2_rtp(ulong2); -half2 __ovld __cnfn convert_half2_rtp(float2); -half2 __ovld __cnfn convert_half2_rtp(half2); -half2 __ovld __cnfn convert_half2_rtn(char2); -half2 __ovld __cnfn convert_half2_rtn(uchar2); -half2 __ovld __cnfn convert_half2_rtn(short2); -half2 __ovld __cnfn convert_half2_rtn(ushort2); -half2 __ovld __cnfn convert_half2_rtn(int2); -half2 __ovld __cnfn convert_half2_rtn(uint2); -half2 __ovld __cnfn convert_half2_rtn(long2); -half2 __ovld __cnfn convert_half2_rtn(ulong2); -half2 __ovld __cnfn convert_half2_rtn(float2); -half2 __ovld __cnfn convert_half2_rtn(half2); -half2 __ovld __cnfn convert_half2_rtz(char2); -half2 __ovld __cnfn convert_half2_rtz(uchar2); -half2 __ovld __cnfn convert_half2_rtz(short2); -half2 __ovld __cnfn convert_half2_rtz(ushort2); -half2 __ovld __cnfn convert_half2_rtz(int2); -half2 __ovld __cnfn convert_half2_rtz(uint2); -half2 __ovld __cnfn convert_half2_rtz(long2); -half2 __ovld __cnfn convert_half2_rtz(ulong2); -half2 __ovld __cnfn convert_half2_rtz(float2); -half2 __ovld __cnfn convert_half2_rtz(half2); -half3 __ovld __cnfn convert_half3(char3); -half3 __ovld __cnfn convert_half3(uchar3); -half3 __ovld __cnfn convert_half3(short3); -half3 __ovld __cnfn convert_half3(ushort3); -half3 __ovld __cnfn convert_half3(int3); -half3 __ovld __cnfn convert_half3(uint3); -half3 __ovld __cnfn convert_half3(long3); -half3 __ovld __cnfn convert_half3(ulong3); -half3 __ovld __cnfn convert_half3(float3); -half3 __ovld __cnfn convert_half3(half3); -half3 __ovld __cnfn convert_half3_rte(char3); -half3 __ovld __cnfn convert_half3_rte(uchar3); -half3 __ovld __cnfn convert_half3_rte(short3); -half3 __ovld __cnfn convert_half3_rte(ushort3); -half3 __ovld __cnfn convert_half3_rte(int3); -half3 __ovld __cnfn convert_half3_rte(uint3); -half3 __ovld __cnfn convert_half3_rte(long3); -half3 __ovld __cnfn convert_half3_rte(ulong3); -half3 __ovld __cnfn convert_half3_rte(float3); -half3 __ovld __cnfn convert_half3_rte(half3); -half3 __ovld __cnfn convert_half3_rtp(char3); -half3 __ovld __cnfn convert_half3_rtp(uchar3); -half3 __ovld __cnfn convert_half3_rtp(short3); -half3 __ovld __cnfn convert_half3_rtp(ushort3); -half3 __ovld __cnfn convert_half3_rtp(int3); -half3 __ovld __cnfn convert_half3_rtp(uint3); -half3 __ovld __cnfn convert_half3_rtp(long3); -half3 __ovld __cnfn convert_half3_rtp(ulong3); -half3 __ovld __cnfn convert_half3_rtp(float3); -half3 __ovld __cnfn convert_half3_rtp(half3); -half3 __ovld __cnfn convert_half3_rtn(char3); -half3 __ovld __cnfn convert_half3_rtn(uchar3); -half3 __ovld __cnfn convert_half3_rtn(short3); -half3 __ovld __cnfn convert_half3_rtn(ushort3); -half3 __ovld __cnfn convert_half3_rtn(int3); -half3 __ovld __cnfn convert_half3_rtn(uint3); -half3 __ovld __cnfn convert_half3_rtn(long3); -half3 __ovld __cnfn convert_half3_rtn(ulong3); -half3 __ovld __cnfn convert_half3_rtn(float3); -half3 __ovld __cnfn convert_half3_rtn(half3); -half3 __ovld __cnfn convert_half3_rtz(char3); -half3 __ovld __cnfn convert_half3_rtz(uchar3); -half3 __ovld __cnfn convert_half3_rtz(short3); -half3 __ovld __cnfn convert_half3_rtz(ushort3); -half3 __ovld __cnfn convert_half3_rtz(int3); -half3 __ovld __cnfn convert_half3_rtz(uint3); -half3 __ovld __cnfn convert_half3_rtz(long3); -half3 __ovld __cnfn convert_half3_rtz(ulong3); -half3 __ovld __cnfn convert_half3_rtz(float3); -half3 __ovld __cnfn convert_half3_rtz(half3); -half4 __ovld __cnfn convert_half4(char4); -half4 __ovld __cnfn convert_half4(uchar4); -half4 __ovld __cnfn convert_half4(short4); -half4 __ovld __cnfn convert_half4(ushort4); -half4 __ovld __cnfn convert_half4(int4); -half4 __ovld __cnfn convert_half4(uint4); -half4 __ovld __cnfn convert_half4(long4); -half4 __ovld __cnfn convert_half4(ulong4); -half4 __ovld __cnfn convert_half4(float4); -half4 __ovld __cnfn convert_half4(half4); -half4 __ovld __cnfn convert_half4_rte(char4); -half4 __ovld __cnfn convert_half4_rte(uchar4); -half4 __ovld __cnfn convert_half4_rte(short4); -half4 __ovld __cnfn convert_half4_rte(ushort4); -half4 __ovld __cnfn convert_half4_rte(int4); -half4 __ovld __cnfn convert_half4_rte(uint4); -half4 __ovld __cnfn convert_half4_rte(long4); -half4 __ovld __cnfn convert_half4_rte(ulong4); -half4 __ovld __cnfn convert_half4_rte(float4); -half4 __ovld __cnfn convert_half4_rte(half4); -half4 __ovld __cnfn convert_half4_rtp(char4); -half4 __ovld __cnfn convert_half4_rtp(uchar4); -half4 __ovld __cnfn convert_half4_rtp(short4); -half4 __ovld __cnfn convert_half4_rtp(ushort4); -half4 __ovld __cnfn convert_half4_rtp(int4); -half4 __ovld __cnfn convert_half4_rtp(uint4); -half4 __ovld __cnfn convert_half4_rtp(long4); -half4 __ovld __cnfn convert_half4_rtp(ulong4); -half4 __ovld __cnfn convert_half4_rtp(float4); -half4 __ovld __cnfn convert_half4_rtp(half4); -half4 __ovld __cnfn convert_half4_rtn(char4); -half4 __ovld __cnfn convert_half4_rtn(uchar4); -half4 __ovld __cnfn convert_half4_rtn(short4); -half4 __ovld __cnfn convert_half4_rtn(ushort4); -half4 __ovld __cnfn convert_half4_rtn(int4); -half4 __ovld __cnfn convert_half4_rtn(uint4); -half4 __ovld __cnfn convert_half4_rtn(long4); -half4 __ovld __cnfn convert_half4_rtn(ulong4); -half4 __ovld __cnfn convert_half4_rtn(float4); -half4 __ovld __cnfn convert_half4_rtn(half4); -half4 __ovld __cnfn convert_half4_rtz(char4); -half4 __ovld __cnfn convert_half4_rtz(uchar4); -half4 __ovld __cnfn convert_half4_rtz(short4); -half4 __ovld __cnfn convert_half4_rtz(ushort4); -half4 __ovld __cnfn convert_half4_rtz(int4); -half4 __ovld __cnfn convert_half4_rtz(uint4); -half4 __ovld __cnfn convert_half4_rtz(long4); -half4 __ovld __cnfn convert_half4_rtz(ulong4); -half4 __ovld __cnfn convert_half4_rtz(float4); -half4 __ovld __cnfn convert_half4_rtz(half4); -half8 __ovld __cnfn convert_half8(char8); -half8 __ovld __cnfn convert_half8(uchar8); -half8 __ovld __cnfn convert_half8(short8); -half8 __ovld __cnfn convert_half8(ushort8); -half8 __ovld __cnfn convert_half8(int8); -half8 __ovld __cnfn convert_half8(uint8); -half8 __ovld __cnfn convert_half8(long8); -half8 __ovld __cnfn convert_half8(ulong8); -half8 __ovld __cnfn convert_half8(float8); -half8 __ovld __cnfn convert_half8(half8); -half8 __ovld __cnfn convert_half8_rte(char8); -half8 __ovld __cnfn convert_half8_rte(uchar8); -half8 __ovld __cnfn convert_half8_rte(short8); -half8 __ovld __cnfn convert_half8_rte(ushort8); -half8 __ovld __cnfn convert_half8_rte(int8); -half8 __ovld __cnfn convert_half8_rte(uint8); -half8 __ovld __cnfn convert_half8_rte(long8); -half8 __ovld __cnfn convert_half8_rte(ulong8); -half8 __ovld __cnfn convert_half8_rte(float8); -half8 __ovld __cnfn convert_half8_rte(half8); -half8 __ovld __cnfn convert_half8_rtp(char8); -half8 __ovld __cnfn convert_half8_rtp(uchar8); -half8 __ovld __cnfn convert_half8_rtp(short8); -half8 __ovld __cnfn convert_half8_rtp(ushort8); -half8 __ovld __cnfn convert_half8_rtp(int8); -half8 __ovld __cnfn convert_half8_rtp(uint8); -half8 __ovld __cnfn convert_half8_rtp(long8); -half8 __ovld __cnfn convert_half8_rtp(ulong8); -half8 __ovld __cnfn convert_half8_rtp(float8); -half8 __ovld __cnfn convert_half8_rtp(half8); -half8 __ovld __cnfn convert_half8_rtn(char8); -half8 __ovld __cnfn convert_half8_rtn(uchar8); -half8 __ovld __cnfn convert_half8_rtn(short8); -half8 __ovld __cnfn convert_half8_rtn(ushort8); -half8 __ovld __cnfn convert_half8_rtn(int8); -half8 __ovld __cnfn convert_half8_rtn(uint8); -half8 __ovld __cnfn convert_half8_rtn(long8); -half8 __ovld __cnfn convert_half8_rtn(ulong8); -half8 __ovld __cnfn convert_half8_rtn(float8); -half8 __ovld __cnfn convert_half8_rtn(half8); -half8 __ovld __cnfn convert_half8_rtz(char8); -half8 __ovld __cnfn convert_half8_rtz(uchar8); -half8 __ovld __cnfn convert_half8_rtz(short8); -half8 __ovld __cnfn convert_half8_rtz(ushort8); -half8 __ovld __cnfn convert_half8_rtz(int8); -half8 __ovld __cnfn convert_half8_rtz(uint8); -half8 __ovld __cnfn convert_half8_rtz(long8); -half8 __ovld __cnfn convert_half8_rtz(ulong8); -half8 __ovld __cnfn convert_half8_rtz(float8); -half8 __ovld __cnfn convert_half8_rtz(half8); -half16 __ovld __cnfn convert_half16(char16); -half16 __ovld __cnfn convert_half16(uchar16); -half16 __ovld __cnfn convert_half16(short16); -half16 __ovld __cnfn convert_half16(ushort16); -half16 __ovld __cnfn convert_half16(int16); -half16 __ovld __cnfn convert_half16(uint16); -half16 __ovld __cnfn convert_half16(long16); -half16 __ovld __cnfn convert_half16(ulong16); -half16 __ovld __cnfn convert_half16(float16); -half16 __ovld __cnfn convert_half16(half16); -half16 __ovld __cnfn convert_half16_rte(char16); -half16 __ovld __cnfn convert_half16_rte(uchar16); -half16 __ovld __cnfn convert_half16_rte(short16); -half16 __ovld __cnfn convert_half16_rte(ushort16); -half16 __ovld __cnfn convert_half16_rte(int16); -half16 __ovld __cnfn convert_half16_rte(uint16); -half16 __ovld __cnfn convert_half16_rte(long16); -half16 __ovld __cnfn convert_half16_rte(ulong16); -half16 __ovld __cnfn convert_half16_rte(float16); -half16 __ovld __cnfn convert_half16_rte(half16); -half16 __ovld __cnfn convert_half16_rtp(char16); -half16 __ovld __cnfn convert_half16_rtp(uchar16); -half16 __ovld __cnfn convert_half16_rtp(short16); -half16 __ovld __cnfn convert_half16_rtp(ushort16); -half16 __ovld __cnfn convert_half16_rtp(int16); -half16 __ovld __cnfn convert_half16_rtp(uint16); -half16 __ovld __cnfn convert_half16_rtp(long16); -half16 __ovld __cnfn convert_half16_rtp(ulong16); -half16 __ovld __cnfn convert_half16_rtp(float16); -half16 __ovld __cnfn convert_half16_rtp(half16); -half16 __ovld __cnfn convert_half16_rtn(char16); -half16 __ovld __cnfn convert_half16_rtn(uchar16); -half16 __ovld __cnfn convert_half16_rtn(short16); -half16 __ovld __cnfn convert_half16_rtn(ushort16); -half16 __ovld __cnfn convert_half16_rtn(int16); -half16 __ovld __cnfn convert_half16_rtn(uint16); -half16 __ovld __cnfn convert_half16_rtn(long16); -half16 __ovld __cnfn convert_half16_rtn(ulong16); -half16 __ovld __cnfn convert_half16_rtn(float16); -half16 __ovld __cnfn convert_half16_rtn(half16); -half16 __ovld __cnfn convert_half16_rtz(char16); -half16 __ovld __cnfn convert_half16_rtz(uchar16); -half16 __ovld __cnfn convert_half16_rtz(short16); -half16 __ovld __cnfn convert_half16_rtz(ushort16); -half16 __ovld __cnfn convert_half16_rtz(int16); -half16 __ovld __cnfn convert_half16_rtz(uint16); -half16 __ovld __cnfn convert_half16_rtz(long16); -half16 __ovld __cnfn convert_half16_rtz(ulong16); -half16 __ovld __cnfn convert_half16_rtz(float16); -half16 __ovld __cnfn convert_half16_rtz(half16); - -// Convert half types to double types. -#ifdef cl_khr_fp64 -double __ovld __cnfn convert_double(half); -double __ovld __cnfn convert_double_rte(half); -double __ovld __cnfn convert_double_rtp(half); -double __ovld __cnfn convert_double_rtn(half); -double __ovld __cnfn convert_double_rtz(half); -double2 __ovld __cnfn convert_double2(half2); -double2 __ovld __cnfn convert_double2_rte(half2); -double2 __ovld __cnfn convert_double2_rtp(half2); -double2 __ovld __cnfn convert_double2_rtn(half2); -double2 __ovld __cnfn convert_double2_rtz(half2); -double3 __ovld __cnfn convert_double3(half3); -double3 __ovld __cnfn convert_double3_rte(half3); -double3 __ovld __cnfn convert_double3_rtp(half3); -double3 __ovld __cnfn convert_double3_rtn(half3); -double3 __ovld __cnfn convert_double3_rtz(half3); -double4 __ovld __cnfn convert_double4(half4); -double4 __ovld __cnfn convert_double4_rte(half4); -double4 __ovld __cnfn convert_double4_rtp(half4); -double4 __ovld __cnfn convert_double4_rtn(half4); -double4 __ovld __cnfn convert_double4_rtz(half4); -double8 __ovld __cnfn convert_double8(half8); -double8 __ovld __cnfn convert_double8_rte(half8); -double8 __ovld __cnfn convert_double8_rtp(half8); -double8 __ovld __cnfn convert_double8_rtn(half8); -double8 __ovld __cnfn convert_double8_rtz(half8); -double16 __ovld __cnfn convert_double16(half16); -double16 __ovld __cnfn convert_double16_rte(half16); -double16 __ovld __cnfn convert_double16_rtp(half16); -double16 __ovld __cnfn convert_double16_rtn(half16); -double16 __ovld __cnfn convert_double16_rtz(half16); - -// Convert double types to half types. -half __ovld __cnfn convert_half(double); -half __ovld __cnfn convert_half_rte(double); -half __ovld __cnfn convert_half_rtp(double); -half __ovld __cnfn convert_half_rtn(double); -half __ovld __cnfn convert_half_rtz(double); -half2 __ovld __cnfn convert_half2(double2); -half2 __ovld __cnfn convert_half2_rte(double2); -half2 __ovld __cnfn convert_half2_rtp(double2); -half2 __ovld __cnfn convert_half2_rtn(double2); -half2 __ovld __cnfn convert_half2_rtz(double2); -half3 __ovld __cnfn convert_half3(double3); -half3 __ovld __cnfn convert_half3_rte(double3); -half3 __ovld __cnfn convert_half3_rtp(double3); -half3 __ovld __cnfn convert_half3_rtn(double3); -half3 __ovld __cnfn convert_half3_rtz(double3); -half4 __ovld __cnfn convert_half4(double4); -half4 __ovld __cnfn convert_half4_rte(double4); -half4 __ovld __cnfn convert_half4_rtp(double4); -half4 __ovld __cnfn convert_half4_rtn(double4); -half4 __ovld __cnfn convert_half4_rtz(double4); -half8 __ovld __cnfn convert_half8(double8); -half8 __ovld __cnfn convert_half8_rte(double8); -half8 __ovld __cnfn convert_half8_rtp(double8); -half8 __ovld __cnfn convert_half8_rtn(double8); -half8 __ovld __cnfn convert_half8_rtz(double8); -half16 __ovld __cnfn convert_half16(double16); -half16 __ovld __cnfn convert_half16_rte(double16); -half16 __ovld __cnfn convert_half16_rtp(double16); -half16 __ovld __cnfn convert_half16_rtn(double16); -half16 __ovld __cnfn convert_half16_rtz(double16); -#endif //cl_khr_fp64 - -#endif // cl_khr_fp16 - -/** - * OpenCL v1.1/1.2/2.0 s6.2.4.2 - as_type operators - * Reinterprets a data type as another data type of the same size - */ -#define as_char(x) __builtin_astype((x), char) -#define as_char2(x) __builtin_astype((x), char2) -#define as_char3(x) __builtin_astype((x), char3) -#define as_char4(x) __builtin_astype((x), char4) -#define as_char8(x) __builtin_astype((x), char8) -#define as_char16(x) __builtin_astype((x), char16) - -#define as_uchar(x) __builtin_astype((x), uchar) -#define as_uchar2(x) __builtin_astype((x), uchar2) -#define as_uchar3(x) __builtin_astype((x), uchar3) -#define as_uchar4(x) __builtin_astype((x), uchar4) -#define as_uchar8(x) __builtin_astype((x), uchar8) -#define as_uchar16(x) __builtin_astype((x), uchar16) - -#define as_short(x) __builtin_astype((x), short) -#define as_short2(x) __builtin_astype((x), short2) -#define as_short3(x) __builtin_astype((x), short3) -#define as_short4(x) __builtin_astype((x), short4) -#define as_short8(x) __builtin_astype((x), short8) -#define as_short16(x) __builtin_astype((x), short16) - -#define as_ushort(x) __builtin_astype((x), ushort) -#define as_ushort2(x) __builtin_astype((x), ushort2) -#define as_ushort3(x) __builtin_astype((x), ushort3) -#define as_ushort4(x) __builtin_astype((x), ushort4) -#define as_ushort8(x) __builtin_astype((x), ushort8) -#define as_ushort16(x) __builtin_astype((x), ushort16) - -#define as_int(x) __builtin_astype((x), int) -#define as_int2(x) __builtin_astype((x), int2) -#define as_int3(x) __builtin_astype((x), int3) -#define as_int4(x) __builtin_astype((x), int4) -#define as_int8(x) __builtin_astype((x), int8) -#define as_int16(x) __builtin_astype((x), int16) - -#define as_uint(x) __builtin_astype((x), uint) -#define as_uint2(x) __builtin_astype((x), uint2) -#define as_uint3(x) __builtin_astype((x), uint3) -#define as_uint4(x) __builtin_astype((x), uint4) -#define as_uint8(x) __builtin_astype((x), uint8) -#define as_uint16(x) __builtin_astype((x), uint16) - -#define as_long(x) __builtin_astype((x), long) -#define as_long2(x) __builtin_astype((x), long2) -#define as_long3(x) __builtin_astype((x), long3) -#define as_long4(x) __builtin_astype((x), long4) -#define as_long8(x) __builtin_astype((x), long8) -#define as_long16(x) __builtin_astype((x), long16) - -#define as_ulong(x) __builtin_astype((x), ulong) -#define as_ulong2(x) __builtin_astype((x), ulong2) -#define as_ulong3(x) __builtin_astype((x), ulong3) -#define as_ulong4(x) __builtin_astype((x), ulong4) -#define as_ulong8(x) __builtin_astype((x), ulong8) -#define as_ulong16(x) __builtin_astype((x), ulong16) - -#define as_float(x) __builtin_astype((x), float) -#define as_float2(x) __builtin_astype((x), float2) -#define as_float3(x) __builtin_astype((x), float3) -#define as_float4(x) __builtin_astype((x), float4) -#define as_float8(x) __builtin_astype((x), float8) -#define as_float16(x) __builtin_astype((x), float16) - -#ifdef cl_khr_fp64 -#define as_double(x) __builtin_astype((x), double) -#define as_double2(x) __builtin_astype((x), double2) -#define as_double3(x) __builtin_astype((x), double3) -#define as_double4(x) __builtin_astype((x), double4) -#define as_double8(x) __builtin_astype((x), double8) -#define as_double16(x) __builtin_astype((x), double16) -#endif //cl_khr_fp64 - -#ifdef cl_khr_fp16 -#define as_half(x) __builtin_astype((x), half) -#define as_half2(x) __builtin_astype((x), half2) -#define as_half3(x) __builtin_astype((x), half3) -#define as_half4(x) __builtin_astype((x), half4) -#define as_half8(x) __builtin_astype((x), half8) -#define as_half16(x) __builtin_astype((x), half16) -#endif //cl_khr_fp16 - -// OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers - -#define __kernel_exec(X, typen) __kernel \ - __attribute__((work_group_size_hint(X, 1, 1))) \ - __attribute__((vec_type_hint(typen))) - -#define kernel_exec(X, typen) __kernel \ - __attribute__((work_group_size_hint(X, 1, 1))) \ - __attribute__((vec_type_hint(typen))) - -// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions - -/** - * Returns the number of dimensions in use. This is the - * value given to the work_dim argument specified in - * clEnqueueNDRangeKernel. - * For clEnqueueTask, this returns 1. - */ -uint __ovld __cnfn get_work_dim(void); - -/** - * Returns the number of global work-items specified for - * dimension identified by dimindx. This value is given by - * the global_work_size argument to - * clEnqueueNDRangeKernel. Valid values of dimindx - * are 0 to get_work_dim() - 1. For other values of - * dimindx, get_global_size() returns 1. - * For clEnqueueTask, this always returns 1. - */ -size_t __ovld __cnfn get_global_size(uint dimindx); - -/** - * Returns the unique global work-item ID value for - * dimension identified by dimindx. The global work-item - * ID specifies the work-item ID based on the number of - * global work-items specified to execute the kernel. Valid - * values of dimindx are 0 to get_work_dim() - 1. For - * other values of dimindx, get_global_id() returns 0. - * For clEnqueueTask, this returns 0. - */ -size_t __ovld __cnfn get_global_id(uint dimindx); - -/** - * Returns the number of local work-items specified in - * dimension identified by dimindx. This value is given by - * the local_work_size argument to - * clEnqueueNDRangeKernel if local_work_size is not - * NULL; otherwise the OpenCL implementation chooses - * an appropriate local_work_size value which is returned - * by this function. Valid values of dimindx are 0 to - * get_work_dim() - 1. For other values of dimindx, - * get_local_size() returns 1. - * For clEnqueueTask, this always returns 1. - */ -size_t __ovld __cnfn get_local_size(uint dimindx); - -/** - * Returns the unique local work-item ID i.e. a work-item - * within a specific work-group for dimension identified by - * dimindx. Valid values of dimindx are 0 to - * get_work_dim() - 1. For other values of dimindx, - * get_local_id() returns 0. - * For clEnqueueTask, this returns 0. - */ -size_t __ovld __cnfn get_local_id(uint dimindx); - -/** - * Returns the number of work-groups that will execute a - * kernel for dimension identified by dimindx. - * Valid values of dimindx are 0 to get_work_dim() - 1. - * For other values of dimindx, get_num_groups () returns - * 1. - * For clEnqueueTask, this always returns 1. - */ -size_t __ovld __cnfn get_num_groups(uint dimindx); - -/** - * get_group_id returns the work-group ID which is a - * number from 0 .. get_num_groups(dimindx) - 1. - * Valid values of dimindx are 0 to get_work_dim() - 1. - * For other values, get_group_id() returns 0. - * For clEnqueueTask, this returns 0. - */ -size_t __ovld __cnfn get_group_id(uint dimindx); - -/** - * get_global_offset returns the offset values specified in - * global_work_offset argument to - * clEnqueueNDRangeKernel. - * Valid values of dimindx are 0 to get_work_dim() - 1. - * For other values, get_global_offset() returns 0. - * For clEnqueueTask, this returns 0. - */ -size_t __ovld __cnfn get_global_offset(uint dimindx); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -size_t __ovld get_enqueued_local_size(uint dimindx); -size_t __ovld get_global_linear_id(void); -size_t __ovld get_local_linear_id(void); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// OpenCL v1.1 s6.11.2, v1.2 s6.12.2, v2.0 s6.13.2 - Math functions - -/** - * Arc cosine function. - */ -float __ovld __cnfn acos(float); -float2 __ovld __cnfn acos(float2); -float3 __ovld __cnfn acos(float3); -float4 __ovld __cnfn acos(float4); -float8 __ovld __cnfn acos(float8); -float16 __ovld __cnfn acos(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn acos(double); -double2 __ovld __cnfn acos(double2); -double3 __ovld __cnfn acos(double3); -double4 __ovld __cnfn acos(double4); -double8 __ovld __cnfn acos(double8); -double16 __ovld __cnfn acos(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn acos(half); -half2 __ovld __cnfn acos(half2); -half3 __ovld __cnfn acos(half3); -half4 __ovld __cnfn acos(half4); -half8 __ovld __cnfn acos(half8); -half16 __ovld __cnfn acos(half16); -#endif //cl_khr_fp16 - -/** - * Inverse hyperbolic cosine. - */ -float __ovld __cnfn acosh(float); -float2 __ovld __cnfn acosh(float2); -float3 __ovld __cnfn acosh(float3); -float4 __ovld __cnfn acosh(float4); -float8 __ovld __cnfn acosh(float8); -float16 __ovld __cnfn acosh(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn acosh(double); -double2 __ovld __cnfn acosh(double2); -double3 __ovld __cnfn acosh(double3); -double4 __ovld __cnfn acosh(double4); -double8 __ovld __cnfn acosh(double8); -double16 __ovld __cnfn acosh(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn acosh(half); -half2 __ovld __cnfn acosh(half2); -half3 __ovld __cnfn acosh(half3); -half4 __ovld __cnfn acosh(half4); -half8 __ovld __cnfn acosh(half8); -half16 __ovld __cnfn acosh(half16); -#endif //cl_khr_fp16 - -/** - * Compute acos (x) / PI. - */ -float __ovld __cnfn acospi(float x); -float2 __ovld __cnfn acospi(float2 x); -float3 __ovld __cnfn acospi(float3 x); -float4 __ovld __cnfn acospi(float4 x); -float8 __ovld __cnfn acospi(float8 x); -float16 __ovld __cnfn acospi(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn acospi(double x); -double2 __ovld __cnfn acospi(double2 x); -double3 __ovld __cnfn acospi(double3 x); -double4 __ovld __cnfn acospi(double4 x); -double8 __ovld __cnfn acospi(double8 x); -double16 __ovld __cnfn acospi(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn acospi(half x); -half2 __ovld __cnfn acospi(half2 x); -half3 __ovld __cnfn acospi(half3 x); -half4 __ovld __cnfn acospi(half4 x); -half8 __ovld __cnfn acospi(half8 x); -half16 __ovld __cnfn acospi(half16 x); -#endif //cl_khr_fp16 - -/** - * Arc sine function. - */ -float __ovld __cnfn asin(float); -float2 __ovld __cnfn asin(float2); -float3 __ovld __cnfn asin(float3); -float4 __ovld __cnfn asin(float4); -float8 __ovld __cnfn asin(float8); -float16 __ovld __cnfn asin(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn asin(double); -double2 __ovld __cnfn asin(double2); -double3 __ovld __cnfn asin(double3); -double4 __ovld __cnfn asin(double4); -double8 __ovld __cnfn asin(double8); -double16 __ovld __cnfn asin(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn asin(half); -half2 __ovld __cnfn asin(half2); -half3 __ovld __cnfn asin(half3); -half4 __ovld __cnfn asin(half4); -half8 __ovld __cnfn asin(half8); -half16 __ovld __cnfn asin(half16); -#endif //cl_khr_fp16 - -/** - * Inverse hyperbolic sine. - */ -float __ovld __cnfn asinh(float); -float2 __ovld __cnfn asinh(float2); -float3 __ovld __cnfn asinh(float3); -float4 __ovld __cnfn asinh(float4); -float8 __ovld __cnfn asinh(float8); -float16 __ovld __cnfn asinh(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn asinh(double); -double2 __ovld __cnfn asinh(double2); -double3 __ovld __cnfn asinh(double3); -double4 __ovld __cnfn asinh(double4); -double8 __ovld __cnfn asinh(double8); -double16 __ovld __cnfn asinh(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn asinh(half); -half2 __ovld __cnfn asinh(half2); -half3 __ovld __cnfn asinh(half3); -half4 __ovld __cnfn asinh(half4); -half8 __ovld __cnfn asinh(half8); -half16 __ovld __cnfn asinh(half16); -#endif //cl_khr_fp16 - -/** - * Compute asin (x) / PI. - */ -float __ovld __cnfn asinpi(float x); -float2 __ovld __cnfn asinpi(float2 x); -float3 __ovld __cnfn asinpi(float3 x); -float4 __ovld __cnfn asinpi(float4 x); -float8 __ovld __cnfn asinpi(float8 x); -float16 __ovld __cnfn asinpi(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn asinpi(double x); -double2 __ovld __cnfn asinpi(double2 x); -double3 __ovld __cnfn asinpi(double3 x); -double4 __ovld __cnfn asinpi(double4 x); -double8 __ovld __cnfn asinpi(double8 x); -double16 __ovld __cnfn asinpi(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn asinpi(half x); -half2 __ovld __cnfn asinpi(half2 x); -half3 __ovld __cnfn asinpi(half3 x); -half4 __ovld __cnfn asinpi(half4 x); -half8 __ovld __cnfn asinpi(half8 x); -half16 __ovld __cnfn asinpi(half16 x); -#endif //cl_khr_fp16 - -/** - * Arc tangent function. - */ -float __ovld __cnfn atan(float y_over_x); -float2 __ovld __cnfn atan(float2 y_over_x); -float3 __ovld __cnfn atan(float3 y_over_x); -float4 __ovld __cnfn atan(float4 y_over_x); -float8 __ovld __cnfn atan(float8 y_over_x); -float16 __ovld __cnfn atan(float16 y_over_x); -#ifdef cl_khr_fp64 -double __ovld __cnfn atan(double y_over_x); -double2 __ovld __cnfn atan(double2 y_over_x); -double3 __ovld __cnfn atan(double3 y_over_x); -double4 __ovld __cnfn atan(double4 y_over_x); -double8 __ovld __cnfn atan(double8 y_over_x); -double16 __ovld __cnfn atan(double16 y_over_x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn atan(half y_over_x); -half2 __ovld __cnfn atan(half2 y_over_x); -half3 __ovld __cnfn atan(half3 y_over_x); -half4 __ovld __cnfn atan(half4 y_over_x); -half8 __ovld __cnfn atan(half8 y_over_x); -half16 __ovld __cnfn atan(half16 y_over_x); -#endif //cl_khr_fp16 - -/** - * Arc tangent of y / x. - */ -float __ovld __cnfn atan2(float y, float x); -float2 __ovld __cnfn atan2(float2 y, float2 x); -float3 __ovld __cnfn atan2(float3 y, float3 x); -float4 __ovld __cnfn atan2(float4 y, float4 x); -float8 __ovld __cnfn atan2(float8 y, float8 x); -float16 __ovld __cnfn atan2(float16 y, float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn atan2(double y, double x); -double2 __ovld __cnfn atan2(double2 y, double2 x); -double3 __ovld __cnfn atan2(double3 y, double3 x); -double4 __ovld __cnfn atan2(double4 y, double4 x); -double8 __ovld __cnfn atan2(double8 y, double8 x); -double16 __ovld __cnfn atan2(double16 y, double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn atan2(half y, half x); -half2 __ovld __cnfn atan2(half2 y, half2 x); -half3 __ovld __cnfn atan2(half3 y, half3 x); -half4 __ovld __cnfn atan2(half4 y, half4 x); -half8 __ovld __cnfn atan2(half8 y, half8 x); -half16 __ovld __cnfn atan2(half16 y, half16 x); -#endif //cl_khr_fp16 - -/** - * Hyperbolic arc tangent. - */ -float __ovld __cnfn atanh(float); -float2 __ovld __cnfn atanh(float2); -float3 __ovld __cnfn atanh(float3); -float4 __ovld __cnfn atanh(float4); -float8 __ovld __cnfn atanh(float8); -float16 __ovld __cnfn atanh(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn atanh(double); -double2 __ovld __cnfn atanh(double2); -double3 __ovld __cnfn atanh(double3); -double4 __ovld __cnfn atanh(double4); -double8 __ovld __cnfn atanh(double8); -double16 __ovld __cnfn atanh(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn atanh(half); -half2 __ovld __cnfn atanh(half2); -half3 __ovld __cnfn atanh(half3); -half4 __ovld __cnfn atanh(half4); -half8 __ovld __cnfn atanh(half8); -half16 __ovld __cnfn atanh(half16); -#endif //cl_khr_fp16 - -/** - * Compute atan (x) / PI. - */ -float __ovld __cnfn atanpi(float x); -float2 __ovld __cnfn atanpi(float2 x); -float3 __ovld __cnfn atanpi(float3 x); -float4 __ovld __cnfn atanpi(float4 x); -float8 __ovld __cnfn atanpi(float8 x); -float16 __ovld __cnfn atanpi(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn atanpi(double x); -double2 __ovld __cnfn atanpi(double2 x); -double3 __ovld __cnfn atanpi(double3 x); -double4 __ovld __cnfn atanpi(double4 x); -double8 __ovld __cnfn atanpi(double8 x); -double16 __ovld __cnfn atanpi(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn atanpi(half x); -half2 __ovld __cnfn atanpi(half2 x); -half3 __ovld __cnfn atanpi(half3 x); -half4 __ovld __cnfn atanpi(half4 x); -half8 __ovld __cnfn atanpi(half8 x); -half16 __ovld __cnfn atanpi(half16 x); -#endif //cl_khr_fp16 - -/** - * Compute atan2 (y, x) / PI. - */ -float __ovld __cnfn atan2pi(float y, float x); -float2 __ovld __cnfn atan2pi(float2 y, float2 x); -float3 __ovld __cnfn atan2pi(float3 y, float3 x); -float4 __ovld __cnfn atan2pi(float4 y, float4 x); -float8 __ovld __cnfn atan2pi(float8 y, float8 x); -float16 __ovld __cnfn atan2pi(float16 y, float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn atan2pi(double y, double x); -double2 __ovld __cnfn atan2pi(double2 y, double2 x); -double3 __ovld __cnfn atan2pi(double3 y, double3 x); -double4 __ovld __cnfn atan2pi(double4 y, double4 x); -double8 __ovld __cnfn atan2pi(double8 y, double8 x); -double16 __ovld __cnfn atan2pi(double16 y, double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn atan2pi(half y, half x); -half2 __ovld __cnfn atan2pi(half2 y, half2 x); -half3 __ovld __cnfn atan2pi(half3 y, half3 x); -half4 __ovld __cnfn atan2pi(half4 y, half4 x); -half8 __ovld __cnfn atan2pi(half8 y, half8 x); -half16 __ovld __cnfn atan2pi(half16 y, half16 x); -#endif //cl_khr_fp16 - -/** - * Compute cube-root. - */ -float __ovld __cnfn cbrt(float); -float2 __ovld __cnfn cbrt(float2); -float3 __ovld __cnfn cbrt(float3); -float4 __ovld __cnfn cbrt(float4); -float8 __ovld __cnfn cbrt(float8); -float16 __ovld __cnfn cbrt(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn cbrt(double); -double2 __ovld __cnfn cbrt(double2); -double3 __ovld __cnfn cbrt(double3); -double4 __ovld __cnfn cbrt(double4); -double8 __ovld __cnfn cbrt(double8); -double16 __ovld __cnfn cbrt(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn cbrt(half); -half2 __ovld __cnfn cbrt(half2); -half3 __ovld __cnfn cbrt(half3); -half4 __ovld __cnfn cbrt(half4); -half8 __ovld __cnfn cbrt(half8); -half16 __ovld __cnfn cbrt(half16); -#endif //cl_khr_fp16 - -/** - * Round to integral value using the round to positive - * infinity rounding mode. - */ -float __ovld __cnfn ceil(float); -float2 __ovld __cnfn ceil(float2); -float3 __ovld __cnfn ceil(float3); -float4 __ovld __cnfn ceil(float4); -float8 __ovld __cnfn ceil(float8); -float16 __ovld __cnfn ceil(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn ceil(double); -double2 __ovld __cnfn ceil(double2); -double3 __ovld __cnfn ceil(double3); -double4 __ovld __cnfn ceil(double4); -double8 __ovld __cnfn ceil(double8); -double16 __ovld __cnfn ceil(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn ceil(half); -half2 __ovld __cnfn ceil(half2); -half3 __ovld __cnfn ceil(half3); -half4 __ovld __cnfn ceil(half4); -half8 __ovld __cnfn ceil(half8); -half16 __ovld __cnfn ceil(half16); -#endif //cl_khr_fp16 - -/** - * Returns x with its sign changed to match the sign of y. - */ -float __ovld __cnfn copysign(float x, float y); -float2 __ovld __cnfn copysign(float2 x, float2 y); -float3 __ovld __cnfn copysign(float3 x, float3 y); -float4 __ovld __cnfn copysign(float4 x, float4 y); -float8 __ovld __cnfn copysign(float8 x, float8 y); -float16 __ovld __cnfn copysign(float16 x, float16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn copysign(double x, double y); -double2 __ovld __cnfn copysign(double2 x, double2 y); -double3 __ovld __cnfn copysign(double3 x, double3 y); -double4 __ovld __cnfn copysign(double4 x, double4 y); -double8 __ovld __cnfn copysign(double8 x, double8 y); -double16 __ovld __cnfn copysign(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn copysign(half x, half y); -half2 __ovld __cnfn copysign(half2 x, half2 y); -half3 __ovld __cnfn copysign(half3 x, half3 y); -half4 __ovld __cnfn copysign(half4 x, half4 y); -half8 __ovld __cnfn copysign(half8 x, half8 y); -half16 __ovld __cnfn copysign(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Compute cosine. - */ -float __ovld __cnfn cos(float); -float2 __ovld __cnfn cos(float2); -float3 __ovld __cnfn cos(float3); -float4 __ovld __cnfn cos(float4); -float8 __ovld __cnfn cos(float8); -float16 __ovld __cnfn cos(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn cos(double); -double2 __ovld __cnfn cos(double2); -double3 __ovld __cnfn cos(double3); -double4 __ovld __cnfn cos(double4); -double8 __ovld __cnfn cos(double8); -double16 __ovld __cnfn cos(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn cos(half); -half2 __ovld __cnfn cos(half2); -half3 __ovld __cnfn cos(half3); -half4 __ovld __cnfn cos(half4); -half8 __ovld __cnfn cos(half8); -half16 __ovld __cnfn cos(half16); -#endif //cl_khr_fp16 - -/** - * Compute hyperbolic cosine. - */ -float __ovld __cnfn cosh(float); -float2 __ovld __cnfn cosh(float2); -float3 __ovld __cnfn cosh(float3); -float4 __ovld __cnfn cosh(float4); -float8 __ovld __cnfn cosh(float8); -float16 __ovld __cnfn cosh(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn cosh(double); -double2 __ovld __cnfn cosh(double2); -double3 __ovld __cnfn cosh(double3); -double4 __ovld __cnfn cosh(double4); -double8 __ovld __cnfn cosh(double8); -double16 __ovld __cnfn cosh(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn cosh(half); -half2 __ovld __cnfn cosh(half2); -half3 __ovld __cnfn cosh(half3); -half4 __ovld __cnfn cosh(half4); -half8 __ovld __cnfn cosh(half8); -half16 __ovld __cnfn cosh(half16); -#endif //cl_khr_fp16 - -/** - * Compute cos (PI * x). - */ -float __ovld __cnfn cospi(float x); -float2 __ovld __cnfn cospi(float2 x); -float3 __ovld __cnfn cospi(float3 x); -float4 __ovld __cnfn cospi(float4 x); -float8 __ovld __cnfn cospi(float8 x); -float16 __ovld __cnfn cospi(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn cospi(double x); -double2 __ovld __cnfn cospi(double2 x); -double3 __ovld __cnfn cospi(double3 x); -double4 __ovld __cnfn cospi(double4 x); -double8 __ovld __cnfn cospi(double8 x); -double16 __ovld __cnfn cospi(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn cospi(half x); -half2 __ovld __cnfn cospi(half2 x); -half3 __ovld __cnfn cospi(half3 x); -half4 __ovld __cnfn cospi(half4 x); -half8 __ovld __cnfn cospi(half8 x); -half16 __ovld __cnfn cospi(half16 x); -#endif //cl_khr_fp16 - -/** - * Complementary error function. - */ -float __ovld __cnfn erfc(float); -float2 __ovld __cnfn erfc(float2); -float3 __ovld __cnfn erfc(float3); -float4 __ovld __cnfn erfc(float4); -float8 __ovld __cnfn erfc(float8); -float16 __ovld __cnfn erfc(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn erfc(double); -double2 __ovld __cnfn erfc(double2); -double3 __ovld __cnfn erfc(double3); -double4 __ovld __cnfn erfc(double4); -double8 __ovld __cnfn erfc(double8); -double16 __ovld __cnfn erfc(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn erfc(half); -half2 __ovld __cnfn erfc(half2); -half3 __ovld __cnfn erfc(half3); -half4 __ovld __cnfn erfc(half4); -half8 __ovld __cnfn erfc(half8); -half16 __ovld __cnfn erfc(half16); -#endif //cl_khr_fp16 - -/** - * Error function encountered in integrating the - * normal distribution. - */ -float __ovld __cnfn erf(float); -float2 __ovld __cnfn erf(float2); -float3 __ovld __cnfn erf(float3); -float4 __ovld __cnfn erf(float4); -float8 __ovld __cnfn erf(float8); -float16 __ovld __cnfn erf(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn erf(double); -double2 __ovld __cnfn erf(double2); -double3 __ovld __cnfn erf(double3); -double4 __ovld __cnfn erf(double4); -double8 __ovld __cnfn erf(double8); -double16 __ovld __cnfn erf(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn erf(half); -half2 __ovld __cnfn erf(half2); -half3 __ovld __cnfn erf(half3); -half4 __ovld __cnfn erf(half4); -half8 __ovld __cnfn erf(half8); -half16 __ovld __cnfn erf(half16); -#endif //cl_khr_fp16 - -/** - * Compute the base e exponential function of x. - */ -float __ovld __cnfn exp(float x); -float2 __ovld __cnfn exp(float2 x); -float3 __ovld __cnfn exp(float3 x); -float4 __ovld __cnfn exp(float4 x); -float8 __ovld __cnfn exp(float8 x); -float16 __ovld __cnfn exp(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn exp(double x); -double2 __ovld __cnfn exp(double2 x); -double3 __ovld __cnfn exp(double3 x); -double4 __ovld __cnfn exp(double4 x); -double8 __ovld __cnfn exp(double8 x); -double16 __ovld __cnfn exp(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn exp(half x); -half2 __ovld __cnfn exp(half2 x); -half3 __ovld __cnfn exp(half3 x); -half4 __ovld __cnfn exp(half4 x); -half8 __ovld __cnfn exp(half8 x); -half16 __ovld __cnfn exp(half16 x); -#endif //cl_khr_fp16 - -/** - * Exponential base 2 function. - */ -float __ovld __cnfn exp2(float); -float2 __ovld __cnfn exp2(float2); -float3 __ovld __cnfn exp2(float3); -float4 __ovld __cnfn exp2(float4); -float8 __ovld __cnfn exp2(float8); -float16 __ovld __cnfn exp2(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn exp2(double); -double2 __ovld __cnfn exp2(double2); -double3 __ovld __cnfn exp2(double3); -double4 __ovld __cnfn exp2(double4); -double8 __ovld __cnfn exp2(double8); -double16 __ovld __cnfn exp2(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn exp2(half); -half2 __ovld __cnfn exp2(half2); -half3 __ovld __cnfn exp2(half3); -half4 __ovld __cnfn exp2(half4); -half8 __ovld __cnfn exp2(half8); -half16 __ovld __cnfn exp2(half16); -#endif //cl_khr_fp16 - -/** - * Exponential base 10 function. - */ -float __ovld __cnfn exp10(float); -float2 __ovld __cnfn exp10(float2); -float3 __ovld __cnfn exp10(float3); -float4 __ovld __cnfn exp10(float4); -float8 __ovld __cnfn exp10(float8); -float16 __ovld __cnfn exp10(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn exp10(double); -double2 __ovld __cnfn exp10(double2); -double3 __ovld __cnfn exp10(double3); -double4 __ovld __cnfn exp10(double4); -double8 __ovld __cnfn exp10(double8); -double16 __ovld __cnfn exp10(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn exp10(half); -half2 __ovld __cnfn exp10(half2); -half3 __ovld __cnfn exp10(half3); -half4 __ovld __cnfn exp10(half4); -half8 __ovld __cnfn exp10(half8); -half16 __ovld __cnfn exp10(half16); -#endif //cl_khr_fp16 - -/** - * Compute e^x- 1.0. - */ -float __ovld __cnfn expm1(float x); -float2 __ovld __cnfn expm1(float2 x); -float3 __ovld __cnfn expm1(float3 x); -float4 __ovld __cnfn expm1(float4 x); -float8 __ovld __cnfn expm1(float8 x); -float16 __ovld __cnfn expm1(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn expm1(double x); -double2 __ovld __cnfn expm1(double2 x); -double3 __ovld __cnfn expm1(double3 x); -double4 __ovld __cnfn expm1(double4 x); -double8 __ovld __cnfn expm1(double8 x); -double16 __ovld __cnfn expm1(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn expm1(half x); -half2 __ovld __cnfn expm1(half2 x); -half3 __ovld __cnfn expm1(half3 x); -half4 __ovld __cnfn expm1(half4 x); -half8 __ovld __cnfn expm1(half8 x); -half16 __ovld __cnfn expm1(half16 x); -#endif //cl_khr_fp16 - -/** - * Compute absolute value of a floating-point number. - */ -float __ovld __cnfn fabs(float); -float2 __ovld __cnfn fabs(float2); -float3 __ovld __cnfn fabs(float3); -float4 __ovld __cnfn fabs(float4); -float8 __ovld __cnfn fabs(float8); -float16 __ovld __cnfn fabs(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn fabs(double); -double2 __ovld __cnfn fabs(double2); -double3 __ovld __cnfn fabs(double3); -double4 __ovld __cnfn fabs(double4); -double8 __ovld __cnfn fabs(double8); -double16 __ovld __cnfn fabs(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn fabs(half); -half2 __ovld __cnfn fabs(half2); -half3 __ovld __cnfn fabs(half3); -half4 __ovld __cnfn fabs(half4); -half8 __ovld __cnfn fabs(half8); -half16 __ovld __cnfn fabs(half16); -#endif //cl_khr_fp16 - -/** - * x - y if x > y, +0 if x is less than or equal to y. - */ -float __ovld __cnfn fdim(float x, float y); -float2 __ovld __cnfn fdim(float2 x, float2 y); -float3 __ovld __cnfn fdim(float3 x, float3 y); -float4 __ovld __cnfn fdim(float4 x, float4 y); -float8 __ovld __cnfn fdim(float8 x, float8 y); -float16 __ovld __cnfn fdim(float16 x, float16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn fdim(double x, double y); -double2 __ovld __cnfn fdim(double2 x, double2 y); -double3 __ovld __cnfn fdim(double3 x, double3 y); -double4 __ovld __cnfn fdim(double4 x, double4 y); -double8 __ovld __cnfn fdim(double8 x, double8 y); -double16 __ovld __cnfn fdim(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn fdim(half x, half y); -half2 __ovld __cnfn fdim(half2 x, half2 y); -half3 __ovld __cnfn fdim(half3 x, half3 y); -half4 __ovld __cnfn fdim(half4 x, half4 y); -half8 __ovld __cnfn fdim(half8 x, half8 y); -half16 __ovld __cnfn fdim(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Round to integral value using the round to -ve - * infinity rounding mode. - */ -float __ovld __cnfn floor(float); -float2 __ovld __cnfn floor(float2); -float3 __ovld __cnfn floor(float3); -float4 __ovld __cnfn floor(float4); -float8 __ovld __cnfn floor(float8); -float16 __ovld __cnfn floor(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn floor(double); -double2 __ovld __cnfn floor(double2); -double3 __ovld __cnfn floor(double3); -double4 __ovld __cnfn floor(double4); -double8 __ovld __cnfn floor(double8); -double16 __ovld __cnfn floor(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn floor(half); -half2 __ovld __cnfn floor(half2); -half3 __ovld __cnfn floor(half3); -half4 __ovld __cnfn floor(half4); -half8 __ovld __cnfn floor(half8); -half16 __ovld __cnfn floor(half16); -#endif //cl_khr_fp16 - -/** - * Returns the correctly rounded floating-point - * representation of the sum of c with the infinitely - * precise product of a and b. Rounding of - * intermediate products shall not occur. Edge case - * behavior is per the IEEE 754-2008 standard. - */ -float __ovld __cnfn fma(float a, float b, float c); -float2 __ovld __cnfn fma(float2 a, float2 b, float2 c); -float3 __ovld __cnfn fma(float3 a, float3 b, float3 c); -float4 __ovld __cnfn fma(float4 a, float4 b, float4 c); -float8 __ovld __cnfn fma(float8 a, float8 b, float8 c); -float16 __ovld __cnfn fma(float16 a, float16 b, float16 c); -#ifdef cl_khr_fp64 -double __ovld __cnfn fma(double a, double b, double c); -double2 __ovld __cnfn fma(double2 a, double2 b, double2 c); -double3 __ovld __cnfn fma(double3 a, double3 b, double3 c); -double4 __ovld __cnfn fma(double4 a, double4 b, double4 c); -double8 __ovld __cnfn fma(double8 a, double8 b, double8 c); -double16 __ovld __cnfn fma(double16 a, double16 b, double16 c); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn fma(half a, half b, half c); -half2 __ovld __cnfn fma(half2 a, half2 b, half2 c); -half3 __ovld __cnfn fma(half3 a, half3 b, half3 c); -half4 __ovld __cnfn fma(half4 a, half4 b, half4 c); -half8 __ovld __cnfn fma(half8 a, half8 b, half8 c); -half16 __ovld __cnfn fma(half16 a, half16 b, half16 c); -#endif //cl_khr_fp16 - -/** - * Returns y if x < y, otherwise it returns x. If one - * argument is a NaN, fmax() returns the other - * argument. If both arguments are NaNs, fmax() - * returns a NaN. - */ -float __ovld __cnfn fmax(float x, float y); -float2 __ovld __cnfn fmax(float2 x, float2 y); -float3 __ovld __cnfn fmax(float3 x, float3 y); -float4 __ovld __cnfn fmax(float4 x, float4 y); -float8 __ovld __cnfn fmax(float8 x, float8 y); -float16 __ovld __cnfn fmax(float16 x, float16 y); -float2 __ovld __cnfn fmax(float2 x, float y); -float3 __ovld __cnfn fmax(float3 x, float y); -float4 __ovld __cnfn fmax(float4 x, float y); -float8 __ovld __cnfn fmax(float8 x, float y); -float16 __ovld __cnfn fmax(float16 x, float y); -#ifdef cl_khr_fp64 -double __ovld __cnfn fmax(double x, double y); -double2 __ovld __cnfn fmax(double2 x, double2 y); -double3 __ovld __cnfn fmax(double3 x, double3 y); -double4 __ovld __cnfn fmax(double4 x, double4 y); -double8 __ovld __cnfn fmax(double8 x, double8 y); -double16 __ovld __cnfn fmax(double16 x, double16 y); -double2 __ovld __cnfn fmax(double2 x, double y); -double3 __ovld __cnfn fmax(double3 x, double y); -double4 __ovld __cnfn fmax(double4 x, double y); -double8 __ovld __cnfn fmax(double8 x, double y); -double16 __ovld __cnfn fmax(double16 x, double y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn fmax(half x, half y); -half2 __ovld __cnfn fmax(half2 x, half2 y); -half3 __ovld __cnfn fmax(half3 x, half3 y); -half4 __ovld __cnfn fmax(half4 x, half4 y); -half8 __ovld __cnfn fmax(half8 x, half8 y); -half16 __ovld __cnfn fmax(half16 x, half16 y); -half2 __ovld __cnfn fmax(half2 x, half y); -half3 __ovld __cnfn fmax(half3 x, half y); -half4 __ovld __cnfn fmax(half4 x, half y); -half8 __ovld __cnfn fmax(half8 x, half y); -half16 __ovld __cnfn fmax(half16 x, half y); -#endif //cl_khr_fp16 - -/** - * Returns y if y < x, otherwise it returns x. If one - * argument is a NaN, fmin() returns the other - * argument. If both arguments are NaNs, fmin() - * returns a NaN. - */ -float __ovld __cnfn fmin(float x, float y); -float2 __ovld __cnfn fmin(float2 x, float2 y); -float3 __ovld __cnfn fmin(float3 x, float3 y); -float4 __ovld __cnfn fmin(float4 x, float4 y); -float8 __ovld __cnfn fmin(float8 x, float8 y); -float16 __ovld __cnfn fmin(float16 x, float16 y); -float2 __ovld __cnfn fmin(float2 x, float y); -float3 __ovld __cnfn fmin(float3 x, float y); -float4 __ovld __cnfn fmin(float4 x, float y); -float8 __ovld __cnfn fmin(float8 x, float y); -float16 __ovld __cnfn fmin(float16 x, float y); -#ifdef cl_khr_fp64 -double __ovld __cnfn fmin(double x, double y); -double2 __ovld __cnfn fmin(double2 x, double2 y); -double3 __ovld __cnfn fmin(double3 x, double3 y); -double4 __ovld __cnfn fmin(double4 x, double4 y); -double8 __ovld __cnfn fmin(double8 x, double8 y); -double16 __ovld __cnfn fmin(double16 x, double16 y); -double2 __ovld __cnfn fmin(double2 x, double y); -double3 __ovld __cnfn fmin(double3 x, double y); -double4 __ovld __cnfn fmin(double4 x, double y); -double8 __ovld __cnfn fmin(double8 x, double y); -double16 __ovld __cnfn fmin(double16 x, double y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn fmin(half x, half y); -half2 __ovld __cnfn fmin(half2 x, half2 y); -half3 __ovld __cnfn fmin(half3 x, half3 y); -half4 __ovld __cnfn fmin(half4 x, half4 y); -half8 __ovld __cnfn fmin(half8 x, half8 y); -half16 __ovld __cnfn fmin(half16 x, half16 y); -half2 __ovld __cnfn fmin(half2 x, half y); -half3 __ovld __cnfn fmin(half3 x, half y); -half4 __ovld __cnfn fmin(half4 x, half y); -half8 __ovld __cnfn fmin(half8 x, half y); -half16 __ovld __cnfn fmin(half16 x, half y); -#endif //cl_khr_fp16 - -/** - * Modulus. Returns x - y * trunc (x/y). - */ -float __ovld __cnfn fmod(float x, float y); -float2 __ovld __cnfn fmod(float2 x, float2 y); -float3 __ovld __cnfn fmod(float3 x, float3 y); -float4 __ovld __cnfn fmod(float4 x, float4 y); -float8 __ovld __cnfn fmod(float8 x, float8 y); -float16 __ovld __cnfn fmod(float16 x, float16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn fmod(double x, double y); -double2 __ovld __cnfn fmod(double2 x, double2 y); -double3 __ovld __cnfn fmod(double3 x, double3 y); -double4 __ovld __cnfn fmod(double4 x, double4 y); -double8 __ovld __cnfn fmod(double8 x, double8 y); -double16 __ovld __cnfn fmod(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn fmod(half x, half y); -half2 __ovld __cnfn fmod(half2 x, half2 y); -half3 __ovld __cnfn fmod(half3 x, half3 y); -half4 __ovld __cnfn fmod(half4 x, half4 y); -half8 __ovld __cnfn fmod(half8 x, half8 y); -half16 __ovld __cnfn fmod(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Returns fmin(x - floor (x), 0x1.fffffep-1f ). - * floor(x) is returned in iptr. - */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld fract(float x, float *iptr); -float2 __ovld fract(float2 x, float2 *iptr); -float3 __ovld fract(float3 x, float3 *iptr); -float4 __ovld fract(float4 x, float4 *iptr); -float8 __ovld fract(float8 x, float8 *iptr); -float16 __ovld fract(float16 x, float16 *iptr); -#ifdef cl_khr_fp64 -double __ovld fract(double x, double *iptr); -double2 __ovld fract(double2 x, double2 *iptr); -double3 __ovld fract(double3 x, double3 *iptr); -double4 __ovld fract(double4 x, double4 *iptr); -double8 __ovld fract(double8 x, double8 *iptr); -double16 __ovld fract(double16 x, double16 *iptr); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld fract(half x, half *iptr); -half2 __ovld fract(half2 x, half2 *iptr); -half3 __ovld fract(half3 x, half3 *iptr); -half4 __ovld fract(half4 x, half4 *iptr); -half8 __ovld fract(half8 x, half8 *iptr); -half16 __ovld fract(half16 x, half16 *iptr); -#endif //cl_khr_fp16 -#else -float __ovld fract(float x, __global float *iptr); -float2 __ovld fract(float2 x, __global float2 *iptr); -float3 __ovld fract(float3 x, __global float3 *iptr); -float4 __ovld fract(float4 x, __global float4 *iptr); -float8 __ovld fract(float8 x, __global float8 *iptr); -float16 __ovld fract(float16 x, __global float16 *iptr); -float __ovld fract(float x, __local float *iptr); -float2 __ovld fract(float2 x, __local float2 *iptr); -float3 __ovld fract(float3 x, __local float3 *iptr); -float4 __ovld fract(float4 x, __local float4 *iptr); -float8 __ovld fract(float8 x, __local float8 *iptr); -float16 __ovld fract(float16 x, __local float16 *iptr); -float __ovld fract(float x, __private float *iptr); -float2 __ovld fract(float2 x, __private float2 *iptr); -float3 __ovld fract(float3 x, __private float3 *iptr); -float4 __ovld fract(float4 x, __private float4 *iptr); -float8 __ovld fract(float8 x, __private float8 *iptr); -float16 __ovld fract(float16 x, __private float16 *iptr); -#ifdef cl_khr_fp64 -double __ovld fract(double x, __global double *iptr); -double2 __ovld fract(double2 x, __global double2 *iptr); -double3 __ovld fract(double3 x, __global double3 *iptr); -double4 __ovld fract(double4 x, __global double4 *iptr); -double8 __ovld fract(double8 x, __global double8 *iptr); -double16 __ovld fract(double16 x, __global double16 *iptr); -double __ovld fract(double x, __local double *iptr); -double2 __ovld fract(double2 x, __local double2 *iptr); -double3 __ovld fract(double3 x, __local double3 *iptr); -double4 __ovld fract(double4 x, __local double4 *iptr); -double8 __ovld fract(double8 x, __local double8 *iptr); -double16 __ovld fract(double16 x, __local double16 *iptr); -double __ovld fract(double x, __private double *iptr); -double2 __ovld fract(double2 x, __private double2 *iptr); -double3 __ovld fract(double3 x, __private double3 *iptr); -double4 __ovld fract(double4 x, __private double4 *iptr); -double8 __ovld fract(double8 x, __private double8 *iptr); -double16 __ovld fract(double16 x, __private double16 *iptr); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld fract(half x, __global half *iptr); -half2 __ovld fract(half2 x, __global half2 *iptr); -half3 __ovld fract(half3 x, __global half3 *iptr); -half4 __ovld fract(half4 x, __global half4 *iptr); -half8 __ovld fract(half8 x, __global half8 *iptr); -half16 __ovld fract(half16 x, __global half16 *iptr); -half __ovld fract(half x, __local half *iptr); -half2 __ovld fract(half2 x, __local half2 *iptr); -half3 __ovld fract(half3 x, __local half3 *iptr); -half4 __ovld fract(half4 x, __local half4 *iptr); -half8 __ovld fract(half8 x, __local half8 *iptr); -half16 __ovld fract(half16 x, __local half16 *iptr); -half __ovld fract(half x, __private half *iptr); -half2 __ovld fract(half2 x, __private half2 *iptr); -half3 __ovld fract(half3 x, __private half3 *iptr); -half4 __ovld fract(half4 x, __private half4 *iptr); -half8 __ovld fract(half8 x, __private half8 *iptr); -half16 __ovld fract(half16 x, __private half16 *iptr); -#endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Extract mantissa and exponent from x. For each - * component the mantissa returned is a float with - * magnitude in the interval [1/2, 1) or 0. Each - * component of x equals mantissa returned * 2^exp. - */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld frexp(float x, int *exp); -float2 __ovld frexp(float2 x, int2 *exp); -float3 __ovld frexp(float3 x, int3 *exp); -float4 __ovld frexp(float4 x, int4 *exp); -float8 __ovld frexp(float8 x, int8 *exp); -float16 __ovld frexp(float16 x, int16 *exp); -#ifdef cl_khr_fp64 -double __ovld frexp(double x, int *exp); -double2 __ovld frexp(double2 x, int2 *exp); -double3 __ovld frexp(double3 x, int3 *exp); -double4 __ovld frexp(double4 x, int4 *exp); -double8 __ovld frexp(double8 x, int8 *exp); -double16 __ovld frexp(double16 x, int16 *exp); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld frexp(half x, int *exp); -half2 __ovld frexp(half2 x, int2 *exp); -half3 __ovld frexp(half3 x, int3 *exp); -half4 __ovld frexp(half4 x, int4 *exp); -half8 __ovld frexp(half8 x, int8 *exp); -half16 __ovld frexp(half16 x, int16 *exp); -#endif //cl_khr_fp16 -#else -float __ovld frexp(float x, __global int *exp); -float2 __ovld frexp(float2 x, __global int2 *exp); -float3 __ovld frexp(float3 x, __global int3 *exp); -float4 __ovld frexp(float4 x, __global int4 *exp); -float8 __ovld frexp(float8 x, __global int8 *exp); -float16 __ovld frexp(float16 x, __global int16 *exp); -float __ovld frexp(float x, __local int *exp); -float2 __ovld frexp(float2 x, __local int2 *exp); -float3 __ovld frexp(float3 x, __local int3 *exp); -float4 __ovld frexp(float4 x, __local int4 *exp); -float8 __ovld frexp(float8 x, __local int8 *exp); -float16 __ovld frexp(float16 x, __local int16 *exp); -float __ovld frexp(float x, __private int *exp); -float2 __ovld frexp(float2 x, __private int2 *exp); -float3 __ovld frexp(float3 x, __private int3 *exp); -float4 __ovld frexp(float4 x, __private int4 *exp); -float8 __ovld frexp(float8 x, __private int8 *exp); -float16 __ovld frexp(float16 x, __private int16 *exp); -#ifdef cl_khr_fp64 -double __ovld frexp(double x, __global int *exp); -double2 __ovld frexp(double2 x, __global int2 *exp); -double3 __ovld frexp(double3 x, __global int3 *exp); -double4 __ovld frexp(double4 x, __global int4 *exp); -double8 __ovld frexp(double8 x, __global int8 *exp); -double16 __ovld frexp(double16 x, __global int16 *exp); -double __ovld frexp(double x, __local int *exp); -double2 __ovld frexp(double2 x, __local int2 *exp); -double3 __ovld frexp(double3 x, __local int3 *exp); -double4 __ovld frexp(double4 x, __local int4 *exp); -double8 __ovld frexp(double8 x, __local int8 *exp); -double16 __ovld frexp(double16 x, __local int16 *exp); -double __ovld frexp(double x, __private int *exp); -double2 __ovld frexp(double2 x, __private int2 *exp); -double3 __ovld frexp(double3 x, __private int3 *exp); -double4 __ovld frexp(double4 x, __private int4 *exp); -double8 __ovld frexp(double8 x, __private int8 *exp); -double16 __ovld frexp(double16 x, __private int16 *exp); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld frexp(half x, __global int *exp); -half2 __ovld frexp(half2 x, __global int2 *exp); -half3 __ovld frexp(half3 x, __global int3 *exp); -half4 __ovld frexp(half4 x, __global int4 *exp); -half8 __ovld frexp(half8 x, __global int8 *exp); -half16 __ovld frexp(half16 x, __global int16 *exp); -half __ovld frexp(half x, __local int *exp); -half2 __ovld frexp(half2 x, __local int2 *exp); -half3 __ovld frexp(half3 x, __local int3 *exp); -half4 __ovld frexp(half4 x, __local int4 *exp); -half8 __ovld frexp(half8 x, __local int8 *exp); -half16 __ovld frexp(half16 x, __local int16 *exp); -half __ovld frexp(half x, __private int *exp); -half2 __ovld frexp(half2 x, __private int2 *exp); -half3 __ovld frexp(half3 x, __private int3 *exp); -half4 __ovld frexp(half4 x, __private int4 *exp); -half8 __ovld frexp(half8 x, __private int8 *exp); -half16 __ovld frexp(half16 x, __private int16 *exp); -#endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Compute the value of the square root of x^2 + y^2 - * without undue overflow or underflow. - */ -float __ovld __cnfn hypot(float x, float y); -float2 __ovld __cnfn hypot(float2 x, float2 y); -float3 __ovld __cnfn hypot(float3 x, float3 y); -float4 __ovld __cnfn hypot(float4 x, float4 y); -float8 __ovld __cnfn hypot(float8 x, float8 y); -float16 __ovld __cnfn hypot(float16 x, float16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn hypot(double x, double y); -double2 __ovld __cnfn hypot(double2 x, double2 y); -double3 __ovld __cnfn hypot(double3 x, double3 y); -double4 __ovld __cnfn hypot(double4 x, double4 y); -double8 __ovld __cnfn hypot(double8 x, double8 y); -double16 __ovld __cnfn hypot(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn hypot(half x, half y); -half2 __ovld __cnfn hypot(half2 x, half2 y); -half3 __ovld __cnfn hypot(half3 x, half3 y); -half4 __ovld __cnfn hypot(half4 x, half4 y); -half8 __ovld __cnfn hypot(half8 x, half8 y); -half16 __ovld __cnfn hypot(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Return the exponent as an integer value. - */ -int __ovld __cnfn ilogb(float x); -int2 __ovld __cnfn ilogb(float2 x); -int3 __ovld __cnfn ilogb(float3 x); -int4 __ovld __cnfn ilogb(float4 x); -int8 __ovld __cnfn ilogb(float8 x); -int16 __ovld __cnfn ilogb(float16 x); -#ifdef cl_khr_fp64 -int __ovld __cnfn ilogb(double x); -int2 __ovld __cnfn ilogb(double2 x); -int3 __ovld __cnfn ilogb(double3 x); -int4 __ovld __cnfn ilogb(double4 x); -int8 __ovld __cnfn ilogb(double8 x); -int16 __ovld __cnfn ilogb(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn ilogb(half x); -int2 __ovld __cnfn ilogb(half2 x); -int3 __ovld __cnfn ilogb(half3 x); -int4 __ovld __cnfn ilogb(half4 x); -int8 __ovld __cnfn ilogb(half8 x); -int16 __ovld __cnfn ilogb(half16 x); -#endif //cl_khr_fp16 - -/** - * Multiply x by 2 to the power n. - */ -float __ovld __cnfn ldexp(float x, int n); -float2 __ovld __cnfn ldexp(float2 x, int2 n); -float3 __ovld __cnfn ldexp(float3 x, int3 n); -float4 __ovld __cnfn ldexp(float4 x, int4 n); -float8 __ovld __cnfn ldexp(float8 x, int8 n); -float16 __ovld __cnfn ldexp(float16 x, int16 n); -float2 __ovld __cnfn ldexp(float2 x, int n); -float3 __ovld __cnfn ldexp(float3 x, int n); -float4 __ovld __cnfn ldexp(float4 x, int n); -float8 __ovld __cnfn ldexp(float8 x, int n); -float16 __ovld __cnfn ldexp(float16 x, int n); -#ifdef cl_khr_fp64 -double __ovld __cnfn ldexp(double x, int n); -double2 __ovld __cnfn ldexp(double2 x, int2 n); -double3 __ovld __cnfn ldexp(double3 x, int3 n); -double4 __ovld __cnfn ldexp(double4 x, int4 n); -double8 __ovld __cnfn ldexp(double8 x, int8 n); -double16 __ovld __cnfn ldexp(double16 x, int16 n); -double2 __ovld __cnfn ldexp(double2 x, int n); -double3 __ovld __cnfn ldexp(double3 x, int n); -double4 __ovld __cnfn ldexp(double4 x, int n); -double8 __ovld __cnfn ldexp(double8 x, int n); -double16 __ovld __cnfn ldexp(double16 x, int n); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn ldexp(half x, int n); -half2 __ovld __cnfn ldexp(half2 x, int2 n); -half3 __ovld __cnfn ldexp(half3 x, int3 n); -half4 __ovld __cnfn ldexp(half4 x, int4 n); -half8 __ovld __cnfn ldexp(half8 x, int8 n); -half16 __ovld __cnfn ldexp(half16 x, int16 n); -half2 __ovld __cnfn ldexp(half2 x, int n); -half3 __ovld __cnfn ldexp(half3 x, int n); -half4 __ovld __cnfn ldexp(half4 x, int n); -half8 __ovld __cnfn ldexp(half8 x, int n); -half16 __ovld __cnfn ldexp(half16 x, int n); -#endif //cl_khr_fp16 - -/** - * Log gamma function. Returns the natural - * logarithm of the absolute value of the gamma - * function. The sign of the gamma function is - * returned in the signp argument of lgamma_r. - */ -float __ovld __cnfn lgamma(float x); -float2 __ovld __cnfn lgamma(float2 x); -float3 __ovld __cnfn lgamma(float3 x); -float4 __ovld __cnfn lgamma(float4 x); -float8 __ovld __cnfn lgamma(float8 x); -float16 __ovld __cnfn lgamma(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn lgamma(double x); -double2 __ovld __cnfn lgamma(double2 x); -double3 __ovld __cnfn lgamma(double3 x); -double4 __ovld __cnfn lgamma(double4 x); -double8 __ovld __cnfn lgamma(double8 x); -double16 __ovld __cnfn lgamma(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn lgamma(half x); -half2 __ovld __cnfn lgamma(half2 x); -half3 __ovld __cnfn lgamma(half3 x); -half4 __ovld __cnfn lgamma(half4 x); -half8 __ovld __cnfn lgamma(half8 x); -half16 __ovld __cnfn lgamma(half16 x); -#endif //cl_khr_fp16 - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld lgamma_r(float x, int *signp); -float2 __ovld lgamma_r(float2 x, int2 *signp); -float3 __ovld lgamma_r(float3 x, int3 *signp); -float4 __ovld lgamma_r(float4 x, int4 *signp); -float8 __ovld lgamma_r(float8 x, int8 *signp); -float16 __ovld lgamma_r(float16 x, int16 *signp); -#ifdef cl_khr_fp64 -double __ovld lgamma_r(double x, int *signp); -double2 __ovld lgamma_r(double2 x, int2 *signp); -double3 __ovld lgamma_r(double3 x, int3 *signp); -double4 __ovld lgamma_r(double4 x, int4 *signp); -double8 __ovld lgamma_r(double8 x, int8 *signp); -double16 __ovld lgamma_r(double16 x, int16 *signp); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld lgamma_r(half x, int *signp); -half2 __ovld lgamma_r(half2 x, int2 *signp); -half3 __ovld lgamma_r(half3 x, int3 *signp); -half4 __ovld lgamma_r(half4 x, int4 *signp); -half8 __ovld lgamma_r(half8 x, int8 *signp); -half16 __ovld lgamma_r(half16 x, int16 *signp); -#endif //cl_khr_fp16 -#else -float __ovld lgamma_r(float x, __global int *signp); -float2 __ovld lgamma_r(float2 x, __global int2 *signp); -float3 __ovld lgamma_r(float3 x, __global int3 *signp); -float4 __ovld lgamma_r(float4 x, __global int4 *signp); -float8 __ovld lgamma_r(float8 x, __global int8 *signp); -float16 __ovld lgamma_r(float16 x, __global int16 *signp); -float __ovld lgamma_r(float x, __local int *signp); -float2 __ovld lgamma_r(float2 x, __local int2 *signp); -float3 __ovld lgamma_r(float3 x, __local int3 *signp); -float4 __ovld lgamma_r(float4 x, __local int4 *signp); -float8 __ovld lgamma_r(float8 x, __local int8 *signp); -float16 __ovld lgamma_r(float16 x, __local int16 *signp); -float __ovld lgamma_r(float x, __private int *signp); -float2 __ovld lgamma_r(float2 x, __private int2 *signp); -float3 __ovld lgamma_r(float3 x, __private int3 *signp); -float4 __ovld lgamma_r(float4 x, __private int4 *signp); -float8 __ovld lgamma_r(float8 x, __private int8 *signp); -float16 __ovld lgamma_r(float16 x, __private int16 *signp); -#ifdef cl_khr_fp64 -double __ovld lgamma_r(double x, __global int *signp); -double2 __ovld lgamma_r(double2 x, __global int2 *signp); -double3 __ovld lgamma_r(double3 x, __global int3 *signp); -double4 __ovld lgamma_r(double4 x, __global int4 *signp); -double8 __ovld lgamma_r(double8 x, __global int8 *signp); -double16 __ovld lgamma_r(double16 x, __global int16 *signp); -double __ovld lgamma_r(double x, __local int *signp); -double2 __ovld lgamma_r(double2 x, __local int2 *signp); -double3 __ovld lgamma_r(double3 x, __local int3 *signp); -double4 __ovld lgamma_r(double4 x, __local int4 *signp); -double8 __ovld lgamma_r(double8 x, __local int8 *signp); -double16 __ovld lgamma_r(double16 x, __local int16 *signp); -double __ovld lgamma_r(double x, __private int *signp); -double2 __ovld lgamma_r(double2 x, __private int2 *signp); -double3 __ovld lgamma_r(double3 x, __private int3 *signp); -double4 __ovld lgamma_r(double4 x, __private int4 *signp); -double8 __ovld lgamma_r(double8 x, __private int8 *signp); -double16 __ovld lgamma_r(double16 x, __private int16 *signp); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld lgamma_r(half x, __global int *signp); -half2 __ovld lgamma_r(half2 x, __global int2 *signp); -half3 __ovld lgamma_r(half3 x, __global int3 *signp); -half4 __ovld lgamma_r(half4 x, __global int4 *signp); -half8 __ovld lgamma_r(half8 x, __global int8 *signp); -half16 __ovld lgamma_r(half16 x, __global int16 *signp); -half __ovld lgamma_r(half x, __local int *signp); -half2 __ovld lgamma_r(half2 x, __local int2 *signp); -half3 __ovld lgamma_r(half3 x, __local int3 *signp); -half4 __ovld lgamma_r(half4 x, __local int4 *signp); -half8 __ovld lgamma_r(half8 x, __local int8 *signp); -half16 __ovld lgamma_r(half16 x, __local int16 *signp); -half __ovld lgamma_r(half x, __private int *signp); -half2 __ovld lgamma_r(half2 x, __private int2 *signp); -half3 __ovld lgamma_r(half3 x, __private int3 *signp); -half4 __ovld lgamma_r(half4 x, __private int4 *signp); -half8 __ovld lgamma_r(half8 x, __private int8 *signp); -half16 __ovld lgamma_r(half16 x, __private int16 *signp); -#endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Compute natural logarithm. - */ -float __ovld __cnfn log(float); -float2 __ovld __cnfn log(float2); -float3 __ovld __cnfn log(float3); -float4 __ovld __cnfn log(float4); -float8 __ovld __cnfn log(float8); -float16 __ovld __cnfn log(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn log(double); -double2 __ovld __cnfn log(double2); -double3 __ovld __cnfn log(double3); -double4 __ovld __cnfn log(double4); -double8 __ovld __cnfn log(double8); -double16 __ovld __cnfn log(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn log(half); -half2 __ovld __cnfn log(half2); -half3 __ovld __cnfn log(half3); -half4 __ovld __cnfn log(half4); -half8 __ovld __cnfn log(half8); -half16 __ovld __cnfn log(half16); -#endif //cl_khr_fp16 - -/** - * Compute a base 2 logarithm. - */ -float __ovld __cnfn log2(float); -float2 __ovld __cnfn log2(float2); -float3 __ovld __cnfn log2(float3); -float4 __ovld __cnfn log2(float4); -float8 __ovld __cnfn log2(float8); -float16 __ovld __cnfn log2(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn log2(double); -double2 __ovld __cnfn log2(double2); -double3 __ovld __cnfn log2(double3); -double4 __ovld __cnfn log2(double4); -double8 __ovld __cnfn log2(double8); -double16 __ovld __cnfn log2(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn log2(half); -half2 __ovld __cnfn log2(half2); -half3 __ovld __cnfn log2(half3); -half4 __ovld __cnfn log2(half4); -half8 __ovld __cnfn log2(half8); -half16 __ovld __cnfn log2(half16); -#endif //cl_khr_fp16 - -/** - * Compute a base 10 logarithm. - */ -float __ovld __cnfn log10(float); -float2 __ovld __cnfn log10(float2); -float3 __ovld __cnfn log10(float3); -float4 __ovld __cnfn log10(float4); -float8 __ovld __cnfn log10(float8); -float16 __ovld __cnfn log10(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn log10(double); -double2 __ovld __cnfn log10(double2); -double3 __ovld __cnfn log10(double3); -double4 __ovld __cnfn log10(double4); -double8 __ovld __cnfn log10(double8); -double16 __ovld __cnfn log10(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn log10(half); -half2 __ovld __cnfn log10(half2); -half3 __ovld __cnfn log10(half3); -half4 __ovld __cnfn log10(half4); -half8 __ovld __cnfn log10(half8); -half16 __ovld __cnfn log10(half16); -#endif //cl_khr_fp16 - -/** - * Compute a base e logarithm of (1.0 + x). - */ -float __ovld __cnfn log1p(float x); -float2 __ovld __cnfn log1p(float2 x); -float3 __ovld __cnfn log1p(float3 x); -float4 __ovld __cnfn log1p(float4 x); -float8 __ovld __cnfn log1p(float8 x); -float16 __ovld __cnfn log1p(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn log1p(double x); -double2 __ovld __cnfn log1p(double2 x); -double3 __ovld __cnfn log1p(double3 x); -double4 __ovld __cnfn log1p(double4 x); -double8 __ovld __cnfn log1p(double8 x); -double16 __ovld __cnfn log1p(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn log1p(half x); -half2 __ovld __cnfn log1p(half2 x); -half3 __ovld __cnfn log1p(half3 x); -half4 __ovld __cnfn log1p(half4 x); -half8 __ovld __cnfn log1p(half8 x); -half16 __ovld __cnfn log1p(half16 x); -#endif //cl_khr_fp16 - -/** - * Compute the exponent of x, which is the integral - * part of logr | x |. - */ -float __ovld __cnfn logb(float x); -float2 __ovld __cnfn logb(float2 x); -float3 __ovld __cnfn logb(float3 x); -float4 __ovld __cnfn logb(float4 x); -float8 __ovld __cnfn logb(float8 x); -float16 __ovld __cnfn logb(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn logb(double x); -double2 __ovld __cnfn logb(double2 x); -double3 __ovld __cnfn logb(double3 x); -double4 __ovld __cnfn logb(double4 x); -double8 __ovld __cnfn logb(double8 x); -double16 __ovld __cnfn logb(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn logb(half x); -half2 __ovld __cnfn logb(half2 x); -half3 __ovld __cnfn logb(half3 x); -half4 __ovld __cnfn logb(half4 x); -half8 __ovld __cnfn logb(half8 x); -half16 __ovld __cnfn logb(half16 x); -#endif //cl_khr_fp16 - -/** - * mad approximates a * b + c. Whether or how the - * product of a * b is rounded and how supernormal or - * subnormal intermediate products are handled is not - * defined. mad is intended to be used where speed is - * preferred over accuracy. - */ -float __ovld __cnfn mad(float a, float b, float c); -float2 __ovld __cnfn mad(float2 a, float2 b, float2 c); -float3 __ovld __cnfn mad(float3 a, float3 b, float3 c); -float4 __ovld __cnfn mad(float4 a, float4 b, float4 c); -float8 __ovld __cnfn mad(float8 a, float8 b, float8 c); -float16 __ovld __cnfn mad(float16 a, float16 b, float16 c); -#ifdef cl_khr_fp64 -double __ovld __cnfn mad(double a, double b, double c); -double2 __ovld __cnfn mad(double2 a, double2 b, double2 c); -double3 __ovld __cnfn mad(double3 a, double3 b, double3 c); -double4 __ovld __cnfn mad(double4 a, double4 b, double4 c); -double8 __ovld __cnfn mad(double8 a, double8 b, double8 c); -double16 __ovld __cnfn mad(double16 a, double16 b, double16 c); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn mad(half a, half b, half c); -half2 __ovld __cnfn mad(half2 a, half2 b, half2 c); -half3 __ovld __cnfn mad(half3 a, half3 b, half3 c); -half4 __ovld __cnfn mad(half4 a, half4 b, half4 c); -half8 __ovld __cnfn mad(half8 a, half8 b, half8 c); -half16 __ovld __cnfn mad(half16 a, half16 b, half16 c); -#endif //cl_khr_fp16 - -/** - * Returns x if | x | > | y |, y if | y | > | x |, otherwise - * fmax(x, y). - */ -float __ovld __cnfn maxmag(float x, float y); -float2 __ovld __cnfn maxmag(float2 x, float2 y); -float3 __ovld __cnfn maxmag(float3 x, float3 y); -float4 __ovld __cnfn maxmag(float4 x, float4 y); -float8 __ovld __cnfn maxmag(float8 x, float8 y); -float16 __ovld __cnfn maxmag(float16 x, float16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn maxmag(double x, double y); -double2 __ovld __cnfn maxmag(double2 x, double2 y); -double3 __ovld __cnfn maxmag(double3 x, double3 y); -double4 __ovld __cnfn maxmag(double4 x, double4 y); -double8 __ovld __cnfn maxmag(double8 x, double8 y); -double16 __ovld __cnfn maxmag(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn maxmag(half x, half y); -half2 __ovld __cnfn maxmag(half2 x, half2 y); -half3 __ovld __cnfn maxmag(half3 x, half3 y); -half4 __ovld __cnfn maxmag(half4 x, half4 y); -half8 __ovld __cnfn maxmag(half8 x, half8 y); -half16 __ovld __cnfn maxmag(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Returns x if | x | < | y |, y if | y | < | x |, otherwise - * fmin(x, y). - */ -float __ovld __cnfn minmag(float x, float y); -float2 __ovld __cnfn minmag(float2 x, float2 y); -float3 __ovld __cnfn minmag(float3 x, float3 y); -float4 __ovld __cnfn minmag(float4 x, float4 y); -float8 __ovld __cnfn minmag(float8 x, float8 y); -float16 __ovld __cnfn minmag(float16 x, float16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn minmag(double x, double y); -double2 __ovld __cnfn minmag(double2 x, double2 y); -double3 __ovld __cnfn minmag(double3 x, double3 y); -double4 __ovld __cnfn minmag(double4 x, double4 y); -double8 __ovld __cnfn minmag(double8 x, double8 y); -double16 __ovld __cnfn minmag(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn minmag(half x, half y); -half2 __ovld __cnfn minmag(half2 x, half2 y); -half3 __ovld __cnfn minmag(half3 x, half3 y); -half4 __ovld __cnfn minmag(half4 x, half4 y); -half8 __ovld __cnfn minmag(half8 x, half8 y); -half16 __ovld __cnfn minmag(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Decompose a floating-point number. The modf - * function breaks the argument x into integral and - * fractional parts, each of which has the same sign as - * the argument. It stores the integral part in the object - * pointed to by iptr. - */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld modf(float x, float *iptr); -float2 __ovld modf(float2 x, float2 *iptr); -float3 __ovld modf(float3 x, float3 *iptr); -float4 __ovld modf(float4 x, float4 *iptr); -float8 __ovld modf(float8 x, float8 *iptr); -float16 __ovld modf(float16 x, float16 *iptr); -#ifdef cl_khr_fp64 -double __ovld modf(double x, double *iptr); -double2 __ovld modf(double2 x, double2 *iptr); -double3 __ovld modf(double3 x, double3 *iptr); -double4 __ovld modf(double4 x, double4 *iptr); -double8 __ovld modf(double8 x, double8 *iptr); -double16 __ovld modf(double16 x, double16 *iptr); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld modf(half x, half *iptr); -half2 __ovld modf(half2 x, half2 *iptr); -half3 __ovld modf(half3 x, half3 *iptr); -half4 __ovld modf(half4 x, half4 *iptr); -half8 __ovld modf(half8 x, half8 *iptr); -half16 __ovld modf(half16 x, half16 *iptr); -#endif //cl_khr_fp16 -#else -float __ovld modf(float x, __global float *iptr); -float2 __ovld modf(float2 x, __global float2 *iptr); -float3 __ovld modf(float3 x, __global float3 *iptr); -float4 __ovld modf(float4 x, __global float4 *iptr); -float8 __ovld modf(float8 x, __global float8 *iptr); -float16 __ovld modf(float16 x, __global float16 *iptr); -float __ovld modf(float x, __local float *iptr); -float2 __ovld modf(float2 x, __local float2 *iptr); -float3 __ovld modf(float3 x, __local float3 *iptr); -float4 __ovld modf(float4 x, __local float4 *iptr); -float8 __ovld modf(float8 x, __local float8 *iptr); -float16 __ovld modf(float16 x, __local float16 *iptr); -float __ovld modf(float x, __private float *iptr); -float2 __ovld modf(float2 x, __private float2 *iptr); -float3 __ovld modf(float3 x, __private float3 *iptr); -float4 __ovld modf(float4 x, __private float4 *iptr); -float8 __ovld modf(float8 x, __private float8 *iptr); -float16 __ovld modf(float16 x, __private float16 *iptr); -#ifdef cl_khr_fp64 -double __ovld modf(double x, __global double *iptr); -double2 __ovld modf(double2 x, __global double2 *iptr); -double3 __ovld modf(double3 x, __global double3 *iptr); -double4 __ovld modf(double4 x, __global double4 *iptr); -double8 __ovld modf(double8 x, __global double8 *iptr); -double16 __ovld modf(double16 x, __global double16 *iptr); -double __ovld modf(double x, __local double *iptr); -double2 __ovld modf(double2 x, __local double2 *iptr); -double3 __ovld modf(double3 x, __local double3 *iptr); -double4 __ovld modf(double4 x, __local double4 *iptr); -double8 __ovld modf(double8 x, __local double8 *iptr); -double16 __ovld modf(double16 x, __local double16 *iptr); -double __ovld modf(double x, __private double *iptr); -double2 __ovld modf(double2 x, __private double2 *iptr); -double3 __ovld modf(double3 x, __private double3 *iptr); -double4 __ovld modf(double4 x, __private double4 *iptr); -double8 __ovld modf(double8 x, __private double8 *iptr); -double16 __ovld modf(double16 x, __private double16 *iptr); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld modf(half x, __global half *iptr); -half2 __ovld modf(half2 x, __global half2 *iptr); -half3 __ovld modf(half3 x, __global half3 *iptr); -half4 __ovld modf(half4 x, __global half4 *iptr); -half8 __ovld modf(half8 x, __global half8 *iptr); -half16 __ovld modf(half16 x, __global half16 *iptr); -half __ovld modf(half x, __local half *iptr); -half2 __ovld modf(half2 x, __local half2 *iptr); -half3 __ovld modf(half3 x, __local half3 *iptr); -half4 __ovld modf(half4 x, __local half4 *iptr); -half8 __ovld modf(half8 x, __local half8 *iptr); -half16 __ovld modf(half16 x, __local half16 *iptr); -half __ovld modf(half x, __private half *iptr); -half2 __ovld modf(half2 x, __private half2 *iptr); -half3 __ovld modf(half3 x, __private half3 *iptr); -half4 __ovld modf(half4 x, __private half4 *iptr); -half8 __ovld modf(half8 x, __private half8 *iptr); -half16 __ovld modf(half16 x, __private half16 *iptr); -#endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Returns a quiet NaN. The nancode may be placed - * in the significand of the resulting NaN. - */ -float __ovld __cnfn nan(uint nancode); -float2 __ovld __cnfn nan(uint2 nancode); -float3 __ovld __cnfn nan(uint3 nancode); -float4 __ovld __cnfn nan(uint4 nancode); -float8 __ovld __cnfn nan(uint8 nancode); -float16 __ovld __cnfn nan(uint16 nancode); -#ifdef cl_khr_fp64 -double __ovld __cnfn nan(ulong nancode); -double2 __ovld __cnfn nan(ulong2 nancode); -double3 __ovld __cnfn nan(ulong3 nancode); -double4 __ovld __cnfn nan(ulong4 nancode); -double8 __ovld __cnfn nan(ulong8 nancode); -double16 __ovld __cnfn nan(ulong16 nancode); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn nan(ushort nancode); -half2 __ovld __cnfn nan(ushort2 nancode); -half3 __ovld __cnfn nan(ushort3 nancode); -half4 __ovld __cnfn nan(ushort4 nancode); -half8 __ovld __cnfn nan(ushort8 nancode); -half16 __ovld __cnfn nan(ushort16 nancode); -#endif //cl_khr_fp16 - -/** - * Computes the next representable single-precision - * floating-point value following x in the direction of - * y. Thus, if y is less than x, nextafter() returns the - * largest representable floating-point number less - * than x. - */ -float __ovld __cnfn nextafter(float x, float y); -float2 __ovld __cnfn nextafter(float2 x, float2 y); -float3 __ovld __cnfn nextafter(float3 x, float3 y); -float4 __ovld __cnfn nextafter(float4 x, float4 y); -float8 __ovld __cnfn nextafter(float8 x, float8 y); -float16 __ovld __cnfn nextafter(float16 x, float16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn nextafter(double x, double y); -double2 __ovld __cnfn nextafter(double2 x, double2 y); -double3 __ovld __cnfn nextafter(double3 x, double3 y); -double4 __ovld __cnfn nextafter(double4 x, double4 y); -double8 __ovld __cnfn nextafter(double8 x, double8 y); -double16 __ovld __cnfn nextafter(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn nextafter(half x, half y); -half2 __ovld __cnfn nextafter(half2 x, half2 y); -half3 __ovld __cnfn nextafter(half3 x, half3 y); -half4 __ovld __cnfn nextafter(half4 x, half4 y); -half8 __ovld __cnfn nextafter(half8 x, half8 y); -half16 __ovld __cnfn nextafter(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Compute x to the power y. - */ -float __ovld __cnfn pow(float x, float y); -float2 __ovld __cnfn pow(float2 x, float2 y); -float3 __ovld __cnfn pow(float3 x, float3 y); -float4 __ovld __cnfn pow(float4 x, float4 y); -float8 __ovld __cnfn pow(float8 x, float8 y); -float16 __ovld __cnfn pow(float16 x, float16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn pow(double x, double y); -double2 __ovld __cnfn pow(double2 x, double2 y); -double3 __ovld __cnfn pow(double3 x, double3 y); -double4 __ovld __cnfn pow(double4 x, double4 y); -double8 __ovld __cnfn pow(double8 x, double8 y); -double16 __ovld __cnfn pow(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn pow(half x, half y); -half2 __ovld __cnfn pow(half2 x, half2 y); -half3 __ovld __cnfn pow(half3 x, half3 y); -half4 __ovld __cnfn pow(half4 x, half4 y); -half8 __ovld __cnfn pow(half8 x, half8 y); -half16 __ovld __cnfn pow(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Compute x to the power y, where y is an integer. - */ -float __ovld __cnfn pown(float x, int y); -float2 __ovld __cnfn pown(float2 x, int2 y); -float3 __ovld __cnfn pown(float3 x, int3 y); -float4 __ovld __cnfn pown(float4 x, int4 y); -float8 __ovld __cnfn pown(float8 x, int8 y); -float16 __ovld __cnfn pown(float16 x, int16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn pown(double x, int y); -double2 __ovld __cnfn pown(double2 x, int2 y); -double3 __ovld __cnfn pown(double3 x, int3 y); -double4 __ovld __cnfn pown(double4 x, int4 y); -double8 __ovld __cnfn pown(double8 x, int8 y); -double16 __ovld __cnfn pown(double16 x, int16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn pown(half x, int y); -half2 __ovld __cnfn pown(half2 x, int2 y); -half3 __ovld __cnfn pown(half3 x, int3 y); -half4 __ovld __cnfn pown(half4 x, int4 y); -half8 __ovld __cnfn pown(half8 x, int8 y); -half16 __ovld __cnfn pown(half16 x, int16 y); -#endif //cl_khr_fp16 - -/** - * Compute x to the power y, where x is >= 0. - */ -float __ovld __cnfn powr(float x, float y); -float2 __ovld __cnfn powr(float2 x, float2 y); -float3 __ovld __cnfn powr(float3 x, float3 y); -float4 __ovld __cnfn powr(float4 x, float4 y); -float8 __ovld __cnfn powr(float8 x, float8 y); -float16 __ovld __cnfn powr(float16 x, float16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn powr(double x, double y); -double2 __ovld __cnfn powr(double2 x, double2 y); -double3 __ovld __cnfn powr(double3 x, double3 y); -double4 __ovld __cnfn powr(double4 x, double4 y); -double8 __ovld __cnfn powr(double8 x, double8 y); -double16 __ovld __cnfn powr(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn powr(half x, half y); -half2 __ovld __cnfn powr(half2 x, half2 y); -half3 __ovld __cnfn powr(half3 x, half3 y); -half4 __ovld __cnfn powr(half4 x, half4 y); -half8 __ovld __cnfn powr(half8 x, half8 y); -half16 __ovld __cnfn powr(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Compute the value r such that r = x - n*y, where n - * is the integer nearest the exact value of x/y. If there - * are two integers closest to x/y, n shall be the even - * one. If r is zero, it is given the same sign as x. - */ -float __ovld __cnfn remainder(float x, float y); -float2 __ovld __cnfn remainder(float2 x, float2 y); -float3 __ovld __cnfn remainder(float3 x, float3 y); -float4 __ovld __cnfn remainder(float4 x, float4 y); -float8 __ovld __cnfn remainder(float8 x, float8 y); -float16 __ovld __cnfn remainder(float16 x, float16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn remainder(double x, double y); -double2 __ovld __cnfn remainder(double2 x, double2 y); -double3 __ovld __cnfn remainder(double3 x, double3 y); -double4 __ovld __cnfn remainder(double4 x, double4 y); -double8 __ovld __cnfn remainder(double8 x, double8 y); -double16 __ovld __cnfn remainder(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn remainder(half x, half y); -half2 __ovld __cnfn remainder(half2 x, half2 y); -half3 __ovld __cnfn remainder(half3 x, half3 y); -half4 __ovld __cnfn remainder(half4 x, half4 y); -half8 __ovld __cnfn remainder(half8 x, half8 y); -half16 __ovld __cnfn remainder(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * The remquo function computes the value r such - * that r = x - n*y, where n is the integer nearest the - * exact value of x/y. If there are two integers closest - * to x/y, n shall be the even one. If r is zero, it is - * given the same sign as x. This is the same value - * that is returned by the remainder function. - * remquo also calculates the lower seven bits of the - * integral quotient x/y, and gives that value the same - * sign as x/y. It stores this signed value in the object - * pointed to by quo. - */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld remquo(float x, float y, int *quo); -float2 __ovld remquo(float2 x, float2 y, int2 *quo); -float3 __ovld remquo(float3 x, float3 y, int3 *quo); -float4 __ovld remquo(float4 x, float4 y, int4 *quo); -float8 __ovld remquo(float8 x, float8 y, int8 *quo); -float16 __ovld remquo(float16 x, float16 y, int16 *quo); -#ifdef cl_khr_fp64 -double __ovld remquo(double x, double y, int *quo); -double2 __ovld remquo(double2 x, double2 y, int2 *quo); -double3 __ovld remquo(double3 x, double3 y, int3 *quo); -double4 __ovld remquo(double4 x, double4 y, int4 *quo); -double8 __ovld remquo(double8 x, double8 y, int8 *quo); -double16 __ovld remquo(double16 x, double16 y, int16 *quo); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld remquo(half x, half y, int *quo); -half2 __ovld remquo(half2 x, half2 y, int2 *quo); -half3 __ovld remquo(half3 x, half3 y, int3 *quo); -half4 __ovld remquo(half4 x, half4 y, int4 *quo); -half8 __ovld remquo(half8 x, half8 y, int8 *quo); -half16 __ovld remquo(half16 x, half16 y, int16 *quo); - -#endif //cl_khr_fp16 -#else -float __ovld remquo(float x, float y, __global int *quo); -float2 __ovld remquo(float2 x, float2 y, __global int2 *quo); -float3 __ovld remquo(float3 x, float3 y, __global int3 *quo); -float4 __ovld remquo(float4 x, float4 y, __global int4 *quo); -float8 __ovld remquo(float8 x, float8 y, __global int8 *quo); -float16 __ovld remquo(float16 x, float16 y, __global int16 *quo); -float __ovld remquo(float x, float y, __local int *quo); -float2 __ovld remquo(float2 x, float2 y, __local int2 *quo); -float3 __ovld remquo(float3 x, float3 y, __local int3 *quo); -float4 __ovld remquo(float4 x, float4 y, __local int4 *quo); -float8 __ovld remquo(float8 x, float8 y, __local int8 *quo); -float16 __ovld remquo(float16 x, float16 y, __local int16 *quo); -float __ovld remquo(float x, float y, __private int *quo); -float2 __ovld remquo(float2 x, float2 y, __private int2 *quo); -float3 __ovld remquo(float3 x, float3 y, __private int3 *quo); -float4 __ovld remquo(float4 x, float4 y, __private int4 *quo); -float8 __ovld remquo(float8 x, float8 y, __private int8 *quo); -float16 __ovld remquo(float16 x, float16 y, __private int16 *quo); -#ifdef cl_khr_fp64 -double __ovld remquo(double x, double y, __global int *quo); -double2 __ovld remquo(double2 x, double2 y, __global int2 *quo); -double3 __ovld remquo(double3 x, double3 y, __global int3 *quo); -double4 __ovld remquo(double4 x, double4 y, __global int4 *quo); -double8 __ovld remquo(double8 x, double8 y, __global int8 *quo); -double16 __ovld remquo(double16 x, double16 y, __global int16 *quo); -double __ovld remquo(double x, double y, __local int *quo); -double2 __ovld remquo(double2 x, double2 y, __local int2 *quo); -double3 __ovld remquo(double3 x, double3 y, __local int3 *quo); -double4 __ovld remquo(double4 x, double4 y, __local int4 *quo); -double8 __ovld remquo(double8 x, double8 y, __local int8 *quo); -double16 __ovld remquo(double16 x, double16 y, __local int16 *quo); -double __ovld remquo(double x, double y, __private int *quo); -double2 __ovld remquo(double2 x, double2 y, __private int2 *quo); -double3 __ovld remquo(double3 x, double3 y, __private int3 *quo); -double4 __ovld remquo(double4 x, double4 y, __private int4 *quo); -double8 __ovld remquo(double8 x, double8 y, __private int8 *quo); -double16 __ovld remquo(double16 x, double16 y, __private int16 *quo); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld remquo(half x, half y, __global int *quo); -half2 __ovld remquo(half2 x, half2 y, __global int2 *quo); -half3 __ovld remquo(half3 x, half3 y, __global int3 *quo); -half4 __ovld remquo(half4 x, half4 y, __global int4 *quo); -half8 __ovld remquo(half8 x, half8 y, __global int8 *quo); -half16 __ovld remquo(half16 x, half16 y, __global int16 *quo); -half __ovld remquo(half x, half y, __local int *quo); -half2 __ovld remquo(half2 x, half2 y, __local int2 *quo); -half3 __ovld remquo(half3 x, half3 y, __local int3 *quo); -half4 __ovld remquo(half4 x, half4 y, __local int4 *quo); -half8 __ovld remquo(half8 x, half8 y, __local int8 *quo); -half16 __ovld remquo(half16 x, half16 y, __local int16 *quo); -half __ovld remquo(half x, half y, __private int *quo); -half2 __ovld remquo(half2 x, half2 y, __private int2 *quo); -half3 __ovld remquo(half3 x, half3 y, __private int3 *quo); -half4 __ovld remquo(half4 x, half4 y, __private int4 *quo); -half8 __ovld remquo(half8 x, half8 y, __private int8 *quo); -half16 __ovld remquo(half16 x, half16 y, __private int16 *quo); -#endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -/** - * Round to integral value (using round to nearest - * even rounding mode) in floating-point format. - * Refer to section 7.1 for description of rounding - * modes. - */ -float __ovld __cnfn rint(float); -float2 __ovld __cnfn rint(float2); -float3 __ovld __cnfn rint(float3); -float4 __ovld __cnfn rint(float4); -float8 __ovld __cnfn rint(float8); -float16 __ovld __cnfn rint(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn rint(double); -double2 __ovld __cnfn rint(double2); -double3 __ovld __cnfn rint(double3); -double4 __ovld __cnfn rint(double4); -double8 __ovld __cnfn rint(double8); -double16 __ovld __cnfn rint(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn rint(half); -half2 __ovld __cnfn rint(half2); -half3 __ovld __cnfn rint(half3); -half4 __ovld __cnfn rint(half4); -half8 __ovld __cnfn rint(half8); -half16 __ovld __cnfn rint(half16); -#endif //cl_khr_fp16 - -/** - * Compute x to the power 1/y. - */ -float __ovld __cnfn rootn(float x, int y); -float2 __ovld __cnfn rootn(float2 x, int2 y); -float3 __ovld __cnfn rootn(float3 x, int3 y); -float4 __ovld __cnfn rootn(float4 x, int4 y); -float8 __ovld __cnfn rootn(float8 x, int8 y); -float16 __ovld __cnfn rootn(float16 x, int16 y); -#ifdef cl_khr_fp64 -double __ovld __cnfn rootn(double x, int y); -double2 __ovld __cnfn rootn(double2 x, int2 y); -double3 __ovld __cnfn rootn(double3 x, int3 y); -double4 __ovld __cnfn rootn(double4 x, int4 y); -double8 __ovld __cnfn rootn(double8 x, int8 y); -double16 __ovld __cnfn rootn(double16 x, int16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn rootn(half x, int y); -half2 __ovld __cnfn rootn(half2 x, int2 y); -half3 __ovld __cnfn rootn(half3 x, int3 y); -half4 __ovld __cnfn rootn(half4 x, int4 y); -half8 __ovld __cnfn rootn(half8 x, int8 y); -half16 __ovld __cnfn rootn(half16 x, int16 y); -#endif //cl_khr_fp16 - -/** - * Return the integral value nearest to x rounding - * halfway cases away from zero, regardless of the - * current rounding direction. - */ -float __ovld __cnfn round(float x); -float2 __ovld __cnfn round(float2 x); -float3 __ovld __cnfn round(float3 x); -float4 __ovld __cnfn round(float4 x); -float8 __ovld __cnfn round(float8 x); -float16 __ovld __cnfn round(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn round(double x); -double2 __ovld __cnfn round(double2 x); -double3 __ovld __cnfn round(double3 x); -double4 __ovld __cnfn round(double4 x); -double8 __ovld __cnfn round(double8 x); -double16 __ovld __cnfn round(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn round(half x); -half2 __ovld __cnfn round(half2 x); -half3 __ovld __cnfn round(half3 x); -half4 __ovld __cnfn round(half4 x); -half8 __ovld __cnfn round(half8 x); -half16 __ovld __cnfn round(half16 x); -#endif //cl_khr_fp16 - -/** - * Compute inverse square root. - */ -float __ovld __cnfn rsqrt(float); -float2 __ovld __cnfn rsqrt(float2); -float3 __ovld __cnfn rsqrt(float3); -float4 __ovld __cnfn rsqrt(float4); -float8 __ovld __cnfn rsqrt(float8); -float16 __ovld __cnfn rsqrt(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn rsqrt(double); -double2 __ovld __cnfn rsqrt(double2); -double3 __ovld __cnfn rsqrt(double3); -double4 __ovld __cnfn rsqrt(double4); -double8 __ovld __cnfn rsqrt(double8); -double16 __ovld __cnfn rsqrt(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn rsqrt(half); -half2 __ovld __cnfn rsqrt(half2); -half3 __ovld __cnfn rsqrt(half3); -half4 __ovld __cnfn rsqrt(half4); -half8 __ovld __cnfn rsqrt(half8); -half16 __ovld __cnfn rsqrt(half16); -#endif //cl_khr_fp16 - -/** - * Compute sine. - */ -float __ovld __cnfn sin(float); -float2 __ovld __cnfn sin(float2); -float3 __ovld __cnfn sin(float3); -float4 __ovld __cnfn sin(float4); -float8 __ovld __cnfn sin(float8); -float16 __ovld __cnfn sin(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn sin(double); -double2 __ovld __cnfn sin(double2); -double3 __ovld __cnfn sin(double3); -double4 __ovld __cnfn sin(double4); -double8 __ovld __cnfn sin(double8); -double16 __ovld __cnfn sin(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn sin(half); -half2 __ovld __cnfn sin(half2); -half3 __ovld __cnfn sin(half3); -half4 __ovld __cnfn sin(half4); -half8 __ovld __cnfn sin(half8); -half16 __ovld __cnfn sin(half16); -#endif //cl_khr_fp16 - -/** - * Compute sine and cosine of x. The computed sine - * is the return value and computed cosine is returned - * in cosval. - */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld sincos(float x, float *cosval); -float2 __ovld sincos(float2 x, float2 *cosval); -float3 __ovld sincos(float3 x, float3 *cosval); -float4 __ovld sincos(float4 x, float4 *cosval); -float8 __ovld sincos(float8 x, float8 *cosval); -float16 __ovld sincos(float16 x, float16 *cosval); -#ifdef cl_khr_fp64 -double __ovld sincos(double x, double *cosval); -double2 __ovld sincos(double2 x, double2 *cosval); -double3 __ovld sincos(double3 x, double3 *cosval); -double4 __ovld sincos(double4 x, double4 *cosval); -double8 __ovld sincos(double8 x, double8 *cosval); -double16 __ovld sincos(double16 x, double16 *cosval); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld sincos(half x, half *cosval); -half2 __ovld sincos(half2 x, half2 *cosval); -half3 __ovld sincos(half3 x, half3 *cosval); -half4 __ovld sincos(half4 x, half4 *cosval); -half8 __ovld sincos(half8 x, half8 *cosval); -half16 __ovld sincos(half16 x, half16 *cosval); -#endif //cl_khr_fp16 -#else -float __ovld sincos(float x, __global float *cosval); -float2 __ovld sincos(float2 x, __global float2 *cosval); -float3 __ovld sincos(float3 x, __global float3 *cosval); -float4 __ovld sincos(float4 x, __global float4 *cosval); -float8 __ovld sincos(float8 x, __global float8 *cosval); -float16 __ovld sincos(float16 x, __global float16 *cosval); -float __ovld sincos(float x, __local float *cosval); -float2 __ovld sincos(float2 x, __local float2 *cosval); -float3 __ovld sincos(float3 x, __local float3 *cosval); -float4 __ovld sincos(float4 x, __local float4 *cosval); -float8 __ovld sincos(float8 x, __local float8 *cosval); -float16 __ovld sincos(float16 x, __local float16 *cosval); -float __ovld sincos(float x, __private float *cosval); -float2 __ovld sincos(float2 x, __private float2 *cosval); -float3 __ovld sincos(float3 x, __private float3 *cosval); -float4 __ovld sincos(float4 x, __private float4 *cosval); -float8 __ovld sincos(float8 x, __private float8 *cosval); -float16 __ovld sincos(float16 x, __private float16 *cosval); -#ifdef cl_khr_fp64 -double __ovld sincos(double x, __global double *cosval); -double2 __ovld sincos(double2 x, __global double2 *cosval); -double3 __ovld sincos(double3 x, __global double3 *cosval); -double4 __ovld sincos(double4 x, __global double4 *cosval); -double8 __ovld sincos(double8 x, __global double8 *cosval); -double16 __ovld sincos(double16 x, __global double16 *cosval); -double __ovld sincos(double x, __local double *cosval); -double2 __ovld sincos(double2 x, __local double2 *cosval); -double3 __ovld sincos(double3 x, __local double3 *cosval); -double4 __ovld sincos(double4 x, __local double4 *cosval); -double8 __ovld sincos(double8 x, __local double8 *cosval); -double16 __ovld sincos(double16 x, __local double16 *cosval); -double __ovld sincos(double x, __private double *cosval); -double2 __ovld sincos(double2 x, __private double2 *cosval); -double3 __ovld sincos(double3 x, __private double3 *cosval); -double4 __ovld sincos(double4 x, __private double4 *cosval); -double8 __ovld sincos(double8 x, __private double8 *cosval); -double16 __ovld sincos(double16 x, __private double16 *cosval); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld sincos(half x, __global half *cosval); -half2 __ovld sincos(half2 x, __global half2 *cosval); -half3 __ovld sincos(half3 x, __global half3 *cosval); -half4 __ovld sincos(half4 x, __global half4 *cosval); -half8 __ovld sincos(half8 x, __global half8 *cosval); -half16 __ovld sincos(half16 x, __global half16 *cosval); -half __ovld sincos(half x, __local half *cosval); -half2 __ovld sincos(half2 x, __local half2 *cosval); -half3 __ovld sincos(half3 x, __local half3 *cosval); -half4 __ovld sincos(half4 x, __local half4 *cosval); -half8 __ovld sincos(half8 x, __local half8 *cosval); -half16 __ovld sincos(half16 x, __local half16 *cosval); -half __ovld sincos(half x, __private half *cosval); -half2 __ovld sincos(half2 x, __private half2 *cosval); -half3 __ovld sincos(half3 x, __private half3 *cosval); -half4 __ovld sincos(half4 x, __private half4 *cosval); -half8 __ovld sincos(half8 x, __private half8 *cosval); -half16 __ovld sincos(half16 x, __private half16 *cosval); -#endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Compute hyperbolic sine. - */ -float __ovld __cnfn sinh(float); -float2 __ovld __cnfn sinh(float2); -float3 __ovld __cnfn sinh(float3); -float4 __ovld __cnfn sinh(float4); -float8 __ovld __cnfn sinh(float8); -float16 __ovld __cnfn sinh(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn sinh(double); -double2 __ovld __cnfn sinh(double2); -double3 __ovld __cnfn sinh(double3); -double4 __ovld __cnfn sinh(double4); -double8 __ovld __cnfn sinh(double8); -double16 __ovld __cnfn sinh(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn sinh(half); -half2 __ovld __cnfn sinh(half2); -half3 __ovld __cnfn sinh(half3); -half4 __ovld __cnfn sinh(half4); -half8 __ovld __cnfn sinh(half8); -half16 __ovld __cnfn sinh(half16); -#endif //cl_khr_fp16 - -/** - * Compute sin (PI * x). - */ -float __ovld __cnfn sinpi(float x); -float2 __ovld __cnfn sinpi(float2 x); -float3 __ovld __cnfn sinpi(float3 x); -float4 __ovld __cnfn sinpi(float4 x); -float8 __ovld __cnfn sinpi(float8 x); -float16 __ovld __cnfn sinpi(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn sinpi(double x); -double2 __ovld __cnfn sinpi(double2 x); -double3 __ovld __cnfn sinpi(double3 x); -double4 __ovld __cnfn sinpi(double4 x); -double8 __ovld __cnfn sinpi(double8 x); -double16 __ovld __cnfn sinpi(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn sinpi(half x); -half2 __ovld __cnfn sinpi(half2 x); -half3 __ovld __cnfn sinpi(half3 x); -half4 __ovld __cnfn sinpi(half4 x); -half8 __ovld __cnfn sinpi(half8 x); -half16 __ovld __cnfn sinpi(half16 x); -#endif //cl_khr_fp16 - -/** - * Compute square root. - */ -float __ovld __cnfn sqrt(float); -float2 __ovld __cnfn sqrt(float2); -float3 __ovld __cnfn sqrt(float3); -float4 __ovld __cnfn sqrt(float4); -float8 __ovld __cnfn sqrt(float8); -float16 __ovld __cnfn sqrt(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn sqrt(double); -double2 __ovld __cnfn sqrt(double2); -double3 __ovld __cnfn sqrt(double3); -double4 __ovld __cnfn sqrt(double4); -double8 __ovld __cnfn sqrt(double8); -double16 __ovld __cnfn sqrt(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn sqrt(half); -half2 __ovld __cnfn sqrt(half2); -half3 __ovld __cnfn sqrt(half3); -half4 __ovld __cnfn sqrt(half4); -half8 __ovld __cnfn sqrt(half8); -half16 __ovld __cnfn sqrt(half16); -#endif //cl_khr_fp16 - -/** - * Compute tangent. - */ -float __ovld __cnfn tan(float); -float2 __ovld __cnfn tan(float2); -float3 __ovld __cnfn tan(float3); -float4 __ovld __cnfn tan(float4); -float8 __ovld __cnfn tan(float8); -float16 __ovld __cnfn tan(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn tan(double); -double2 __ovld __cnfn tan(double2); -double3 __ovld __cnfn tan(double3); -double4 __ovld __cnfn tan(double4); -double8 __ovld __cnfn tan(double8); -double16 __ovld __cnfn tan(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn tan(half); -half2 __ovld __cnfn tan(half2); -half3 __ovld __cnfn tan(half3); -half4 __ovld __cnfn tan(half4); -half8 __ovld __cnfn tan(half8); -half16 __ovld __cnfn tan(half16); -#endif //cl_khr_fp16 - -/** - * Compute hyperbolic tangent. - */ -float __ovld __cnfn tanh(float); -float2 __ovld __cnfn tanh(float2); -float3 __ovld __cnfn tanh(float3); -float4 __ovld __cnfn tanh(float4); -float8 __ovld __cnfn tanh(float8); -float16 __ovld __cnfn tanh(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn tanh(double); -double2 __ovld __cnfn tanh(double2); -double3 __ovld __cnfn tanh(double3); -double4 __ovld __cnfn tanh(double4); -double8 __ovld __cnfn tanh(double8); -double16 __ovld __cnfn tanh(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn tanh(half); -half2 __ovld __cnfn tanh(half2); -half3 __ovld __cnfn tanh(half3); -half4 __ovld __cnfn tanh(half4); -half8 __ovld __cnfn tanh(half8); -half16 __ovld __cnfn tanh(half16); -#endif //cl_khr_fp16 - -/** - * Compute tan (PI * x). - */ -float __ovld __cnfn tanpi(float x); -float2 __ovld __cnfn tanpi(float2 x); -float3 __ovld __cnfn tanpi(float3 x); -float4 __ovld __cnfn tanpi(float4 x); -float8 __ovld __cnfn tanpi(float8 x); -float16 __ovld __cnfn tanpi(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn tanpi(double x); -double2 __ovld __cnfn tanpi(double2 x); -double3 __ovld __cnfn tanpi(double3 x); -double4 __ovld __cnfn tanpi(double4 x); -double8 __ovld __cnfn tanpi(double8 x); -double16 __ovld __cnfn tanpi(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn tanpi(half x); -half2 __ovld __cnfn tanpi(half2 x); -half3 __ovld __cnfn tanpi(half3 x); -half4 __ovld __cnfn tanpi(half4 x); -half8 __ovld __cnfn tanpi(half8 x); -half16 __ovld __cnfn tanpi(half16 x); -#endif //cl_khr_fp16 - -/** - * Compute the gamma function. - */ -float __ovld __cnfn tgamma(float); -float2 __ovld __cnfn tgamma(float2); -float3 __ovld __cnfn tgamma(float3); -float4 __ovld __cnfn tgamma(float4); -float8 __ovld __cnfn tgamma(float8); -float16 __ovld __cnfn tgamma(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn tgamma(double); -double2 __ovld __cnfn tgamma(double2); -double3 __ovld __cnfn tgamma(double3); -double4 __ovld __cnfn tgamma(double4); -double8 __ovld __cnfn tgamma(double8); -double16 __ovld __cnfn tgamma(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn tgamma(half); -half2 __ovld __cnfn tgamma(half2); -half3 __ovld __cnfn tgamma(half3); -half4 __ovld __cnfn tgamma(half4); -half8 __ovld __cnfn tgamma(half8); -half16 __ovld __cnfn tgamma(half16); -#endif //cl_khr_fp16 - -/** - * Round to integral value using the round to zero - * rounding mode. - */ -float __ovld __cnfn trunc(float); -float2 __ovld __cnfn trunc(float2); -float3 __ovld __cnfn trunc(float3); -float4 __ovld __cnfn trunc(float4); -float8 __ovld __cnfn trunc(float8); -float16 __ovld __cnfn trunc(float16); -#ifdef cl_khr_fp64 -double __ovld __cnfn trunc(double); -double2 __ovld __cnfn trunc(double2); -double3 __ovld __cnfn trunc(double3); -double4 __ovld __cnfn trunc(double4); -double8 __ovld __cnfn trunc(double8); -double16 __ovld __cnfn trunc(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn trunc(half); -half2 __ovld __cnfn trunc(half2); -half3 __ovld __cnfn trunc(half3); -half4 __ovld __cnfn trunc(half4); -half8 __ovld __cnfn trunc(half8); -half16 __ovld __cnfn trunc(half16); -#endif //cl_khr_fp16 - -/** - * Compute cosine. x must be in the range -2^16 ... +2^16. - */ -float __ovld __cnfn half_cos(float x); -float2 __ovld __cnfn half_cos(float2 x); -float3 __ovld __cnfn half_cos(float3 x); -float4 __ovld __cnfn half_cos(float4 x); -float8 __ovld __cnfn half_cos(float8 x); -float16 __ovld __cnfn half_cos(float16 x); - -/** - * Compute x / y. - */ -float __ovld __cnfn half_divide(float x, float y); -float2 __ovld __cnfn half_divide(float2 x, float2 y); -float3 __ovld __cnfn half_divide(float3 x, float3 y); -float4 __ovld __cnfn half_divide(float4 x, float4 y); -float8 __ovld __cnfn half_divide(float8 x, float8 y); -float16 __ovld __cnfn half_divide(float16 x, float16 y); - -/** - * Compute the base- e exponential of x. - */ -float __ovld __cnfn half_exp(float x); -float2 __ovld __cnfn half_exp(float2 x); -float3 __ovld __cnfn half_exp(float3 x); -float4 __ovld __cnfn half_exp(float4 x); -float8 __ovld __cnfn half_exp(float8 x); -float16 __ovld __cnfn half_exp(float16 x); - -/** - * Compute the base- 2 exponential of x. - */ -float __ovld __cnfn half_exp2(float x); -float2 __ovld __cnfn half_exp2(float2 x); -float3 __ovld __cnfn half_exp2(float3 x); -float4 __ovld __cnfn half_exp2(float4 x); -float8 __ovld __cnfn half_exp2(float8 x); -float16 __ovld __cnfn half_exp2(float16 x); - -/** - * Compute the base- 10 exponential of x. - */ -float __ovld __cnfn half_exp10(float x); -float2 __ovld __cnfn half_exp10(float2 x); -float3 __ovld __cnfn half_exp10(float3 x); -float4 __ovld __cnfn half_exp10(float4 x); -float8 __ovld __cnfn half_exp10(float8 x); -float16 __ovld __cnfn half_exp10(float16 x); - -/** - * Compute natural logarithm. - */ -float __ovld __cnfn half_log(float x); -float2 __ovld __cnfn half_log(float2 x); -float3 __ovld __cnfn half_log(float3 x); -float4 __ovld __cnfn half_log(float4 x); -float8 __ovld __cnfn half_log(float8 x); -float16 __ovld __cnfn half_log(float16 x); - -/** - * Compute a base 2 logarithm. - */ -float __ovld __cnfn half_log2(float x); -float2 __ovld __cnfn half_log2(float2 x); -float3 __ovld __cnfn half_log2(float3 x); -float4 __ovld __cnfn half_log2(float4 x); -float8 __ovld __cnfn half_log2(float8 x); -float16 __ovld __cnfn half_log2(float16 x); - -/** - * Compute a base 10 logarithm. - */ -float __ovld __cnfn half_log10(float x); -float2 __ovld __cnfn half_log10(float2 x); -float3 __ovld __cnfn half_log10(float3 x); -float4 __ovld __cnfn half_log10(float4 x); -float8 __ovld __cnfn half_log10(float8 x); -float16 __ovld __cnfn half_log10(float16 x); - -/** - * Compute x to the power y, where x is >= 0. - */ -float __ovld __cnfn half_powr(float x, float y); -float2 __ovld __cnfn half_powr(float2 x, float2 y); -float3 __ovld __cnfn half_powr(float3 x, float3 y); -float4 __ovld __cnfn half_powr(float4 x, float4 y); -float8 __ovld __cnfn half_powr(float8 x, float8 y); -float16 __ovld __cnfn half_powr(float16 x, float16 y); - -/** - * Compute reciprocal. - */ -float __ovld __cnfn half_recip(float x); -float2 __ovld __cnfn half_recip(float2 x); -float3 __ovld __cnfn half_recip(float3 x); -float4 __ovld __cnfn half_recip(float4 x); -float8 __ovld __cnfn half_recip(float8 x); -float16 __ovld __cnfn half_recip(float16 x); - -/** - * Compute inverse square root. - */ -float __ovld __cnfn half_rsqrt(float x); -float2 __ovld __cnfn half_rsqrt(float2 x); -float3 __ovld __cnfn half_rsqrt(float3 x); -float4 __ovld __cnfn half_rsqrt(float4 x); -float8 __ovld __cnfn half_rsqrt(float8 x); -float16 __ovld __cnfn half_rsqrt(float16 x); - -/** - * Compute sine. x must be in the range -2^16 ... +2^16. - */ -float __ovld __cnfn half_sin(float x); -float2 __ovld __cnfn half_sin(float2 x); -float3 __ovld __cnfn half_sin(float3 x); -float4 __ovld __cnfn half_sin(float4 x); -float8 __ovld __cnfn half_sin(float8 x); -float16 __ovld __cnfn half_sin(float16 x); - -/** - * Compute square root. - */ -float __ovld __cnfn half_sqrt(float x); -float2 __ovld __cnfn half_sqrt(float2 x); -float3 __ovld __cnfn half_sqrt(float3 x); -float4 __ovld __cnfn half_sqrt(float4 x); -float8 __ovld __cnfn half_sqrt(float8 x); -float16 __ovld __cnfn half_sqrt(float16 x); - -/** - * Compute tangent. x must be in the range -216 ... +216. - */ -float __ovld __cnfn half_tan(float x); -float2 __ovld __cnfn half_tan(float2 x); -float3 __ovld __cnfn half_tan(float3 x); -float4 __ovld __cnfn half_tan(float4 x); -float8 __ovld __cnfn half_tan(float8 x); -float16 __ovld __cnfn half_tan(float16 x); - -/** - * Compute cosine over an implementation-defined range. - * The maximum error is implementation-defined. - */ -float __ovld __cnfn native_cos(float x); -float2 __ovld __cnfn native_cos(float2 x); -float3 __ovld __cnfn native_cos(float3 x); -float4 __ovld __cnfn native_cos(float4 x); -float8 __ovld __cnfn native_cos(float8 x); -float16 __ovld __cnfn native_cos(float16 x); - -/** - * Compute x / y over an implementation-defined range. - * The maximum error is implementation-defined. - */ -float __ovld __cnfn native_divide(float x, float y); -float2 __ovld __cnfn native_divide(float2 x, float2 y); -float3 __ovld __cnfn native_divide(float3 x, float3 y); -float4 __ovld __cnfn native_divide(float4 x, float4 y); -float8 __ovld __cnfn native_divide(float8 x, float8 y); -float16 __ovld __cnfn native_divide(float16 x, float16 y); - -/** - * Compute the base- e exponential of x over an - * implementation-defined range. The maximum error is - * implementation-defined. - */ -float __ovld __cnfn native_exp(float x); -float2 __ovld __cnfn native_exp(float2 x); -float3 __ovld __cnfn native_exp(float3 x); -float4 __ovld __cnfn native_exp(float4 x); -float8 __ovld __cnfn native_exp(float8 x); -float16 __ovld __cnfn native_exp(float16 x); - -/** - * Compute the base- 2 exponential of x over an - * implementation-defined range. The maximum error is - * implementation-defined. - */ -float __ovld __cnfn native_exp2(float x); -float2 __ovld __cnfn native_exp2(float2 x); -float3 __ovld __cnfn native_exp2(float3 x); -float4 __ovld __cnfn native_exp2(float4 x); -float8 __ovld __cnfn native_exp2(float8 x); -float16 __ovld __cnfn native_exp2(float16 x); - -/** - * Compute the base- 10 exponential of x over an - * implementation-defined range. The maximum error is - * implementation-defined. - */ -float __ovld __cnfn native_exp10(float x); -float2 __ovld __cnfn native_exp10(float2 x); -float3 __ovld __cnfn native_exp10(float3 x); -float4 __ovld __cnfn native_exp10(float4 x); -float8 __ovld __cnfn native_exp10(float8 x); -float16 __ovld __cnfn native_exp10(float16 x); - -/** - * Compute natural logarithm over an implementationdefined - * range. The maximum error is implementation - * defined. - */ -float __ovld __cnfn native_log(float x); -float2 __ovld __cnfn native_log(float2 x); -float3 __ovld __cnfn native_log(float3 x); -float4 __ovld __cnfn native_log(float4 x); -float8 __ovld __cnfn native_log(float8 x); -float16 __ovld __cnfn native_log(float16 x); - -/** - * Compute a base 2 logarithm over an implementationdefined - * range. The maximum error is implementationdefined. - */ -float __ovld __cnfn native_log2(float x); -float2 __ovld __cnfn native_log2(float2 x); -float3 __ovld __cnfn native_log2(float3 x); -float4 __ovld __cnfn native_log2(float4 x); -float8 __ovld __cnfn native_log2(float8 x); -float16 __ovld __cnfn native_log2(float16 x); - -/** - * Compute a base 10 logarithm over an implementationdefined - * range. The maximum error is implementationdefined. - */ -float __ovld __cnfn native_log10(float x); -float2 __ovld __cnfn native_log10(float2 x); -float3 __ovld __cnfn native_log10(float3 x); -float4 __ovld __cnfn native_log10(float4 x); -float8 __ovld __cnfn native_log10(float8 x); -float16 __ovld __cnfn native_log10(float16 x); - -/** - * Compute x to the power y, where x is >= 0. The range of - * x and y are implementation-defined. The maximum error - * is implementation-defined. - */ -float __ovld __cnfn native_powr(float x, float y); -float2 __ovld __cnfn native_powr(float2 x, float2 y); -float3 __ovld __cnfn native_powr(float3 x, float3 y); -float4 __ovld __cnfn native_powr(float4 x, float4 y); -float8 __ovld __cnfn native_powr(float8 x, float8 y); -float16 __ovld __cnfn native_powr(float16 x, float16 y); - -/** - * Compute reciprocal over an implementation-defined - * range. The maximum error is implementation-defined. - */ -float __ovld __cnfn native_recip(float x); -float2 __ovld __cnfn native_recip(float2 x); -float3 __ovld __cnfn native_recip(float3 x); -float4 __ovld __cnfn native_recip(float4 x); -float8 __ovld __cnfn native_recip(float8 x); -float16 __ovld __cnfn native_recip(float16 x); - -/** - * Compute inverse square root over an implementationdefined - * range. The maximum error is implementationdefined. - */ -float __ovld __cnfn native_rsqrt(float x); -float2 __ovld __cnfn native_rsqrt(float2 x); -float3 __ovld __cnfn native_rsqrt(float3 x); -float4 __ovld __cnfn native_rsqrt(float4 x); -float8 __ovld __cnfn native_rsqrt(float8 x); -float16 __ovld __cnfn native_rsqrt(float16 x); - -/** - * Compute sine over an implementation-defined range. - * The maximum error is implementation-defined. - */ -float __ovld __cnfn native_sin(float x); -float2 __ovld __cnfn native_sin(float2 x); -float3 __ovld __cnfn native_sin(float3 x); -float4 __ovld __cnfn native_sin(float4 x); -float8 __ovld __cnfn native_sin(float8 x); -float16 __ovld __cnfn native_sin(float16 x); - -/** - * Compute square root over an implementation-defined - * range. The maximum error is implementation-defined. - */ -float __ovld __cnfn native_sqrt(float x); -float2 __ovld __cnfn native_sqrt(float2 x); -float3 __ovld __cnfn native_sqrt(float3 x); -float4 __ovld __cnfn native_sqrt(float4 x); -float8 __ovld __cnfn native_sqrt(float8 x); -float16 __ovld __cnfn native_sqrt(float16 x); - -/** - * Compute tangent over an implementation-defined range. - * The maximum error is implementation-defined. - */ -float __ovld __cnfn native_tan(float x); -float2 __ovld __cnfn native_tan(float2 x); -float3 __ovld __cnfn native_tan(float3 x); -float4 __ovld __cnfn native_tan(float4 x); -float8 __ovld __cnfn native_tan(float8 x); -float16 __ovld __cnfn native_tan(float16 x); - -// OpenCL v1.1 s6.11.3, v1.2 s6.12.3, v2.0 s6.13.3 - Integer Functions - -/** - * Returns | x |. - */ -uchar __ovld __cnfn abs(char x); -uchar __ovld __cnfn abs(uchar x); -uchar2 __ovld __cnfn abs(char2 x); -uchar2 __ovld __cnfn abs(uchar2 x); -uchar3 __ovld __cnfn abs(char3 x); -uchar3 __ovld __cnfn abs(uchar3 x); -uchar4 __ovld __cnfn abs(char4 x); -uchar4 __ovld __cnfn abs(uchar4 x); -uchar8 __ovld __cnfn abs(char8 x); -uchar8 __ovld __cnfn abs(uchar8 x); -uchar16 __ovld __cnfn abs(char16 x); -uchar16 __ovld __cnfn abs(uchar16 x); -ushort __ovld __cnfn abs(short x); -ushort __ovld __cnfn abs(ushort x); -ushort2 __ovld __cnfn abs(short2 x); -ushort2 __ovld __cnfn abs(ushort2 x); -ushort3 __ovld __cnfn abs(short3 x); -ushort3 __ovld __cnfn abs(ushort3 x); -ushort4 __ovld __cnfn abs(short4 x); -ushort4 __ovld __cnfn abs(ushort4 x); -ushort8 __ovld __cnfn abs(short8 x); -ushort8 __ovld __cnfn abs(ushort8 x); -ushort16 __ovld __cnfn abs(short16 x); -ushort16 __ovld __cnfn abs(ushort16 x); -uint __ovld __cnfn abs(int x); -uint __ovld __cnfn abs(uint x); -uint2 __ovld __cnfn abs(int2 x); -uint2 __ovld __cnfn abs(uint2 x); -uint3 __ovld __cnfn abs(int3 x); -uint3 __ovld __cnfn abs(uint3 x); -uint4 __ovld __cnfn abs(int4 x); -uint4 __ovld __cnfn abs(uint4 x); -uint8 __ovld __cnfn abs(int8 x); -uint8 __ovld __cnfn abs(uint8 x); -uint16 __ovld __cnfn abs(int16 x); -uint16 __ovld __cnfn abs(uint16 x); -ulong __ovld __cnfn abs(long x); -ulong __ovld __cnfn abs(ulong x); -ulong2 __ovld __cnfn abs(long2 x); -ulong2 __ovld __cnfn abs(ulong2 x); -ulong3 __ovld __cnfn abs(long3 x); -ulong3 __ovld __cnfn abs(ulong3 x); -ulong4 __ovld __cnfn abs(long4 x); -ulong4 __ovld __cnfn abs(ulong4 x); -ulong8 __ovld __cnfn abs(long8 x); -ulong8 __ovld __cnfn abs(ulong8 x); -ulong16 __ovld __cnfn abs(long16 x); -ulong16 __ovld __cnfn abs(ulong16 x); - -/** - * Returns | x - y | without modulo overflow. - */ -uchar __ovld __cnfn abs_diff(char x, char y); -uchar __ovld __cnfn abs_diff(uchar x, uchar y); -uchar2 __ovld __cnfn abs_diff(char2 x, char2 y); -uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y); -uchar3 __ovld __cnfn abs_diff(char3 x, char3 y); -uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y); -uchar4 __ovld __cnfn abs_diff(char4 x, char4 y); -uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y); -uchar8 __ovld __cnfn abs_diff(char8 x, char8 y); -uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y); -uchar16 __ovld __cnfn abs_diff(char16 x, char16 y); -uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y); -ushort __ovld __cnfn abs_diff(short x, short y); -ushort __ovld __cnfn abs_diff(ushort x, ushort y); -ushort2 __ovld __cnfn abs_diff(short2 x, short2 y); -ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y); -ushort3 __ovld __cnfn abs_diff(short3 x, short3 y); -ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y); -ushort4 __ovld __cnfn abs_diff(short4 x, short4 y); -ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y); -ushort8 __ovld __cnfn abs_diff(short8 x, short8 y); -ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y); -ushort16 __ovld __cnfn abs_diff(short16 x, short16 y); -ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y); -uint __ovld __cnfn abs_diff(int x, int y); -uint __ovld __cnfn abs_diff(uint x, uint y); -uint2 __ovld __cnfn abs_diff(int2 x, int2 y); -uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y); -uint3 __ovld __cnfn abs_diff(int3 x, int3 y); -uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y); -uint4 __ovld __cnfn abs_diff(int4 x, int4 y); -uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y); -uint8 __ovld __cnfn abs_diff(int8 x, int8 y); -uint8 __ovld __cnfn abs_diff(uint8 x, uint8 y); -uint16 __ovld __cnfn abs_diff(int16 x, int16 y); -uint16 __ovld __cnfn abs_diff(uint16 x, uint16 y); -ulong __ovld __cnfn abs_diff(long x, long y); -ulong __ovld __cnfn abs_diff(ulong x, ulong y); -ulong2 __ovld __cnfn abs_diff(long2 x, long2 y); -ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y); -ulong3 __ovld __cnfn abs_diff(long3 x, long3 y); -ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y); -ulong4 __ovld __cnfn abs_diff(long4 x, long4 y); -ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y); -ulong8 __ovld __cnfn abs_diff(long8 x, long8 y); -ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y); -ulong16 __ovld __cnfn abs_diff(long16 x, long16 y); -ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y); - -/** - * Returns x + y and saturates the result. - */ -char __ovld __cnfn add_sat(char x, char y); -uchar __ovld __cnfn add_sat(uchar x, uchar y); -char2 __ovld __cnfn add_sat(char2 x, char2 y); -uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y); -char3 __ovld __cnfn add_sat(char3 x, char3 y); -uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y); -char4 __ovld __cnfn add_sat(char4 x, char4 y); -uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y); -char8 __ovld __cnfn add_sat(char8 x, char8 y); -uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y); -char16 __ovld __cnfn add_sat(char16 x, char16 y); -uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y); -short __ovld __cnfn add_sat(short x, short y); -ushort __ovld __cnfn add_sat(ushort x, ushort y); -short2 __ovld __cnfn add_sat(short2 x, short2 y); -ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y); -short3 __ovld __cnfn add_sat(short3 x, short3 y); -ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y); -short4 __ovld __cnfn add_sat(short4 x, short4 y); -ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y); -short8 __ovld __cnfn add_sat(short8 x, short8 y); -ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y); -short16 __ovld __cnfn add_sat(short16 x, short16 y); -ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y); -int __ovld __cnfn add_sat(int x, int y); -uint __ovld __cnfn add_sat(uint x, uint y); -int2 __ovld __cnfn add_sat(int2 x, int2 y); -uint2 __ovld __cnfn add_sat(uint2 x, uint2 y); -int3 __ovld __cnfn add_sat(int3 x, int3 y); -uint3 __ovld __cnfn add_sat(uint3 x, uint3 y); -int4 __ovld __cnfn add_sat(int4 x, int4 y); -uint4 __ovld __cnfn add_sat(uint4 x, uint4 y); -int8 __ovld __cnfn add_sat(int8 x, int8 y); -uint8 __ovld __cnfn add_sat(uint8 x, uint8 y); -int16 __ovld __cnfn add_sat(int16 x, int16 y); -uint16 __ovld __cnfn add_sat(uint16 x, uint16 y); -long __ovld __cnfn add_sat(long x, long y); -ulong __ovld __cnfn add_sat(ulong x, ulong y); -long2 __ovld __cnfn add_sat(long2 x, long2 y); -ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y); -long3 __ovld __cnfn add_sat(long3 x, long3 y); -ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y); -long4 __ovld __cnfn add_sat(long4 x, long4 y); -ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y); -long8 __ovld __cnfn add_sat(long8 x, long8 y); -ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y); -long16 __ovld __cnfn add_sat(long16 x, long16 y); -ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y); - -/** - * Returns (x + y) >> 1. The intermediate sum does - * not modulo overflow. - */ -char __ovld __cnfn hadd(char x, char y); -uchar __ovld __cnfn hadd(uchar x, uchar y); -char2 __ovld __cnfn hadd(char2 x, char2 y); -uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y); -char3 __ovld __cnfn hadd(char3 x, char3 y); -uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y); -char4 __ovld __cnfn hadd(char4 x, char4 y); -uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y); -char8 __ovld __cnfn hadd(char8 x, char8 y); -uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y); -char16 __ovld __cnfn hadd(char16 x, char16 y); -uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y); -short __ovld __cnfn hadd(short x, short y); -ushort __ovld __cnfn hadd(ushort x, ushort y); -short2 __ovld __cnfn hadd(short2 x, short2 y); -ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y); -short3 __ovld __cnfn hadd(short3 x, short3 y); -ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y); -short4 __ovld __cnfn hadd(short4 x, short4 y); -ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y); -short8 __ovld __cnfn hadd(short8 x, short8 y); -ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y); -short16 __ovld __cnfn hadd(short16 x, short16 y); -ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y); -int __ovld __cnfn hadd(int x, int y); -uint __ovld __cnfn hadd(uint x, uint y); -int2 __ovld __cnfn hadd(int2 x, int2 y); -uint2 __ovld __cnfn hadd(uint2 x, uint2 y); -int3 __ovld __cnfn hadd(int3 x, int3 y); -uint3 __ovld __cnfn hadd(uint3 x, uint3 y); -int4 __ovld __cnfn hadd(int4 x, int4 y); -uint4 __ovld __cnfn hadd(uint4 x, uint4 y); -int8 __ovld __cnfn hadd(int8 x, int8 y); -uint8 __ovld __cnfn hadd(uint8 x, uint8 y); -int16 __ovld __cnfn hadd(int16 x, int16 y); -uint16 __ovld __cnfn hadd(uint16 x, uint16 y); -long __ovld __cnfn hadd(long x, long y); -ulong __ovld __cnfn hadd(ulong x, ulong y); -long2 __ovld __cnfn hadd(long2 x, long2 y); -ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y); -long3 __ovld __cnfn hadd(long3 x, long3 y); -ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y); -long4 __ovld __cnfn hadd(long4 x, long4 y); -ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y); -long8 __ovld __cnfn hadd(long8 x, long8 y); -ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y); -long16 __ovld __cnfn hadd(long16 x, long16 y); -ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y); - -/** - * Returns (x + y + 1) >> 1. The intermediate sum - * does not modulo overflow. - */ -char __ovld __cnfn rhadd(char x, char y); -uchar __ovld __cnfn rhadd(uchar x, uchar y); -char2 __ovld __cnfn rhadd(char2 x, char2 y); -uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y); -char3 __ovld __cnfn rhadd(char3 x, char3 y); -uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y); -char4 __ovld __cnfn rhadd(char4 x, char4 y); -uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y); -char8 __ovld __cnfn rhadd(char8 x, char8 y); -uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y); -char16 __ovld __cnfn rhadd(char16 x, char16 y); -uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y); -short __ovld __cnfn rhadd(short x, short y); -ushort __ovld __cnfn rhadd(ushort x, ushort y); -short2 __ovld __cnfn rhadd(short2 x, short2 y); -ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y); -short3 __ovld __cnfn rhadd(short3 x, short3 y); -ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y); -short4 __ovld __cnfn rhadd(short4 x, short4 y); -ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y); -short8 __ovld __cnfn rhadd(short8 x, short8 y); -ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y); -short16 __ovld __cnfn rhadd(short16 x, short16 y); -ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y); -int __ovld __cnfn rhadd(int x, int y); -uint __ovld __cnfn rhadd(uint x, uint y); -int2 __ovld __cnfn rhadd(int2 x, int2 y); -uint2 __ovld __cnfn rhadd(uint2 x, uint2 y); -int3 __ovld __cnfn rhadd(int3 x, int3 y); -uint3 __ovld __cnfn rhadd(uint3 x, uint3 y); -int4 __ovld __cnfn rhadd(int4 x, int4 y); -uint4 __ovld __cnfn rhadd(uint4 x, uint4 y); -int8 __ovld __cnfn rhadd(int8 x, int8 y); -uint8 __ovld __cnfn rhadd(uint8 x, uint8 y); -int16 __ovld __cnfn rhadd(int16 x, int16 y); -uint16 __ovld __cnfn rhadd(uint16 x, uint16 y); -long __ovld __cnfn rhadd(long x, long y); -ulong __ovld __cnfn rhadd(ulong x, ulong y); -long2 __ovld __cnfn rhadd(long2 x, long2 y); -ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y); -long3 __ovld __cnfn rhadd(long3 x, long3 y); -ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y); -long4 __ovld __cnfn rhadd(long4 x, long4 y); -ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y); -long8 __ovld __cnfn rhadd(long8 x, long8 y); -ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y); -long16 __ovld __cnfn rhadd(long16 x, long16 y); -ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y); - -/** - * Returns min(max(x, minval), maxval). - * Results are undefined if minval > maxval. - */ -char __ovld __cnfn clamp(char x, char minval, char maxval); -uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval); -char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval); -uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval); -char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval); -uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval); -char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval); -uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval); -char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval); -uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval); -char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval); -uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval); -short __ovld __cnfn clamp(short x, short minval, short maxval); -ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval); -short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval); -ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval); -short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval); -ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval); -short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval); -ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval); -short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval); -ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval); -short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval); -ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval); -int __ovld __cnfn clamp(int x, int minval, int maxval); -uint __ovld __cnfn clamp(uint x, uint minval, uint maxval); -int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval); -uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval); -int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval); -uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval); -int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval); -uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval); -int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval); -uint8 __ovld __cnfn clamp(uint8 x, uint8 minval, uint8 maxval); -int16 __ovld __cnfn clamp(int16 x, int16 minval, int16 maxval); -uint16 __ovld __cnfn clamp(uint16 x, uint16 minval, uint16 maxval); -long __ovld __cnfn clamp(long x, long minval, long maxval); -ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval); -long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval); -ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval); -long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval); -ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval); -long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval); -ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval); -long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval); -ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval); -long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval); -ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval); -char2 __ovld __cnfn clamp(char2 x, char minval, char maxval); -uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval); -char3 __ovld __cnfn clamp(char3 x, char minval, char maxval); -uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval); -char4 __ovld __cnfn clamp(char4 x, char minval, char maxval); -uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval); -char8 __ovld __cnfn clamp(char8 x, char minval, char maxval); -uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval); -char16 __ovld __cnfn clamp(char16 x, char minval, char maxval); -uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval); -short2 __ovld __cnfn clamp(short2 x, short minval, short maxval); -ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval); -short3 __ovld __cnfn clamp(short3 x, short minval, short maxval); -ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval); -short4 __ovld __cnfn clamp(short4 x, short minval, short maxval); -ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval); -short8 __ovld __cnfn clamp(short8 x, short minval, short maxval); -ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval); -short16 __ovld __cnfn clamp(short16 x, short minval, short maxval); -ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval); -int2 __ovld __cnfn clamp(int2 x, int minval, int maxval); -uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval); -int3 __ovld __cnfn clamp(int3 x, int minval, int maxval); -uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval); -int4 __ovld __cnfn clamp(int4 x, int minval, int maxval); -uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval); -int8 __ovld __cnfn clamp(int8 x, int minval, int maxval); -uint8 __ovld __cnfn clamp(uint8 x, uint minval, uint maxval); -int16 __ovld __cnfn clamp(int16 x, int minval, int maxval); -uint16 __ovld __cnfn clamp(uint16 x, uint minval, uint maxval); -long2 __ovld __cnfn clamp(long2 x, long minval, long maxval); -ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval); -long3 __ovld __cnfn clamp(long3 x, long minval, long maxval); -ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval); -long4 __ovld __cnfn clamp(long4 x, long minval, long maxval); -ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval); -long8 __ovld __cnfn clamp(long8 x, long minval, long maxval); -ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval); -long16 __ovld __cnfn clamp(long16 x, long minval, long maxval); -ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval); - -/** - * Returns the number of leading 0-bits in x, starting - * at the most significant bit position. - */ -char __ovld __cnfn clz(char x); -uchar __ovld __cnfn clz(uchar x); -char2 __ovld __cnfn clz(char2 x); -uchar2 __ovld __cnfn clz(uchar2 x); -char3 __ovld __cnfn clz(char3 x); -uchar3 __ovld __cnfn clz(uchar3 x); -char4 __ovld __cnfn clz(char4 x); -uchar4 __ovld __cnfn clz(uchar4 x); -char8 __ovld __cnfn clz(char8 x); -uchar8 __ovld __cnfn clz(uchar8 x); -char16 __ovld __cnfn clz(char16 x); -uchar16 __ovld __cnfn clz(uchar16 x); -short __ovld __cnfn clz(short x); -ushort __ovld __cnfn clz(ushort x); -short2 __ovld __cnfn clz(short2 x); -ushort2 __ovld __cnfn clz(ushort2 x); -short3 __ovld __cnfn clz(short3 x); -ushort3 __ovld __cnfn clz(ushort3 x); -short4 __ovld __cnfn clz(short4 x); -ushort4 __ovld __cnfn clz(ushort4 x); -short8 __ovld __cnfn clz(short8 x); -ushort8 __ovld __cnfn clz(ushort8 x); -short16 __ovld __cnfn clz(short16 x); -ushort16 __ovld __cnfn clz(ushort16 x); -int __ovld __cnfn clz(int x); -uint __ovld __cnfn clz(uint x); -int2 __ovld __cnfn clz(int2 x); -uint2 __ovld __cnfn clz(uint2 x); -int3 __ovld __cnfn clz(int3 x); -uint3 __ovld __cnfn clz(uint3 x); -int4 __ovld __cnfn clz(int4 x); -uint4 __ovld __cnfn clz(uint4 x); -int8 __ovld __cnfn clz(int8 x); -uint8 __ovld __cnfn clz(uint8 x); -int16 __ovld __cnfn clz(int16 x); -uint16 __ovld __cnfn clz(uint16 x); -long __ovld __cnfn clz(long x); -ulong __ovld __cnfn clz(ulong x); -long2 __ovld __cnfn clz(long2 x); -ulong2 __ovld __cnfn clz(ulong2 x); -long3 __ovld __cnfn clz(long3 x); -ulong3 __ovld __cnfn clz(ulong3 x); -long4 __ovld __cnfn clz(long4 x); -ulong4 __ovld __cnfn clz(ulong4 x); -long8 __ovld __cnfn clz(long8 x); -ulong8 __ovld __cnfn clz(ulong8 x); -long16 __ovld __cnfn clz(long16 x); -ulong16 __ovld __cnfn clz(ulong16 x); - -/** - * Returns the count of trailing 0-bits in x. If x is 0, - * returns the size in bits of the type of x or - * component type of x, if x is a vector. - */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -char __ovld ctz(char x); -uchar __ovld ctz(uchar x); -char2 __ovld ctz(char2 x); -uchar2 __ovld ctz(uchar2 x); -char3 __ovld ctz(char3 x); -uchar3 __ovld ctz(uchar3 x); -char4 __ovld ctz(char4 x); -uchar4 __ovld ctz(uchar4 x); -char8 __ovld ctz(char8 x); -uchar8 __ovld ctz(uchar8 x); -char16 __ovld ctz(char16 x); -uchar16 __ovld ctz(uchar16 x); -short __ovld ctz(short x); -ushort __ovld ctz(ushort x); -short2 __ovld ctz(short2 x); -ushort2 __ovld ctz(ushort2 x); -short3 __ovld ctz(short3 x); -ushort3 __ovld ctz(ushort3 x); -short4 __ovld ctz(short4 x); -ushort4 __ovld ctz(ushort4 x); -short8 __ovld ctz(short8 x); -ushort8 __ovld ctz(ushort8 x); -short16 __ovld ctz(short16 x); -ushort16 __ovld ctz(ushort16 x); -int __ovld ctz(int x); -uint __ovld ctz(uint x); -int2 __ovld ctz(int2 x); -uint2 __ovld ctz(uint2 x); -int3 __ovld ctz(int3 x); -uint3 __ovld ctz(uint3 x); -int4 __ovld ctz(int4 x); -uint4 __ovld ctz(uint4 x); -int8 __ovld ctz(int8 x); -uint8 __ovld ctz(uint8 x); -int16 __ovld ctz(int16 x); -uint16 __ovld ctz(uint16 x); -long __ovld ctz(long x); -ulong __ovld ctz(ulong x); -long2 __ovld ctz(long2 x); -ulong2 __ovld ctz(ulong2 x); -long3 __ovld ctz(long3 x); -ulong3 __ovld ctz(ulong3 x); -long4 __ovld ctz(long4 x); -ulong4 __ovld ctz(ulong4 x); -long8 __ovld ctz(long8 x); -ulong8 __ovld ctz(ulong8 x); -long16 __ovld ctz(long16 x); -ulong16 __ovld ctz(ulong16 x); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Returns mul_hi(a, b) + c. - */ -char __ovld __cnfn mad_hi(char a, char b, char c); -uchar __ovld __cnfn mad_hi(uchar a, uchar b, uchar c); -char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c); -short __ovld __cnfn mad_hi(short a, short b, short c); -ushort __ovld __cnfn mad_hi(ushort a, ushort b, ushort c); -short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c); -int __ovld __cnfn mad_hi(int a, int b, int c); -uint __ovld __cnfn mad_hi(uint a, uint b, uint c); -int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn mad_hi(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn mad_hi(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn mad_hi(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn mad_hi(uint16 a, uint16 b, uint16 c); -long __ovld __cnfn mad_hi(long a, long b, long c); -ulong __ovld __cnfn mad_hi(ulong a, ulong b, ulong c); -long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c); - -/** - * Returns a * b + c and saturates the result. - */ -char __ovld __cnfn mad_sat(char a, char b, char c); -uchar __ovld __cnfn mad_sat(uchar a, uchar b, uchar c); -char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c); -short __ovld __cnfn mad_sat(short a, short b, short c); -ushort __ovld __cnfn mad_sat(ushort a, ushort b, ushort c); -short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c); -int __ovld __cnfn mad_sat(int a, int b, int c); -uint __ovld __cnfn mad_sat(uint a, uint b, uint c); -int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn mad_sat(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn mad_sat(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn mad_sat(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn mad_sat(uint16 a, uint16 b, uint16 c); -long __ovld __cnfn mad_sat(long a, long b, long c); -ulong __ovld __cnfn mad_sat(ulong a, ulong b, ulong c); -long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c); - -/** - * Returns y if x < y, otherwise it returns x. - */ -char __ovld __cnfn max(char x, char y); -uchar __ovld __cnfn max(uchar x, uchar y); -char2 __ovld __cnfn max(char2 x, char2 y); -uchar2 __ovld __cnfn max(uchar2 x, uchar2 y); -char3 __ovld __cnfn max(char3 x, char3 y); -uchar3 __ovld __cnfn max(uchar3 x, uchar3 y); -char4 __ovld __cnfn max(char4 x, char4 y); -uchar4 __ovld __cnfn max(uchar4 x, uchar4 y); -char8 __ovld __cnfn max(char8 x, char8 y); -uchar8 __ovld __cnfn max(uchar8 x, uchar8 y); -char16 __ovld __cnfn max(char16 x, char16 y); -uchar16 __ovld __cnfn max(uchar16 x, uchar16 y); -short __ovld __cnfn max(short x, short y); -ushort __ovld __cnfn max(ushort x, ushort y); -short2 __ovld __cnfn max(short2 x, short2 y); -ushort2 __ovld __cnfn max(ushort2 x, ushort2 y); -short3 __ovld __cnfn max(short3 x, short3 y); -ushort3 __ovld __cnfn max(ushort3 x, ushort3 y); -short4 __ovld __cnfn max(short4 x, short4 y); -ushort4 __ovld __cnfn max(ushort4 x, ushort4 y); -short8 __ovld __cnfn max(short8 x, short8 y); -ushort8 __ovld __cnfn max(ushort8 x, ushort8 y); -short16 __ovld __cnfn max(short16 x, short16 y); -ushort16 __ovld __cnfn max(ushort16 x, ushort16 y); -int __ovld __cnfn max(int x, int y); -uint __ovld __cnfn max(uint x, uint y); -int2 __ovld __cnfn max(int2 x, int2 y); -uint2 __ovld __cnfn max(uint2 x, uint2 y); -int3 __ovld __cnfn max(int3 x, int3 y); -uint3 __ovld __cnfn max(uint3 x, uint3 y); -int4 __ovld __cnfn max(int4 x, int4 y); -uint4 __ovld __cnfn max(uint4 x, uint4 y); -int8 __ovld __cnfn max(int8 x, int8 y); -uint8 __ovld __cnfn max(uint8 x, uint8 y); -int16 __ovld __cnfn max(int16 x, int16 y); -uint16 __ovld __cnfn max(uint16 x, uint16 y); -long __ovld __cnfn max(long x, long y); -ulong __ovld __cnfn max(ulong x, ulong y); -long2 __ovld __cnfn max(long2 x, long2 y); -ulong2 __ovld __cnfn max(ulong2 x, ulong2 y); -long3 __ovld __cnfn max(long3 x, long3 y); -ulong3 __ovld __cnfn max(ulong3 x, ulong3 y); -long4 __ovld __cnfn max(long4 x, long4 y); -ulong4 __ovld __cnfn max(ulong4 x, ulong4 y); -long8 __ovld __cnfn max(long8 x, long8 y); -ulong8 __ovld __cnfn max(ulong8 x, ulong8 y); -long16 __ovld __cnfn max(long16 x, long16 y); -ulong16 __ovld __cnfn max(ulong16 x, ulong16 y); -char2 __ovld __cnfn max(char2 x, char y); -uchar2 __ovld __cnfn max(uchar2 x, uchar y); -char3 __ovld __cnfn max(char3 x, char y); -uchar3 __ovld __cnfn max(uchar3 x, uchar y); -char4 __ovld __cnfn max(char4 x, char y); -uchar4 __ovld __cnfn max(uchar4 x, uchar y); -char8 __ovld __cnfn max(char8 x, char y); -uchar8 __ovld __cnfn max(uchar8 x, uchar y); -char16 __ovld __cnfn max(char16 x, char y); -uchar16 __ovld __cnfn max(uchar16 x, uchar y); -short2 __ovld __cnfn max(short2 x, short y); -ushort2 __ovld __cnfn max(ushort2 x, ushort y); -short3 __ovld __cnfn max(short3 x, short y); -ushort3 __ovld __cnfn max(ushort3 x, ushort y); -short4 __ovld __cnfn max(short4 x, short y); -ushort4 __ovld __cnfn max(ushort4 x, ushort y); -short8 __ovld __cnfn max(short8 x, short y); -ushort8 __ovld __cnfn max(ushort8 x, ushort y); -short16 __ovld __cnfn max(short16 x, short y); -ushort16 __ovld __cnfn max(ushort16 x, ushort y); -int2 __ovld __cnfn max(int2 x, int y); -uint2 __ovld __cnfn max(uint2 x, uint y); -int3 __ovld __cnfn max(int3 x, int y); -uint3 __ovld __cnfn max(uint3 x, uint y); -int4 __ovld __cnfn max(int4 x, int y); -uint4 __ovld __cnfn max(uint4 x, uint y); -int8 __ovld __cnfn max(int8 x, int y); -uint8 __ovld __cnfn max(uint8 x, uint y); -int16 __ovld __cnfn max(int16 x, int y); -uint16 __ovld __cnfn max(uint16 x, uint y); -long2 __ovld __cnfn max(long2 x, long y); -ulong2 __ovld __cnfn max(ulong2 x, ulong y); -long3 __ovld __cnfn max(long3 x, long y); -ulong3 __ovld __cnfn max(ulong3 x, ulong y); -long4 __ovld __cnfn max(long4 x, long y); -ulong4 __ovld __cnfn max(ulong4 x, ulong y); -long8 __ovld __cnfn max(long8 x, long y); -ulong8 __ovld __cnfn max(ulong8 x, ulong y); -long16 __ovld __cnfn max(long16 x, long y); -ulong16 __ovld __cnfn max(ulong16 x, ulong y); - -/** - * Returns y if y < x, otherwise it returns x. - */ -char __ovld __cnfn min(char x, char y); -uchar __ovld __cnfn min(uchar x, uchar y); -char2 __ovld __cnfn min(char2 x, char2 y); -uchar2 __ovld __cnfn min(uchar2 x, uchar2 y); -char3 __ovld __cnfn min(char3 x, char3 y); -uchar3 __ovld __cnfn min(uchar3 x, uchar3 y); -char4 __ovld __cnfn min(char4 x, char4 y); -uchar4 __ovld __cnfn min(uchar4 x, uchar4 y); -char8 __ovld __cnfn min(char8 x, char8 y); -uchar8 __ovld __cnfn min(uchar8 x, uchar8 y); -char16 __ovld __cnfn min(char16 x, char16 y); -uchar16 __ovld __cnfn min(uchar16 x, uchar16 y); -short __ovld __cnfn min(short x, short y); -ushort __ovld __cnfn min(ushort x, ushort y); -short2 __ovld __cnfn min(short2 x, short2 y); -ushort2 __ovld __cnfn min(ushort2 x, ushort2 y); -short3 __ovld __cnfn min(short3 x, short3 y); -ushort3 __ovld __cnfn min(ushort3 x, ushort3 y); -short4 __ovld __cnfn min(short4 x, short4 y); -ushort4 __ovld __cnfn min(ushort4 x, ushort4 y); -short8 __ovld __cnfn min(short8 x, short8 y); -ushort8 __ovld __cnfn min(ushort8 x, ushort8 y); -short16 __ovld __cnfn min(short16 x, short16 y); -ushort16 __ovld __cnfn min(ushort16 x, ushort16 y); -int __ovld __cnfn min(int x, int y); -uint __ovld __cnfn min(uint x, uint y); -int2 __ovld __cnfn min(int2 x, int2 y); -uint2 __ovld __cnfn min(uint2 x, uint2 y); -int3 __ovld __cnfn min(int3 x, int3 y); -uint3 __ovld __cnfn min(uint3 x, uint3 y); -int4 __ovld __cnfn min(int4 x, int4 y); -uint4 __ovld __cnfn min(uint4 x, uint4 y); -int8 __ovld __cnfn min(int8 x, int8 y); -uint8 __ovld __cnfn min(uint8 x, uint8 y); -int16 __ovld __cnfn min(int16 x, int16 y); -uint16 __ovld __cnfn min(uint16 x, uint16 y); -long __ovld __cnfn min(long x, long y); -ulong __ovld __cnfn min(ulong x, ulong y); -long2 __ovld __cnfn min(long2 x, long2 y); -ulong2 __ovld __cnfn min(ulong2 x, ulong2 y); -long3 __ovld __cnfn min(long3 x, long3 y); -ulong3 __ovld __cnfn min(ulong3 x, ulong3 y); -long4 __ovld __cnfn min(long4 x, long4 y); -ulong4 __ovld __cnfn min(ulong4 x, ulong4 y); -long8 __ovld __cnfn min(long8 x, long8 y); -ulong8 __ovld __cnfn min(ulong8 x, ulong8 y); -long16 __ovld __cnfn min(long16 x, long16 y); -ulong16 __ovld __cnfn min(ulong16 x, ulong16 y); -char2 __ovld __cnfn min(char2 x, char y); -uchar2 __ovld __cnfn min(uchar2 x, uchar y); -char3 __ovld __cnfn min(char3 x, char y); -uchar3 __ovld __cnfn min(uchar3 x, uchar y); -char4 __ovld __cnfn min(char4 x, char y); -uchar4 __ovld __cnfn min(uchar4 x, uchar y); -char8 __ovld __cnfn min(char8 x, char y); -uchar8 __ovld __cnfn min(uchar8 x, uchar y); -char16 __ovld __cnfn min(char16 x, char y); -uchar16 __ovld __cnfn min(uchar16 x, uchar y); -short2 __ovld __cnfn min(short2 x, short y); -ushort2 __ovld __cnfn min(ushort2 x, ushort y); -short3 __ovld __cnfn min(short3 x, short y); -ushort3 __ovld __cnfn min(ushort3 x, ushort y); -short4 __ovld __cnfn min(short4 x, short y); -ushort4 __ovld __cnfn min(ushort4 x, ushort y); -short8 __ovld __cnfn min(short8 x, short y); -ushort8 __ovld __cnfn min(ushort8 x, ushort y); -short16 __ovld __cnfn min(short16 x, short y); -ushort16 __ovld __cnfn min(ushort16 x, ushort y); -int2 __ovld __cnfn min(int2 x, int y); -uint2 __ovld __cnfn min(uint2 x, uint y); -int3 __ovld __cnfn min(int3 x, int y); -uint3 __ovld __cnfn min(uint3 x, uint y); -int4 __ovld __cnfn min(int4 x, int y); -uint4 __ovld __cnfn min(uint4 x, uint y); -int8 __ovld __cnfn min(int8 x, int y); -uint8 __ovld __cnfn min(uint8 x, uint y); -int16 __ovld __cnfn min(int16 x, int y); -uint16 __ovld __cnfn min(uint16 x, uint y); -long2 __ovld __cnfn min(long2 x, long y); -ulong2 __ovld __cnfn min(ulong2 x, ulong y); -long3 __ovld __cnfn min(long3 x, long y); -ulong3 __ovld __cnfn min(ulong3 x, ulong y); -long4 __ovld __cnfn min(long4 x, long y); -ulong4 __ovld __cnfn min(ulong4 x, ulong y); -long8 __ovld __cnfn min(long8 x, long y); -ulong8 __ovld __cnfn min(ulong8 x, ulong y); -long16 __ovld __cnfn min(long16 x, long y); -ulong16 __ovld __cnfn min(ulong16 x, ulong y); - -/** - * Computes x * y and returns the high half of the - * product of x and y. - */ -char __ovld __cnfn mul_hi(char x, char y); -uchar __ovld __cnfn mul_hi(uchar x, uchar y); -char2 __ovld __cnfn mul_hi(char2 x, char2 y); -uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y); -char3 __ovld __cnfn mul_hi(char3 x, char3 y); -uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y); -char4 __ovld __cnfn mul_hi(char4 x, char4 y); -uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y); -char8 __ovld __cnfn mul_hi(char8 x, char8 y); -uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y); -char16 __ovld __cnfn mul_hi(char16 x, char16 y); -uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y); -short __ovld __cnfn mul_hi(short x, short y); -ushort __ovld __cnfn mul_hi(ushort x, ushort y); -short2 __ovld __cnfn mul_hi(short2 x, short2 y); -ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y); -short3 __ovld __cnfn mul_hi(short3 x, short3 y); -ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y); -short4 __ovld __cnfn mul_hi(short4 x, short4 y); -ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y); -short8 __ovld __cnfn mul_hi(short8 x, short8 y); -ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y); -short16 __ovld __cnfn mul_hi(short16 x, short16 y); -ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y); -int __ovld __cnfn mul_hi(int x, int y); -uint __ovld __cnfn mul_hi(uint x, uint y); -int2 __ovld __cnfn mul_hi(int2 x, int2 y); -uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y); -int3 __ovld __cnfn mul_hi(int3 x, int3 y); -uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y); -int4 __ovld __cnfn mul_hi(int4 x, int4 y); -uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y); -int8 __ovld __cnfn mul_hi(int8 x, int8 y); -uint8 __ovld __cnfn mul_hi(uint8 x, uint8 y); -int16 __ovld __cnfn mul_hi(int16 x, int16 y); -uint16 __ovld __cnfn mul_hi(uint16 x, uint16 y); -long __ovld __cnfn mul_hi(long x, long y); -ulong __ovld __cnfn mul_hi(ulong x, ulong y); -long2 __ovld __cnfn mul_hi(long2 x, long2 y); -ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y); -long3 __ovld __cnfn mul_hi(long3 x, long3 y); -ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y); -long4 __ovld __cnfn mul_hi(long4 x, long4 y); -ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y); -long8 __ovld __cnfn mul_hi(long8 x, long8 y); -ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y); -long16 __ovld __cnfn mul_hi(long16 x, long16 y); -ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y); - -/** - * For each element in v, the bits are shifted left by - * the number of bits given by the corresponding - * element in i (subject to usual shift modulo rules - * described in section 6.3). Bits shifted off the left - * side of the element are shifted back in from the - * right. - */ -char __ovld __cnfn rotate(char v, char i); -uchar __ovld __cnfn rotate(uchar v, uchar i); -char2 __ovld __cnfn rotate(char2 v, char2 i); -uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i); -char3 __ovld __cnfn rotate(char3 v, char3 i); -uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i); -char4 __ovld __cnfn rotate(char4 v, char4 i); -uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i); -char8 __ovld __cnfn rotate(char8 v, char8 i); -uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i); -char16 __ovld __cnfn rotate(char16 v, char16 i); -uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i); -short __ovld __cnfn rotate(short v, short i); -ushort __ovld __cnfn rotate(ushort v, ushort i); -short2 __ovld __cnfn rotate(short2 v, short2 i); -ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i); -short3 __ovld __cnfn rotate(short3 v, short3 i); -ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i); -short4 __ovld __cnfn rotate(short4 v, short4 i); -ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i); -short8 __ovld __cnfn rotate(short8 v, short8 i); -ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i); -short16 __ovld __cnfn rotate(short16 v, short16 i); -ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i); -int __ovld __cnfn rotate(int v, int i); -uint __ovld __cnfn rotate(uint v, uint i); -int2 __ovld __cnfn rotate(int2 v, int2 i); -uint2 __ovld __cnfn rotate(uint2 v, uint2 i); -int3 __ovld __cnfn rotate(int3 v, int3 i); -uint3 __ovld __cnfn rotate(uint3 v, uint3 i); -int4 __ovld __cnfn rotate(int4 v, int4 i); -uint4 __ovld __cnfn rotate(uint4 v, uint4 i); -int8 __ovld __cnfn rotate(int8 v, int8 i); -uint8 __ovld __cnfn rotate(uint8 v, uint8 i); -int16 __ovld __cnfn rotate(int16 v, int16 i); -uint16 __ovld __cnfn rotate(uint16 v, uint16 i); -long __ovld __cnfn rotate(long v, long i); -ulong __ovld __cnfn rotate(ulong v, ulong i); -long2 __ovld __cnfn rotate(long2 v, long2 i); -ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i); -long3 __ovld __cnfn rotate(long3 v, long3 i); -ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i); -long4 __ovld __cnfn rotate(long4 v, long4 i); -ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i); -long8 __ovld __cnfn rotate(long8 v, long8 i); -ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i); -long16 __ovld __cnfn rotate(long16 v, long16 i); -ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i); - -/** - * Returns x - y and saturates the result. - */ -char __ovld __cnfn sub_sat(char x, char y); -uchar __ovld __cnfn sub_sat(uchar x, uchar y); -char2 __ovld __cnfn sub_sat(char2 x, char2 y); -uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y); -char3 __ovld __cnfn sub_sat(char3 x, char3 y); -uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y); -char4 __ovld __cnfn sub_sat(char4 x, char4 y); -uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y); -char8 __ovld __cnfn sub_sat(char8 x, char8 y); -uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y); -char16 __ovld __cnfn sub_sat(char16 x, char16 y); -uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y); -short __ovld __cnfn sub_sat(short x, short y); -ushort __ovld __cnfn sub_sat(ushort x, ushort y); -short2 __ovld __cnfn sub_sat(short2 x, short2 y); -ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y); -short3 __ovld __cnfn sub_sat(short3 x, short3 y); -ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y); -short4 __ovld __cnfn sub_sat(short4 x, short4 y); -ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y); -short8 __ovld __cnfn sub_sat(short8 x, short8 y); -ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y); -short16 __ovld __cnfn sub_sat(short16 x, short16 y); -ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y); -int __ovld __cnfn sub_sat(int x, int y); -uint __ovld __cnfn sub_sat(uint x, uint y); -int2 __ovld __cnfn sub_sat(int2 x, int2 y); -uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y); -int3 __ovld __cnfn sub_sat(int3 x, int3 y); -uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y); -int4 __ovld __cnfn sub_sat(int4 x, int4 y); -uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y); -int8 __ovld __cnfn sub_sat(int8 x, int8 y); -uint8 __ovld __cnfn sub_sat(uint8 x, uint8 y); -int16 __ovld __cnfn sub_sat(int16 x, int16 y); -uint16 __ovld __cnfn sub_sat(uint16 x, uint16 y); -long __ovld __cnfn sub_sat(long x, long y); -ulong __ovld __cnfn sub_sat(ulong x, ulong y); -long2 __ovld __cnfn sub_sat(long2 x, long2 y); -ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y); -long3 __ovld __cnfn sub_sat(long3 x, long3 y); -ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y); -long4 __ovld __cnfn sub_sat(long4 x, long4 y); -ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y); -long8 __ovld __cnfn sub_sat(long8 x, long8 y); -ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y); -long16 __ovld __cnfn sub_sat(long16 x, long16 y); -ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y); - -/** - * result[i] = ((short)hi[i] << 8) | lo[i] - * result[i] = ((ushort)hi[i] << 8) | lo[i] - */ -short __ovld __cnfn upsample(char hi, uchar lo); -ushort __ovld __cnfn upsample(uchar hi, uchar lo); -short2 __ovld __cnfn upsample(char2 hi, uchar2 lo); -short3 __ovld __cnfn upsample(char3 hi, uchar3 lo); -short4 __ovld __cnfn upsample(char4 hi, uchar4 lo); -short8 __ovld __cnfn upsample(char8 hi, uchar8 lo); -short16 __ovld __cnfn upsample(char16 hi, uchar16 lo); -ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo); -ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo); -ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo); -ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo); -ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo); - -/** - * result[i] = ((int)hi[i] << 16) | lo[i] - * result[i] = ((uint)hi[i] << 16) | lo[i] - */ -int __ovld __cnfn upsample(short hi, ushort lo); -uint __ovld __cnfn upsample(ushort hi, ushort lo); -int2 __ovld __cnfn upsample(short2 hi, ushort2 lo); -int3 __ovld __cnfn upsample(short3 hi, ushort3 lo); -int4 __ovld __cnfn upsample(short4 hi, ushort4 lo); -int8 __ovld __cnfn upsample(short8 hi, ushort8 lo); -int16 __ovld __cnfn upsample(short16 hi, ushort16 lo); -uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo); -uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo); -uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo); -uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo); -uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo); -/** - * result[i] = ((long)hi[i] << 32) | lo[i] - * result[i] = ((ulong)hi[i] << 32) | lo[i] - */ -long __ovld __cnfn upsample(int hi, uint lo); -ulong __ovld __cnfn upsample(uint hi, uint lo); -long2 __ovld __cnfn upsample(int2 hi, uint2 lo); -long3 __ovld __cnfn upsample(int3 hi, uint3 lo); -long4 __ovld __cnfn upsample(int4 hi, uint4 lo); -long8 __ovld __cnfn upsample(int8 hi, uint8 lo); -long16 __ovld __cnfn upsample(int16 hi, uint16 lo); -ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo); -ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo); -ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo); -ulong8 __ovld __cnfn upsample(uint8 hi, uint8 lo); -ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo); - -/* - * popcount(x): returns the number of set bit in x - */ -char __ovld __cnfn popcount(char x); -uchar __ovld __cnfn popcount(uchar x); -char2 __ovld __cnfn popcount(char2 x); -uchar2 __ovld __cnfn popcount(uchar2 x); -char3 __ovld __cnfn popcount(char3 x); -uchar3 __ovld __cnfn popcount(uchar3 x); -char4 __ovld __cnfn popcount(char4 x); -uchar4 __ovld __cnfn popcount(uchar4 x); -char8 __ovld __cnfn popcount(char8 x); -uchar8 __ovld __cnfn popcount(uchar8 x); -char16 __ovld __cnfn popcount(char16 x); -uchar16 __ovld __cnfn popcount(uchar16 x); -short __ovld __cnfn popcount(short x); -ushort __ovld __cnfn popcount(ushort x); -short2 __ovld __cnfn popcount(short2 x); -ushort2 __ovld __cnfn popcount(ushort2 x); -short3 __ovld __cnfn popcount(short3 x); -ushort3 __ovld __cnfn popcount(ushort3 x); -short4 __ovld __cnfn popcount(short4 x); -ushort4 __ovld __cnfn popcount(ushort4 x); -short8 __ovld __cnfn popcount(short8 x); -ushort8 __ovld __cnfn popcount(ushort8 x); -short16 __ovld __cnfn popcount(short16 x); -ushort16 __ovld __cnfn popcount(ushort16 x); -int __ovld __cnfn popcount(int x); -uint __ovld __cnfn popcount(uint x); -int2 __ovld __cnfn popcount(int2 x); -uint2 __ovld __cnfn popcount(uint2 x); -int3 __ovld __cnfn popcount(int3 x); -uint3 __ovld __cnfn popcount(uint3 x); -int4 __ovld __cnfn popcount(int4 x); -uint4 __ovld __cnfn popcount(uint4 x); -int8 __ovld __cnfn popcount(int8 x); -uint8 __ovld __cnfn popcount(uint8 x); -int16 __ovld __cnfn popcount(int16 x); -uint16 __ovld __cnfn popcount(uint16 x); -long __ovld __cnfn popcount(long x); -ulong __ovld __cnfn popcount(ulong x); -long2 __ovld __cnfn popcount(long2 x); -ulong2 __ovld __cnfn popcount(ulong2 x); -long3 __ovld __cnfn popcount(long3 x); -ulong3 __ovld __cnfn popcount(ulong3 x); -long4 __ovld __cnfn popcount(long4 x); -ulong4 __ovld __cnfn popcount(ulong4 x); -long8 __ovld __cnfn popcount(long8 x); -ulong8 __ovld __cnfn popcount(ulong8 x); -long16 __ovld __cnfn popcount(long16 x); -ulong16 __ovld __cnfn popcount(ulong16 x); - -/** - * Multiply two 24-bit integer values x and y and add - * the 32-bit integer result to the 32-bit integer z. - * Refer to definition of mul24 to see how the 24-bit - * integer multiplication is performed. - */ -int __ovld __cnfn mad24(int x, int y, int z); -uint __ovld __cnfn mad24(uint x, uint y, uint z); -int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z); -uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z); -int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z); -uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z); -int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z); -uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z); -int8 __ovld __cnfn mad24(int8 x, int8 y, int8 z); -uint8 __ovld __cnfn mad24(uint8 x, uint8 y, uint8 z); -int16 __ovld __cnfn mad24(int16 x, int16 y, int16 z); -uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z); - -/** - * Multiply two 24-bit integer values x and y. x and y - * are 32-bit integers but only the low 24-bits are used - * to perform the multiplication. mul24 should only - * be used when values in x and y are in the range [- - * 2^23, 2^23-1] if x and y are signed integers and in the - * range [0, 2^24-1] if x and y are unsigned integers. If - * x and y are not in this range, the multiplication - * result is implementation-defined. - */ -int __ovld __cnfn mul24(int x, int y); -uint __ovld __cnfn mul24(uint x, uint y); -int2 __ovld __cnfn mul24(int2 x, int2 y); -uint2 __ovld __cnfn mul24(uint2 x, uint2 y); -int3 __ovld __cnfn mul24(int3 x, int3 y); -uint3 __ovld __cnfn mul24(uint3 x, uint3 y); -int4 __ovld __cnfn mul24(int4 x, int4 y); -uint4 __ovld __cnfn mul24(uint4 x, uint4 y); -int8 __ovld __cnfn mul24(int8 x, int8 y); -uint8 __ovld __cnfn mul24(uint8 x, uint8 y); -int16 __ovld __cnfn mul24(int16 x, int16 y); -uint16 __ovld __cnfn mul24(uint16 x, uint16 y); - -// OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions - -/** - * Returns fmin(fmax(x, minval), maxval). - * Results are undefined if minval > maxval. - */ -float __ovld __cnfn clamp(float x, float minval, float maxval); -float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval); -float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval); -float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval); -float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval); -float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval); -float2 __ovld __cnfn clamp(float2 x, float minval, float maxval); -float3 __ovld __cnfn clamp(float3 x, float minval, float maxval); -float4 __ovld __cnfn clamp(float4 x, float minval, float maxval); -float8 __ovld __cnfn clamp(float8 x, float minval, float maxval); -float16 __ovld __cnfn clamp(float16 x, float minval, float maxval); -#ifdef cl_khr_fp64 -double __ovld __cnfn clamp(double x, double minval, double maxval); -double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval); -double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval); -double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval); -double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval); -double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval); -double2 __ovld __cnfn clamp(double2 x, double minval, double maxval); -double3 __ovld __cnfn clamp(double3 x, double minval, double maxval); -double4 __ovld __cnfn clamp(double4 x, double minval, double maxval); -double8 __ovld __cnfn clamp(double8 x, double minval, double maxval); -double16 __ovld __cnfn clamp(double16 x, double minval, double maxval); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn clamp(half x, half minval, half maxval); -half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval); -half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval); -half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval); -half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval); -half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval); -half2 __ovld __cnfn clamp(half2 x, half minval, half maxval); -half3 __ovld __cnfn clamp(half3 x, half minval, half maxval); -half4 __ovld __cnfn clamp(half4 x, half minval, half maxval); -half8 __ovld __cnfn clamp(half8 x, half minval, half maxval); -half16 __ovld __cnfn clamp(half16 x, half minval, half maxval); -#endif //cl_khr_fp16 - -/** - * Converts radians to degrees, i.e. (180 / PI) * - * radians. - */ -float __ovld __cnfn degrees(float radians); -float2 __ovld __cnfn degrees(float2 radians); -float3 __ovld __cnfn degrees(float3 radians); -float4 __ovld __cnfn degrees(float4 radians); -float8 __ovld __cnfn degrees(float8 radians); -float16 __ovld __cnfn degrees(float16 radians); -#ifdef cl_khr_fp64 -double __ovld __cnfn degrees(double radians); -double2 __ovld __cnfn degrees(double2 radians); -double3 __ovld __cnfn degrees(double3 radians); -double4 __ovld __cnfn degrees(double4 radians); -double8 __ovld __cnfn degrees(double8 radians); -double16 __ovld __cnfn degrees(double16 radians); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn degrees(half radians); -half2 __ovld __cnfn degrees(half2 radians); -half3 __ovld __cnfn degrees(half3 radians); -half4 __ovld __cnfn degrees(half4 radians); -half8 __ovld __cnfn degrees(half8 radians); -half16 __ovld __cnfn degrees(half16 radians); -#endif //cl_khr_fp16 - -/** - * Returns y if x < y, otherwise it returns x. If x and y - * are infinite or NaN, the return values are undefined. - */ -float __ovld __cnfn max(float x, float y); -float2 __ovld __cnfn max(float2 x, float2 y); -float3 __ovld __cnfn max(float3 x, float3 y); -float4 __ovld __cnfn max(float4 x, float4 y); -float8 __ovld __cnfn max(float8 x, float8 y); -float16 __ovld __cnfn max(float16 x, float16 y); -float2 __ovld __cnfn max(float2 x, float y); -float3 __ovld __cnfn max(float3 x, float y); -float4 __ovld __cnfn max(float4 x, float y); -float8 __ovld __cnfn max(float8 x, float y); -float16 __ovld __cnfn max(float16 x, float y); -#ifdef cl_khr_fp64 -double __ovld __cnfn max(double x, double y); -double2 __ovld __cnfn max(double2 x, double2 y); -double3 __ovld __cnfn max(double3 x, double3 y); -double4 __ovld __cnfn max(double4 x, double4 y); -double8 __ovld __cnfn max(double8 x, double8 y); -double16 __ovld __cnfn max(double16 x, double16 y); -double2 __ovld __cnfn max(double2 x, double y); -double3 __ovld __cnfn max(double3 x, double y); -double4 __ovld __cnfn max(double4 x, double y); -double8 __ovld __cnfn max(double8 x, double y); -double16 __ovld __cnfn max(double16 x, double y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn max(half x, half y); -half2 __ovld __cnfn max(half2 x, half2 y); -half3 __ovld __cnfn max(half3 x, half3 y); -half4 __ovld __cnfn max(half4 x, half4 y); -half8 __ovld __cnfn max(half8 x, half8 y); -half16 __ovld __cnfn max(half16 x, half16 y); -half2 __ovld __cnfn max(half2 x, half y); -half3 __ovld __cnfn max(half3 x, half y); -half4 __ovld __cnfn max(half4 x, half y); -half8 __ovld __cnfn max(half8 x, half y); -half16 __ovld __cnfn max(half16 x, half y); -#endif //cl_khr_fp16 - -/** - * Returns y if y < x, otherwise it returns x. If x and y - * are infinite or NaN, the return values are undefined. - */ -float __ovld __cnfn min(float x, float y); -float2 __ovld __cnfn min(float2 x, float2 y); -float3 __ovld __cnfn min(float3 x, float3 y); -float4 __ovld __cnfn min(float4 x, float4 y); -float8 __ovld __cnfn min(float8 x, float8 y); -float16 __ovld __cnfn min(float16 x, float16 y); -float2 __ovld __cnfn min(float2 x, float y); -float3 __ovld __cnfn min(float3 x, float y); -float4 __ovld __cnfn min(float4 x, float y); -float8 __ovld __cnfn min(float8 x, float y); -float16 __ovld __cnfn min(float16 x, float y); -#ifdef cl_khr_fp64 -double __ovld __cnfn min(double x, double y); -double2 __ovld __cnfn min(double2 x, double2 y); -double3 __ovld __cnfn min(double3 x, double3 y); -double4 __ovld __cnfn min(double4 x, double4 y); -double8 __ovld __cnfn min(double8 x, double8 y); -double16 __ovld __cnfn min(double16 x, double16 y); -double2 __ovld __cnfn min(double2 x, double y); -double3 __ovld __cnfn min(double3 x, double y); -double4 __ovld __cnfn min(double4 x, double y); -double8 __ovld __cnfn min(double8 x, double y); -double16 __ovld __cnfn min(double16 x, double y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn min(half x, half y); -half2 __ovld __cnfn min(half2 x, half2 y); -half3 __ovld __cnfn min(half3 x, half3 y); -half4 __ovld __cnfn min(half4 x, half4 y); -half8 __ovld __cnfn min(half8 x, half8 y); -half16 __ovld __cnfn min(half16 x, half16 y); -half2 __ovld __cnfn min(half2 x, half y); -half3 __ovld __cnfn min(half3 x, half y); -half4 __ovld __cnfn min(half4 x, half y); -half8 __ovld __cnfn min(half8 x, half y); -half16 __ovld __cnfn min(half16 x, half y); -#endif //cl_khr_fp16 - -/** - * Returns the linear blend of x & y implemented as: - * x + (y - x) * a - * a must be a value in the range 0.0 ... 1.0. If a is not - * in the range 0.0 ... 1.0, the return values are - * undefined. - */ -float __ovld __cnfn mix(float x, float y, float a); -float2 __ovld __cnfn mix(float2 x, float2 y, float2 a); -float3 __ovld __cnfn mix(float3 x, float3 y, float3 a); -float4 __ovld __cnfn mix(float4 x, float4 y, float4 a); -float8 __ovld __cnfn mix(float8 x, float8 y, float8 a); -float16 __ovld __cnfn mix(float16 x, float16 y, float16 a); -float2 __ovld __cnfn mix(float2 x, float2 y, float a); -float3 __ovld __cnfn mix(float3 x, float3 y, float a); -float4 __ovld __cnfn mix(float4 x, float4 y, float a); -float8 __ovld __cnfn mix(float8 x, float8 y, float a); -float16 __ovld __cnfn mix(float16 x, float16 y, float a); -#ifdef cl_khr_fp64 -double __ovld __cnfn mix(double x, double y, double a); -double2 __ovld __cnfn mix(double2 x, double2 y, double2 a); -double3 __ovld __cnfn mix(double3 x, double3 y, double3 a); -double4 __ovld __cnfn mix(double4 x, double4 y, double4 a); -double8 __ovld __cnfn mix(double8 x, double8 y, double8 a); -double16 __ovld __cnfn mix(double16 x, double16 y, double16 a); -double2 __ovld __cnfn mix(double2 x, double2 y, double a); -double3 __ovld __cnfn mix(double3 x, double3 y, double a); -double4 __ovld __cnfn mix(double4 x, double4 y, double a); -double8 __ovld __cnfn mix(double8 x, double8 y, double a); -double16 __ovld __cnfn mix(double16 x, double16 y, double a); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn mix(half x, half y, half a); -half2 __ovld __cnfn mix(half2 x, half2 y, half2 a); -half3 __ovld __cnfn mix(half3 x, half3 y, half3 a); -half4 __ovld __cnfn mix(half4 x, half4 y, half4 a); -half8 __ovld __cnfn mix(half8 x, half8 y, half8 a); -half16 __ovld __cnfn mix(half16 x, half16 y, half16 a); -half2 __ovld __cnfn mix(half2 x, half2 y, half a); -half3 __ovld __cnfn mix(half3 x, half3 y, half a); -half4 __ovld __cnfn mix(half4 x, half4 y, half a); -half8 __ovld __cnfn mix(half8 x, half8 y, half a); -half16 __ovld __cnfn mix(half16 x, half16 y, half a); -#endif //cl_khr_fp16 - -/** - * Converts degrees to radians, i.e. (PI / 180) * - * degrees. - */ -float __ovld __cnfn radians(float degrees); -float2 __ovld __cnfn radians(float2 degrees); -float3 __ovld __cnfn radians(float3 degrees); -float4 __ovld __cnfn radians(float4 degrees); -float8 __ovld __cnfn radians(float8 degrees); -float16 __ovld __cnfn radians(float16 degrees); -#ifdef cl_khr_fp64 -double __ovld __cnfn radians(double degrees); -double2 __ovld __cnfn radians(double2 degrees); -double3 __ovld __cnfn radians(double3 degrees); -double4 __ovld __cnfn radians(double4 degrees); -double8 __ovld __cnfn radians(double8 degrees); -double16 __ovld __cnfn radians(double16 degrees); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn radians(half degrees); -half2 __ovld __cnfn radians(half2 degrees); -half3 __ovld __cnfn radians(half3 degrees); -half4 __ovld __cnfn radians(half4 degrees); -half8 __ovld __cnfn radians(half8 degrees); -half16 __ovld __cnfn radians(half16 degrees); -#endif //cl_khr_fp16 - -/** - * Returns 0.0 if x < edge, otherwise it returns 1.0. - */ -float __ovld __cnfn step(float edge, float x); -float2 __ovld __cnfn step(float2 edge, float2 x); -float3 __ovld __cnfn step(float3 edge, float3 x); -float4 __ovld __cnfn step(float4 edge, float4 x); -float8 __ovld __cnfn step(float8 edge, float8 x); -float16 __ovld __cnfn step(float16 edge, float16 x); -float2 __ovld __cnfn step(float edge, float2 x); -float3 __ovld __cnfn step(float edge, float3 x); -float4 __ovld __cnfn step(float edge, float4 x); -float8 __ovld __cnfn step(float edge, float8 x); -float16 __ovld __cnfn step(float edge, float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn step(double edge, double x); -double2 __ovld __cnfn step(double2 edge, double2 x); -double3 __ovld __cnfn step(double3 edge, double3 x); -double4 __ovld __cnfn step(double4 edge, double4 x); -double8 __ovld __cnfn step(double8 edge, double8 x); -double16 __ovld __cnfn step(double16 edge, double16 x); -double2 __ovld __cnfn step(double edge, double2 x); -double3 __ovld __cnfn step(double edge, double3 x); -double4 __ovld __cnfn step(double edge, double4 x); -double8 __ovld __cnfn step(double edge, double8 x); -double16 __ovld __cnfn step(double edge, double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn step(half edge, half x); -half2 __ovld __cnfn step(half2 edge, half2 x); -half3 __ovld __cnfn step(half3 edge, half3 x); -half4 __ovld __cnfn step(half4 edge, half4 x); -half8 __ovld __cnfn step(half8 edge, half8 x); -half16 __ovld __cnfn step(half16 edge, half16 x); -half2 __ovld __cnfn step(half edge, half2 x); -half3 __ovld __cnfn step(half edge, half3 x); -half4 __ovld __cnfn step(half edge, half4 x); -half8 __ovld __cnfn step(half edge, half8 x); -half16 __ovld __cnfn step(half edge, half16 x); -#endif //cl_khr_fp16 - -/** - * Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and - * performs smooth Hermite interpolation between 0 - * and 1when edge0 < x < edge1. This is useful in - * cases where you would want a threshold function - * with a smooth transition. - * This is equivalent to: - * gentype t; - * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); - * return t * t * (3 - 2 * t); - * Results are undefined if edge0 >= edge1 or if x, - * edge0 or edge1 is a NaN. - */ -float __ovld __cnfn smoothstep(float edge0, float edge1, float x); -float2 __ovld __cnfn smoothstep(float2 edge0, float2 edge1, float2 x); -float3 __ovld __cnfn smoothstep(float3 edge0, float3 edge1, float3 x); -float4 __ovld __cnfn smoothstep(float4 edge0, float4 edge1, float4 x); -float8 __ovld __cnfn smoothstep(float8 edge0, float8 edge1, float8 x); -float16 __ovld __cnfn smoothstep(float16 edge0, float16 edge1, float16 x); -float2 __ovld __cnfn smoothstep(float edge0, float edge1, float2 x); -float3 __ovld __cnfn smoothstep(float edge0, float edge1, float3 x); -float4 __ovld __cnfn smoothstep(float edge0, float edge1, float4 x); -float8 __ovld __cnfn smoothstep(float edge0, float edge1, float8 x); -float16 __ovld __cnfn smoothstep(float edge0, float edge1, float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn smoothstep(double edge0, double edge1, double x); -double2 __ovld __cnfn smoothstep(double2 edge0, double2 edge1, double2 x); -double3 __ovld __cnfn smoothstep(double3 edge0, double3 edge1, double3 x); -double4 __ovld __cnfn smoothstep(double4 edge0, double4 edge1, double4 x); -double8 __ovld __cnfn smoothstep(double8 edge0, double8 edge1, double8 x); -double16 __ovld __cnfn smoothstep(double16 edge0, double16 edge1, double16 x); -double2 __ovld __cnfn smoothstep(double edge0, double edge1, double2 x); -double3 __ovld __cnfn smoothstep(double edge0, double edge1, double3 x); -double4 __ovld __cnfn smoothstep(double edge0, double edge1, double4 x); -double8 __ovld __cnfn smoothstep(double edge0, double edge1, double8 x); -double16 __ovld __cnfn smoothstep(double edge0, double edge1, double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn smoothstep(half edge0, half edge1, half x); -half2 __ovld __cnfn smoothstep(half2 edge0, half2 edge1, half2 x); -half3 __ovld __cnfn smoothstep(half3 edge0, half3 edge1, half3 x); -half4 __ovld __cnfn smoothstep(half4 edge0, half4 edge1, half4 x); -half8 __ovld __cnfn smoothstep(half8 edge0, half8 edge1, half8 x); -half16 __ovld __cnfn smoothstep(half16 edge0, half16 edge1, half16 x); -half2 __ovld __cnfn smoothstep(half edge0, half edge1, half2 x); -half3 __ovld __cnfn smoothstep(half edge0, half edge1, half3 x); -half4 __ovld __cnfn smoothstep(half edge0, half edge1, half4 x); -half8 __ovld __cnfn smoothstep(half edge0, half edge1, half8 x); -half16 __ovld __cnfn smoothstep(half edge0, half edge1, half16 x); -#endif //cl_khr_fp16 - -/** - * Returns 1.0 if x > 0, -0.0 if x = -0.0, +0.0 if x = - * +0.0, or -1.0 if x < 0. Returns 0.0 if x is a NaN. - */ -float __ovld __cnfn sign(float x); -float2 __ovld __cnfn sign(float2 x); -float3 __ovld __cnfn sign(float3 x); -float4 __ovld __cnfn sign(float4 x); -float8 __ovld __cnfn sign(float8 x); -float16 __ovld __cnfn sign(float16 x); -#ifdef cl_khr_fp64 -double __ovld __cnfn sign(double x); -double2 __ovld __cnfn sign(double2 x); -double3 __ovld __cnfn sign(double3 x); -double4 __ovld __cnfn sign(double4 x); -double8 __ovld __cnfn sign(double8 x); -double16 __ovld __cnfn sign(double16 x); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn sign(half x); -half2 __ovld __cnfn sign(half2 x); -half3 __ovld __cnfn sign(half3 x); -half4 __ovld __cnfn sign(half4 x); -half8 __ovld __cnfn sign(half8 x); -half16 __ovld __cnfn sign(half16 x); -#endif //cl_khr_fp16 - -// OpenCL v1.1 s6.11.5, v1.2 s6.12.5, v2.0 s6.13.5 - Geometric Functions - -/** - * Returns the cross product of p0.xyz and p1.xyz. The - * w component of float4 result returned will be 0.0. - */ -float4 __ovld __cnfn cross(float4 p0, float4 p1); -float3 __ovld __cnfn cross(float3 p0, float3 p1); -#ifdef cl_khr_fp64 -double4 __ovld __cnfn cross(double4 p0, double4 p1); -double3 __ovld __cnfn cross(double3 p0, double3 p1); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half4 __ovld __cnfn cross(half4 p0, half4 p1); -half3 __ovld __cnfn cross(half3 p0, half3 p1); -#endif //cl_khr_fp16 - -/** - * Compute dot product. - */ -float __ovld __cnfn dot(float p0, float p1); -float __ovld __cnfn dot(float2 p0, float2 p1); -float __ovld __cnfn dot(float3 p0, float3 p1); -float __ovld __cnfn dot(float4 p0, float4 p1); -#ifdef cl_khr_fp64 -double __ovld __cnfn dot(double p0, double p1); -double __ovld __cnfn dot(double2 p0, double2 p1); -double __ovld __cnfn dot(double3 p0, double3 p1); -double __ovld __cnfn dot(double4 p0, double4 p1); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn dot(half p0, half p1); -half __ovld __cnfn dot(half2 p0, half2 p1); -half __ovld __cnfn dot(half3 p0, half3 p1); -half __ovld __cnfn dot(half4 p0, half4 p1); -#endif //cl_khr_fp16 - -/** - * Returns the distance between p0 and p1. This is - * calculated as length(p0 - p1). - */ -float __ovld __cnfn distance(float p0, float p1); -float __ovld __cnfn distance(float2 p0, float2 p1); -float __ovld __cnfn distance(float3 p0, float3 p1); -float __ovld __cnfn distance(float4 p0, float4 p1); -#ifdef cl_khr_fp64 -double __ovld __cnfn distance(double p0, double p1); -double __ovld __cnfn distance(double2 p0, double2 p1); -double __ovld __cnfn distance(double3 p0, double3 p1); -double __ovld __cnfn distance(double4 p0, double4 p1); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn distance(half p0, half p1); -half __ovld __cnfn distance(half2 p0, half2 p1); -half __ovld __cnfn distance(half3 p0, half3 p1); -half __ovld __cnfn distance(half4 p0, half4 p1); -#endif //cl_khr_fp16 - -/** - * Return the length of vector p, i.e., - * sqrt(p.x2 + p.y 2 + ...) - */ -float __ovld __cnfn length(float p); -float __ovld __cnfn length(float2 p); -float __ovld __cnfn length(float3 p); -float __ovld __cnfn length(float4 p); -#ifdef cl_khr_fp64 -double __ovld __cnfn length(double p); -double __ovld __cnfn length(double2 p); -double __ovld __cnfn length(double3 p); -double __ovld __cnfn length(double4 p); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn length(half p); -half __ovld __cnfn length(half2 p); -half __ovld __cnfn length(half3 p); -half __ovld __cnfn length(half4 p); -#endif //cl_khr_fp16 - -/** - * Returns a vector in the same direction as p but with a - * length of 1. - */ -float __ovld __cnfn normalize(float p); -float2 __ovld __cnfn normalize(float2 p); -float3 __ovld __cnfn normalize(float3 p); -float4 __ovld __cnfn normalize(float4 p); -#ifdef cl_khr_fp64 -double __ovld __cnfn normalize(double p); -double2 __ovld __cnfn normalize(double2 p); -double3 __ovld __cnfn normalize(double3 p); -double4 __ovld __cnfn normalize(double4 p); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn normalize(half p); -half2 __ovld __cnfn normalize(half2 p); -half3 __ovld __cnfn normalize(half3 p); -half4 __ovld __cnfn normalize(half4 p); -#endif //cl_khr_fp16 - -/** - * Returns fast_length(p0 - p1). - */ -float __ovld __cnfn fast_distance(float p0, float p1); -float __ovld __cnfn fast_distance(float2 p0, float2 p1); -float __ovld __cnfn fast_distance(float3 p0, float3 p1); -float __ovld __cnfn fast_distance(float4 p0, float4 p1); -#ifdef cl_khr_fp16 -half __ovld __cnfn fast_distance(half p0, half p1); -half __ovld __cnfn fast_distance(half2 p0, half2 p1); -half __ovld __cnfn fast_distance(half3 p0, half3 p1); -half __ovld __cnfn fast_distance(half4 p0, half4 p1); -#endif //cl_khr_fp16 - -/** - * Returns the length of vector p computed as: - * half_sqrt(p.x2 + p.y2 + ...) - */ -float __ovld __cnfn fast_length(float p); -float __ovld __cnfn fast_length(float2 p); -float __ovld __cnfn fast_length(float3 p); -float __ovld __cnfn fast_length(float4 p); -#ifdef cl_khr_fp16 -half __ovld __cnfn fast_length(half p); -half __ovld __cnfn fast_length(half2 p); -half __ovld __cnfn fast_length(half3 p); -half __ovld __cnfn fast_length(half4 p); -#endif //cl_khr_fp16 - -/** - * Returns a vector in the same direction as p but with a - * length of 1. fast_normalize is computed as: - * p * half_rsqrt (p.x^2 + p.y^2 + ... ) - * The result shall be within 8192 ulps error from the - * infinitely precise result of - * if (all(p == 0.0f)) - * result = p; - * else - * result = p / sqrt (p.x^2 + p.y^2 + ...); - * with the following exceptions: - * 1) If the sum of squares is greater than FLT_MAX - * then the value of the floating-point values in the - * result vector are undefined. - * 2) If the sum of squares is less than FLT_MIN then - * the implementation may return back p. - * 3) If the device is in "denorms are flushed to zero" - * mode, individual operand elements with magnitude - * less than sqrt(FLT_MIN) may be flushed to zero - * before proceeding with the calculation. - */ -float __ovld __cnfn fast_normalize(float p); -float2 __ovld __cnfn fast_normalize(float2 p); -float3 __ovld __cnfn fast_normalize(float3 p); -float4 __ovld __cnfn fast_normalize(float4 p); -#ifdef cl_khr_fp16 -half __ovld __cnfn fast_normalize(half p); -half2 __ovld __cnfn fast_normalize(half2 p); -half3 __ovld __cnfn fast_normalize(half3 p); -half4 __ovld __cnfn fast_normalize(half4 p); -#endif //cl_khr_fp16 - -// OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions - -/** - * intn isequal (floatn x, floatn y) - * Returns the component-wise compare of x == y. - */ -int __ovld __cnfn isequal(float x, float y); -int2 __ovld __cnfn isequal(float2 x, float2 y); -int3 __ovld __cnfn isequal(float3 x, float3 y); -int4 __ovld __cnfn isequal(float4 x, float4 y); -int8 __ovld __cnfn isequal(float8 x, float8 y); -int16 __ovld __cnfn isequal(float16 x, float16 y); -#ifdef cl_khr_fp64 -int __ovld __cnfn isequal(double x, double y); -long2 __ovld __cnfn isequal(double2 x, double2 y); -long3 __ovld __cnfn isequal(double3 x, double3 y); -long4 __ovld __cnfn isequal(double4 x, double4 y); -long8 __ovld __cnfn isequal(double8 x, double8 y); -long16 __ovld __cnfn isequal(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isequal(half x, half y); -short2 __ovld __cnfn isequal(half2 x, half2 y); -short3 __ovld __cnfn isequal(half3 x, half3 y); -short4 __ovld __cnfn isequal(half4 x, half4 y); -short8 __ovld __cnfn isequal(half8 x, half8 y); -short16 __ovld __cnfn isequal(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Returns the component-wise compare of x != y. - */ -int __ovld __cnfn isnotequal(float x, float y); -int2 __ovld __cnfn isnotequal(float2 x, float2 y); -int3 __ovld __cnfn isnotequal(float3 x, float3 y); -int4 __ovld __cnfn isnotequal(float4 x, float4 y); -int8 __ovld __cnfn isnotequal(float8 x, float8 y); -int16 __ovld __cnfn isnotequal(float16 x, float16 y); -#ifdef cl_khr_fp64 -int __ovld __cnfn isnotequal(double x, double y); -long2 __ovld __cnfn isnotequal(double2 x, double2 y); -long3 __ovld __cnfn isnotequal(double3 x, double3 y); -long4 __ovld __cnfn isnotequal(double4 x, double4 y); -long8 __ovld __cnfn isnotequal(double8 x, double8 y); -long16 __ovld __cnfn isnotequal(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isnotequal(half x, half y); -short2 __ovld __cnfn isnotequal(half2 x, half2 y); -short3 __ovld __cnfn isnotequal(half3 x, half3 y); -short4 __ovld __cnfn isnotequal(half4 x, half4 y); -short8 __ovld __cnfn isnotequal(half8 x, half8 y); -short16 __ovld __cnfn isnotequal(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Returns the component-wise compare of x > y. - */ -int __ovld __cnfn isgreater(float x, float y); -int2 __ovld __cnfn isgreater(float2 x, float2 y); -int3 __ovld __cnfn isgreater(float3 x, float3 y); -int4 __ovld __cnfn isgreater(float4 x, float4 y); -int8 __ovld __cnfn isgreater(float8 x, float8 y); -int16 __ovld __cnfn isgreater(float16 x, float16 y); -#ifdef cl_khr_fp64 -int __ovld __cnfn isgreater(double x, double y); -long2 __ovld __cnfn isgreater(double2 x, double2 y); -long3 __ovld __cnfn isgreater(double3 x, double3 y); -long4 __ovld __cnfn isgreater(double4 x, double4 y); -long8 __ovld __cnfn isgreater(double8 x, double8 y); -long16 __ovld __cnfn isgreater(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isgreater(half x, half y); -short2 __ovld __cnfn isgreater(half2 x, half2 y); -short3 __ovld __cnfn isgreater(half3 x, half3 y); -short4 __ovld __cnfn isgreater(half4 x, half4 y); -short8 __ovld __cnfn isgreater(half8 x, half8 y); -short16 __ovld __cnfn isgreater(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Returns the component-wise compare of x >= y. - */ -int __ovld __cnfn isgreaterequal(float x, float y); -int2 __ovld __cnfn isgreaterequal(float2 x, float2 y); -int3 __ovld __cnfn isgreaterequal(float3 x, float3 y); -int4 __ovld __cnfn isgreaterequal(float4 x, float4 y); -int8 __ovld __cnfn isgreaterequal(float8 x, float8 y); -int16 __ovld __cnfn isgreaterequal(float16 x, float16 y); -#ifdef cl_khr_fp64 -int __ovld __cnfn isgreaterequal(double x, double y); -long2 __ovld __cnfn isgreaterequal(double2 x, double2 y); -long3 __ovld __cnfn isgreaterequal(double3 x, double3 y); -long4 __ovld __cnfn isgreaterequal(double4 x, double4 y); -long8 __ovld __cnfn isgreaterequal(double8 x, double8 y); -long16 __ovld __cnfn isgreaterequal(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isgreaterequal(half x, half y); -short2 __ovld __cnfn isgreaterequal(half2 x, half2 y); -short3 __ovld __cnfn isgreaterequal(half3 x, half3 y); -short4 __ovld __cnfn isgreaterequal(half4 x, half4 y); -short8 __ovld __cnfn isgreaterequal(half8 x, half8 y); -short16 __ovld __cnfn isgreaterequal(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Returns the component-wise compare of x < y. - */ -int __ovld __cnfn isless(float x, float y); -int2 __ovld __cnfn isless(float2 x, float2 y); -int3 __ovld __cnfn isless(float3 x, float3 y); -int4 __ovld __cnfn isless(float4 x, float4 y); -int8 __ovld __cnfn isless(float8 x, float8 y); -int16 __ovld __cnfn isless(float16 x, float16 y); -#ifdef cl_khr_fp64 -int __ovld __cnfn isless(double x, double y); -long2 __ovld __cnfn isless(double2 x, double2 y); -long3 __ovld __cnfn isless(double3 x, double3 y); -long4 __ovld __cnfn isless(double4 x, double4 y); -long8 __ovld __cnfn isless(double8 x, double8 y); -long16 __ovld __cnfn isless(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isless(half x, half y); -short2 __ovld __cnfn isless(half2 x, half2 y); -short3 __ovld __cnfn isless(half3 x, half3 y); -short4 __ovld __cnfn isless(half4 x, half4 y); -short8 __ovld __cnfn isless(half8 x, half8 y); -short16 __ovld __cnfn isless(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Returns the component-wise compare of x <= y. - */ -int __ovld __cnfn islessequal(float x, float y); -int2 __ovld __cnfn islessequal(float2 x, float2 y); -int3 __ovld __cnfn islessequal(float3 x, float3 y); -int4 __ovld __cnfn islessequal(float4 x, float4 y); -int8 __ovld __cnfn islessequal(float8 x, float8 y); -int16 __ovld __cnfn islessequal(float16 x, float16 y); -#ifdef cl_khr_fp64 -int __ovld __cnfn islessequal(double x, double y); -long2 __ovld __cnfn islessequal(double2 x, double2 y); -long3 __ovld __cnfn islessequal(double3 x, double3 y); -long4 __ovld __cnfn islessequal(double4 x, double4 y); -long8 __ovld __cnfn islessequal(double8 x, double8 y); -long16 __ovld __cnfn islessequal(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn islessequal(half x, half y); -short2 __ovld __cnfn islessequal(half2 x, half2 y); -short3 __ovld __cnfn islessequal(half3 x, half3 y); -short4 __ovld __cnfn islessequal(half4 x, half4 y); -short8 __ovld __cnfn islessequal(half8 x, half8 y); -short16 __ovld __cnfn islessequal(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Returns the component-wise compare of - * (x < y) || (x > y) . - */ -int __ovld __cnfn islessgreater(float x, float y); -int2 __ovld __cnfn islessgreater(float2 x, float2 y); -int3 __ovld __cnfn islessgreater(float3 x, float3 y); -int4 __ovld __cnfn islessgreater(float4 x, float4 y); -int8 __ovld __cnfn islessgreater(float8 x, float8 y); -int16 __ovld __cnfn islessgreater(float16 x, float16 y); -#ifdef cl_khr_fp64 -int __ovld __cnfn islessgreater(double x, double y); -long2 __ovld __cnfn islessgreater(double2 x, double2 y); -long3 __ovld __cnfn islessgreater(double3 x, double3 y); -long4 __ovld __cnfn islessgreater(double4 x, double4 y); -long8 __ovld __cnfn islessgreater(double8 x, double8 y); -long16 __ovld __cnfn islessgreater(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn islessgreater(half x, half y); -short2 __ovld __cnfn islessgreater(half2 x, half2 y); -short3 __ovld __cnfn islessgreater(half3 x, half3 y); -short4 __ovld __cnfn islessgreater(half4 x, half4 y); -short8 __ovld __cnfn islessgreater(half8 x, half8 y); -short16 __ovld __cnfn islessgreater(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Test for finite value. - */ -int __ovld __cnfn isfinite(float); -int2 __ovld __cnfn isfinite(float2); -int3 __ovld __cnfn isfinite(float3); -int4 __ovld __cnfn isfinite(float4); -int8 __ovld __cnfn isfinite(float8); -int16 __ovld __cnfn isfinite(float16); -#ifdef cl_khr_fp64 -int __ovld __cnfn isfinite(double); -long2 __ovld __cnfn isfinite(double2); -long3 __ovld __cnfn isfinite(double3); -long4 __ovld __cnfn isfinite(double4); -long8 __ovld __cnfn isfinite(double8); -long16 __ovld __cnfn isfinite(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isfinite(half); -short2 __ovld __cnfn isfinite(half2); -short3 __ovld __cnfn isfinite(half3); -short4 __ovld __cnfn isfinite(half4); -short8 __ovld __cnfn isfinite(half8); -short16 __ovld __cnfn isfinite(half16); -#endif //cl_khr_fp16 - -/** - * Test for infinity value (+ve or -ve) . - */ -int __ovld __cnfn isinf(float); -int2 __ovld __cnfn isinf(float2); -int3 __ovld __cnfn isinf(float3); -int4 __ovld __cnfn isinf(float4); -int8 __ovld __cnfn isinf(float8); -int16 __ovld __cnfn isinf(float16); -#ifdef cl_khr_fp64 -int __ovld __cnfn isinf(double); -long2 __ovld __cnfn isinf(double2); -long3 __ovld __cnfn isinf(double3); -long4 __ovld __cnfn isinf(double4); -long8 __ovld __cnfn isinf(double8); -long16 __ovld __cnfn isinf(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isinf(half); -short2 __ovld __cnfn isinf(half2); -short3 __ovld __cnfn isinf(half3); -short4 __ovld __cnfn isinf(half4); -short8 __ovld __cnfn isinf(half8); -short16 __ovld __cnfn isinf(half16); -#endif //cl_khr_fp16 - -/** - * Test for a NaN. - */ -int __ovld __cnfn isnan(float); -int2 __ovld __cnfn isnan(float2); -int3 __ovld __cnfn isnan(float3); -int4 __ovld __cnfn isnan(float4); -int8 __ovld __cnfn isnan(float8); -int16 __ovld __cnfn isnan(float16); -#ifdef cl_khr_fp64 -int __ovld __cnfn isnan(double); -long2 __ovld __cnfn isnan(double2); -long3 __ovld __cnfn isnan(double3); -long4 __ovld __cnfn isnan(double4); -long8 __ovld __cnfn isnan(double8); -long16 __ovld __cnfn isnan(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isnan(half); -short2 __ovld __cnfn isnan(half2); -short3 __ovld __cnfn isnan(half3); -short4 __ovld __cnfn isnan(half4); -short8 __ovld __cnfn isnan(half8); -short16 __ovld __cnfn isnan(half16); -#endif //cl_khr_fp16 - -/** - * Test for a normal value. - */ -int __ovld __cnfn isnormal(float); -int2 __ovld __cnfn isnormal(float2); -int3 __ovld __cnfn isnormal(float3); -int4 __ovld __cnfn isnormal(float4); -int8 __ovld __cnfn isnormal(float8); -int16 __ovld __cnfn isnormal(float16); -#ifdef cl_khr_fp64 -int __ovld __cnfn isnormal(double); -long2 __ovld __cnfn isnormal(double2); -long3 __ovld __cnfn isnormal(double3); -long4 __ovld __cnfn isnormal(double4); -long8 __ovld __cnfn isnormal(double8); -long16 __ovld __cnfn isnormal(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isnormal(half); -short2 __ovld __cnfn isnormal(half2); -short3 __ovld __cnfn isnormal(half3); -short4 __ovld __cnfn isnormal(half4); -short8 __ovld __cnfn isnormal(half8); -short16 __ovld __cnfn isnormal(half16); -#endif //cl_khr_fp16 - -/** - * Test if arguments are ordered. isordered() takes - * arguments x and y, and returns the result - * isequal(x, x) && isequal(y, y). - */ -int __ovld __cnfn isordered(float x, float y); -int2 __ovld __cnfn isordered(float2 x, float2 y); -int3 __ovld __cnfn isordered(float3 x, float3 y); -int4 __ovld __cnfn isordered(float4 x, float4 y); -int8 __ovld __cnfn isordered(float8 x, float8 y); -int16 __ovld __cnfn isordered(float16 x, float16 y); -#ifdef cl_khr_fp64 -int __ovld __cnfn isordered(double x, double y); -long2 __ovld __cnfn isordered(double2 x, double2 y); -long3 __ovld __cnfn isordered(double3 x, double3 y); -long4 __ovld __cnfn isordered(double4 x, double4 y); -long8 __ovld __cnfn isordered(double8 x, double8 y); -long16 __ovld __cnfn isordered(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isordered(half x, half y); -short2 __ovld __cnfn isordered(half2 x, half2 y); -short3 __ovld __cnfn isordered(half3 x, half3 y); -short4 __ovld __cnfn isordered(half4 x, half4 y); -short8 __ovld __cnfn isordered(half8 x, half8 y); -short16 __ovld __cnfn isordered(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Test if arguments are unordered. isunordered() - * takes arguments x and y, returning non-zero if x or y - * is NaN, and zero otherwise. - */ -int __ovld __cnfn isunordered(float x, float y); -int2 __ovld __cnfn isunordered(float2 x, float2 y); -int3 __ovld __cnfn isunordered(float3 x, float3 y); -int4 __ovld __cnfn isunordered(float4 x, float4 y); -int8 __ovld __cnfn isunordered(float8 x, float8 y); -int16 __ovld __cnfn isunordered(float16 x, float16 y); -#ifdef cl_khr_fp64 -int __ovld __cnfn isunordered(double x, double y); -long2 __ovld __cnfn isunordered(double2 x, double2 y); -long3 __ovld __cnfn isunordered(double3 x, double3 y); -long4 __ovld __cnfn isunordered(double4 x, double4 y); -long8 __ovld __cnfn isunordered(double8 x, double8 y); -long16 __ovld __cnfn isunordered(double16 x, double16 y); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn isunordered(half x, half y); -short2 __ovld __cnfn isunordered(half2 x, half2 y); -short3 __ovld __cnfn isunordered(half3 x, half3 y); -short4 __ovld __cnfn isunordered(half4 x, half4 y); -short8 __ovld __cnfn isunordered(half8 x, half8 y); -short16 __ovld __cnfn isunordered(half16 x, half16 y); -#endif //cl_khr_fp16 - -/** - * Test for sign bit. The scalar version of the function - * returns a 1 if the sign bit in the float is set else returns - * 0. The vector version of the function returns the - * following for each component in floatn: a -1 if the - * sign bit in the float is set else returns 0. - */ -int __ovld __cnfn signbit(float); -int2 __ovld __cnfn signbit(float2); -int3 __ovld __cnfn signbit(float3); -int4 __ovld __cnfn signbit(float4); -int8 __ovld __cnfn signbit(float8); -int16 __ovld __cnfn signbit(float16); -#ifdef cl_khr_fp64 -int __ovld __cnfn signbit(double); -long2 __ovld __cnfn signbit(double2); -long3 __ovld __cnfn signbit(double3); -long4 __ovld __cnfn signbit(double4); -long8 __ovld __cnfn signbit(double8); -long16 __ovld __cnfn signbit(double16); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -int __ovld __cnfn signbit(half); -short2 __ovld __cnfn signbit(half2); -short3 __ovld __cnfn signbit(half3); -short4 __ovld __cnfn signbit(half4); -short8 __ovld __cnfn signbit(half8); -short16 __ovld __cnfn signbit(half16); -#endif //cl_khr_fp16 - -/** - * Returns 1 if the most significant bit in any component - * of x is set; otherwise returns 0. - */ -int __ovld __cnfn any(char x); -int __ovld __cnfn any(char2 x); -int __ovld __cnfn any(char3 x); -int __ovld __cnfn any(char4 x); -int __ovld __cnfn any(char8 x); -int __ovld __cnfn any(char16 x); -int __ovld __cnfn any(short x); -int __ovld __cnfn any(short2 x); -int __ovld __cnfn any(short3 x); -int __ovld __cnfn any(short4 x); -int __ovld __cnfn any(short8 x); -int __ovld __cnfn any(short16 x); -int __ovld __cnfn any(int x); -int __ovld __cnfn any(int2 x); -int __ovld __cnfn any(int3 x); -int __ovld __cnfn any(int4 x); -int __ovld __cnfn any(int8 x); -int __ovld __cnfn any(int16 x); -int __ovld __cnfn any(long x); -int __ovld __cnfn any(long2 x); -int __ovld __cnfn any(long3 x); -int __ovld __cnfn any(long4 x); -int __ovld __cnfn any(long8 x); -int __ovld __cnfn any(long16 x); - -/** - * Returns 1 if the most significant bit in all components - * of x is set; otherwise returns 0. - */ -int __ovld __cnfn all(char x); -int __ovld __cnfn all(char2 x); -int __ovld __cnfn all(char3 x); -int __ovld __cnfn all(char4 x); -int __ovld __cnfn all(char8 x); -int __ovld __cnfn all(char16 x); -int __ovld __cnfn all(short x); -int __ovld __cnfn all(short2 x); -int __ovld __cnfn all(short3 x); -int __ovld __cnfn all(short4 x); -int __ovld __cnfn all(short8 x); -int __ovld __cnfn all(short16 x); -int __ovld __cnfn all(int x); -int __ovld __cnfn all(int2 x); -int __ovld __cnfn all(int3 x); -int __ovld __cnfn all(int4 x); -int __ovld __cnfn all(int8 x); -int __ovld __cnfn all(int16 x); -int __ovld __cnfn all(long x); -int __ovld __cnfn all(long2 x); -int __ovld __cnfn all(long3 x); -int __ovld __cnfn all(long4 x); -int __ovld __cnfn all(long8 x); -int __ovld __cnfn all(long16 x); - -/** - * Each bit of the result is the corresponding bit of a if - * the corresponding bit of c is 0. Otherwise it is the - * corresponding bit of b. - */ -char __ovld __cnfn bitselect(char a, char b, char c); -uchar __ovld __cnfn bitselect(uchar a, uchar b, uchar c); -char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c); -short __ovld __cnfn bitselect(short a, short b, short c); -ushort __ovld __cnfn bitselect(ushort a, ushort b, ushort c); -short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c); -int __ovld __cnfn bitselect(int a, int b, int c); -uint __ovld __cnfn bitselect(uint a, uint b, uint c); -int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn bitselect(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn bitselect(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn bitselect(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn bitselect(uint16 a, uint16 b, uint16 c); -long __ovld __cnfn bitselect(long a, long b, long c); -ulong __ovld __cnfn bitselect(ulong a, ulong b, ulong c); -long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c); -float __ovld __cnfn bitselect(float a, float b, float c); -float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c); -float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c); -float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c); -float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c); -float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c); -#ifdef cl_khr_fp64 -double __ovld __cnfn bitselect(double a, double b, double c); -double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c); -double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c); -double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c); -double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c); -double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn bitselect(half a, half b, half c); -half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c); -half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c); -half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c); -half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c); -half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c); -#endif //cl_khr_fp16 - -/** - * For each component of a vector type, - * result[i] = if MSB of c[i] is set ? b[i] : a[i]. - * For a scalar type, result = c ? b : a. - * b and a must have the same type. - * c must have the same number of elements and bits as a. - */ -char __ovld __cnfn select(char a, char b, char c); -uchar __ovld __cnfn select(uchar a, uchar b, char c); -char2 __ovld __cnfn select(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c); -char3 __ovld __cnfn select(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c); -char4 __ovld __cnfn select(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c); -char8 __ovld __cnfn select(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c); -char16 __ovld __cnfn select(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c); - -short __ovld __cnfn select(short a, short b, short c); -ushort __ovld __cnfn select(ushort a, ushort b, short c); -short2 __ovld __cnfn select(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c); -short3 __ovld __cnfn select(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c); -short4 __ovld __cnfn select(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c); -short8 __ovld __cnfn select(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c); -short16 __ovld __cnfn select(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c); - -int __ovld __cnfn select(int a, int b, int c); -uint __ovld __cnfn select(uint a, uint b, int c); -int2 __ovld __cnfn select(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c); -int3 __ovld __cnfn select(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c); -int4 __ovld __cnfn select(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c); -int8 __ovld __cnfn select(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c); -int16 __ovld __cnfn select(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c); -float __ovld __cnfn select(float a, float b, int c); -float2 __ovld __cnfn select(float2 a, float2 b, int2 c); -float3 __ovld __cnfn select(float3 a, float3 b, int3 c); -float4 __ovld __cnfn select(float4 a, float4 b, int4 c); -float8 __ovld __cnfn select(float8 a, float8 b, int8 c); -float16 __ovld __cnfn select(float16 a, float16 b, int16 c); - -long __ovld __cnfn select(long a, long b, long c); -ulong __ovld __cnfn select(ulong a, ulong b, long c); -long2 __ovld __cnfn select(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c); -long3 __ovld __cnfn select(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c); -long4 __ovld __cnfn select(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c); -long8 __ovld __cnfn select(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c); -long16 __ovld __cnfn select(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c); - -char __ovld __cnfn select(char a, char b, uchar c); -uchar __ovld __cnfn select(uchar a, uchar b, uchar c); -char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c); -uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c); -uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c); -uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c); -uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c); -uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c); - -short __ovld __cnfn select(short a, short b, ushort c); -ushort __ovld __cnfn select(ushort a, ushort b, ushort c); -short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c); -ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c); -ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c); -ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c); -ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c); -ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c); - -int __ovld __cnfn select(int a, int b, uint c); -uint __ovld __cnfn select(uint a, uint b, uint c); -int2 __ovld __cnfn select(int2 a, int2 b, uint2 c); -uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn select(int3 a, int3 b, uint3 c); -uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn select(int4 a, int4 b, uint4 c); -uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn select(int8 a, int8 b, uint8 c); -uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn select(int16 a, int16 b, uint16 c); -uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c); -float __ovld __cnfn select(float a, float b, uint c); -float2 __ovld __cnfn select(float2 a, float2 b, uint2 c); -float3 __ovld __cnfn select(float3 a, float3 b, uint3 c); -float4 __ovld __cnfn select(float4 a, float4 b, uint4 c); -float8 __ovld __cnfn select(float8 a, float8 b, uint8 c); -float16 __ovld __cnfn select(float16 a, float16 b, uint16 c); - -long __ovld __cnfn select(long a, long b, ulong c); -ulong __ovld __cnfn select(ulong a, ulong b, ulong c); -long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c); -ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c); -ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c); -ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c); -ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c); -ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c); - -#ifdef cl_khr_fp64 -double __ovld __cnfn select(double a, double b, long c); -double2 __ovld __cnfn select(double2 a, double2 b, long2 c); -double3 __ovld __cnfn select(double3 a, double3 b, long3 c); -double4 __ovld __cnfn select(double4 a, double4 b, long4 c); -double8 __ovld __cnfn select(double8 a, double8 b, long8 c); -double16 __ovld __cnfn select(double16 a, double16 b, long16 c); -double __ovld __cnfn select(double a, double b, ulong c); -double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c); -double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c); -double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c); -double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c); -double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -half __ovld __cnfn select(half a, half b, short c); -half2 __ovld __cnfn select(half2 a, half2 b, short2 c); -half3 __ovld __cnfn select(half3 a, half3 b, short3 c); -half4 __ovld __cnfn select(half4 a, half4 b, short4 c); -half8 __ovld __cnfn select(half8 a, half8 b, short8 c); -half16 __ovld __cnfn select(half16 a, half16 b, short16 c); -half __ovld __cnfn select(half a, half b, ushort c); -half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c); -half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c); -half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c); -half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c); -half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c); -#endif //cl_khr_fp16 - -// OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions -// OpenCL extensions v1.1 s9.6.6, v1.2 s9.5.6, v2.0 s9.4.6 - Vector Data Load and Store Functions for Half Type -/** - * Use generic type gentype to indicate the built-in data types - * char, uchar, short, ushort, int, uint, long, ulong, float, - * double or half. - * - * vloadn return sizeof (gentypen) bytes of data read from address (p + (offset * n)). - * - * vstoren write sizeof (gentypen) bytes given by data to address (p + (offset * n)). - * - * The address computed as (p + (offset * n)) must be - * 8-bit aligned if gentype is char, uchar; - * 16-bit aligned if gentype is short, ushort, half; - * 32-bit aligned if gentype is int, uint, float; - * 64-bit aligned if gentype is long, ulong, double. - */ - -char2 __ovld vload2(size_t offset, const __constant char *p); -uchar2 __ovld vload2(size_t offset, const __constant uchar *p); -short2 __ovld vload2(size_t offset, const __constant short *p); -ushort2 __ovld vload2(size_t offset, const __constant ushort *p); -int2 __ovld vload2(size_t offset, const __constant int *p); -uint2 __ovld vload2(size_t offset, const __constant uint *p); -long2 __ovld vload2(size_t offset, const __constant long *p); -ulong2 __ovld vload2(size_t offset, const __constant ulong *p); -float2 __ovld vload2(size_t offset, const __constant float *p); -char3 __ovld vload3(size_t offset, const __constant char *p); -uchar3 __ovld vload3(size_t offset, const __constant uchar *p); -short3 __ovld vload3(size_t offset, const __constant short *p); -ushort3 __ovld vload3(size_t offset, const __constant ushort *p); -int3 __ovld vload3(size_t offset, const __constant int *p); -uint3 __ovld vload3(size_t offset, const __constant uint *p); -long3 __ovld vload3(size_t offset, const __constant long *p); -ulong3 __ovld vload3(size_t offset, const __constant ulong *p); -float3 __ovld vload3(size_t offset, const __constant float *p); -char4 __ovld vload4(size_t offset, const __constant char *p); -uchar4 __ovld vload4(size_t offset, const __constant uchar *p); -short4 __ovld vload4(size_t offset, const __constant short *p); -ushort4 __ovld vload4(size_t offset, const __constant ushort *p); -int4 __ovld vload4(size_t offset, const __constant int *p); -uint4 __ovld vload4(size_t offset, const __constant uint *p); -long4 __ovld vload4(size_t offset, const __constant long *p); -ulong4 __ovld vload4(size_t offset, const __constant ulong *p); -float4 __ovld vload4(size_t offset, const __constant float *p); -char8 __ovld vload8(size_t offset, const __constant char *p); -uchar8 __ovld vload8(size_t offset, const __constant uchar *p); -short8 __ovld vload8(size_t offset, const __constant short *p); -ushort8 __ovld vload8(size_t offset, const __constant ushort *p); -int8 __ovld vload8(size_t offset, const __constant int *p); -uint8 __ovld vload8(size_t offset, const __constant uint *p); -long8 __ovld vload8(size_t offset, const __constant long *p); -ulong8 __ovld vload8(size_t offset, const __constant ulong *p); -float8 __ovld vload8(size_t offset, const __constant float *p); -char16 __ovld vload16(size_t offset, const __constant char *p); -uchar16 __ovld vload16(size_t offset, const __constant uchar *p); -short16 __ovld vload16(size_t offset, const __constant short *p); -ushort16 __ovld vload16(size_t offset, const __constant ushort *p); -int16 __ovld vload16(size_t offset, const __constant int *p); -uint16 __ovld vload16(size_t offset, const __constant uint *p); -long16 __ovld vload16(size_t offset, const __constant long *p); -ulong16 __ovld vload16(size_t offset, const __constant ulong *p); -float16 __ovld vload16(size_t offset, const __constant float *p); -#ifdef cl_khr_fp64 -double2 __ovld vload2(size_t offset, const __constant double *p); -double3 __ovld vload3(size_t offset, const __constant double *p); -double4 __ovld vload4(size_t offset, const __constant double *p); -double8 __ovld vload8(size_t offset, const __constant double *p); -double16 __ovld vload16(size_t offset, const __constant double *p); -#endif //cl_khr_fp64 - -#ifdef cl_khr_fp16 -half __ovld vload(size_t offset, const __constant half *p); -half2 __ovld vload2(size_t offset, const __constant half *p); -half3 __ovld vload3(size_t offset, const __constant half *p); -half4 __ovld vload4(size_t offset, const __constant half *p); -half8 __ovld vload8(size_t offset, const __constant half *p); -half16 __ovld vload16(size_t offset, const __constant half *p); -#endif //cl_khr_fp16 - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -char2 __ovld vload2(size_t offset, const char *p); -uchar2 __ovld vload2(size_t offset, const uchar *p); -short2 __ovld vload2(size_t offset, const short *p); -ushort2 __ovld vload2(size_t offset, const ushort *p); -int2 __ovld vload2(size_t offset, const int *p); -uint2 __ovld vload2(size_t offset, const uint *p); -long2 __ovld vload2(size_t offset, const long *p); -ulong2 __ovld vload2(size_t offset, const ulong *p); -float2 __ovld vload2(size_t offset, const float *p); -char3 __ovld vload3(size_t offset, const char *p); -uchar3 __ovld vload3(size_t offset, const uchar *p); -short3 __ovld vload3(size_t offset, const short *p); -ushort3 __ovld vload3(size_t offset, const ushort *p); -int3 __ovld vload3(size_t offset, const int *p); -uint3 __ovld vload3(size_t offset, const uint *p); -long3 __ovld vload3(size_t offset, const long *p); -ulong3 __ovld vload3(size_t offset, const ulong *p); -float3 __ovld vload3(size_t offset, const float *p); -char4 __ovld vload4(size_t offset, const char *p); -uchar4 __ovld vload4(size_t offset, const uchar *p); -short4 __ovld vload4(size_t offset, const short *p); -ushort4 __ovld vload4(size_t offset, const ushort *p); -int4 __ovld vload4(size_t offset, const int *p); -uint4 __ovld vload4(size_t offset, const uint *p); -long4 __ovld vload4(size_t offset, const long *p); -ulong4 __ovld vload4(size_t offset, const ulong *p); -float4 __ovld vload4(size_t offset, const float *p); -char8 __ovld vload8(size_t offset, const char *p); -uchar8 __ovld vload8(size_t offset, const uchar *p); -short8 __ovld vload8(size_t offset, const short *p); -ushort8 __ovld vload8(size_t offset, const ushort *p); -int8 __ovld vload8(size_t offset, const int *p); -uint8 __ovld vload8(size_t offset, const uint *p); -long8 __ovld vload8(size_t offset, const long *p); -ulong8 __ovld vload8(size_t offset, const ulong *p); -float8 __ovld vload8(size_t offset, const float *p); -char16 __ovld vload16(size_t offset, const char *p); -uchar16 __ovld vload16(size_t offset, const uchar *p); -short16 __ovld vload16(size_t offset, const short *p); -ushort16 __ovld vload16(size_t offset, const ushort *p); -int16 __ovld vload16(size_t offset, const int *p); -uint16 __ovld vload16(size_t offset, const uint *p); -long16 __ovld vload16(size_t offset, const long *p); -ulong16 __ovld vload16(size_t offset, const ulong *p); -float16 __ovld vload16(size_t offset, const float *p); - -#ifdef cl_khr_fp64 -double2 __ovld vload2(size_t offset, const double *p); -double3 __ovld vload3(size_t offset, const double *p); -double4 __ovld vload4(size_t offset, const double *p); -double8 __ovld vload8(size_t offset, const double *p); -double16 __ovld vload16(size_t offset, const double *p); -#endif //cl_khr_fp64 - -#ifdef cl_khr_fp16 -half __ovld vload(size_t offset, const half *p); -half2 __ovld vload2(size_t offset, const half *p); -half3 __ovld vload3(size_t offset, const half *p); -half4 __ovld vload4(size_t offset, const half *p); -half8 __ovld vload8(size_t offset, const half *p); -half16 __ovld vload16(size_t offset, const half *p); -#endif //cl_khr_fp16 -#else -char2 __ovld vload2(size_t offset, const __global char *p); -uchar2 __ovld vload2(size_t offset, const __global uchar *p); -short2 __ovld vload2(size_t offset, const __global short *p); -ushort2 __ovld vload2(size_t offset, const __global ushort *p); -int2 __ovld vload2(size_t offset, const __global int *p); -uint2 __ovld vload2(size_t offset, const __global uint *p); -long2 __ovld vload2(size_t offset, const __global long *p); -ulong2 __ovld vload2(size_t offset, const __global ulong *p); -float2 __ovld vload2(size_t offset, const __global float *p); -char3 __ovld vload3(size_t offset, const __global char *p); -uchar3 __ovld vload3(size_t offset, const __global uchar *p); -short3 __ovld vload3(size_t offset, const __global short *p); -ushort3 __ovld vload3(size_t offset, const __global ushort *p); -int3 __ovld vload3(size_t offset, const __global int *p); -uint3 __ovld vload3(size_t offset, const __global uint *p); -long3 __ovld vload3(size_t offset, const __global long *p); -ulong3 __ovld vload3(size_t offset, const __global ulong *p); -float3 __ovld vload3(size_t offset, const __global float *p); -char4 __ovld vload4(size_t offset, const __global char *p); -uchar4 __ovld vload4(size_t offset, const __global uchar *p); -short4 __ovld vload4(size_t offset, const __global short *p); -ushort4 __ovld vload4(size_t offset, const __global ushort *p); -int4 __ovld vload4(size_t offset, const __global int *p); -uint4 __ovld vload4(size_t offset, const __global uint *p); -long4 __ovld vload4(size_t offset, const __global long *p); -ulong4 __ovld vload4(size_t offset, const __global ulong *p); -float4 __ovld vload4(size_t offset, const __global float *p); -char8 __ovld vload8(size_t offset, const __global char *p); -uchar8 __ovld vload8(size_t offset, const __global uchar *p); -short8 __ovld vload8(size_t offset, const __global short *p); -ushort8 __ovld vload8(size_t offset, const __global ushort *p); -int8 __ovld vload8(size_t offset, const __global int *p); -uint8 __ovld vload8(size_t offset, const __global uint *p); -long8 __ovld vload8(size_t offset, const __global long *p); -ulong8 __ovld vload8(size_t offset, const __global ulong *p); -float8 __ovld vload8(size_t offset, const __global float *p); -char16 __ovld vload16(size_t offset, const __global char *p); -uchar16 __ovld vload16(size_t offset, const __global uchar *p); -short16 __ovld vload16(size_t offset, const __global short *p); -ushort16 __ovld vload16(size_t offset, const __global ushort *p); -int16 __ovld vload16(size_t offset, const __global int *p); -uint16 __ovld vload16(size_t offset, const __global uint *p); -long16 __ovld vload16(size_t offset, const __global long *p); -ulong16 __ovld vload16(size_t offset, const __global ulong *p); -float16 __ovld vload16(size_t offset, const __global float *p); -char2 __ovld vload2(size_t offset, const __local char *p); -uchar2 __ovld vload2(size_t offset, const __local uchar *p); -short2 __ovld vload2(size_t offset, const __local short *p); -ushort2 __ovld vload2(size_t offset, const __local ushort *p); -int2 __ovld vload2(size_t offset, const __local int *p); -uint2 __ovld vload2(size_t offset, const __local uint *p); -long2 __ovld vload2(size_t offset, const __local long *p); -ulong2 __ovld vload2(size_t offset, const __local ulong *p); -float2 __ovld vload2(size_t offset, const __local float *p); -char3 __ovld vload3(size_t offset, const __local char *p); -uchar3 __ovld vload3(size_t offset, const __local uchar *p); -short3 __ovld vload3(size_t offset, const __local short *p); -ushort3 __ovld vload3(size_t offset, const __local ushort *p); -int3 __ovld vload3(size_t offset, const __local int *p); -uint3 __ovld vload3(size_t offset, const __local uint *p); -long3 __ovld vload3(size_t offset, const __local long *p); -ulong3 __ovld vload3(size_t offset, const __local ulong *p); -float3 __ovld vload3(size_t offset, const __local float *p); -char4 __ovld vload4(size_t offset, const __local char *p); -uchar4 __ovld vload4(size_t offset, const __local uchar *p); -short4 __ovld vload4(size_t offset, const __local short *p); -ushort4 __ovld vload4(size_t offset, const __local ushort *p); -int4 __ovld vload4(size_t offset, const __local int *p); -uint4 __ovld vload4(size_t offset, const __local uint *p); -long4 __ovld vload4(size_t offset, const __local long *p); -ulong4 __ovld vload4(size_t offset, const __local ulong *p); -float4 __ovld vload4(size_t offset, const __local float *p); -char8 __ovld vload8(size_t offset, const __local char *p); -uchar8 __ovld vload8(size_t offset, const __local uchar *p); -short8 __ovld vload8(size_t offset, const __local short *p); -ushort8 __ovld vload8(size_t offset, const __local ushort *p); -int8 __ovld vload8(size_t offset, const __local int *p); -uint8 __ovld vload8(size_t offset, const __local uint *p); -long8 __ovld vload8(size_t offset, const __local long *p); -ulong8 __ovld vload8(size_t offset, const __local ulong *p); -float8 __ovld vload8(size_t offset, const __local float *p); -char16 __ovld vload16(size_t offset, const __local char *p); -uchar16 __ovld vload16(size_t offset, const __local uchar *p); -short16 __ovld vload16(size_t offset, const __local short *p); -ushort16 __ovld vload16(size_t offset, const __local ushort *p); -int16 __ovld vload16(size_t offset, const __local int *p); -uint16 __ovld vload16(size_t offset, const __local uint *p); -long16 __ovld vload16(size_t offset, const __local long *p); -ulong16 __ovld vload16(size_t offset, const __local ulong *p); -float16 __ovld vload16(size_t offset, const __local float *p); -char2 __ovld vload2(size_t offset, const __private char *p); -uchar2 __ovld vload2(size_t offset, const __private uchar *p); -short2 __ovld vload2(size_t offset, const __private short *p); -ushort2 __ovld vload2(size_t offset, const __private ushort *p); -int2 __ovld vload2(size_t offset, const __private int *p); -uint2 __ovld vload2(size_t offset, const __private uint *p); -long2 __ovld vload2(size_t offset, const __private long *p); -ulong2 __ovld vload2(size_t offset, const __private ulong *p); -float2 __ovld vload2(size_t offset, const __private float *p); -char3 __ovld vload3(size_t offset, const __private char *p); -uchar3 __ovld vload3(size_t offset, const __private uchar *p); -short3 __ovld vload3(size_t offset, const __private short *p); -ushort3 __ovld vload3(size_t offset, const __private ushort *p); -int3 __ovld vload3(size_t offset, const __private int *p); -uint3 __ovld vload3(size_t offset, const __private uint *p); -long3 __ovld vload3(size_t offset, const __private long *p); -ulong3 __ovld vload3(size_t offset, const __private ulong *p); -float3 __ovld vload3(size_t offset, const __private float *p); -char4 __ovld vload4(size_t offset, const __private char *p); -uchar4 __ovld vload4(size_t offset, const __private uchar *p); -short4 __ovld vload4(size_t offset, const __private short *p); -ushort4 __ovld vload4(size_t offset, const __private ushort *p); -int4 __ovld vload4(size_t offset, const __private int *p); -uint4 __ovld vload4(size_t offset, const __private uint *p); -long4 __ovld vload4(size_t offset, const __private long *p); -ulong4 __ovld vload4(size_t offset, const __private ulong *p); -float4 __ovld vload4(size_t offset, const __private float *p); -char8 __ovld vload8(size_t offset, const __private char *p); -uchar8 __ovld vload8(size_t offset, const __private uchar *p); -short8 __ovld vload8(size_t offset, const __private short *p); -ushort8 __ovld vload8(size_t offset, const __private ushort *p); -int8 __ovld vload8(size_t offset, const __private int *p); -uint8 __ovld vload8(size_t offset, const __private uint *p); -long8 __ovld vload8(size_t offset, const __private long *p); -ulong8 __ovld vload8(size_t offset, const __private ulong *p); -float8 __ovld vload8(size_t offset, const __private float *p); -char16 __ovld vload16(size_t offset, const __private char *p); -uchar16 __ovld vload16(size_t offset, const __private uchar *p); -short16 __ovld vload16(size_t offset, const __private short *p); -ushort16 __ovld vload16(size_t offset, const __private ushort *p); -int16 __ovld vload16(size_t offset, const __private int *p); -uint16 __ovld vload16(size_t offset, const __private uint *p); -long16 __ovld vload16(size_t offset, const __private long *p); -ulong16 __ovld vload16(size_t offset, const __private ulong *p); -float16 __ovld vload16(size_t offset, const __private float *p); - -#ifdef cl_khr_fp64 -double2 __ovld vload2(size_t offset, const __global double *p); -double3 __ovld vload3(size_t offset, const __global double *p); -double4 __ovld vload4(size_t offset, const __global double *p); -double8 __ovld vload8(size_t offset, const __global double *p); -double16 __ovld vload16(size_t offset, const __global double *p); -double2 __ovld vload2(size_t offset, const __local double *p); -double3 __ovld vload3(size_t offset, const __local double *p); -double4 __ovld vload4(size_t offset, const __local double *p); -double8 __ovld vload8(size_t offset, const __local double *p); -double16 __ovld vload16(size_t offset, const __local double *p); -double2 __ovld vload2(size_t offset, const __private double *p); -double3 __ovld vload3(size_t offset, const __private double *p); -double4 __ovld vload4(size_t offset, const __private double *p); -double8 __ovld vload8(size_t offset, const __private double *p); -double16 __ovld vload16(size_t offset, const __private double *p); -#endif //cl_khr_fp64 - -#ifdef cl_khr_fp16 -half __ovld vload(size_t offset, const __global half *p); -half2 __ovld vload2(size_t offset, const __global half *p); -half3 __ovld vload3(size_t offset, const __global half *p); -half4 __ovld vload4(size_t offset, const __global half *p); -half8 __ovld vload8(size_t offset, const __global half *p); -half16 __ovld vload16(size_t offset, const __global half *p); -half __ovld vload(size_t offset, const __local half *p); -half2 __ovld vload2(size_t offset, const __local half *p); -half3 __ovld vload3(size_t offset, const __local half *p); -half4 __ovld vload4(size_t offset, const __local half *p); -half8 __ovld vload8(size_t offset, const __local half *p); -half16 __ovld vload16(size_t offset, const __local half *p); -half __ovld vload(size_t offset, const __private half *p); -half2 __ovld vload2(size_t offset, const __private half *p); -half3 __ovld vload3(size_t offset, const __private half *p); -half4 __ovld vload4(size_t offset, const __private half *p); -half8 __ovld vload8(size_t offset, const __private half *p); -half16 __ovld vload16(size_t offset, const __private half *p); -#endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstore2(char2 data, size_t offset, char *p); -void __ovld vstore2(uchar2 data, size_t offset, uchar *p); -void __ovld vstore2(short2 data, size_t offset, short *p); -void __ovld vstore2(ushort2 data, size_t offset, ushort *p); -void __ovld vstore2(int2 data, size_t offset, int *p); -void __ovld vstore2(uint2 data, size_t offset, uint *p); -void __ovld vstore2(long2 data, size_t offset, long *p); -void __ovld vstore2(ulong2 data, size_t offset, ulong *p); -void __ovld vstore2(float2 data, size_t offset, float *p); -void __ovld vstore3(char3 data, size_t offset, char *p); -void __ovld vstore3(uchar3 data, size_t offset, uchar *p); -void __ovld vstore3(short3 data, size_t offset, short *p); -void __ovld vstore3(ushort3 data, size_t offset, ushort *p); -void __ovld vstore3(int3 data, size_t offset, int *p); -void __ovld vstore3(uint3 data, size_t offset, uint *p); -void __ovld vstore3(long3 data, size_t offset, long *p); -void __ovld vstore3(ulong3 data, size_t offset, ulong *p); -void __ovld vstore3(float3 data, size_t offset, float *p); -void __ovld vstore4(char4 data, size_t offset, char *p); -void __ovld vstore4(uchar4 data, size_t offset, uchar *p); -void __ovld vstore4(short4 data, size_t offset, short *p); -void __ovld vstore4(ushort4 data, size_t offset, ushort *p); -void __ovld vstore4(int4 data, size_t offset, int *p); -void __ovld vstore4(uint4 data, size_t offset, uint *p); -void __ovld vstore4(long4 data, size_t offset, long *p); -void __ovld vstore4(ulong4 data, size_t offset, ulong *p); -void __ovld vstore4(float4 data, size_t offset, float *p); -void __ovld vstore8(char8 data, size_t offset, char *p); -void __ovld vstore8(uchar8 data, size_t offset, uchar *p); -void __ovld vstore8(short8 data, size_t offset, short *p); -void __ovld vstore8(ushort8 data, size_t offset, ushort *p); -void __ovld vstore8(int8 data, size_t offset, int *p); -void __ovld vstore8(uint8 data, size_t offset, uint *p); -void __ovld vstore8(long8 data, size_t offset, long *p); -void __ovld vstore8(ulong8 data, size_t offset, ulong *p); -void __ovld vstore8(float8 data, size_t offset, float *p); -void __ovld vstore16(char16 data, size_t offset, char *p); -void __ovld vstore16(uchar16 data, size_t offset, uchar *p); -void __ovld vstore16(short16 data, size_t offset, short *p); -void __ovld vstore16(ushort16 data, size_t offset, ushort *p); -void __ovld vstore16(int16 data, size_t offset, int *p); -void __ovld vstore16(uint16 data, size_t offset, uint *p); -void __ovld vstore16(long16 data, size_t offset, long *p); -void __ovld vstore16(ulong16 data, size_t offset, ulong *p); -void __ovld vstore16(float16 data, size_t offset, float *p); -#ifdef cl_khr_fp64 -void __ovld vstore2(double2 data, size_t offset, double *p); -void __ovld vstore3(double3 data, size_t offset, double *p); -void __ovld vstore4(double4 data, size_t offset, double *p); -void __ovld vstore8(double8 data, size_t offset, double *p); -void __ovld vstore16(double16 data, size_t offset, double *p); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -void __ovld vstore(half data, size_t offset, half *p); -void __ovld vstore2(half2 data, size_t offset, half *p); -void __ovld vstore3(half3 data, size_t offset, half *p); -void __ovld vstore4(half4 data, size_t offset, half *p); -void __ovld vstore8(half8 data, size_t offset, half *p); -void __ovld vstore16(half16 data, size_t offset, half *p); -#endif //cl_khr_fp16 -#else -void __ovld vstore2(char2 data, size_t offset, __global char *p); -void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p); -void __ovld vstore2(short2 data, size_t offset, __global short *p); -void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p); -void __ovld vstore2(int2 data, size_t offset, __global int *p); -void __ovld vstore2(uint2 data, size_t offset, __global uint *p); -void __ovld vstore2(long2 data, size_t offset, __global long *p); -void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p); -void __ovld vstore2(float2 data, size_t offset, __global float *p); -void __ovld vstore3(char3 data, size_t offset, __global char *p); -void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p); -void __ovld vstore3(short3 data, size_t offset, __global short *p); -void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p); -void __ovld vstore3(int3 data, size_t offset, __global int *p); -void __ovld vstore3(uint3 data, size_t offset, __global uint *p); -void __ovld vstore3(long3 data, size_t offset, __global long *p); -void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p); -void __ovld vstore3(float3 data, size_t offset, __global float *p); -void __ovld vstore4(char4 data, size_t offset, __global char *p); -void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p); -void __ovld vstore4(short4 data, size_t offset, __global short *p); -void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p); -void __ovld vstore4(int4 data, size_t offset, __global int *p); -void __ovld vstore4(uint4 data, size_t offset, __global uint *p); -void __ovld vstore4(long4 data, size_t offset, __global long *p); -void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p); -void __ovld vstore4(float4 data, size_t offset, __global float *p); -void __ovld vstore8(char8 data, size_t offset, __global char *p); -void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p); -void __ovld vstore8(short8 data, size_t offset, __global short *p); -void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p); -void __ovld vstore8(int8 data, size_t offset, __global int *p); -void __ovld vstore8(uint8 data, size_t offset, __global uint *p); -void __ovld vstore8(long8 data, size_t offset, __global long *p); -void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p); -void __ovld vstore8(float8 data, size_t offset, __global float *p); -void __ovld vstore16(char16 data, size_t offset, __global char *p); -void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p); -void __ovld vstore16(short16 data, size_t offset, __global short *p); -void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p); -void __ovld vstore16(int16 data, size_t offset, __global int *p); -void __ovld vstore16(uint16 data, size_t offset, __global uint *p); -void __ovld vstore16(long16 data, size_t offset, __global long *p); -void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p); -void __ovld vstore16(float16 data, size_t offset, __global float *p); -void __ovld vstore2(char2 data, size_t offset, __local char *p); -void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p); -void __ovld vstore2(short2 data, size_t offset, __local short *p); -void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p); -void __ovld vstore2(int2 data, size_t offset, __local int *p); -void __ovld vstore2(uint2 data, size_t offset, __local uint *p); -void __ovld vstore2(long2 data, size_t offset, __local long *p); -void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p); -void __ovld vstore2(float2 data, size_t offset, __local float *p); -void __ovld vstore3(char3 data, size_t offset, __local char *p); -void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p); -void __ovld vstore3(short3 data, size_t offset, __local short *p); -void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p); -void __ovld vstore3(int3 data, size_t offset, __local int *p); -void __ovld vstore3(uint3 data, size_t offset, __local uint *p); -void __ovld vstore3(long3 data, size_t offset, __local long *p); -void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p); -void __ovld vstore3(float3 data, size_t offset, __local float *p); -void __ovld vstore4(char4 data, size_t offset, __local char *p); -void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p); -void __ovld vstore4(short4 data, size_t offset, __local short *p); -void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p); -void __ovld vstore4(int4 data, size_t offset, __local int *p); -void __ovld vstore4(uint4 data, size_t offset, __local uint *p); -void __ovld vstore4(long4 data, size_t offset, __local long *p); -void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p); -void __ovld vstore4(float4 data, size_t offset, __local float *p); -void __ovld vstore8(char8 data, size_t offset, __local char *p); -void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p); -void __ovld vstore8(short8 data, size_t offset, __local short *p); -void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p); -void __ovld vstore8(int8 data, size_t offset, __local int *p); -void __ovld vstore8(uint8 data, size_t offset, __local uint *p); -void __ovld vstore8(long8 data, size_t offset, __local long *p); -void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p); -void __ovld vstore8(float8 data, size_t offset, __local float *p); -void __ovld vstore16(char16 data, size_t offset, __local char *p); -void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p); -void __ovld vstore16(short16 data, size_t offset, __local short *p); -void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p); -void __ovld vstore16(int16 data, size_t offset, __local int *p); -void __ovld vstore16(uint16 data, size_t offset, __local uint *p); -void __ovld vstore16(long16 data, size_t offset, __local long *p); -void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p); -void __ovld vstore16(float16 data, size_t offset, __local float *p); -void __ovld vstore2(char2 data, size_t offset, __private char *p); -void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p); -void __ovld vstore2(short2 data, size_t offset, __private short *p); -void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p); -void __ovld vstore2(int2 data, size_t offset, __private int *p); -void __ovld vstore2(uint2 data, size_t offset, __private uint *p); -void __ovld vstore2(long2 data, size_t offset, __private long *p); -void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p); -void __ovld vstore2(float2 data, size_t offset, __private float *p); -void __ovld vstore3(char3 data, size_t offset, __private char *p); -void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p); -void __ovld vstore3(short3 data, size_t offset, __private short *p); -void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p); -void __ovld vstore3(int3 data, size_t offset, __private int *p); -void __ovld vstore3(uint3 data, size_t offset, __private uint *p); -void __ovld vstore3(long3 data, size_t offset, __private long *p); -void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p); -void __ovld vstore3(float3 data, size_t offset, __private float *p); -void __ovld vstore4(char4 data, size_t offset, __private char *p); -void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p); -void __ovld vstore4(short4 data, size_t offset, __private short *p); -void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p); -void __ovld vstore4(int4 data, size_t offset, __private int *p); -void __ovld vstore4(uint4 data, size_t offset, __private uint *p); -void __ovld vstore4(long4 data, size_t offset, __private long *p); -void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p); -void __ovld vstore4(float4 data, size_t offset, __private float *p); -void __ovld vstore8(char8 data, size_t offset, __private char *p); -void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p); -void __ovld vstore8(short8 data, size_t offset, __private short *p); -void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p); -void __ovld vstore8(int8 data, size_t offset, __private int *p); -void __ovld vstore8(uint8 data, size_t offset, __private uint *p); -void __ovld vstore8(long8 data, size_t offset, __private long *p); -void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p); -void __ovld vstore8(float8 data, size_t offset, __private float *p); -void __ovld vstore16(char16 data, size_t offset, __private char *p); -void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p); -void __ovld vstore16(short16 data, size_t offset, __private short *p); -void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p); -void __ovld vstore16(int16 data, size_t offset, __private int *p); -void __ovld vstore16(uint16 data, size_t offset, __private uint *p); -void __ovld vstore16(long16 data, size_t offset, __private long *p); -void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p); -void __ovld vstore16(float16 data, size_t offset, __private float *p); -#ifdef cl_khr_fp64 -void __ovld vstore2(double2 data, size_t offset, __global double *p); -void __ovld vstore3(double3 data, size_t offset, __global double *p); -void __ovld vstore4(double4 data, size_t offset, __global double *p); -void __ovld vstore8(double8 data, size_t offset, __global double *p); -void __ovld vstore16(double16 data, size_t offset, __global double *p); -void __ovld vstore2(double2 data, size_t offset, __local double *p); -void __ovld vstore3(double3 data, size_t offset, __local double *p); -void __ovld vstore4(double4 data, size_t offset, __local double *p); -void __ovld vstore8(double8 data, size_t offset, __local double *p); -void __ovld vstore16(double16 data, size_t offset, __local double *p); -void __ovld vstore2(double2 data, size_t offset, __private double *p); -void __ovld vstore3(double3 data, size_t offset, __private double *p); -void __ovld vstore4(double4 data, size_t offset, __private double *p); -void __ovld vstore8(double8 data, size_t offset, __private double *p); -void __ovld vstore16(double16 data, size_t offset, __private double *p); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -void __ovld vstore(half data, size_t offset, __global half *p); -void __ovld vstore2(half2 data, size_t offset, __global half *p); -void __ovld vstore3(half3 data, size_t offset, __global half *p); -void __ovld vstore4(half4 data, size_t offset, __global half *p); -void __ovld vstore8(half8 data, size_t offset, __global half *p); -void __ovld vstore16(half16 data, size_t offset, __global half *p); -void __ovld vstore(half data, size_t offset, __local half *p); -void __ovld vstore2(half2 data, size_t offset, __local half *p); -void __ovld vstore3(half3 data, size_t offset, __local half *p); -void __ovld vstore4(half4 data, size_t offset, __local half *p); -void __ovld vstore8(half8 data, size_t offset, __local half *p); -void __ovld vstore16(half16 data, size_t offset, __local half *p); -void __ovld vstore(half data, size_t offset, __private half *p); -void __ovld vstore2(half2 data, size_t offset, __private half *p); -void __ovld vstore3(half3 data, size_t offset, __private half *p); -void __ovld vstore4(half4 data, size_t offset, __private half *p); -void __ovld vstore8(half8 data, size_t offset, __private half *p); -void __ovld vstore16(half16 data, size_t offset, __private half *p); -#endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Read sizeof (half) bytes of data from address - * (p + offset). The data read is interpreted as a - * half value. The half value is converted to a - * float value and the float value is returned. - * The read address computed as (p + offset) - * must be 16-bit aligned. - */ -float __ovld vload_half(size_t offset, const __constant half *p); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld vload_half(size_t offset, const half *p); -#else -float __ovld vload_half(size_t offset, const __global half *p); -float __ovld vload_half(size_t offset, const __local half *p); -float __ovld vload_half(size_t offset, const __private half *p); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Read sizeof (halfn) bytes of data from address - * (p + (offset * n)). The data read is interpreted - * as a halfn value. The halfn value read is - * converted to a floatn value and the floatn - * value is returned. The read address computed - * as (p + (offset * n)) must be 16-bit aligned. - */ -float2 __ovld vload_half2(size_t offset, const __constant half *p); -float3 __ovld vload_half3(size_t offset, const __constant half *p); -float4 __ovld vload_half4(size_t offset, const __constant half *p); -float8 __ovld vload_half8(size_t offset, const __constant half *p); -float16 __ovld vload_half16(size_t offset, const __constant half *p); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float2 __ovld vload_half2(size_t offset, const half *p); -float3 __ovld vload_half3(size_t offset, const half *p); -float4 __ovld vload_half4(size_t offset, const half *p); -float8 __ovld vload_half8(size_t offset, const half *p); -float16 __ovld vload_half16(size_t offset, const half *p); -#else -float2 __ovld vload_half2(size_t offset, const __global half *p); -float3 __ovld vload_half3(size_t offset, const __global half *p); -float4 __ovld vload_half4(size_t offset, const __global half *p); -float8 __ovld vload_half8(size_t offset, const __global half *p); -float16 __ovld vload_half16(size_t offset, const __global half *p); -float2 __ovld vload_half2(size_t offset, const __local half *p); -float3 __ovld vload_half3(size_t offset, const __local half *p); -float4 __ovld vload_half4(size_t offset, const __local half *p); -float8 __ovld vload_half8(size_t offset, const __local half *p); -float16 __ovld vload_half16(size_t offset, const __local half *p); -float2 __ovld vload_half2(size_t offset, const __private half *p); -float3 __ovld vload_half3(size_t offset, const __private half *p); -float4 __ovld vload_half4(size_t offset, const __private half *p); -float8 __ovld vload_half8(size_t offset, const __private half *p); -float16 __ovld vload_half16(size_t offset, const __private half *p); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * The float value given by data is first - * converted to a half value using the appropriate - * rounding mode. The half value is then written - * to address computed as (p + offset). The - * address computed as (p + offset) must be 16- - * bit aligned. - * vstore_half use the current rounding mode. - * The default current rounding mode is round to - * nearest even. - */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstore_half(float data, size_t offset, half *p); -void __ovld vstore_half_rte(float data, size_t offset, half *p); -void __ovld vstore_half_rtz(float data, size_t offset, half *p); -void __ovld vstore_half_rtp(float data, size_t offset, half *p); -void __ovld vstore_half_rtn(float data, size_t offset, half *p); -#ifdef cl_khr_fp64 -void __ovld vstore_half(double data, size_t offset, half *p); -void __ovld vstore_half_rte(double data, size_t offset, half *p); -void __ovld vstore_half_rtz(double data, size_t offset, half *p); -void __ovld vstore_half_rtp(double data, size_t offset, half *p); -void __ovld vstore_half_rtn(double data, size_t offset, half *p); -#endif //cl_khr_fp64 -#else -void __ovld vstore_half(float data, size_t offset, __global half *p); -void __ovld vstore_half_rte(float data, size_t offset, __global half *p); -void __ovld vstore_half_rtz(float data, size_t offset, __global half *p); -void __ovld vstore_half_rtp(float data, size_t offset, __global half *p); -void __ovld vstore_half_rtn(float data, size_t offset, __global half *p); -void __ovld vstore_half(float data, size_t offset, __local half *p); -void __ovld vstore_half_rte(float data, size_t offset, __local half *p); -void __ovld vstore_half_rtz(float data, size_t offset, __local half *p); -void __ovld vstore_half_rtp(float data, size_t offset, __local half *p); -void __ovld vstore_half_rtn(float data, size_t offset, __local half *p); -void __ovld vstore_half(float data, size_t offset, __private half *p); -void __ovld vstore_half_rte(float data, size_t offset, __private half *p); -void __ovld vstore_half_rtz(float data, size_t offset, __private half *p); -void __ovld vstore_half_rtp(float data, size_t offset, __private half *p); -void __ovld vstore_half_rtn(float data, size_t offset, __private half *p); -#ifdef cl_khr_fp64 -void __ovld vstore_half(double data, size_t offset, __global half *p); -void __ovld vstore_half_rte(double data, size_t offset, __global half *p); -void __ovld vstore_half_rtz(double data, size_t offset, __global half *p); -void __ovld vstore_half_rtp(double data, size_t offset, __global half *p); -void __ovld vstore_half_rtn(double data, size_t offset, __global half *p); -void __ovld vstore_half(double data, size_t offset, __local half *p); -void __ovld vstore_half_rte(double data, size_t offset, __local half *p); -void __ovld vstore_half_rtz(double data, size_t offset, __local half *p); -void __ovld vstore_half_rtp(double data, size_t offset, __local half *p); -void __ovld vstore_half_rtn(double data, size_t offset, __local half *p); -void __ovld vstore_half(double data, size_t offset, __private half *p); -void __ovld vstore_half_rte(double data, size_t offset, __private half *p); -void __ovld vstore_half_rtz(double data, size_t offset, __private half *p); -void __ovld vstore_half_rtp(double data, size_t offset, __private half *p); -void __ovld vstore_half_rtn(double data, size_t offset, __private half *p); -#endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * The floatn value given by data is converted to - * a halfn value using the appropriate rounding - * mode. The halfn value is then written to - * address computed as (p + (offset * n)). The - * address computed as (p + (offset * n)) must be - * 16-bit aligned. - * vstore_halfn uses the current rounding mode. - * The default current rounding mode is round to - * nearest even. - */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstore_half2(float2 data, size_t offset, half *p); -void __ovld vstore_half3(float3 data, size_t offset, half *p); -void __ovld vstore_half4(float4 data, size_t offset, half *p); -void __ovld vstore_half8(float8 data, size_t offset, half *p); -void __ovld vstore_half16(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p); -#ifdef cl_khr_fp64 -void __ovld vstore_half2(double2 data, size_t offset, half *p); -void __ovld vstore_half3(double3 data, size_t offset, half *p); -void __ovld vstore_half4(double4 data, size_t offset, half *p); -void __ovld vstore_half8(double8 data, size_t offset, half *p); -void __ovld vstore_half16(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p); -#endif //cl_khr_fp64 -#else -void __ovld vstore_half2(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p); -#ifdef cl_khr_fp64 -void __ovld vstore_half2(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p); -#endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * For n = 1, 2, 4, 8 and 16 read sizeof (halfn) - * bytes of data from address (p + (offset * n)). - * The data read is interpreted as a halfn value. - * The halfn value read is converted to a floatn - * value and the floatn value is returned. - * The address computed as (p + (offset * n)) - * must be aligned to sizeof (halfn) bytes. - * For n = 3, vloada_half3 reads a half3 from - * address (p + (offset * 4)) and returns a float3. - * The address computed as (p + (offset * 4)) - * must be aligned to sizeof (half) * 4 bytes. - */ -float __ovld vloada_half(size_t offset, const __constant half *p); -float2 __ovld vloada_half2(size_t offset, const __constant half *p); -float3 __ovld vloada_half3(size_t offset, const __constant half *p); -float4 __ovld vloada_half4(size_t offset, const __constant half *p); -float8 __ovld vloada_half8(size_t offset, const __constant half *p); -float16 __ovld vloada_half16(size_t offset, const __constant half *p); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld vloada_half(size_t offset, const half *p); -float2 __ovld vloada_half2(size_t offset, const half *p); -float3 __ovld vloada_half3(size_t offset, const half *p); -float4 __ovld vloada_half4(size_t offset, const half *p); -float8 __ovld vloada_half8(size_t offset, const half *p); -float16 __ovld vloada_half16(size_t offset, const half *p); -#else -float __ovld vloada_half(size_t offset, const __global half *p); -float2 __ovld vloada_half2(size_t offset, const __global half *p); -float3 __ovld vloada_half3(size_t offset, const __global half *p); -float4 __ovld vloada_half4(size_t offset, const __global half *p); -float8 __ovld vloada_half8(size_t offset, const __global half *p); -float16 __ovld vloada_half16(size_t offset, const __global half *p); -float __ovld vloada_half(size_t offset, const __local half *p); -float2 __ovld vloada_half2(size_t offset, const __local half *p); -float3 __ovld vloada_half3(size_t offset, const __local half *p); -float4 __ovld vloada_half4(size_t offset, const __local half *p); -float8 __ovld vloada_half8(size_t offset, const __local half *p); -float16 __ovld vloada_half16(size_t offset, const __local half *p); -float __ovld vloada_half(size_t offset, const __private half *p); -float2 __ovld vloada_half2(size_t offset, const __private half *p); -float3 __ovld vloada_half3(size_t offset, const __private half *p); -float4 __ovld vloada_half4(size_t offset, const __private half *p); -float8 __ovld vloada_half8(size_t offset, const __private half *p); -float16 __ovld vloada_half16(size_t offset, const __private half *p); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * The floatn value given by data is converted to - * a halfn value using the appropriate rounding - * mode. - * For n = 1, 2, 4, 8 and 16, the halfn value is - * written to the address computed as (p + (offset - * * n)). The address computed as (p + (offset * - * n)) must be aligned to sizeof (halfn) bytes. - * For n = 3, the half3 value is written to the - * address computed as (p + (offset * 4)). The - * address computed as (p + (offset * 4)) must be - * aligned to sizeof (half) * 4 bytes. - * vstorea_halfn uses the current rounding - * mode. The default current rounding mode is - * round to nearest even. - */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstorea_half(float data, size_t offset, half *p); -void __ovld vstorea_half2(float2 data, size_t offset, half *p); -void __ovld vstorea_half3(float3 data, size_t offset, half *p); -void __ovld vstorea_half4(float4 data, size_t offset, half *p); -void __ovld vstorea_half8(float8 data, size_t offset, half *p); -void __ovld vstorea_half16(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p); - -#ifdef cl_khr_fp64 -void __ovld vstorea_half(double data, size_t offset, half *p); -void __ovld vstorea_half2(double2 data, size_t offset, half *p); -void __ovld vstorea_half3(double3 data, size_t offset, half *p); -void __ovld vstorea_half4(double4 data, size_t offset, half *p); -void __ovld vstorea_half8(double8 data, size_t offset, half *p); -void __ovld vstorea_half16(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, half *p); -void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p); -#endif //cl_khr_fp64 - -#else -void __ovld vstorea_half(float data, size_t offset, __global half *p); -void __ovld vstorea_half2(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half(float data, size_t offset, __local half *p); -void __ovld vstorea_half2(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half(float data, size_t offset, __private half *p); -void __ovld vstorea_half2(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p); - -#ifdef cl_khr_fp64 -void __ovld vstorea_half(double data, size_t offset, __global half *p); -void __ovld vstorea_half2(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half(double data, size_t offset, __local half *p); -void __ovld vstorea_half2(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half(double data, size_t offset, __private half *p); -void __ovld vstorea_half2(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p); -void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p); -void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p); -void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p); -void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p); -#endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions - -/** - * All work-items in a work-group executing the kernel - * on a processor must execute this function before any - * are allowed to continue execution beyond the barrier. - * This function must be encountered by all work-items in - * a work-group executing the kernel. - * If barrier is inside a conditional statement, then all - * work-items must enter the conditional if any work-item - * enters the conditional statement and executes the - * barrier. - * If barrer is inside a loop, all work-items must execute - * the barrier for each iteration of the loop before any are - * allowed to continue execution beyond the barrier. - * The barrier function also queues a memory fence - * (reads and writes) to ensure correct ordering of - * memory operations to local or global memory. - * The flags argument specifies the memory address space - * and can be set to a combination of the following literal - * values. - * CLK_LOCAL_MEM_FENCE - The barrier function - * will either flush any variables stored in local memory - * or queue a memory fence to ensure correct ordering of - * memory operations to local memory. - * CLK_GLOBAL_MEM_FENCE - The barrier function - * will queue a memory fence to ensure correct ordering - * of memory operations to global memory. This can be - * useful when work-items, for example, write to buffer or - * image objects and then want to read the updated data. - */ - -void __ovld __conv barrier(cl_mem_fence_flags flags); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope); -void __ovld __conv work_group_barrier(cl_mem_fence_flags flags); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions - -/** - * Orders loads and stores of a work-item - * executing a kernel. This means that loads - * and stores preceding the mem_fence will - * be committed to memory before any loads - * and stores following the mem_fence. - * The flags argument specifies the memory - * address space and can be set to a - * combination of the following literal - * values: - * CLK_LOCAL_MEM_FENCE - * CLK_GLOBAL_MEM_FENCE. - */ -void __ovld mem_fence(cl_mem_fence_flags flags); - -/** - * Read memory barrier that orders only - * loads. - * The flags argument specifies the memory - * address space and can be set to a - * combination of the following literal - * values: - * CLK_LOCAL_MEM_FENCE - * CLK_GLOBAL_MEM_FENCE. - */ -void __ovld read_mem_fence(cl_mem_fence_flags flags); - -/** - * Write memory barrier that orders only - * stores. - * The flags argument specifies the memory - * address space and can be set to a - * combination of the following literal - * values: - * CLK_LOCAL_MEM_FENCE - * CLK_GLOBAL_MEM_FENCE. - */ -void __ovld write_mem_fence(cl_mem_fence_flags flags); - -// OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -cl_mem_fence_flags __ovld get_fence(const void *ptr); -cl_mem_fence_flags __ovld get_fence(void *ptr); - -/** - * Builtin functions to_global, to_local, and to_private need to be declared as Clang builtin functions - * and checked in Sema since they should be declared as - * addr gentype* to_addr (gentype*); - * where gentype is builtin type or user defined type. - */ - -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// OpenCL v1.1 s6.11.10, v1.2 s6.12.10, v2.0 s6.13.10 - Async Copies from Global to Local Memory, Local to Global Memory, and Prefetch - -/** - * event_t async_work_group_copy ( - * __global gentype *dst, - * const __local gentype *src, - * size_t num_elements, - * event_t event) - * Perform an async copy of num_elements - * gentype elements from src to dst. The async - * copy is performed by all work-items in a workgroup - * and this built-in function must therefore - * be encountered by all work-items in a workgroup - * executing the kernel with the same - * argument values; otherwise the results are - * undefined. - * Returns an event object that can be used by - * wait_group_events to wait for the async copy - * to finish. The event argument can also be used - * to associate the async_work_group_copy with - * a previous async copy allowing an event to be - * shared by multiple async copies; otherwise event - * should be zero. - * If event argument is non-zero, the event object - * supplied in event argument will be returned. - * This function does not perform any implicit - * synchronization of source data such as using a - * barrier before performing the copy. - */ -event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event); -#ifdef cl_khr_fp64 -event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event); -#endif //cl_khr_fp16 - -/** - * Perform an async gather of num_elements - * gentype elements from src to dst. The - * src_stride is the stride in elements for each - * gentype element read from src. The dst_stride - * is the stride in elements for each gentype - * element written to dst. The async gather is - * performed by all work-items in a work-group. - * This built-in function must therefore be - * encountered by all work-items in a work-group - * executing the kernel with the same argument - * values; otherwise the results are undefined. - * Returns an event object that can be used by - * wait_group_events to wait for the async copy - * to finish. The event argument can also be used - * to associate the - * async_work_group_strided_copy with a - * previous async copy allowing an event to be - * shared by multiple async copies; otherwise event - * should be zero. - * If event argument is non-zero, the event object - * supplied in event argument will be returned. - * This function does not perform any implicit - * synchronization of source data such as using a - * barrier before performing the copy. - */ -event_t __ovld async_work_group_strided_copy(__local char *dst, const __global char *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short *dst, const __global short *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int *dst, const __global int *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint *dst, const __global uint *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long *dst, const __global long *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float *dst, const __global float *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char *dst, const __local char *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short *dst, const __local short *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int *dst, const __local int *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint *dst, const __local uint *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long *dst, const __local long *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float *dst, const __local float *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, size_t dst_stride, event_t event); -#ifdef cl_khr_fp64 -event_t __ovld async_work_group_strided_copy(__local double *dst, const __global double *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double *dst, const __local double *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, size_t dst_stride, event_t event); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -event_t __ovld async_work_group_strided_copy(__local half *dst, const __global half *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half *dst, const __local half *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, size_t dst_stride, event_t event); -#endif //cl_khr_fp16 - -/** - * Wait for events that identify the - * async_work_group_copy operations to - * complete. The event objects specified in - * event_list will be released after the wait is - * performed. - * This function must be encountered by all workitems - * in a work-group executing the kernel with - * the same num_events and event objects specified - * in event_list; otherwise the results are undefined. - */ -void __ovld wait_group_events(int num_events, event_t *event_list); - -/** - * Prefetch num_elements * sizeof(gentype) - * bytes into the global cache. The prefetch - * instruction is applied to a work-item in a workgroup - * and does not affect the functional - * behavior of the kernel. - */ -void __ovld prefetch(const __global char *p, size_t num_elements); -void __ovld prefetch(const __global uchar *p, size_t num_elements); -void __ovld prefetch(const __global short *p, size_t num_elements); -void __ovld prefetch(const __global ushort *p, size_t num_elements); -void __ovld prefetch(const __global int *p, size_t num_elements); -void __ovld prefetch(const __global uint *p, size_t num_elements); -void __ovld prefetch(const __global long *p, size_t num_elements); -void __ovld prefetch(const __global ulong *p, size_t num_elements); -void __ovld prefetch(const __global float *p, size_t num_elements); -void __ovld prefetch(const __global char2 *p, size_t num_elements); -void __ovld prefetch(const __global uchar2 *p, size_t num_elements); -void __ovld prefetch(const __global short2 *p, size_t num_elements); -void __ovld prefetch(const __global ushort2 *p, size_t num_elements); -void __ovld prefetch(const __global int2 *p, size_t num_elements); -void __ovld prefetch(const __global uint2 *p, size_t num_elements); -void __ovld prefetch(const __global long2 *p, size_t num_elements); -void __ovld prefetch(const __global ulong2 *p, size_t num_elements); -void __ovld prefetch(const __global float2 *p, size_t num_elements); -void __ovld prefetch(const __global char3 *p, size_t num_elements); -void __ovld prefetch(const __global uchar3 *p, size_t num_elements); -void __ovld prefetch(const __global short3 *p, size_t num_elements); -void __ovld prefetch(const __global ushort3 *p, size_t num_elements); -void __ovld prefetch(const __global int3 *p, size_t num_elements); -void __ovld prefetch(const __global uint3 *p, size_t num_elements); -void __ovld prefetch(const __global long3 *p, size_t num_elements); -void __ovld prefetch(const __global ulong3 *p, size_t num_elements); -void __ovld prefetch(const __global float3 *p, size_t num_elements); -void __ovld prefetch(const __global char4 *p, size_t num_elements); -void __ovld prefetch(const __global uchar4 *p, size_t num_elements); -void __ovld prefetch(const __global short4 *p, size_t num_elements); -void __ovld prefetch(const __global ushort4 *p, size_t num_elements); -void __ovld prefetch(const __global int4 *p, size_t num_elements); -void __ovld prefetch(const __global uint4 *p, size_t num_elements); -void __ovld prefetch(const __global long4 *p, size_t num_elements); -void __ovld prefetch(const __global ulong4 *p, size_t num_elements); -void __ovld prefetch(const __global float4 *p, size_t num_elements); -void __ovld prefetch(const __global char8 *p, size_t num_elements); -void __ovld prefetch(const __global uchar8 *p, size_t num_elements); -void __ovld prefetch(const __global short8 *p, size_t num_elements); -void __ovld prefetch(const __global ushort8 *p, size_t num_elements); -void __ovld prefetch(const __global int8 *p, size_t num_elements); -void __ovld prefetch(const __global uint8 *p, size_t num_elements); -void __ovld prefetch(const __global long8 *p, size_t num_elements); -void __ovld prefetch(const __global ulong8 *p, size_t num_elements); -void __ovld prefetch(const __global float8 *p, size_t num_elements); -void __ovld prefetch(const __global char16 *p, size_t num_elements); -void __ovld prefetch(const __global uchar16 *p, size_t num_elements); -void __ovld prefetch(const __global short16 *p, size_t num_elements); -void __ovld prefetch(const __global ushort16 *p, size_t num_elements); -void __ovld prefetch(const __global int16 *p, size_t num_elements); -void __ovld prefetch(const __global uint16 *p, size_t num_elements); -void __ovld prefetch(const __global long16 *p, size_t num_elements); -void __ovld prefetch(const __global ulong16 *p, size_t num_elements); -void __ovld prefetch(const __global float16 *p, size_t num_elements); -#ifdef cl_khr_fp64 -void __ovld prefetch(const __global double *p, size_t num_elements); -void __ovld prefetch(const __global double2 *p, size_t num_elements); -void __ovld prefetch(const __global double3 *p, size_t num_elements); -void __ovld prefetch(const __global double4 *p, size_t num_elements); -void __ovld prefetch(const __global double8 *p, size_t num_elements); -void __ovld prefetch(const __global double16 *p, size_t num_elements); -#endif //cl_khr_fp64 -#ifdef cl_khr_fp16 -void __ovld prefetch(const __global half *p, size_t num_elements); -void __ovld prefetch(const __global half2 *p, size_t num_elements); -void __ovld prefetch(const __global half3 *p, size_t num_elements); -void __ovld prefetch(const __global half4 *p, size_t num_elements); -void __ovld prefetch(const __global half8 *p, size_t num_elements); -void __ovld prefetch(const __global half16 *p, size_t num_elements); -#endif // cl_khr_fp16 - -// OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions - -#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable -#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable -#endif -/** - * Read the 32-bit value (referred to as old) - * stored at location pointed by p. Compute - * (old + val) and store result at location - * pointed by p. The function returns old. - */ -int __ovld atomic_add(volatile __global int *p, int val); -unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_add(volatile __local int *p, int val); -unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_add(volatile int *p, int val); -unsigned int __ovld atomic_add(volatile unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_add(volatile __global int *p, int val); -unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val); -#endif -#if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_add(volatile __local int *p, int val); -unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_int64_base_atomics) -long __ovld atom_add(volatile __global long *p, long val); -unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_add(volatile __local long *p, long val); -unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val); -#endif - -/** - * Read the 32-bit value (referred to as old) stored at location pointed by p. - * Compute (old - val) and store result at location pointed by p. The function - * returns old. - */ -int __ovld atomic_sub(volatile __global int *p, int val); -unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_sub(volatile __local int *p, int val); -unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_sub(volatile int *p, int val); -unsigned int __ovld atomic_sub(volatile unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_sub(volatile __global int *p, int val); -unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val); -#endif -#if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_sub(volatile __local int *p, int val); -unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_int64_base_atomics) -long __ovld atom_sub(volatile __global long *p, long val); -unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_sub(volatile __local long *p, long val); -unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val); -#endif - -/** - * Swaps the old value stored at location p - * with new value given by val. Returns old - * value. - */ -int __ovld atomic_xchg(volatile __global int *p, int val); -unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_xchg(volatile __local int *p, int val); -unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val); -float __ovld atomic_xchg(volatile __global float *p, float val); -float __ovld atomic_xchg(volatile __local float *p, float val); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_xchg(volatile int *p, int val); -unsigned int __ovld atomic_xchg(volatile unsigned int *p, unsigned int val); -float __ovld atomic_xchg(volatile float *p, float val); -#endif - -#if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_xchg(volatile __global int *p, int val); -unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val); -#endif -#if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_xchg(volatile __local int *p, int val); -unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_int64_base_atomics) -long __ovld atom_xchg(volatile __global long *p, long val); -long __ovld atom_xchg(volatile __local long *p, long val); -unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val); -unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val); -#endif - -/** - * Read the 32-bit value (referred to as old) - * stored at location pointed by p. Compute - * (old + 1) and store result at location - * pointed by p. The function returns old. - */ -int __ovld atomic_inc(volatile __global int *p); -unsigned int __ovld atomic_inc(volatile __global unsigned int *p); -int __ovld atomic_inc(volatile __local int *p); -unsigned int __ovld atomic_inc(volatile __local unsigned int *p); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_inc(volatile int *p); -unsigned int __ovld atomic_inc(volatile unsigned int *p); -#endif - -#if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_inc(volatile __global int *p); -unsigned int __ovld atom_inc(volatile __global unsigned int *p); -#endif -#if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_inc(volatile __local int *p); -unsigned int __ovld atom_inc(volatile __local unsigned int *p); -#endif - -#if defined(cl_khr_int64_base_atomics) -long __ovld atom_inc(volatile __global long *p); -unsigned long __ovld atom_inc(volatile __global unsigned long *p); -long __ovld atom_inc(volatile __local long *p); -unsigned long __ovld atom_inc(volatile __local unsigned long *p); -#endif - -/** - * Read the 32-bit value (referred to as old) - * stored at location pointed by p. Compute - * (old - 1) and store result at location - * pointed by p. The function returns old. - */ -int __ovld atomic_dec(volatile __global int *p); -unsigned int __ovld atomic_dec(volatile __global unsigned int *p); -int __ovld atomic_dec(volatile __local int *p); -unsigned int __ovld atomic_dec(volatile __local unsigned int *p); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_dec(volatile int *p); -unsigned int __ovld atomic_dec(volatile unsigned int *p); -#endif - -#if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_dec(volatile __global int *p); -unsigned int __ovld atom_dec(volatile __global unsigned int *p); -#endif -#if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_dec(volatile __local int *p); -unsigned int __ovld atom_dec(volatile __local unsigned int *p); -#endif - -#if defined(cl_khr_int64_base_atomics) -long __ovld atom_dec(volatile __global long *p); -unsigned long __ovld atom_dec(volatile __global unsigned long *p); -long __ovld atom_dec(volatile __local long *p); -unsigned long __ovld atom_dec(volatile __local unsigned long *p); -#endif - -/** - * Read the 32-bit value (referred to as old) - * stored at location pointed by p. Compute - * (old == cmp) ? val : old and store result at - * location pointed by p. The function - * returns old. - */ -int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val); -unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val); -int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val); -unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_cmpxchg(volatile int *p, int cmp, int val); -unsigned int __ovld atomic_cmpxchg(volatile unsigned int *p, unsigned int cmp, unsigned int val); -#endif - -#if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val); -unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val); -#endif -#if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val); -unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val); -#endif - -#if defined(cl_khr_int64_base_atomics) -long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val); -unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val); -long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val); -unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val); -#endif - -/** - * Read the 32-bit value (referred to as old) - * stored at location pointed by p. Compute - * min(old, val) and store minimum value at - * location pointed by p. The function - * returns old. - */ -int __ovld atomic_min(volatile __global int *p, int val); -unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_min(volatile __local int *p, int val); -unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_min(volatile int *p, int val); -unsigned int __ovld atomic_min(volatile unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_min(volatile __global int *p, int val); -unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val); -#endif -#if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_min(volatile __local int *p, int val); -unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_int64_extended_atomics) -long __ovld atom_min(volatile __global long *p, long val); -unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_min(volatile __local long *p, long val); -unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val); -#endif - -/** - * Read the 32-bit value (referred to as old) - * stored at location pointed by p. Compute - * max(old, val) and store maximum value at - * location pointed by p. The function - * returns old. - */ -int __ovld atomic_max(volatile __global int *p, int val); -unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_max(volatile __local int *p, int val); -unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_max(volatile int *p, int val); -unsigned int __ovld atomic_max(volatile unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_max(volatile __global int *p, int val); -unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val); -#endif -#if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_max(volatile __local int *p, int val); -unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_int64_extended_atomics) -long __ovld atom_max(volatile __global long *p, long val); -unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_max(volatile __local long *p, long val); -unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val); -#endif - -/** - * Read the 32-bit value (referred to as old) - * stored at location pointed by p. Compute - * (old & val) and store result at location - * pointed by p. The function returns old. - */ -int __ovld atomic_and(volatile __global int *p, int val); -unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_and(volatile __local int *p, int val); -unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_and(volatile int *p, int val); -unsigned int __ovld atomic_and(volatile unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_and(volatile __global int *p, int val); -unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val); -#endif -#if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_and(volatile __local int *p, int val); -unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_int64_extended_atomics) -long __ovld atom_and(volatile __global long *p, long val); -unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_and(volatile __local long *p, long val); -unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val); -#endif - -/** - * Read the 32-bit value (referred to as old) - * stored at location pointed by p. Compute - * (old | val) and store result at location - * pointed by p. The function returns old. - */ -int __ovld atomic_or(volatile __global int *p, int val); -unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_or(volatile __local int *p, int val); -unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_or(volatile int *p, int val); -unsigned int __ovld atomic_or(volatile unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_or(volatile __global int *p, int val); -unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val); -#endif -#if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_or(volatile __local int *p, int val); -unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_int64_extended_atomics) -long __ovld atom_or(volatile __global long *p, long val); -unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_or(volatile __local long *p, long val); -unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val); -#endif - -/** - * Read the 32-bit value (referred to as old) - * stored at location pointed by p. Compute - * (old ^ val) and store result at location - * pointed by p. The function returns old. - */ -int __ovld atomic_xor(volatile __global int *p, int val); -unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_xor(volatile __local int *p, int val); -unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val); -#ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_xor(volatile int *p, int val); -unsigned int __ovld atomic_xor(volatile unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_xor(volatile __global int *p, int val); -unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val); -#endif -#if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_xor(volatile __local int *p, int val); -unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val); -#endif - -#if defined(cl_khr_int64_extended_atomics) -long __ovld atom_xor(volatile __global long *p, long val); -unsigned long __ovld atom_xor(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_xor(volatile __local long *p, long val); -unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long val); -#endif - -#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : disable -#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : disable -#endif - -// OpenCL v2.0 s6.13.11 - Atomics Functions - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics -#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable -#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable -#endif - -// atomic_init() -void __ovld atomic_init(volatile atomic_int *object, int value); -void __ovld atomic_init(volatile atomic_uint *object, uint value); -void __ovld atomic_init(volatile atomic_float *object, float value); -#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -void __ovld atomic_init(volatile atomic_long *object, long value); -void __ovld atomic_init(volatile atomic_ulong *object, ulong value); -#ifdef cl_khr_fp64 -void __ovld atomic_init(volatile atomic_double *object, double value); -#endif //cl_khr_fp64 -#endif - -// atomic_work_item_fence() -void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope); - -// atomic_fetch() - -int __ovld atomic_fetch_add(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_or(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_and(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_min(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_min(volatile atomic_uint *object, int operand); -uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, int operand, memory_order order); -uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, int operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_max(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_max(volatile atomic_uint *object, int operand); -uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, int operand, memory_order order); -uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, int operand, memory_order order, memory_scope scope); - -#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -long __ovld atomic_fetch_add(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_or(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_and(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_min(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, long operand); -ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, long operand, memory_order order); -ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, long operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_max(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, long operand); -ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, long operand, memory_order order); -ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, long operand, memory_order order, memory_scope scope); -#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) - -// OpenCL v2.0 s6.13.11.7.5: -// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t. -// or/xor/and/min/max: atomic type argument can be intptr_t/uintptr_t, value type argument can be intptr_t/uintptr_t. - -#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand); -uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order); -uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope); -uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand); -uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order); -uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope); - -uintptr_t __ovld atomic_fetch_or(volatile atomic_uintptr_t *object, intptr_t operand); -uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order); -uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope); -uintptr_t __ovld atomic_fetch_xor(volatile atomic_uintptr_t *object, intptr_t operand); -uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order); -uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope); -uintptr_t __ovld atomic_fetch_and(volatile atomic_uintptr_t *object, intptr_t operand); -uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order); -uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope); -uintptr_t __ovld atomic_fetch_min(volatile atomic_uintptr_t *object, intptr_t opermax); -uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder); -uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope); -uintptr_t __ovld atomic_fetch_max(volatile atomic_uintptr_t *object, intptr_t opermax); -uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder); -uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope); - -intptr_t __ovld atomic_fetch_or(volatile atomic_intptr_t *object, uintptr_t operand); -intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order); -intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope); -intptr_t __ovld atomic_fetch_xor(volatile atomic_intptr_t *object, uintptr_t operand); -intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order); -intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope); -intptr_t __ovld atomic_fetch_and(volatile atomic_intptr_t *object, uintptr_t operand); -intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order); -intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope); -intptr_t __ovld atomic_fetch_min(volatile atomic_intptr_t *object, uintptr_t opermax); -intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder); -intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope); -intptr_t __ovld atomic_fetch_max(volatile atomic_intptr_t *object, uintptr_t opermax); -intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder); -intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope); -#endif - -// atomic_store() - -void __ovld atomic_store(volatile atomic_int *object, int desired); -void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope); -void __ovld atomic_store(volatile atomic_uint *object, uint desired); -void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope); -void __ovld atomic_store(volatile atomic_float *object, float desired); -void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope); -#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -#ifdef cl_khr_fp64 -void __ovld atomic_store(volatile atomic_double *object, double desired); -void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope); -#endif //cl_khr_fp64 -void __ovld atomic_store(volatile atomic_long *object, long desired); -void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope); -void __ovld atomic_store(volatile atomic_ulong *object, ulong desired); -void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope); -#endif - -// atomic_load() - -int __ovld atomic_load(volatile atomic_int *object); -int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order); -int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope); -uint __ovld atomic_load(volatile atomic_uint *object); -uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order); -uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope); -float __ovld atomic_load(volatile atomic_float *object); -float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order); -float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope); -#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -#ifdef cl_khr_fp64 -double __ovld atomic_load(volatile atomic_double *object); -double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order); -double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope); -#endif //cl_khr_fp64 -long __ovld atomic_load(volatile atomic_long *object); -long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order); -long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope); -ulong __ovld atomic_load(volatile atomic_ulong *object); -ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order); -ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope); -#endif - -// atomic_exchange() - -int __ovld atomic_exchange(volatile atomic_int *object, int desired); -int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order); -int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope); -uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired); -uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order); -uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope); -float __ovld atomic_exchange(volatile atomic_float *object, float desired); -float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order); -float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope); -#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -#ifdef cl_khr_fp64 -double __ovld atomic_exchange(volatile atomic_double *object, double desired); -double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order); -double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope); -#endif //cl_khr_fp64 -long __ovld atomic_exchange(volatile atomic_long *object, long desired); -long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order); -long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope); -ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired); -ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order); -ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope); -#endif - -// atomic_compare_exchange_strong() and atomic_compare_exchange_weak() - -bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure, memory_scope scope); -#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -#ifdef cl_khr_fp64 -bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure, memory_scope scope); -#endif //cl_khr_fp64 -bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure, memory_scope scope); -#endif - -// atomic_flag_test_and_set() and atomic_flag_clear() - -bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object); -bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order); -bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope); -void __ovld atomic_flag_clear(volatile atomic_flag *object); -void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order); -void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope); - -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions - -/** - * The shuffle and shuffle2 built-in functions construct - * a permutation of elements from one or two input - * vectors respectively that are of the same type, - * returning a vector with the same element type as the - * input and length that is the same as the shuffle mask. - * The size of each element in the mask must match the - * size of each element in the result. For shuffle, only - * the ilogb(2m-1) least significant bits of each mask - * element are considered. For shuffle2, only the - * ilogb(2m-1)+1 least significant bits of each mask - * element are considered. Other bits in the mask shall - * be ignored. - * The elements of the input vectors are numbered from - * left to right across one or both of the vectors. For this - * purpose, the number of elements in a vector is given - * by vec_step(gentypem). The shuffle mask operand - * specifies, for each element of the result vector, which - * element of the one or two input vectors the result - * element gets. - * Examples: - * uint4 mask = (uint4)(3, 2, - * 1, 0); - * float4 a; - * float4 r = shuffle(a, mask); - * // r.s0123 = a.wzyx - * uint8 mask = (uint8)(0, 1, 2, 3, - * 4, 5, 6, 7); - * float4 a, b; - * float8 r = shuffle2(a, b, mask); - * // r.s0123 = a.xyzw - * // r.s4567 = b.xyzw - * uint4 mask; - * float8 a; - * float4 b; - * b = shuffle(a, mask); - * Examples that are not valid are: - * uint8 mask; - * short16 a; - * short8 b; - * b = shuffle(a, mask); <- not valid - */ -char2 __ovld __cnfn shuffle(char2 x, uchar2 mask); -char2 __ovld __cnfn shuffle(char4 x, uchar2 mask); -char2 __ovld __cnfn shuffle(char8 x, uchar2 mask); -char2 __ovld __cnfn shuffle(char16 x, uchar2 mask); - -uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask); -uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask); -uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask); -uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask); - -short2 __ovld __cnfn shuffle(short2 x, ushort2 mask); -short2 __ovld __cnfn shuffle(short4 x, ushort2 mask); -short2 __ovld __cnfn shuffle(short8 x, ushort2 mask); -short2 __ovld __cnfn shuffle(short16 x, ushort2 mask); - -ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask); -ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask); -ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask); -ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask); - -int2 __ovld __cnfn shuffle(int2 x, uint2 mask); -int2 __ovld __cnfn shuffle(int4 x, uint2 mask); -int2 __ovld __cnfn shuffle(int8 x, uint2 mask); -int2 __ovld __cnfn shuffle(int16 x, uint2 mask); - -uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask); -uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask); -uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask); -uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask); - -long2 __ovld __cnfn shuffle(long2 x, ulong2 mask); -long2 __ovld __cnfn shuffle(long4 x, ulong2 mask); -long2 __ovld __cnfn shuffle(long8 x, ulong2 mask); -long2 __ovld __cnfn shuffle(long16 x, ulong2 mask); - -ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask); -ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask); -ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask); -ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask); - -float2 __ovld __cnfn shuffle(float2 x, uint2 mask); -float2 __ovld __cnfn shuffle(float4 x, uint2 mask); -float2 __ovld __cnfn shuffle(float8 x, uint2 mask); -float2 __ovld __cnfn shuffle(float16 x, uint2 mask); - -char4 __ovld __cnfn shuffle(char2 x, uchar4 mask); -char4 __ovld __cnfn shuffle(char4 x, uchar4 mask); -char4 __ovld __cnfn shuffle(char8 x, uchar4 mask); -char4 __ovld __cnfn shuffle(char16 x, uchar4 mask); - -uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask); -uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask); -uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask); -uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask); - -short4 __ovld __cnfn shuffle(short2 x, ushort4 mask); -short4 __ovld __cnfn shuffle(short4 x, ushort4 mask); -short4 __ovld __cnfn shuffle(short8 x, ushort4 mask); -short4 __ovld __cnfn shuffle(short16 x, ushort4 mask); - -ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask); -ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask); -ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask); -ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask); - -int4 __ovld __cnfn shuffle(int2 x, uint4 mask); -int4 __ovld __cnfn shuffle(int4 x, uint4 mask); -int4 __ovld __cnfn shuffle(int8 x, uint4 mask); -int4 __ovld __cnfn shuffle(int16 x, uint4 mask); - -uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask); -uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask); -uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask); -uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask); - -long4 __ovld __cnfn shuffle(long2 x, ulong4 mask); -long4 __ovld __cnfn shuffle(long4 x, ulong4 mask); -long4 __ovld __cnfn shuffle(long8 x, ulong4 mask); -long4 __ovld __cnfn shuffle(long16 x, ulong4 mask); - -ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask); -ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask); -ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask); -ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask); - -float4 __ovld __cnfn shuffle(float2 x, uint4 mask); -float4 __ovld __cnfn shuffle(float4 x, uint4 mask); -float4 __ovld __cnfn shuffle(float8 x, uint4 mask); -float4 __ovld __cnfn shuffle(float16 x, uint4 mask); - -char8 __ovld __cnfn shuffle(char2 x, uchar8 mask); -char8 __ovld __cnfn shuffle(char4 x, uchar8 mask); -char8 __ovld __cnfn shuffle(char8 x, uchar8 mask); -char8 __ovld __cnfn shuffle(char16 x, uchar8 mask); - -uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask); -uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask); -uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask); -uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask); - -short8 __ovld __cnfn shuffle(short2 x, ushort8 mask); -short8 __ovld __cnfn shuffle(short4 x, ushort8 mask); -short8 __ovld __cnfn shuffle(short8 x, ushort8 mask); -short8 __ovld __cnfn shuffle(short16 x, ushort8 mask); - -ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask); -ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask); -ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask); -ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask); - -int8 __ovld __cnfn shuffle(int2 x, uint8 mask); -int8 __ovld __cnfn shuffle(int4 x, uint8 mask); -int8 __ovld __cnfn shuffle(int8 x, uint8 mask); -int8 __ovld __cnfn shuffle(int16 x, uint8 mask); - -uint8 __ovld __cnfn shuffle(uint2 x, uint8 mask); -uint8 __ovld __cnfn shuffle(uint4 x, uint8 mask); -uint8 __ovld __cnfn shuffle(uint8 x, uint8 mask); -uint8 __ovld __cnfn shuffle(uint16 x, uint8 mask); - -long8 __ovld __cnfn shuffle(long2 x, ulong8 mask); -long8 __ovld __cnfn shuffle(long4 x, ulong8 mask); -long8 __ovld __cnfn shuffle(long8 x, ulong8 mask); -long8 __ovld __cnfn shuffle(long16 x, ulong8 mask); - -ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask); -ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask); -ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask); -ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask); - -float8 __ovld __cnfn shuffle(float2 x, uint8 mask); -float8 __ovld __cnfn shuffle(float4 x, uint8 mask); -float8 __ovld __cnfn shuffle(float8 x, uint8 mask); -float8 __ovld __cnfn shuffle(float16 x, uint8 mask); - -char16 __ovld __cnfn shuffle(char2 x, uchar16 mask); -char16 __ovld __cnfn shuffle(char4 x, uchar16 mask); -char16 __ovld __cnfn shuffle(char8 x, uchar16 mask); -char16 __ovld __cnfn shuffle(char16 x, uchar16 mask); - -uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask); -uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask); -uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask); -uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask); - -short16 __ovld __cnfn shuffle(short2 x, ushort16 mask); -short16 __ovld __cnfn shuffle(short4 x, ushort16 mask); -short16 __ovld __cnfn shuffle(short8 x, ushort16 mask); -short16 __ovld __cnfn shuffle(short16 x, ushort16 mask); - -ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask); -ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask); -ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask); -ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask); - -int16 __ovld __cnfn shuffle(int2 x, uint16 mask); -int16 __ovld __cnfn shuffle(int4 x, uint16 mask); -int16 __ovld __cnfn shuffle(int8 x, uint16 mask); -int16 __ovld __cnfn shuffle(int16 x, uint16 mask); - -uint16 __ovld __cnfn shuffle(uint2 x, uint16 mask); -uint16 __ovld __cnfn shuffle(uint4 x, uint16 mask); -uint16 __ovld __cnfn shuffle(uint8 x, uint16 mask); -uint16 __ovld __cnfn shuffle(uint16 x, uint16 mask); - -long16 __ovld __cnfn shuffle(long2 x, ulong16 mask); -long16 __ovld __cnfn shuffle(long4 x, ulong16 mask); -long16 __ovld __cnfn shuffle(long8 x, ulong16 mask); -long16 __ovld __cnfn shuffle(long16 x, ulong16 mask); - -ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask); -ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask); -ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask); -ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask); - -float16 __ovld __cnfn shuffle(float2 x, uint16 mask); -float16 __ovld __cnfn shuffle(float4 x, uint16 mask); -float16 __ovld __cnfn shuffle(float8 x, uint16 mask); -float16 __ovld __cnfn shuffle(float16 x, uint16 mask); - -#ifdef cl_khr_fp64 -double2 __ovld __cnfn shuffle(double2 x, ulong2 mask); -double2 __ovld __cnfn shuffle(double4 x, ulong2 mask); -double2 __ovld __cnfn shuffle(double8 x, ulong2 mask); -double2 __ovld __cnfn shuffle(double16 x, ulong2 mask); - -double4 __ovld __cnfn shuffle(double2 x, ulong4 mask); -double4 __ovld __cnfn shuffle(double4 x, ulong4 mask); -double4 __ovld __cnfn shuffle(double8 x, ulong4 mask); -double4 __ovld __cnfn shuffle(double16 x, ulong4 mask); - -double8 __ovld __cnfn shuffle(double2 x, ulong8 mask); -double8 __ovld __cnfn shuffle(double4 x, ulong8 mask); -double8 __ovld __cnfn shuffle(double8 x, ulong8 mask); -double8 __ovld __cnfn shuffle(double16 x, ulong8 mask); - -double16 __ovld __cnfn shuffle(double2 x, ulong16 mask); -double16 __ovld __cnfn shuffle(double4 x, ulong16 mask); -double16 __ovld __cnfn shuffle(double8 x, ulong16 mask); -double16 __ovld __cnfn shuffle(double16 x, ulong16 mask); -#endif //cl_khr_fp64 - -#ifdef cl_khr_fp16 -half2 __ovld __cnfn shuffle(half2 x, ushort2 mask); -half2 __ovld __cnfn shuffle(half4 x, ushort2 mask); -half2 __ovld __cnfn shuffle(half8 x, ushort2 mask); -half2 __ovld __cnfn shuffle(half16 x, ushort2 mask); - -half4 __ovld __cnfn shuffle(half2 x, ushort4 mask); -half4 __ovld __cnfn shuffle(half4 x, ushort4 mask); -half4 __ovld __cnfn shuffle(half8 x, ushort4 mask); -half4 __ovld __cnfn shuffle(half16 x, ushort4 mask); - -half8 __ovld __cnfn shuffle(half2 x, ushort8 mask); -half8 __ovld __cnfn shuffle(half4 x, ushort8 mask); -half8 __ovld __cnfn shuffle(half8 x, ushort8 mask); -half8 __ovld __cnfn shuffle(half16 x, ushort8 mask); - -half16 __ovld __cnfn shuffle(half2 x, ushort16 mask); -half16 __ovld __cnfn shuffle(half4 x, ushort16 mask); -half16 __ovld __cnfn shuffle(half8 x, ushort16 mask); -half16 __ovld __cnfn shuffle(half16 x, ushort16 mask); -#endif //cl_khr_fp16 - -char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask); -char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask); -char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask); -char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask); - -uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask); -uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask); -uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask); -uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask); - -short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask); -short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask); -short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask); -short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask); - -ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask); -ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask); -ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask); -ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask); - -int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask); -int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask); -int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask); -int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask); - -uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask); -uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask); -uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask); -uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask); - -long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask); -long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask); -long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask); -long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask); - -ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask); -ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask); -ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask); -ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask); - -float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask); -float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask); -float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask); -float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask); - -char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask); -char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask); -char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask); -char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask); - -uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask); -uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask); -uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask); -uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask); - -short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask); -short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask); -short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask); -short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask); - -ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask); -ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask); -ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask); -ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask); - -int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask); -int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask); -int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask); -int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask); - -uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask); -uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask); -uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask); -uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask); - -long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask); -long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask); -long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask); -long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask); - -ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask); -ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask); -ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask); -ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask); - -float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask); -float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask); -float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask); -float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask); - -char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask); -char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask); -char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask); -char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask); - -uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask); -uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask); -uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask); -uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask); - -short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask); -short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask); -short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask); -short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask); - -ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask); -ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask); -ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask); -ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask); - -int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask); -int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask); -int8 __ovld __cnfn shuffle2(int8 x, int8 y, uint8 mask); -int8 __ovld __cnfn shuffle2(int16 x, int16 y, uint8 mask); - -uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask); -uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask); -uint8 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint8 mask); -uint8 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint8 mask); - -long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask); -long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask); -long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask); -long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask); - -ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask); -ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask); -ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask); -ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask); - -float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask); -float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask); -float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask); -float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask); - -char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask); -char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask); -char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask); -char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask); - -uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask); -uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask); -uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask); -uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask); - -short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask); -short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask); -short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask); -short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask); - -ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask); -ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask); -ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask); -ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask); - -int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask); -int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask); -int16 __ovld __cnfn shuffle2(int8 x, int8 y, uint16 mask); -int16 __ovld __cnfn shuffle2(int16 x, int16 y, uint16 mask); - -uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask); -uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask); -uint16 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint16 mask); -uint16 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint16 mask); - -long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask); -long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask); -long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask); -long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask); - -ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask); -ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask); -ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask); -ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask); - -float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask); -float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask); -float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask); -float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask); - -#ifdef cl_khr_fp64 -double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask); -double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask); -double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask); -double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask); - -double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask); -double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask); -double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask); -double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask); - -double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask); -double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask); -double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask); -double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask); - -double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask); -double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask); -double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask); -double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask); -#endif //cl_khr_fp64 - -#ifdef cl_khr_fp16 -half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask); -half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask); -half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask); -half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask); - -half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask); -half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask); -half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask); -half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask); - -half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask); -half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask); -half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask); -half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask); - -half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask); -half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask); -half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask); -half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask); -#endif //cl_khr_fp16 - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -// OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf - -int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2))); -#endif - -// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions - -#ifdef cl_khr_gl_msaa_sharing -#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable -#endif //cl_khr_gl_msaa_sharing - -/** - * Use the coordinate (coord.xy) to do an element lookup in - * the 2D image object specified by image. - * - * Use the coordinate (coord.x, coord.y, coord.z) to do - * an element lookup in the 3D image object specified - * by image. coord.w is ignored. - * - * Use the coordinate (coord.z) to index into the - * 2D image array object specified by image_array - * and (coord.x, coord.y) to do an element lookup in - * the 2D image object specified by image. - * - * Use the coordinate (x) to do an element lookup in - * the 1D image object specified by image. - * - * Use the coordinate (coord.y) to index into the - * 1D image array object specified by image_array - * and (coord.x) to do an element lookup in - * the 1D image object specified by image. - * - * Use the coordinate (cood.xy) and sample to do an - * element lookup in the 2D multi-sample image specified - * by image. - * - * Use coord.xy and sample to do an element - * lookup in the 2D multi-sample image layer - * identified by index coord.z in the 2D multi-sample - * image array specified by image. - * - * For mipmap images, use the mip-level specified by - * the Level-of-Detail (lod) or use gradients for LOD - * computation. - * - * read_imagef returns floating-point values in the - * range [0.0 ... 1.0] for image objects created with - * image_channel_data_type set to one of the predefined - * packed formats or CL_UNORM_INT8, or - * CL_UNORM_INT16. - * - * read_imagef returns floating-point values in the - * range [-1.0 ... 1.0] for image objects created with - * image_channel_data_type set to CL_SNORM_INT8, - * or CL_SNORM_INT16. - * - * read_imagef returns floating-point values for image - * objects created with image_channel_data_type set to - * CL_HALF_FLOAT or CL_FLOAT. - * - * read_imagei and read_imageui return - * unnormalized signed integer and unsigned integer - * values respectively. Each channel will be stored in a - * 32-bit integer. - * - * read_imagei can only be used with image objects - * created with image_channel_data_type set to one of - * the following values: - * CL_SIGNED_INT8, - * CL_SIGNED_INT16 and - * CL_SIGNED_INT32. - * If the image_channel_data_type is not one of the - * above values, the values returned by read_imagei - * are undefined. - * - * read_imageui can only be used with image objects - * created with image_channel_data_type set to one of - * the following values: - * CL_UNSIGNED_INT8, - * CL_UNSIGNED_INT16 and - * CL_UNSIGNED_INT32. - * If the image_channel_data_type is not one of the - * above values, the values returned by read_imageui - * are undefined. - * - * The read_image{i|ui} calls support a nearest filter - * only. The filter_mode specified in sampler - * must be set to CLK_FILTER_NEAREST; otherwise - * the values returned are undefined. - - * The read_image{f|i|ui} calls that take - * integer coordinates must use a sampler with - * normalized coordinates set to - * CLK_NORMALIZED_COORDS_FALSE and - * addressing mode set to - * CLK_ADDRESS_CLAMP_TO_EDGE, - * CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE; - * otherwise the values returned are undefined. - * - * Values returned by read_imagef for image objects - * with image_channel_data_type values not specified - * in the description above are undefined. - */ - -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord); -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord); - -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord); - -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord); -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord); - -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); - -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) - -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord); -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord); - -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); - -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) - -#ifdef cl_khr_depth_images -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord); -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord); - -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord); -#endif //cl_khr_depth_images - -#if defined(cl_khr_gl_msaa_sharing) -float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample); -int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample); -uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample); - -float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample); - -float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample); -int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample); -uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample); - -float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample); -#endif //cl_khr_gl_msaa_sharing - -// OpenCL Extension v2.0 s9.18 - Mipmaps -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -#ifdef cl_khr_mipmap_image - -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod); - -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); - -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); - -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod); - -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); - -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); - -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); - -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); - -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); - -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); - -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); - -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); - -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); - -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); - -#endif //cl_khr_mipmap_image -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) - -/** -* Sampler-less Image Access -*/ - -float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord); -int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord); - -float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord); -int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord); -uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord); - -float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord); - -float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord); - -float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord); - -#ifdef cl_khr_depth_images -float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord); -#endif //cl_khr_depth_images - -float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord); - -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) - -// Image read functions returning half4 type -#ifdef cl_khr_fp16 -half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord); -half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord); -half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord); -half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord); -half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord); -half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord); -half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord); -half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord); -half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord); -/** - * Sampler-less Image Access - */ -half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord); -half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -#endif //cl_khr_fp16 - -// Image read functions for read_write images -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord); -int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord); -uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord); - -float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord); -int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord); -uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord); - -float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord); - -float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord); - -float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord); - -float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord); - -#ifdef cl_khr_depth_images -float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord); -float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord); -#endif //cl_khr_depth_images - -#if cl_khr_gl_msaa_sharing -float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample); -int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample); -uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample); - -float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample); -int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample); -uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample); - -float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample); -float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample); -#endif //cl_khr_gl_msaa_sharing - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -#ifdef cl_khr_mipmap_image -float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod); -int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod); - -float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); - -float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); - -float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod); - -float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); - -float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); - -float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); - -float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); - -float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); - -float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); - -float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); - -float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); - -float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); - -float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); - -#endif //cl_khr_mipmap_image -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// Image read functions returning half4 type -#ifdef cl_khr_fp16 -half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord); -half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord); -#endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Write color value to location specified by coordinate - * (coord.x, coord.y) in the 2D image object specified by image. - * (coord.x, coord.y) are considered to be unnormalized coordinates - * and must be in the range 0 ... image width - 1, and 0 - * ... image height - 1. - - * Write color value to location specified by coordinate - * (coord.x, coord.y) in the 2D image object specified by index - * (coord.z) of the 2D image array object image_array. - * (coord.x, coord.y) are considered to be unnormalized - * coordinates and must be in the range 0 ... image width - * - 1. - * - * Write color value to location specified by coordinate - * (coord) in the 1D image (buffer) object specified by image. - * coord is considered to be unnormalized coordinates - * and must be in the range 0 ... image width - 1. - * - * Write color value to location specified by coordinate - * (coord.x) in the 1D image object specified by index - * (coord.y) of the 1D image array object image_array. - * x is considered to be unnormalized coordinates - * and must be in the range 0 ... image width - 1. - * - * Write color value to location specified by coordinate - * (coord.x, coord.y, coord.z) in the 3D image object specified by image. - * coord.x & coord.y are considered to be unnormalized coordinates - * and must be in the range 0 ... image width - 1, and 0 - * ... image height - 1. - * - * For mipmap images, use mip-level specified by lod. - * - * Appropriate data format conversion to the specified - * image format is done before writing the color value. - * - * write_imagef can only be used with image objects - * created with image_channel_data_type set to one of - * the pre-defined packed formats or set to - * CL_SNORM_INT8, CL_UNORM_INT8, - * CL_SNORM_INT16, CL_UNORM_INT16, - * CL_HALF_FLOAT or CL_FLOAT. Appropriate data - * format conversion will be done to convert channel - * data from a floating-point value to actual data format - * in which the channels are stored. - * - * write_imagei can only be used with image objects - * created with image_channel_data_type set to one of - * the following values: - * CL_SIGNED_INT8, - * CL_SIGNED_INT16 and - * CL_SIGNED_INT32. - * - * write_imageui can only be used with image objects - * created with image_channel_data_type set to one of - * the following values: - * CL_UNSIGNED_INT8, - * CL_UNSIGNED_INT16 and - * CL_UNSIGNED_INT32. - * - * The behavior of write_imagef, write_imagei and - * write_imageui for image objects created with - * image_channel_data_type values not specified in - * the description above or with (x, y) coordinate - * values that are not in the range (0 ... image width -1, - * 0 ... image height - 1), respectively, is undefined. - */ -void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color); -void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color); -void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color); - -void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color); -void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color); -void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color); - -void __ovld write_imagef(write_only image1d_t image, int coord, float4 color); -void __ovld write_imagei(write_only image1d_t image, int coord, int4 color); -void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color); - -void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color); -void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color); -void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color); - -void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color); -void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color); -void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color); - -#ifdef cl_khr_3d_image_writes -void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color); -void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color); -void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color); -#endif - -#ifdef cl_khr_depth_images -void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color); -void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color); -#endif //cl_khr_depth_images - -// OpenCL Extension v2.0 s9.18 - Mipmaps -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -#ifdef cl_khr_mipmap_image -void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color); -void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color); -void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color); - -void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color); -void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color); -void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color); - -void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color); -void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color); -void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color); - -void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color); -void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color); -void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color); - -void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float color); -void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float color); - -#ifdef cl_khr_3d_image_writes -void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color); -void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color); -void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color); -#endif -#endif //cl_khr_mipmap_image -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// Image write functions for half4 type -#ifdef cl_khr_fp16 -void __ovld write_imageh(write_only image1d_t image, int coord, half4 color); -void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color); -#ifdef cl_khr_3d_image_writes -void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color); -#endif -void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color); -void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color); -void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color); -#endif //cl_khr_fp16 - -// Image write functions for read_write images -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color); -void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color); -void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color); - -void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color); -void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color); -void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color); - -void __ovld write_imagef(read_write image1d_t image, int coord, float4 color); -void __ovld write_imagei(read_write image1d_t image, int coord, int4 color); -void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color); - -void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color); -void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color); -void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color); - -void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color); -void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color); -void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color); - -#ifdef cl_khr_3d_image_writes -void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color); -void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color); -void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color); -#endif - -#ifdef cl_khr_depth_images -void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color); -void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color); -#endif //cl_khr_depth_images - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -#ifdef cl_khr_mipmap_image -void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color); -void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color); -void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color); - -void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color); -void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color); -void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color); - -void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color); -void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color); -void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color); - -void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color); -void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color); -void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color); - -void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color); -void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color); - -#ifdef cl_khr_3d_image_writes -void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color); -void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color); -void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color); -#endif -#endif //cl_khr_mipmap_image -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// Image write functions for half4 type -#ifdef cl_khr_fp16 -void __ovld write_imageh(read_write image1d_t image, int coord, half4 color); -void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color); -#ifdef cl_khr_3d_image_writes -void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color); -#endif -void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color); -void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color); -void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color); -#endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have -// access qualifier, which by default assume read_only access qualifier. Image query builtin -// functions with write_only image argument should also be declared. - -/** - * Return the image width in pixels. - * - */ -int __ovld __cnfn get_image_width(read_only image1d_t image); -int __ovld __cnfn get_image_width(read_only image1d_buffer_t image); -int __ovld __cnfn get_image_width(read_only image2d_t image); -#ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_width(read_only image3d_t image); -#endif -int __ovld __cnfn get_image_width(read_only image1d_array_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_width(read_only image2d_depth_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_width(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing - -int __ovld __cnfn get_image_width(write_only image1d_t image); -int __ovld __cnfn get_image_width(write_only image1d_buffer_t image); -int __ovld __cnfn get_image_width(write_only image2d_t image); -#ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_width(write_only image3d_t image); -#endif -int __ovld __cnfn get_image_width(write_only image1d_array_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_width(write_only image2d_depth_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_width(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_width(read_write image1d_t image); -int __ovld __cnfn get_image_width(read_write image1d_buffer_t image); -int __ovld __cnfn get_image_width(read_write image2d_t image); -int __ovld __cnfn get_image_width(read_write image3d_t image); -int __ovld __cnfn get_image_width(read_write image1d_array_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_width(read_write image2d_depth_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_width(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Return the image height in pixels. - */ -int __ovld __cnfn get_image_height(read_only image2d_t image); -int __ovld __cnfn get_image_height(read_only image3d_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_height(read_only image2d_depth_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_height(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing - -int __ovld __cnfn get_image_height(write_only image2d_t image); -#ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_height(write_only image3d_t image); -#endif -int __ovld __cnfn get_image_height(write_only image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_height(write_only image2d_depth_t image); -int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_height(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_height(read_write image2d_t image); -int __ovld __cnfn get_image_height(read_write image3d_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_height(read_write image2d_depth_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_height(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Return the image depth in pixels. - */ -int __ovld __cnfn get_image_depth(read_only image3d_t image); - -#ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_depth(write_only image3d_t image); -#endif - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_depth(read_write image3d_t image); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// OpenCL Extension v2.0 s9.18 - Mipmaps -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -#ifdef cl_khr_mipmap_image -/** - * Return the image miplevels. - */ - -int __ovld get_image_num_mip_levels(read_only image1d_t image); -int __ovld get_image_num_mip_levels(read_only image2d_t image); -int __ovld get_image_num_mip_levels(read_only image3d_t image); - -int __ovld get_image_num_mip_levels(write_only image1d_t image); -int __ovld get_image_num_mip_levels(write_only image2d_t image); -#ifdef cl_khr_3d_image_writes -int __ovld get_image_num_mip_levels(write_only image3d_t image); -#endif - -int __ovld get_image_num_mip_levels(read_write image1d_t image); -int __ovld get_image_num_mip_levels(read_write image2d_t image); -int __ovld get_image_num_mip_levels(read_write image3d_t image); - -int __ovld get_image_num_mip_levels(read_only image1d_array_t image); -int __ovld get_image_num_mip_levels(read_only image2d_array_t image); -int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image); -int __ovld get_image_num_mip_levels(read_only image2d_depth_t image); - -int __ovld get_image_num_mip_levels(write_only image1d_array_t image); -int __ovld get_image_num_mip_levels(write_only image2d_array_t image); -int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image); -int __ovld get_image_num_mip_levels(write_only image2d_depth_t image); - -int __ovld get_image_num_mip_levels(read_write image1d_array_t image); -int __ovld get_image_num_mip_levels(read_write image2d_array_t image); -int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image); -int __ovld get_image_num_mip_levels(read_write image2d_depth_t image); - -#endif //cl_khr_mipmap_image -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Return the channel data type. Valid values are: - * CLK_SNORM_INT8 - * CLK_SNORM_INT16 - * CLK_UNORM_INT8 - * CLK_UNORM_INT16 - * CLK_UNORM_SHORT_565 - * CLK_UNORM_SHORT_555 - * CLK_UNORM_SHORT_101010 - * CLK_SIGNED_INT8 - * CLK_SIGNED_INT16 - * CLK_SIGNED_INT32 - * CLK_UNSIGNED_INT8 - * CLK_UNSIGNED_INT16 - * CLK_UNSIGNED_INT32 - * CLK_HALF_FLOAT - * CLK_FLOAT - */ - -int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing - -int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image); -#ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image); -#endif -int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Return the image channel order. Valid values are: - * CLK_A - * CLK_R - * CLK_Rx - * CLK_RG - * CLK_RGx - * CLK_RA - * CLK_RGB - * CLK_RGBx - * CLK_RGBA - * CLK_ARGB - * CLK_BGRA - * CLK_INTENSITY - * CLK_LUMINANCE - */ - -int __ovld __cnfn get_image_channel_order(read_only image1d_t image); -int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_t image); -int __ovld __cnfn get_image_channel_order(read_only image3d_t image); -int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing - -int __ovld __cnfn get_image_channel_order(write_only image1d_t image); -int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_t image); -#ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_channel_order(write_only image3d_t image); -#endif -int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_channel_order(read_write image1d_t image); -int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_t image); -int __ovld __cnfn get_image_channel_order(read_write image3d_t image); -int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image); -#ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Return the 2D image width and height as an int2 - * type. The width is returned in the x component, and - * the height in the y component. - */ -int2 __ovld __cnfn get_image_dim(read_only image2d_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image); -#ifdef cl_khr_depth_images -int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing - -int2 __ovld __cnfn get_image_dim(write_only image2d_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image); -#ifdef cl_khr_depth_images -int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int2 __ovld __cnfn get_image_dim(read_write image2d_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image); -#ifdef cl_khr_depth_images -int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image); -#endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Return the 3D image width, height, and depth as an - * int4 type. The width is returned in the x - * component, height in the y component, depth in the z - * component and the w component is 0. - */ -int4 __ovld __cnfn get_image_dim(read_only image3d_t image); -#ifdef cl_khr_3d_image_writes -int4 __ovld __cnfn get_image_dim(write_only image3d_t image); -#endif -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int4 __ovld __cnfn get_image_dim(read_write image3d_t image); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** - * Return the image array size. - */ - -size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array); -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array); -#ifdef cl_khr_depth_images -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array); -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array); -#endif //cl_khr_gl_msaa_sharing - -size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array); -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array); -#ifdef cl_khr_depth_images -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array); -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array); -#endif //cl_khr_gl_msaa_sharing - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array); -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array); -#ifdef cl_khr_depth_images -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array); -#endif //cl_khr_depth_images -#if defined(cl_khr_gl_msaa_sharing) -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array); -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array); -#endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -/** -* Return the number of samples associated with image -*/ -#if defined(cl_khr_gl_msaa_sharing) -int __ovld get_image_num_samples(read_only image2d_msaa_t image); -int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image); -int __ovld get_image_num_samples(read_only image2d_array_msaa_t image); -int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image); - -int __ovld get_image_num_samples(write_only image2d_msaa_t image); -int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image); -int __ovld get_image_num_samples(write_only image2d_array_msaa_t image); -int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld get_image_num_samples(read_write image2d_msaa_t image); -int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image); -int __ovld get_image_num_samples(read_write image2d_array_msaa_t image); -int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -#endif - -// OpenCL v2.0 s6.13.15 - Work-group Functions - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __conv work_group_all(int predicate); -int __ovld __conv work_group_any(int predicate); - -#ifdef cl_khr_fp16 -half __ovld __conv work_group_broadcast(half a, size_t local_id); -half __ovld __conv work_group_broadcast(half a, size_t x, size_t y); -half __ovld __conv work_group_broadcast(half a, size_t x, size_t y, size_t z); -#endif -int __ovld __conv work_group_broadcast(int a, size_t local_id); -int __ovld __conv work_group_broadcast(int a, size_t x, size_t y); -int __ovld __conv work_group_broadcast(int a, size_t x, size_t y, size_t z); -uint __ovld __conv work_group_broadcast(uint a, size_t local_id); -uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y); -uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y, size_t z); -long __ovld __conv work_group_broadcast(long a, size_t local_id); -long __ovld __conv work_group_broadcast(long a, size_t x, size_t y); -long __ovld __conv work_group_broadcast(long a, size_t x, size_t y, size_t z); -ulong __ovld __conv work_group_broadcast(ulong a, size_t local_id); -ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y); -ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y, size_t z); -float __ovld __conv work_group_broadcast(float a, size_t local_id); -float __ovld __conv work_group_broadcast(float a, size_t x, size_t y); -float __ovld __conv work_group_broadcast(float a, size_t x, size_t y, size_t z); -#ifdef cl_khr_fp64 -double __ovld __conv work_group_broadcast(double a, size_t local_id); -double __ovld __conv work_group_broadcast(double a, size_t x, size_t y); -double __ovld __conv work_group_broadcast(double a, size_t x, size_t y, size_t z); -#endif //cl_khr_fp64 - -#ifdef cl_khr_fp16 -half __ovld __conv work_group_reduce_add(half x); -half __ovld __conv work_group_reduce_min(half x); -half __ovld __conv work_group_reduce_max(half x); -half __ovld __conv work_group_scan_exclusive_add(half x); -half __ovld __conv work_group_scan_exclusive_min(half x); -half __ovld __conv work_group_scan_exclusive_max(half x); -half __ovld __conv work_group_scan_inclusive_add(half x); -half __ovld __conv work_group_scan_inclusive_min(half x); -half __ovld __conv work_group_scan_inclusive_max(half x); -#endif -int __ovld __conv work_group_reduce_add(int x); -int __ovld __conv work_group_reduce_min(int x); -int __ovld __conv work_group_reduce_max(int x); -int __ovld __conv work_group_scan_exclusive_add(int x); -int __ovld __conv work_group_scan_exclusive_min(int x); -int __ovld __conv work_group_scan_exclusive_max(int x); -int __ovld __conv work_group_scan_inclusive_add(int x); -int __ovld __conv work_group_scan_inclusive_min(int x); -int __ovld __conv work_group_scan_inclusive_max(int x); -uint __ovld __conv work_group_reduce_add(uint x); -uint __ovld __conv work_group_reduce_min(uint x); -uint __ovld __conv work_group_reduce_max(uint x); -uint __ovld __conv work_group_scan_exclusive_add(uint x); -uint __ovld __conv work_group_scan_exclusive_min(uint x); -uint __ovld __conv work_group_scan_exclusive_max(uint x); -uint __ovld __conv work_group_scan_inclusive_add(uint x); -uint __ovld __conv work_group_scan_inclusive_min(uint x); -uint __ovld __conv work_group_scan_inclusive_max(uint x); -long __ovld __conv work_group_reduce_add(long x); -long __ovld __conv work_group_reduce_min(long x); -long __ovld __conv work_group_reduce_max(long x); -long __ovld __conv work_group_scan_exclusive_add(long x); -long __ovld __conv work_group_scan_exclusive_min(long x); -long __ovld __conv work_group_scan_exclusive_max(long x); -long __ovld __conv work_group_scan_inclusive_add(long x); -long __ovld __conv work_group_scan_inclusive_min(long x); -long __ovld __conv work_group_scan_inclusive_max(long x); -ulong __ovld __conv work_group_reduce_add(ulong x); -ulong __ovld __conv work_group_reduce_min(ulong x); -ulong __ovld __conv work_group_reduce_max(ulong x); -ulong __ovld __conv work_group_scan_exclusive_add(ulong x); -ulong __ovld __conv work_group_scan_exclusive_min(ulong x); -ulong __ovld __conv work_group_scan_exclusive_max(ulong x); -ulong __ovld __conv work_group_scan_inclusive_add(ulong x); -ulong __ovld __conv work_group_scan_inclusive_min(ulong x); -ulong __ovld __conv work_group_scan_inclusive_max(ulong x); -float __ovld __conv work_group_reduce_add(float x); -float __ovld __conv work_group_reduce_min(float x); -float __ovld __conv work_group_reduce_max(float x); -float __ovld __conv work_group_scan_exclusive_add(float x); -float __ovld __conv work_group_scan_exclusive_min(float x); -float __ovld __conv work_group_scan_exclusive_max(float x); -float __ovld __conv work_group_scan_inclusive_add(float x); -float __ovld __conv work_group_scan_inclusive_min(float x); -float __ovld __conv work_group_scan_inclusive_max(float x); -#ifdef cl_khr_fp64 -double __ovld __conv work_group_reduce_add(double x); -double __ovld __conv work_group_reduce_min(double x); -double __ovld __conv work_group_reduce_max(double x); -double __ovld __conv work_group_scan_exclusive_add(double x); -double __ovld __conv work_group_scan_exclusive_min(double x); -double __ovld __conv work_group_scan_exclusive_max(double x); -double __ovld __conv work_group_scan_inclusive_add(double x); -double __ovld __conv work_group_scan_inclusive_min(double x); -double __ovld __conv work_group_scan_inclusive_max(double x); -#endif //cl_khr_fp64 - -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// OpenCL v2.0 s6.13.16 - Pipe Functions -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -bool __ovld is_valid_reserve_id(reserve_id_t reserve_id); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - - -// OpenCL v2.0 s6.13.17 - Enqueue Kernels -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -ndrange_t __ovld ndrange_1D(size_t); -ndrange_t __ovld ndrange_1D(size_t, size_t); -ndrange_t __ovld ndrange_1D(size_t, size_t, size_t); - -ndrange_t __ovld ndrange_2D(const size_t[2]); -ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2]); -ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2], const size_t[2]); - -ndrange_t __ovld ndrange_3D(const size_t[3]); -ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3]); -ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3], const size_t[3]); - -int __ovld enqueue_marker(queue_t, uint, const clk_event_t*, clk_event_t*); - -void __ovld retain_event(clk_event_t); - -void __ovld release_event(clk_event_t); - -clk_event_t __ovld create_user_event(void); - -void __ovld set_user_event_status(clk_event_t e, int state); - -bool __ovld is_valid_event (clk_event_t event); - -void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value); - -queue_t __ovld get_default_queue(void); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -// OpenCL Extension v2.0 s9.17 - Sub-groups - -#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) -// Shared Sub Group Functions -uint __ovld get_sub_group_size(void); -uint __ovld get_max_sub_group_size(void); -uint __ovld get_num_sub_groups(void); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -uint __ovld get_enqueued_num_sub_groups(void); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -uint __ovld get_sub_group_id(void); -uint __ovld get_sub_group_local_id(void); - -void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -int __ovld __conv sub_group_all(int predicate); -int __ovld __conv sub_group_any(int predicate); - -int __ovld __conv sub_group_broadcast(int x, uint sub_group_local_id); -uint __ovld __conv sub_group_broadcast(uint x, uint sub_group_local_id); -long __ovld __conv sub_group_broadcast(long x, uint sub_group_local_id); -ulong __ovld __conv sub_group_broadcast(ulong x, uint sub_group_local_id); -float __ovld __conv sub_group_broadcast(float x, uint sub_group_local_id); - -int __ovld __conv sub_group_reduce_add(int x); -uint __ovld __conv sub_group_reduce_add(uint x); -long __ovld __conv sub_group_reduce_add(long x); -ulong __ovld __conv sub_group_reduce_add(ulong x); -float __ovld __conv sub_group_reduce_add(float x); -int __ovld __conv sub_group_reduce_min(int x); -uint __ovld __conv sub_group_reduce_min(uint x); -long __ovld __conv sub_group_reduce_min(long x); -ulong __ovld __conv sub_group_reduce_min(ulong x); -float __ovld __conv sub_group_reduce_min(float x); -int __ovld __conv sub_group_reduce_max(int x); -uint __ovld __conv sub_group_reduce_max(uint x); -long __ovld __conv sub_group_reduce_max(long x); -ulong __ovld __conv sub_group_reduce_max(ulong x); -float __ovld __conv sub_group_reduce_max(float x); - -int __ovld __conv sub_group_scan_exclusive_add(int x); -uint __ovld __conv sub_group_scan_exclusive_add(uint x); -long __ovld __conv sub_group_scan_exclusive_add(long x); -ulong __ovld __conv sub_group_scan_exclusive_add(ulong x); -float __ovld __conv sub_group_scan_exclusive_add(float x); -int __ovld __conv sub_group_scan_exclusive_min(int x); -uint __ovld __conv sub_group_scan_exclusive_min(uint x); -long __ovld __conv sub_group_scan_exclusive_min(long x); -ulong __ovld __conv sub_group_scan_exclusive_min(ulong x); -float __ovld __conv sub_group_scan_exclusive_min(float x); -int __ovld __conv sub_group_scan_exclusive_max(int x); -uint __ovld __conv sub_group_scan_exclusive_max(uint x); -long __ovld __conv sub_group_scan_exclusive_max(long x); -ulong __ovld __conv sub_group_scan_exclusive_max(ulong x); -float __ovld __conv sub_group_scan_exclusive_max(float x); - -int __ovld __conv sub_group_scan_inclusive_add(int x); -uint __ovld __conv sub_group_scan_inclusive_add(uint x); -long __ovld __conv sub_group_scan_inclusive_add(long x); -ulong __ovld __conv sub_group_scan_inclusive_add(ulong x); -float __ovld __conv sub_group_scan_inclusive_add(float x); -int __ovld __conv sub_group_scan_inclusive_min(int x); -uint __ovld __conv sub_group_scan_inclusive_min(uint x); -long __ovld __conv sub_group_scan_inclusive_min(long x); -ulong __ovld __conv sub_group_scan_inclusive_min(ulong x); -float __ovld __conv sub_group_scan_inclusive_min(float x); -int __ovld __conv sub_group_scan_inclusive_max(int x); -uint __ovld __conv sub_group_scan_inclusive_max(uint x); -long __ovld __conv sub_group_scan_inclusive_max(long x); -ulong __ovld __conv sub_group_scan_inclusive_max(ulong x); -float __ovld __conv sub_group_scan_inclusive_max(float x); - -#ifdef cl_khr_fp16 -half __ovld __conv sub_group_broadcast(half x, uint sub_group_local_id); -half __ovld __conv sub_group_reduce_add(half x); -half __ovld __conv sub_group_reduce_min(half x); -half __ovld __conv sub_group_reduce_max(half x); -half __ovld __conv sub_group_scan_exclusive_add(half x); -half __ovld __conv sub_group_scan_exclusive_min(half x); -half __ovld __conv sub_group_scan_exclusive_max(half x); -half __ovld __conv sub_group_scan_inclusive_add(half x); -half __ovld __conv sub_group_scan_inclusive_min(half x); -half __ovld __conv sub_group_scan_inclusive_max(half x); -#endif //cl_khr_fp16 - -#ifdef cl_khr_fp64 -double __ovld __conv sub_group_broadcast(double x, uint sub_group_local_id); -double __ovld __conv sub_group_reduce_add(double x); -double __ovld __conv sub_group_reduce_min(double x); -double __ovld __conv sub_group_reduce_max(double x); -double __ovld __conv sub_group_scan_exclusive_add(double x); -double __ovld __conv sub_group_scan_exclusive_min(double x); -double __ovld __conv sub_group_scan_exclusive_max(double x); -double __ovld __conv sub_group_scan_inclusive_add(double x); -double __ovld __conv sub_group_scan_inclusive_min(double x); -double __ovld __conv sub_group_scan_inclusive_max(double x); -#endif //cl_khr_fp64 - -#endif //cl_khr_subgroups cl_intel_subgroups - -#if defined(cl_intel_subgroups) -// Intel-Specific Sub Group Functions -float __ovld __conv intel_sub_group_shuffle( float x, uint c ); -float2 __ovld __conv intel_sub_group_shuffle( float2 x, uint c ); -float3 __ovld __conv intel_sub_group_shuffle( float3 x, uint c ); -float4 __ovld __conv intel_sub_group_shuffle( float4 x, uint c ); -float8 __ovld __conv intel_sub_group_shuffle( float8 x, uint c ); -float16 __ovld __conv intel_sub_group_shuffle( float16 x, uint c ); - -int __ovld __conv intel_sub_group_shuffle( int x, uint c ); -int2 __ovld __conv intel_sub_group_shuffle( int2 x, uint c ); -int3 __ovld __conv intel_sub_group_shuffle( int3 x, uint c ); -int4 __ovld __conv intel_sub_group_shuffle( int4 x, uint c ); -int8 __ovld __conv intel_sub_group_shuffle( int8 x, uint c ); -int16 __ovld __conv intel_sub_group_shuffle( int16 x, uint c ); - -uint __ovld __conv intel_sub_group_shuffle( uint x, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle( uint2 x, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle( uint3 x, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle( uint4 x, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle( uint8 x, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle( uint16 x, uint c ); - -long __ovld __conv intel_sub_group_shuffle( long x, uint c ); -ulong __ovld __conv intel_sub_group_shuffle( ulong x, uint c ); - -float __ovld __conv intel_sub_group_shuffle_down( float cur, float next, uint c ); -float2 __ovld __conv intel_sub_group_shuffle_down( float2 cur, float2 next, uint c ); -float3 __ovld __conv intel_sub_group_shuffle_down( float3 cur, float3 next, uint c ); -float4 __ovld __conv intel_sub_group_shuffle_down( float4 cur, float4 next, uint c ); -float8 __ovld __conv intel_sub_group_shuffle_down( float8 cur, float8 next, uint c ); -float16 __ovld __conv intel_sub_group_shuffle_down( float16 cur, float16 next, uint c ); - -int __ovld __conv intel_sub_group_shuffle_down( int cur, int next, uint c ); -int2 __ovld __conv intel_sub_group_shuffle_down( int2 cur, int2 next, uint c ); -int3 __ovld __conv intel_sub_group_shuffle_down( int3 cur, int3 next, uint c ); -int4 __ovld __conv intel_sub_group_shuffle_down( int4 cur, int4 next, uint c ); -int8 __ovld __conv intel_sub_group_shuffle_down( int8 cur, int8 next, uint c ); -int16 __ovld __conv intel_sub_group_shuffle_down( int16 cur, int16 next, uint c ); - -uint __ovld __conv intel_sub_group_shuffle_down( uint cur, uint next, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle_down( uint2 cur, uint2 next, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle_down( uint3 cur, uint3 next, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle_down( uint4 cur, uint4 next, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle_down( uint8 cur, uint8 next, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle_down( uint16 cur, uint16 next, uint c ); - -long __ovld __conv intel_sub_group_shuffle_down( long prev, long cur, uint c ); -ulong __ovld __conv intel_sub_group_shuffle_down( ulong prev, ulong cur, uint c ); - -float __ovld __conv intel_sub_group_shuffle_up( float prev, float cur, uint c ); -float2 __ovld __conv intel_sub_group_shuffle_up( float2 prev, float2 cur, uint c ); -float3 __ovld __conv intel_sub_group_shuffle_up( float3 prev, float3 cur, uint c ); -float4 __ovld __conv intel_sub_group_shuffle_up( float4 prev, float4 cur, uint c ); -float8 __ovld __conv intel_sub_group_shuffle_up( float8 prev, float8 cur, uint c ); -float16 __ovld __conv intel_sub_group_shuffle_up( float16 prev, float16 cur, uint c ); - -int __ovld __conv intel_sub_group_shuffle_up( int prev, int cur, uint c ); -int2 __ovld __conv intel_sub_group_shuffle_up( int2 prev, int2 cur, uint c ); -int3 __ovld __conv intel_sub_group_shuffle_up( int3 prev, int3 cur, uint c ); -int4 __ovld __conv intel_sub_group_shuffle_up( int4 prev, int4 cur, uint c ); -int8 __ovld __conv intel_sub_group_shuffle_up( int8 prev, int8 cur, uint c ); -int16 __ovld __conv intel_sub_group_shuffle_up( int16 prev, int16 cur, uint c ); - -uint __ovld __conv intel_sub_group_shuffle_up( uint prev, uint cur, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle_up( uint2 prev, uint2 cur, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle_up( uint3 prev, uint3 cur, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle_up( uint4 prev, uint4 cur, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle_up( uint8 prev, uint8 cur, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle_up( uint16 prev, uint16 cur, uint c ); - -long __ovld __conv intel_sub_group_shuffle_up( long prev, long cur, uint c ); -ulong __ovld __conv intel_sub_group_shuffle_up( ulong prev, ulong cur, uint c ); - -float __ovld __conv intel_sub_group_shuffle_xor( float x, uint c ); -float2 __ovld __conv intel_sub_group_shuffle_xor( float2 x, uint c ); -float3 __ovld __conv intel_sub_group_shuffle_xor( float3 x, uint c ); -float4 __ovld __conv intel_sub_group_shuffle_xor( float4 x, uint c ); -float8 __ovld __conv intel_sub_group_shuffle_xor( float8 x, uint c ); -float16 __ovld __conv intel_sub_group_shuffle_xor( float16 x, uint c ); - -int __ovld __conv intel_sub_group_shuffle_xor( int x, uint c ); -int2 __ovld __conv intel_sub_group_shuffle_xor( int2 x, uint c ); -int3 __ovld __conv intel_sub_group_shuffle_xor( int3 x, uint c ); -int4 __ovld __conv intel_sub_group_shuffle_xor( int4 x, uint c ); -int8 __ovld __conv intel_sub_group_shuffle_xor( int8 x, uint c ); -int16 __ovld __conv intel_sub_group_shuffle_xor( int16 x, uint c ); - -uint __ovld __conv intel_sub_group_shuffle_xor( uint x, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle_xor( uint2 x, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle_xor( uint3 x, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle_xor( uint4 x, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle_xor( uint8 x, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle_xor( uint16 x, uint c ); - -long __ovld __conv intel_sub_group_shuffle_xor( long x, uint c ); -ulong __ovld __conv intel_sub_group_shuffle_xor( ulong x, uint c ); - -uint __ovld __conv intel_sub_group_block_read( read_only image2d_t image, int2 coord ); -uint2 __ovld __conv intel_sub_group_block_read2( read_only image2d_t image, int2 coord ); -uint4 __ovld __conv intel_sub_group_block_read4( read_only image2d_t image, int2 coord ); -uint8 __ovld __conv intel_sub_group_block_read8( read_only image2d_t image, int2 coord ); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -uint __ovld __conv intel_sub_group_block_read(read_write image2d_t image, int2 coord); -uint2 __ovld __conv intel_sub_group_block_read2(read_write image2d_t image, int2 coord); -uint4 __ovld __conv intel_sub_group_block_read4(read_write image2d_t image, int2 coord); -uint8 __ovld __conv intel_sub_group_block_read8(read_write image2d_t image, int2 coord); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -uint __ovld __conv intel_sub_group_block_read( const __global uint* p ); -uint2 __ovld __conv intel_sub_group_block_read2( const __global uint* p ); -uint4 __ovld __conv intel_sub_group_block_read4( const __global uint* p ); -uint8 __ovld __conv intel_sub_group_block_read8( const __global uint* p ); - -void __ovld __conv intel_sub_group_block_write(write_only image2d_t image, int2 coord, uint data); -void __ovld __conv intel_sub_group_block_write2(write_only image2d_t image, int2 coord, uint2 data); -void __ovld __conv intel_sub_group_block_write4(write_only image2d_t image, int2 coord, uint4 data); -void __ovld __conv intel_sub_group_block_write8(write_only image2d_t image, int2 coord, uint8 data); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv intel_sub_group_block_write(read_write image2d_t image, int2 coord, uint data); -void __ovld __conv intel_sub_group_block_write2(read_write image2d_t image, int2 coord, uint2 data); -void __ovld __conv intel_sub_group_block_write4(read_write image2d_t image, int2 coord, uint4 data); -void __ovld __conv intel_sub_group_block_write8(read_write image2d_t image, int2 coord, uint8 data); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -void __ovld __conv intel_sub_group_block_write( __global uint* p, uint data ); -void __ovld __conv intel_sub_group_block_write2( __global uint* p, uint2 data ); -void __ovld __conv intel_sub_group_block_write4( __global uint* p, uint4 data ); -void __ovld __conv intel_sub_group_block_write8( __global uint* p, uint8 data ); - -#ifdef cl_khr_fp16 -half __ovld __conv intel_sub_group_shuffle( half x, uint c ); -half __ovld __conv intel_sub_group_shuffle_down( half prev, half cur, uint c ); -half __ovld __conv intel_sub_group_shuffle_up( half prev, half cur, uint c ); -half __ovld __conv intel_sub_group_shuffle_xor( half x, uint c ); -#endif - -#if defined(cl_khr_fp64) -double __ovld __conv intel_sub_group_shuffle( double x, uint c ); -double __ovld __conv intel_sub_group_shuffle_down( double prev, double cur, uint c ); -double __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint c ); -double __ovld __conv intel_sub_group_shuffle_xor( double x, uint c ); -#endif - -#endif //cl_intel_subgroups - -#if defined(cl_intel_subgroups_short) -short __ovld __conv intel_sub_group_broadcast( short x, uint sub_group_local_id ); -short2 __ovld __conv intel_sub_group_broadcast( short2 x, uint sub_group_local_id ); -short3 __ovld __conv intel_sub_group_broadcast( short3 x, uint sub_group_local_id ); -short4 __ovld __conv intel_sub_group_broadcast( short4 x, uint sub_group_local_id ); -short8 __ovld __conv intel_sub_group_broadcast( short8 x, uint sub_group_local_id ); - -ushort __ovld __conv intel_sub_group_broadcast( ushort x, uint sub_group_local_id ); -ushort2 __ovld __conv intel_sub_group_broadcast( ushort2 x, uint sub_group_local_id ); -ushort3 __ovld __conv intel_sub_group_broadcast( ushort3 x, uint sub_group_local_id ); -ushort4 __ovld __conv intel_sub_group_broadcast( ushort4 x, uint sub_group_local_id ); -ushort8 __ovld __conv intel_sub_group_broadcast( ushort8 x, uint sub_group_local_id ); - -short __ovld __conv intel_sub_group_shuffle( short x, uint c ); -short2 __ovld __conv intel_sub_group_shuffle( short2 x, uint c ); -short3 __ovld __conv intel_sub_group_shuffle( short3 x, uint c ); -short4 __ovld __conv intel_sub_group_shuffle( short4 x, uint c ); -short8 __ovld __conv intel_sub_group_shuffle( short8 x, uint c ); -short16 __ovld __conv intel_sub_group_shuffle( short16 x, uint c); - -ushort __ovld __conv intel_sub_group_shuffle( ushort x, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle( ushort2 x, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle( ushort3 x, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle( ushort4 x, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle( ushort8 x, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle( ushort16 x, uint c ); - -short __ovld __conv intel_sub_group_shuffle_down( short cur, short next, uint c ); -short2 __ovld __conv intel_sub_group_shuffle_down( short2 cur, short2 next, uint c ); -short3 __ovld __conv intel_sub_group_shuffle_down( short3 cur, short3 next, uint c ); -short4 __ovld __conv intel_sub_group_shuffle_down( short4 cur, short4 next, uint c ); -short8 __ovld __conv intel_sub_group_shuffle_down( short8 cur, short8 next, uint c ); -short16 __ovld __conv intel_sub_group_shuffle_down( short16 cur, short16 next, uint c ); - -ushort __ovld __conv intel_sub_group_shuffle_down( ushort cur, ushort next, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle_down( ushort2 cur, ushort2 next, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle_down( ushort3 cur, ushort3 next, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle_down( ushort4 cur, ushort4 next, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle_down( ushort8 cur, ushort8 next, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle_down( ushort16 cur, ushort16 next, uint c ); - -short __ovld __conv intel_sub_group_shuffle_up( short cur, short next, uint c ); -short2 __ovld __conv intel_sub_group_shuffle_up( short2 cur, short2 next, uint c ); -short3 __ovld __conv intel_sub_group_shuffle_up( short3 cur, short3 next, uint c ); -short4 __ovld __conv intel_sub_group_shuffle_up( short4 cur, short4 next, uint c ); -short8 __ovld __conv intel_sub_group_shuffle_up( short8 cur, short8 next, uint c ); -short16 __ovld __conv intel_sub_group_shuffle_up( short16 cur, short16 next, uint c ); - -ushort __ovld __conv intel_sub_group_shuffle_up( ushort cur, ushort next, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle_up( ushort2 cur, ushort2 next, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle_up( ushort3 cur, ushort3 next, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle_up( ushort4 cur, ushort4 next, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle_up( ushort8 cur, ushort8 next, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle_up( ushort16 cur, ushort16 next, uint c ); - -short __ovld __conv intel_sub_group_shuffle_xor( short x, uint c ); -short2 __ovld __conv intel_sub_group_shuffle_xor( short2 x, uint c ); -short3 __ovld __conv intel_sub_group_shuffle_xor( short3 x, uint c ); -short4 __ovld __conv intel_sub_group_shuffle_xor( short4 x, uint c ); -short8 __ovld __conv intel_sub_group_shuffle_xor( short8 x, uint c ); -short16 __ovld __conv intel_sub_group_shuffle_xor( short16 x, uint c ); - -ushort __ovld __conv intel_sub_group_shuffle_xor( ushort x, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle_xor( ushort2 x, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle_xor( ushort3 x, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle_xor( ushort4 x, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle_xor( ushort8 x, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle_xor( ushort16 x, uint c ); - -short __ovld __conv intel_sub_group_reduce_add( short x ); -ushort __ovld __conv intel_sub_group_reduce_add( ushort x ); -short __ovld __conv intel_sub_group_reduce_min( short x ); -ushort __ovld __conv intel_sub_group_reduce_min( ushort x ); -short __ovld __conv intel_sub_group_reduce_max( short x ); -ushort __ovld __conv intel_sub_group_reduce_max( ushort x ); - -short __ovld __conv intel_sub_group_scan_exclusive_add( short x ); -ushort __ovld __conv intel_sub_group_scan_exclusive_add( ushort x ); -short __ovld __conv intel_sub_group_scan_exclusive_min( short x ); -ushort __ovld __conv intel_sub_group_scan_exclusive_min( ushort x ); -short __ovld __conv intel_sub_group_scan_exclusive_max( short x ); -ushort __ovld __conv intel_sub_group_scan_exclusive_max( ushort x ); - -short __ovld __conv intel_sub_group_scan_inclusive_add( short x ); -ushort __ovld __conv intel_sub_group_scan_inclusive_add( ushort x ); -short __ovld __conv intel_sub_group_scan_inclusive_min( short x ); -ushort __ovld __conv intel_sub_group_scan_inclusive_min( ushort x ); -short __ovld __conv intel_sub_group_scan_inclusive_max( short x ); -ushort __ovld __conv intel_sub_group_scan_inclusive_max( ushort x ); - -uint __ovld __conv intel_sub_group_block_read_ui( read_only image2d_t image, int2 byte_coord ); -uint2 __ovld __conv intel_sub_group_block_read_ui2( read_only image2d_t image, int2 byte_coord ); -uint4 __ovld __conv intel_sub_group_block_read_ui4( read_only image2d_t image, int2 byte_coord ); -uint8 __ovld __conv intel_sub_group_block_read_ui8( read_only image2d_t image, int2 byte_coord ); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -uint __ovld __conv intel_sub_group_block_read_ui( read_write image2d_t image, int2 byte_coord ); -uint2 __ovld __conv intel_sub_group_block_read_ui2( read_write image2d_t image, int2 byte_coord ); -uint4 __ovld __conv intel_sub_group_block_read_ui4( read_write image2d_t image, int2 byte_coord ); -uint8 __ovld __conv intel_sub_group_block_read_ui8( read_write image2d_t image, int2 byte_coord ); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -uint __ovld __conv intel_sub_group_block_read_ui( const __global uint* p ); -uint2 __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p ); -uint4 __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p ); -uint8 __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p ); - -void __ovld __conv intel_sub_group_block_write_ui( read_only image2d_t image, int2 byte_coord, uint data ); -void __ovld __conv intel_sub_group_block_write_ui2( read_only image2d_t image, int2 byte_coord, uint2 data ); -void __ovld __conv intel_sub_group_block_write_ui4( read_only image2d_t image, int2 byte_coord, uint4 data ); -void __ovld __conv intel_sub_group_block_write_ui8( read_only image2d_t image, int2 byte_coord, uint8 data ); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv intel_sub_group_block_write_ui( read_write image2d_t image, int2 byte_coord, uint data ); -void __ovld __conv intel_sub_group_block_write_ui2( read_write image2d_t image, int2 byte_coord, uint2 data ); -void __ovld __conv intel_sub_group_block_write_ui4( read_write image2d_t image, int2 byte_coord, uint4 data ); -void __ovld __conv intel_sub_group_block_write_ui8( read_write image2d_t image, int2 byte_coord, uint8 data ); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -void __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data ); -void __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data ); -void __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data ); -void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data ); - -ushort __ovld __conv intel_sub_group_block_read_us( read_only image2d_t image, int2 coord ); -ushort2 __ovld __conv intel_sub_group_block_read_us2( read_only image2d_t image, int2 coord ); -ushort4 __ovld __conv intel_sub_group_block_read_us4( read_only image2d_t image, int2 coord ); -ushort8 __ovld __conv intel_sub_group_block_read_us8( read_only image2d_t image, int2 coord ); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -ushort __ovld __conv intel_sub_group_block_read_us(read_write image2d_t image, int2 coord); -ushort2 __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t image, int2 coord); -ushort4 __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t image, int2 coord); -ushort8 __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t image, int2 coord); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -ushort __ovld __conv intel_sub_group_block_read_us( const __global ushort* p ); -ushort2 __ovld __conv intel_sub_group_block_read_us2( const __global ushort* p ); -ushort4 __ovld __conv intel_sub_group_block_read_us4( const __global ushort* p ); -ushort8 __ovld __conv intel_sub_group_block_read_us8( const __global ushort* p ); - -void __ovld __conv intel_sub_group_block_write_us(write_only image2d_t image, int2 coord, ushort data); -void __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t image, int2 coord, ushort2 data); -void __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t image, int2 coord, ushort4 data); -void __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t image, int2 coord, ushort8 data); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv intel_sub_group_block_write_us(read_write image2d_t image, int2 coord, ushort data); -void __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t image, int2 coord, ushort2 data); -void __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t image, int2 coord, ushort4 data); -void __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t image, int2 coord, ushort8 data); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -void __ovld __conv intel_sub_group_block_write_us( __global ushort* p, ushort data ); -void __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, ushort2 data ); -void __ovld __conv intel_sub_group_block_write_us4( __global ushort* p, ushort4 data ); -void __ovld __conv intel_sub_group_block_write_us8( __global ushort* p, ushort8 data ); -#endif // cl_intel_subgroups_short - -#ifdef cl_intel_device_side_avc_motion_estimation -#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin - -// MCE built-in functions -uchar __ovld -intel_sub_group_avc_mce_get_default_inter_base_multi_reference_penalty( - uchar slice_type, uchar qp); -ulong __ovld intel_sub_group_avc_mce_get_default_inter_shape_penalty( - uchar slice_type, uchar qp); -uchar __ovld intel_sub_group_avc_mce_get_default_inter_direction_penalty( - uchar slice_type, uchar qp); -uint __ovld intel_sub_group_avc_mce_get_default_intra_luma_shape_penalty( - uchar slice_type, uchar qp); -uint2 __ovld -intel_sub_group_avc_mce_get_default_inter_motion_vector_cost_table( - uchar slice_type, uchar qp); -uchar __ovld intel_sub_group_avc_mce_get_default_intra_luma_mode_penalty( - uchar slice_type, uchar qp); - -uint2 __ovld intel_sub_group_avc_mce_get_default_high_penalty_cost_table(); -uint2 __ovld intel_sub_group_avc_mce_get_default_medium_penalty_cost_table(); -uint2 __ovld intel_sub_group_avc_mce_get_default_low_penalty_cost_table(); -uint __ovld intel_sub_group_avc_mce_get_default_non_dc_luma_intra_penalty(); -uchar __ovld -intel_sub_group_avc_mce_get_default_intra_chroma_mode_base_penalty(); - -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_mce_set_inter_base_multi_reference_penalty( - uchar reference_base_penalty, intel_sub_group_avc_mce_payload_t payload); -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_mce_set_inter_shape_penalty( - ulong packed_shape_penalty, intel_sub_group_avc_mce_payload_t payload); -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_mce_set_inter_direction_penalty( - uchar direction_cost, intel_sub_group_avc_mce_payload_t payload); -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_mce_set_motion_vector_cost_function( - ulong packed_cost_center_delta, uint2 packed_cost_table, - uchar cost_precision, intel_sub_group_avc_mce_payload_t payload); -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_mce_set_ac_only_haar( - intel_sub_group_avc_mce_payload_t payload); -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_mce_set_source_interlaced_field_polarity( - uchar src_field_polarity, intel_sub_group_avc_mce_payload_t payload); -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_mce_set_single_reference_interlaced_field_polarity( - uchar ref_field_polarity, intel_sub_group_avc_mce_payload_t payload); -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_mce_set_dual_reference_interlaced_field_polarities( - uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity, - intel_sub_group_avc_mce_payload_t payload); - -ulong __ovld intel_sub_group_avc_mce_get_motion_vectors( - intel_sub_group_avc_mce_result_t result); -ushort __ovld intel_sub_group_avc_mce_get_inter_distortions( - intel_sub_group_avc_mce_result_t result); -ushort __ovld intel_sub_group_avc_mce_get_best_inter_distortion( - intel_sub_group_avc_mce_result_t result); -uchar __ovld intel_sub_group_avc_mce_get_inter_major_shape( - intel_sub_group_avc_mce_result_t result); -uchar __ovld intel_sub_group_avc_mce_get_inter_minor_shapes( - intel_sub_group_avc_mce_result_t result); -uchar __ovld intel_sub_group_avc_mce_get_inter_directions( - intel_sub_group_avc_mce_result_t result); -uchar __ovld intel_sub_group_avc_mce_get_inter_motion_vector_count( - intel_sub_group_avc_mce_result_t result); -uint __ovld intel_sub_group_avc_mce_get_inter_reference_ids( - intel_sub_group_avc_mce_result_t result); -uchar __ovld -intel_sub_group_avc_mce_get_inter_reference_interlaced_field_polarities( - uint packed_reference_ids, uint packed_reference_parameter_field_polarities, - intel_sub_group_avc_mce_result_t result); - -// IME built-in functions -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_initialize( - ushort2 src_coord, uchar partition_mask, uchar sad_adjustment); -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_single_reference( - short2 ref_offset, uchar search_window_config, - intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_dual_reference( - short2 fwd_ref_offset, short2 bwd_ref_offset, uchar search_window_config, - intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_max_motion_vector_count( - uchar max_motion_vector_count, intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_unidirectional_mix_disable( - intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_early_search_termination_threshold( - uchar threshold, intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_weighted_sad( - uint packed_sad_weights, intel_sub_group_avc_ime_payload_t payload); - -__attribute__((deprecated("If you use the latest Intel driver, please use " - "intel_sub_group_avc_ime_ref_window_size instead", - "intel_sub_group_avc_ime_ref_window_size"))) -ushort2 __ovld -intel_sub_group_ime_ref_window_size(uchar search_window_config, char dual_ref); -ushort2 __ovld intel_sub_group_avc_ime_ref_window_size( - uchar search_window_config, char dual_ref); -short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset( - short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size, - ushort2 image_size); - -intel_sub_group_avc_ime_result_t __ovld -intel_sub_group_avc_ime_evaluate_with_single_reference( - read_only image2d_t src_image, read_only image2d_t ref_image, - sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ime_result_t __ovld -intel_sub_group_avc_ime_evaluate_with_dual_reference( - read_only image2d_t src_image, read_only image2d_t fwd_ref_image, - read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler, - intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld -intel_sub_group_avc_ime_evaluate_with_single_reference_streamout( - read_only image2d_t src_image, read_only image2d_t ref_image, - sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld -intel_sub_group_avc_ime_evaluate_with_dual_reference_streamout( - read_only image2d_t src_image, read_only image2d_t fwd_ref_image, - read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler, - intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ime_result_t __ovld -intel_sub_group_avc_ime_evaluate_with_single_reference_streamin( - read_only image2d_t src_image, read_only image2d_t ref_image, - sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload, - intel_sub_group_avc_ime_single_reference_streamin_t streamin_components); -intel_sub_group_avc_ime_result_t __ovld -intel_sub_group_avc_ime_evaluate_with_dual_reference_streamin( - read_only image2d_t src_image, read_only image2d_t fwd_ref_image, - read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler, - intel_sub_group_avc_ime_payload_t payload, - intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components); -intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld -intel_sub_group_avc_ime_evaluate_with_single_reference_streaminout( - read_only image2d_t src_image, read_only image2d_t ref_image, - sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload, - intel_sub_group_avc_ime_single_reference_streamin_t streamin_components); -intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld -intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout( - read_only image2d_t src_image, read_only image2d_t fwd_ref_image, - read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler, - intel_sub_group_avc_ime_payload_t payload, - intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components); - -intel_sub_group_avc_ime_single_reference_streamin_t __ovld -intel_sub_group_avc_ime_get_single_reference_streamin( - intel_sub_group_avc_ime_result_single_reference_streamout_t result); -intel_sub_group_avc_ime_dual_reference_streamin_t __ovld -intel_sub_group_avc_ime_get_dual_reference_streamin( - intel_sub_group_avc_ime_result_dual_reference_streamout_t result); -intel_sub_group_avc_ime_result_t __ovld -intel_sub_group_avc_ime_strip_single_reference_streamout( - intel_sub_group_avc_ime_result_single_reference_streamout_t result); -intel_sub_group_avc_ime_result_t __ovld -intel_sub_group_avc_ime_strip_dual_reference_streamout( - intel_sub_group_avc_ime_result_dual_reference_streamout_t result); - -uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors( - intel_sub_group_avc_ime_result_single_reference_streamout_t result, - uchar major_shape); -ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions( - intel_sub_group_avc_ime_result_single_reference_streamout_t result, - uchar major_shape); -uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids( - intel_sub_group_avc_ime_result_single_reference_streamout_t result, - uchar major_shape); -uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors( - intel_sub_group_avc_ime_result_dual_reference_streamout_t result, - uchar major_shape, uchar direction); -ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions( - intel_sub_group_avc_ime_result_dual_reference_streamout_t result, - uchar major_shape, uchar direction); -uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids( - intel_sub_group_avc_ime_result_dual_reference_streamout_t result, - uchar major_shape, uchar direction); - -uchar __ovld intel_sub_group_avc_ime_get_border_reached( - uchar image_select, intel_sub_group_avc_ime_result_t result); -uchar __ovld intel_sub_group_avc_ime_get_truncated_search_indication( - intel_sub_group_avc_ime_result_t result); -uchar __ovld -intel_sub_group_avc_ime_get_unidirectional_early_search_termination( - intel_sub_group_avc_ime_result_t result); -uint __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_motion_vector( - intel_sub_group_avc_ime_result_t result); -ushort __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_distortion( - intel_sub_group_avc_ime_result_t result); - -// REF built-in functions -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_fme_initialize( - ushort2 src_coord, ulong motion_vectors, uchar major_shapes, - uchar minor_shapes, uchar directions, uchar pixel_resolution, - uchar sad_adjustment); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_bme_initialize( - ushort2 src_coord, ulong motion_vectors, uchar major_shapes, - uchar minor_shapes, uchar directions, uchar pixel_resolution, - uchar bidirectional_weight, uchar sad_adjustment); - -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_ref_set_bidirectional_mix_disable( - intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_ref_set_bilinear_filter_enable( - intel_sub_group_avc_ref_payload_t payload); - -intel_sub_group_avc_ref_result_t __ovld -intel_sub_group_avc_ref_evaluate_with_single_reference( - read_only image2d_t src_image, read_only image2d_t ref_image, - sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_ref_result_t __ovld -intel_sub_group_avc_ref_evaluate_with_dual_reference( - read_only image2d_t src_image, read_only image2d_t fwd_ref_image, - read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler, - intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_ref_result_t __ovld -intel_sub_group_avc_ref_evaluate_with_multi_reference( - read_only image2d_t src_image, uint packed_reference_ids, - sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_ref_result_t __ovld -intel_sub_group_avc_ref_evaluate_with_multi_reference( - read_only image2d_t src_image, uint packed_reference_ids, - uchar packed_reference_field_polarities, sampler_t vme_media_sampler, - intel_sub_group_avc_ref_payload_t payload); - -// SIC built-in functions -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_initialize( - ushort2 src_coord); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_configure_skc( - uint skip_block_partition_type, uint skip_motion_vector_mask, - ulong motion_vectors, uchar bidirectional_weight, uchar skip_sad_adjustment, - intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_configure_ipe( - uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty, - uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel, - uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels, - uchar intra_sad_adjustment, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_configure_ipe( - uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty, - uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel, - uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels, - ushort left_edge_chroma_pixels, ushort upper_left_corner_chroma_pixel, - ushort upper_edge_chroma_pixels, uchar intra_sad_adjustment, - intel_sub_group_avc_sic_payload_t payload); -uint __ovld -intel_sub_group_avc_sic_get_motion_vector_mask( - uint skip_block_partition_type, uchar direction); - -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_intra_luma_shape_penalty( - uint packed_shape_cost, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_intra_luma_mode_cost_function( - uchar luma_mode_penalty, uint luma_packed_neighbor_modes, - uint luma_packed_non_dc_penalty, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_intra_chroma_mode_cost_function( - uchar chroma_mode_penalty, intel_sub_group_avc_sic_payload_t payload); - -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_skc_bilinear_filter_enable( - intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_skc_forward_transform_enable( - ulong packed_sad_coefficients, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_block_based_raw_skip_sad( - uchar block_based_skip_type, - intel_sub_group_avc_sic_payload_t payload); - -intel_sub_group_avc_sic_result_t __ovld -intel_sub_group_avc_sic_evaluate_ipe( - read_only image2d_t src_image, sampler_t vme_media_sampler, - intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_result_t __ovld -intel_sub_group_avc_sic_evaluate_with_single_reference( - read_only image2d_t src_image, read_only image2d_t ref_image, - sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_result_t __ovld -intel_sub_group_avc_sic_evaluate_with_dual_reference( - read_only image2d_t src_image, read_only image2d_t fwd_ref_image, - read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler, - intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_result_t __ovld -intel_sub_group_avc_sic_evaluate_with_multi_reference( - read_only image2d_t src_image, uint packed_reference_ids, - sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_result_t __ovld -intel_sub_group_avc_sic_evaluate_with_multi_reference( - read_only image2d_t src_image, uint packed_reference_ids, - uchar packed_reference_field_polarities, sampler_t vme_media_sampler, - intel_sub_group_avc_sic_payload_t payload); - -uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape( - intel_sub_group_avc_sic_result_t result); -ushort __ovld intel_sub_group_avc_sic_get_best_ipe_luma_distortion( - intel_sub_group_avc_sic_result_t result); -ushort __ovld intel_sub_group_avc_sic_get_best_ipe_chroma_distortion( - intel_sub_group_avc_sic_result_t result); -ulong __ovld intel_sub_group_avc_sic_get_packed_ipe_luma_modes( - intel_sub_group_avc_sic_result_t result); -uchar __ovld intel_sub_group_avc_sic_get_ipe_chroma_mode( - intel_sub_group_avc_sic_result_t result); -uint __ovld intel_sub_group_avc_sic_get_packed_skc_luma_count_threshold( - intel_sub_group_avc_sic_result_t result); -ulong __ovld intel_sub_group_avc_sic_get_packed_skc_luma_sum_threshold( - intel_sub_group_avc_sic_result_t result); -ushort __ovld intel_sub_group_avc_sic_get_inter_raw_sads( - intel_sub_group_avc_sic_result_t result); - -// Wrappers -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_inter_base_multi_reference_penalty( - uchar reference_base_penalty, intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_ref_set_inter_base_multi_reference_penalty( - uchar reference_base_penalty, intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_inter_base_multi_reference_penalty( - uchar reference_base_penalty, intel_sub_group_avc_sic_payload_t payload); - -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_inter_shape_penalty( - ulong packed_shape_cost, intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_ref_set_inter_shape_penalty( - ulong packed_shape_cost, intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_inter_shape_penalty( - ulong packed_shape_cost, intel_sub_group_avc_sic_payload_t payload); - -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_inter_direction_penalty( - uchar direction_cost, intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_ref_set_inter_direction_penalty( - uchar direction_cost, intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_inter_direction_penalty( - uchar direction_cost, intel_sub_group_avc_sic_payload_t payload); - -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_motion_vector_cost_function( - ulong packed_cost_center_delta, uint2 packed_cost_table, - uchar cost_precision, intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_ref_set_motion_vector_cost_function( - ulong packed_cost_center_delta, uint2 packed_cost_table, - uchar cost_precision, intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_motion_vector_cost_function( - ulong packed_cost_center_delta, uint2 packed_cost_table, - uchar cost_precision, intel_sub_group_avc_sic_payload_t payload); - -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_source_interlaced_field_polarity( - uchar src_field_polarity, intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_ref_set_source_interlaced_field_polarity( - uchar src_field_polarity, intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_source_interlaced_field_polarity( - uchar src_field_polarity, intel_sub_group_avc_sic_payload_t payload); - -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_single_reference_interlaced_field_polarity( - uchar ref_field_polarity, intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_ref_set_single_reference_interlaced_field_polarity( - uchar ref_field_polarity, intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_single_reference_interlaced_field_polarity( - uchar ref_field_polarity, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_dual_reference_interlaced_field_polarities( - uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity, - intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_ref_set_dual_reference_interlaced_field_polarities( - uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity, - intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_dual_reference_interlaced_field_polarities( - uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity, - intel_sub_group_avc_sic_payload_t payload); - -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_ime_set_ac_only_haar( - intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_ref_set_ac_only_haar( - intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_set_ac_only_haar( - intel_sub_group_avc_sic_payload_t payload); - -ulong __ovld intel_sub_group_avc_ime_get_motion_vectors( - intel_sub_group_avc_ime_result_t result); -ulong __ovld intel_sub_group_avc_ref_get_motion_vectors( - intel_sub_group_avc_ref_result_t result); - -ushort __ovld intel_sub_group_avc_ime_get_inter_distortions( - intel_sub_group_avc_ime_result_t result); -ushort __ovld intel_sub_group_avc_ref_get_inter_distortions( - intel_sub_group_avc_ref_result_t result); -ushort __ovld intel_sub_group_avc_sic_get_inter_distortions( - intel_sub_group_avc_sic_result_t result); - -ushort __ovld intel_sub_group_avc_ime_get_best_inter_distortion( - intel_sub_group_avc_ime_result_t result); -ushort __ovld intel_sub_group_avc_ref_get_best_inter_distortion( - intel_sub_group_avc_ref_result_t result); - -uchar __ovld intel_sub_group_avc_ime_get_inter_major_shape( - intel_sub_group_avc_ime_result_t result); -uchar __ovld intel_sub_group_avc_ref_get_inter_major_shape( - intel_sub_group_avc_ref_result_t result); -uchar __ovld intel_sub_group_avc_ime_get_inter_minor_shapes( - intel_sub_group_avc_ime_result_t result); -uchar __ovld intel_sub_group_avc_ref_get_inter_minor_shapes( - intel_sub_group_avc_ref_result_t result); - -uchar __ovld intel_sub_group_avc_ime_get_inter_directions( - intel_sub_group_avc_ime_result_t result); -uchar __ovld intel_sub_group_avc_ref_get_inter_directions( - intel_sub_group_avc_ref_result_t result); - -uchar __ovld intel_sub_group_avc_ime_get_inter_motion_vector_count( - intel_sub_group_avc_ime_result_t result); -uchar __ovld intel_sub_group_avc_ref_get_inter_motion_vector_count( - intel_sub_group_avc_ref_result_t result); - -uint __ovld intel_sub_group_avc_ime_get_inter_reference_ids( - intel_sub_group_avc_ime_result_t result); -uint __ovld intel_sub_group_avc_ref_get_inter_reference_ids( - intel_sub_group_avc_ref_result_t result); - -uchar __ovld -intel_sub_group_avc_ime_get_inter_reference_interlaced_field_polarities( - uint packed_reference_ids, uint packed_reference_parameter_field_polarities, - intel_sub_group_avc_ime_result_t result); -uchar __ovld -intel_sub_group_avc_ref_get_inter_reference_interlaced_field_polarities( - uint packed_reference_ids, uint packed_reference_parameter_field_polarities, - intel_sub_group_avc_ref_result_t result); - -// Type conversion functions -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_ime_convert_to_mce_payload( - intel_sub_group_avc_ime_payload_t payload); -intel_sub_group_avc_ime_payload_t __ovld -intel_sub_group_avc_mce_convert_to_ime_payload( - intel_sub_group_avc_mce_payload_t payload); -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_ref_convert_to_mce_payload( - intel_sub_group_avc_ref_payload_t payload); -intel_sub_group_avc_ref_payload_t __ovld -intel_sub_group_avc_mce_convert_to_ref_payload( - intel_sub_group_avc_mce_payload_t payload); -intel_sub_group_avc_mce_payload_t __ovld -intel_sub_group_avc_sic_convert_to_mce_payload( - intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_mce_convert_to_sic_payload( - intel_sub_group_avc_mce_payload_t payload); - -intel_sub_group_avc_mce_result_t __ovld -intel_sub_group_avc_ime_convert_to_mce_result( - intel_sub_group_avc_ime_result_t result); -intel_sub_group_avc_ime_result_t __ovld -intel_sub_group_avc_mce_convert_to_ime_result( - intel_sub_group_avc_mce_result_t result); -intel_sub_group_avc_mce_result_t __ovld -intel_sub_group_avc_ref_convert_to_mce_result( - intel_sub_group_avc_ref_result_t result); -intel_sub_group_avc_ref_result_t __ovld -intel_sub_group_avc_mce_convert_to_ref_result( - intel_sub_group_avc_mce_result_t result); -intel_sub_group_avc_mce_result_t __ovld -intel_sub_group_avc_sic_convert_to_mce_result( - intel_sub_group_avc_sic_result_t result); -intel_sub_group_avc_sic_result_t __ovld -intel_sub_group_avc_mce_convert_to_sic_result( - intel_sub_group_avc_mce_result_t result); -#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : end -#endif // cl_intel_device_side_avc_motion_estimation - -#ifdef cl_amd_media_ops -uint __ovld amd_bitalign(uint a, uint b, uint c); -uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_bitalign(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_bitalign(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_bitalign(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_bitalign(uint16 a, uint16 b, uint16 c); - -uint __ovld amd_bytealign(uint a, uint b, uint c); -uint2 __ovld amd_bytealign(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_bytealign(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_bytealign(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_bytealign(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_bytealign(uint16 a, uint16 b, uint16 c); - -uint __ovld amd_lerp(uint a, uint b, uint c); -uint2 __ovld amd_lerp(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_lerp(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_lerp(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_lerp(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_lerp(uint16 a, uint16 b, uint16 c); - -uint __ovld amd_pack(float4 v); - -uint __ovld amd_sad4(uint4 x, uint4 y, uint z); - -uint __ovld amd_sadhi(uint a, uint b, uint c); -uint2 __ovld amd_sadhi(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_sadhi(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_sadhi(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_sadhi(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_sadhi(uint16 a, uint16 b, uint16 c); - -uint __ovld amd_sad(uint a, uint b, uint c); -uint2 __ovld amd_sad(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_sad(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_sad(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_sad(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_sad(uint16 a, uint16 b, uint16 c); - -float __ovld amd_unpack0(uint a); -float2 __ovld amd_unpack0(uint2 a); -float3 __ovld amd_unpack0(uint3 a); -float4 __ovld amd_unpack0(uint4 a); -float8 __ovld amd_unpack0(uint8 a); -float16 __ovld amd_unpack0(uint16 a); - -float __ovld amd_unpack1(uint a); -float2 __ovld amd_unpack1(uint2 a); -float3 __ovld amd_unpack1(uint3 a); -float4 __ovld amd_unpack1(uint4 a); -float8 __ovld amd_unpack1(uint8 a); -float16 __ovld amd_unpack1(uint16 a); - -float __ovld amd_unpack2(uint a); -float2 __ovld amd_unpack2(uint2 a); -float3 __ovld amd_unpack2(uint3 a); -float4 __ovld amd_unpack2(uint4 a); -float8 __ovld amd_unpack2(uint8 a); -float16 __ovld amd_unpack2(uint16 a); - -float __ovld amd_unpack3(uint a); -float2 __ovld amd_unpack3(uint2 a); -float3 __ovld amd_unpack3(uint3 a); -float4 __ovld amd_unpack3(uint4 a); -float8 __ovld amd_unpack3(uint8 a); -float16 __ovld amd_unpack3(uint16 a); -#endif // cl_amd_media_ops - -#ifdef cl_amd_media_ops2 -int __ovld amd_bfe(int src0, uint src1, uint src2); -int2 __ovld amd_bfe(int2 src0, uint2 src1, uint2 src2); -int3 __ovld amd_bfe(int3 src0, uint3 src1, uint3 src2); -int4 __ovld amd_bfe(int4 src0, uint4 src1, uint4 src2); -int8 __ovld amd_bfe(int8 src0, uint8 src1, uint8 src2); -int16 __ovld amd_bfe(int16 src0, uint16 src1, uint16 src2); - -uint __ovld amd_bfe(uint src0, uint src1, uint src2); -uint2 __ovld amd_bfe(uint2 src0, uint2 src1, uint2 src2); -uint3 __ovld amd_bfe(uint3 src0, uint3 src1, uint3 src2); -uint4 __ovld amd_bfe(uint4 src0, uint4 src1, uint4 src2); -uint8 __ovld amd_bfe(uint8 src0, uint8 src1, uint8 src2); -uint16 __ovld amd_bfe(uint16 src0, uint16 src1, uint16 src2); - -uint __ovld amd_bfm(uint src0, uint src1); -uint2 __ovld amd_bfm(uint2 src0, uint2 src1); -uint3 __ovld amd_bfm(uint3 src0, uint3 src1); -uint4 __ovld amd_bfm(uint4 src0, uint4 src1); -uint8 __ovld amd_bfm(uint8 src0, uint8 src1); -uint16 __ovld amd_bfm(uint16 src0, uint16 src1); - -float __ovld amd_max3(float src0, float src1, float src2); -float2 __ovld amd_max3(float2 src0, float2 src1, float2 src2); -float3 __ovld amd_max3(float3 src0, float3 src1, float3 src2); -float4 __ovld amd_max3(float4 src0, float4 src1, float4 src2); -float8 __ovld amd_max3(float8 src0, float8 src1, float8 src2); -float16 __ovld amd_max3(float16 src0, float16 src1, float16 src2); - -int __ovld amd_max3(int src0, int src1, int src2); -int2 __ovld amd_max3(int2 src0, int2 src1, int2 src2); -int3 __ovld amd_max3(int3 src0, int3 src1, int3 src2); -int4 __ovld amd_max3(int4 src0, int4 src1, int4 src2); -int8 __ovld amd_max3(int8 src0, int8 src1, int8 src2); -int16 __ovld amd_max3(int16 src0, int16 src1, int16 src2); - -uint __ovld amd_max3(uint src0, uint src1, uint src2); -uint2 __ovld amd_max3(uint2 src0, uint2 src1, uint2 src2); -uint3 __ovld amd_max3(uint3 src0, uint3 src1, uint3 src2); -uint4 __ovld amd_max3(uint4 src0, uint4 src1, uint4 src2); -uint8 __ovld amd_max3(uint8 src0, uint8 src1, uint8 src2); -uint16 __ovld amd_max3(uint16 src0, uint16 src1, uint16 src2); - -float __ovld amd_median3(float src0, float src1, float src2); -float2 __ovld amd_median3(float2 src0, float2 src1, float2 src2); -float3 __ovld amd_median3(float3 src0, float3 src1, float3 src2); -float4 __ovld amd_median3(float4 src0, float4 src1, float4 src2); -float8 __ovld amd_median3(float8 src0, float8 src1, float8 src2); -float16 __ovld amd_median3(float16 src0, float16 src1, float16 src2); - -int __ovld amd_median3(int src0, int src1, int src2); -int2 __ovld amd_median3(int2 src0, int2 src1, int2 src2); -int3 __ovld amd_median3(int3 src0, int3 src1, int3 src2); -int4 __ovld amd_median3(int4 src0, int4 src1, int4 src2); -int8 __ovld amd_median3(int8 src0, int8 src1, int8 src2); -int16 __ovld amd_median3(int16 src0, int16 src1, int16 src2); - -uint __ovld amd_median3(uint src0, uint src1, uint src2); -uint2 __ovld amd_median3(uint2 src0, uint2 src1, uint2 src2); -uint3 __ovld amd_median3(uint3 src0, uint3 src1, uint3 src2); -uint4 __ovld amd_median3(uint4 src0, uint4 src1, uint4 src2); -uint8 __ovld amd_median3(uint8 src0, uint8 src1, uint8 src2); -uint16 __ovld amd_median3(uint16 src0, uint16 src1, uint16 src2); - -float __ovld amd_min3(float src0, float src1, float src); -float2 __ovld amd_min3(float2 src0, float2 src1, float2 src); -float3 __ovld amd_min3(float3 src0, float3 src1, float3 src); -float4 __ovld amd_min3(float4 src0, float4 src1, float4 src); -float8 __ovld amd_min3(float8 src0, float8 src1, float8 src); -float16 __ovld amd_min3(float16 src0, float16 src1, float16 src); - -int __ovld amd_min3(int src0, int src1, int src2); -int2 __ovld amd_min3(int2 src0, int2 src1, int2 src2); -int3 __ovld amd_min3(int3 src0, int3 src1, int3 src2); -int4 __ovld amd_min3(int4 src0, int4 src1, int4 src2); -int8 __ovld amd_min3(int8 src0, int8 src1, int8 src2); -int16 __ovld amd_min3(int16 src0, int16 src1, int16 src2); - -uint __ovld amd_min3(uint src0, uint src1, uint src2); -uint2 __ovld amd_min3(uint2 src0, uint2 src1, uint2 src2); -uint3 __ovld amd_min3(uint3 src0, uint3 src1, uint3 src2); -uint4 __ovld amd_min3(uint4 src0, uint4 src1, uint4 src2); -uint8 __ovld amd_min3(uint8 src0, uint8 src1, uint8 src2); -uint16 __ovld amd_min3(uint16 src0, uint16 src1, uint16 src2); - -ulong __ovld amd_mqsad(ulong src0, uint src1, ulong src2); -ulong2 __ovld amd_mqsad(ulong2 src0, uint2 src1, ulong2 src2); -ulong3 __ovld amd_mqsad(ulong3 src0, uint3 src1, ulong3 src2); -ulong4 __ovld amd_mqsad(ulong4 src0, uint4 src1, ulong4 src2); -ulong8 __ovld amd_mqsad(ulong8 src0, uint8 src1, ulong8 src2); -ulong16 __ovld amd_mqsad(ulong16 src0, uint16 src1, ulong16 src2); - -ulong __ovld amd_qsad(ulong src0, uint src1, ulong src2); -ulong2 __ovld amd_qsad(ulong2 src0, uint2 src1, ulong2 src2); -ulong3 __ovld amd_qsad(ulong3 src0, uint3 src1, ulong3 src2); -ulong4 __ovld amd_qsad(ulong4 src0, uint4 src1, ulong4 src2); -ulong8 __ovld amd_qsad(ulong8 src0, uint8 src1, ulong8 src2); -ulong16 __ovld amd_qsad(ulong16 src0, uint16 src1, ulong16 src2); - -uint __ovld amd_msad(uint src0, uint src1, uint src2); -uint2 __ovld amd_msad(uint2 src0, uint2 src1, uint2 src2); -uint3 __ovld amd_msad(uint3 src0, uint3 src1, uint3 src2); -uint4 __ovld amd_msad(uint4 src0, uint4 src1, uint4 src2); -uint8 __ovld amd_msad(uint8 src0, uint8 src1, uint8 src2); -uint16 __ovld amd_msad(uint16 src0, uint16 src1, uint16 src2); - -uint __ovld amd_sadd(uint src0, uint src1, uint src2); -uint2 __ovld amd_sadd(uint2 src0, uint2 src1, uint2 src2); -uint3 __ovld amd_sadd(uint3 src0, uint3 src1, uint3 src2); -uint4 __ovld amd_sadd(uint4 src0, uint4 src1, uint4 src2); -uint8 __ovld amd_sadd(uint8 src0, uint8 src1, uint8 src2); -uint16 __ovld amd_sadd(uint16 src0, uint16 src1, uint16 src2); - -uint __ovld amd_sadw(uint src0, uint src1, uint src2); -uint2 __ovld amd_sadw(uint2 src0, uint2 src1, uint2 src2); -uint3 __ovld amd_sadw(uint3 src0, uint3 src1, uint3 src2); -uint4 __ovld amd_sadw(uint4 src0, uint4 src1, uint4 src2); -uint8 __ovld amd_sadw(uint8 src0, uint8 src1, uint8 src2); -uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2); -#endif // cl_amd_media_ops2 - -#if defined(cl_arm_integer_dot_product_int8) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : begin -uint __ovld arm_dot(uchar4 a, uchar4 b); -int __ovld arm_dot(char4 a, char4 b); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : end -#endif // defined(cl_arm_integer_dot_product_int8) - -#if defined(cl_arm_integer_dot_product_accumulate_int8) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : begin -uint __ovld arm_dot_acc(uchar4 a, uchar4 b, uint c); -int __ovld arm_dot_acc(char4 a, char4 b, int c); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : end -#endif // defined(cl_arm_integer_dot_product_accumulate_int8) - -#if defined(cl_arm_integer_dot_product_accumulate_int16) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : begin -uint __ovld arm_dot_acc(ushort2 a, ushort2 b, uint c); -int __ovld arm_dot_acc(short2 a, short2 b, int c); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : end -#endif // defined(cl_arm_integer_dot_product_accumulate_int16) - -#if defined(cl_arm_integer_dot_product_accumulate_saturate_int8) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : begin -uint __ovld arm_dot_acc_sat(uchar4 a, uchar4 b, uint c); -int __ovld arm_dot_acc_sat(char4 a, char4 b, int c); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : end -#endif // defined(cl_arm_integer_dot_product_accumulate_saturate_int8) - -// Disable any extensions we may have enabled previously. -#pragma OPENCL EXTENSION all : disable - -#undef __cnfn -#undef __ovld -#endif //_OPENCL_H_ diff --git a/bin/app/data/cxx/include/openmp_wrappers/__clang_openmp_math.h b/bin/app/data/cxx/include/openmp_wrappers/__clang_openmp_math.h deleted file mode 100644 index 5d7ce9a9..00000000 --- a/bin/app/data/cxx/include/openmp_wrappers/__clang_openmp_math.h +++ /dev/null @@ -1,35 +0,0 @@ -/*===---- __clang_openmp_math.h - OpenMP target math support ---------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if defined(__NVPTX__) && defined(_OPENMP) -/// TODO: -/// We are currently reusing the functionality of the Clang-CUDA code path -/// as an alternative to the host declarations provided by math.h and cmath. -/// This is suboptimal. -/// -/// We should instead declare the device functions in a similar way, e.g., -/// through OpenMP 5.0 variants, and afterwards populate the module with the -/// host declarations by unconditionally including the host math.h or cmath, -/// respectively. This is actually what the Clang-CUDA code path does, using -/// __device__ instead of variants to avoid redeclarations and get the desired -/// overload resolution. - -#define __CUDA__ - -#if defined(__cplusplus) - #include <__clang_cuda_cmath.h> -#endif - -#undef __CUDA__ - -/// Magic macro for stopping the math.h/cmath host header from being included. -#define __CLANG_NO_HOST_MATH__ - -#endif - diff --git a/bin/app/data/cxx/include/openmp_wrappers/__clang_openmp_math_declares.h b/bin/app/data/cxx/include/openmp_wrappers/__clang_openmp_math_declares.h deleted file mode 100644 index a422c98b..00000000 --- a/bin/app/data/cxx/include/openmp_wrappers/__clang_openmp_math_declares.h +++ /dev/null @@ -1,33 +0,0 @@ -/*===---- __clang_openmp_math_declares.h - OpenMP math declares ------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_OPENMP_MATH_DECLARES_H__ -#define __CLANG_OPENMP_MATH_DECLARES_H__ - -#ifndef _OPENMP -#error "This file is for OpenMP compilation only." -#endif - -#if defined(__NVPTX__) && defined(_OPENMP) - -#define __CUDA__ - -#if defined(__cplusplus) - #include <__clang_cuda_math_forward_declares.h> -#endif - -/// Include declarations for libdevice functions. -#include <__clang_cuda_libdevice_declares.h> -/// Provide definitions for these functions. -#include <__clang_cuda_device_functions.h> - -#undef __CUDA__ - -#endif -#endif diff --git a/bin/app/data/cxx/include/openmp_wrappers/cmath b/bin/app/data/cxx/include/openmp_wrappers/cmath deleted file mode 100644 index a5183a1d..00000000 --- a/bin/app/data/cxx/include/openmp_wrappers/cmath +++ /dev/null @@ -1,16 +0,0 @@ -/*===-------------- cmath - Alternative cmath header -----------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#include <__clang_openmp_math.h> - -#ifndef __CLANG_NO_HOST_MATH__ -#include_next -#else -#undef __CLANG_NO_HOST_MATH__ -#endif diff --git a/bin/app/data/cxx/include/openmp_wrappers/math.h b/bin/app/data/cxx/include/openmp_wrappers/math.h deleted file mode 100644 index d2786ecb..00000000 --- a/bin/app/data/cxx/include/openmp_wrappers/math.h +++ /dev/null @@ -1,17 +0,0 @@ -/*===------------- math.h - Alternative math.h header ----------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#include <__clang_openmp_math.h> - -#ifndef __CLANG_NO_HOST_MATH__ -#include_next -#else -#undef __CLANG_NO_HOST_MATH__ -#endif - diff --git a/bin/app/data/cxx/include/pconfigintrin.h b/bin/app/data/cxx/include/pconfigintrin.h deleted file mode 100644 index d2014b02..00000000 --- a/bin/app/data/cxx/include/pconfigintrin.h +++ /dev/null @@ -1,40 +0,0 @@ -/*===---- pconfigintrin.h - X86 platform configuration ---------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __PCONFIGINTRIN_H -#define __PCONFIGINTRIN_H - -#define __PCONFIG_KEY_PROGRAM 0x00000001 - -#if __has_extension(gnu_asm) - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("pconfig"))) - -static __inline unsigned int __DEFAULT_FN_ATTRS -_pconfig_u32(unsigned int __leaf, __SIZE_TYPE__ __d[]) -{ - unsigned int __result; - __asm__ ("pconfig" - : "=a" (__result), "=b" (__d[0]), "=c" (__d[1]), "=d" (__d[2]) - : "a" (__leaf), "b" (__d[0]), "c" (__d[1]), "d" (__d[2]) - : "cc"); - return __result; -} - -#undef __DEFAULT_FN_ATTRS - -#endif /* __has_extension(gnu_asm) */ - -#endif diff --git a/bin/app/data/cxx/include/pkuintrin.h b/bin/app/data/cxx/include/pkuintrin.h deleted file mode 100644 index c62080be..00000000 --- a/bin/app/data/cxx/include/pkuintrin.h +++ /dev/null @@ -1,34 +0,0 @@ -/*===---- pkuintrin.h - PKU intrinsics -------------------------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __PKUINTRIN_H -#define __PKUINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("pku"))) - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_rdpkru_u32(void) -{ - return __builtin_ia32_rdpkru(); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_wrpkru(unsigned int __val) -{ - __builtin_ia32_wrpkru(__val); -} - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/pmmintrin.h b/bin/app/data/cxx/include/pmmintrin.h deleted file mode 100644 index c376f298..00000000 --- a/bin/app/data/cxx/include/pmmintrin.h +++ /dev/null @@ -1,290 +0,0 @@ -/*===---- pmmintrin.h - SSE3 intrinsics ------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __PMMINTRIN_H -#define __PMMINTRIN_H - -#include - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) - -/// Loads data from an unaligned memory location to elements in a 128-bit -/// vector. -/// -/// If the address of the data is not 16-byte aligned, the instruction may -/// read two adjacent aligned blocks of memory to retrieve the requested -/// data. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VLDDQU instruction. -/// -/// \param __p -/// A pointer to a 128-bit integer vector containing integer values. -/// \returns A 128-bit vector containing the moved values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_lddqu_si128(__m128i const *__p) -{ - return (__m128i)__builtin_ia32_lddqu((char const *)__p); -} - -/// Adds the even-indexed values and subtracts the odd-indexed values of -/// two 128-bit vectors of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VADDSUBPS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing the left source operand. -/// \param __b -/// A 128-bit vector of [4 x float] containing the right source operand. -/// \returns A 128-bit vector of [4 x float] containing the alternating sums and -/// differences of both operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_addsub_ps(__m128 __a, __m128 __b) -{ - return __builtin_ia32_addsubps((__v4sf)__a, (__v4sf)__b); -} - -/// Horizontally adds the adjacent pairs of values contained in two -/// 128-bit vectors of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VHADDPS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// The horizontal sums of the values are stored in the lower bits of the -/// destination. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// The horizontal sums of the values are stored in the upper bits of the -/// destination. -/// \returns A 128-bit vector of [4 x float] containing the horizontal sums of -/// both operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_hadd_ps(__m128 __a, __m128 __b) -{ - return __builtin_ia32_haddps((__v4sf)__a, (__v4sf)__b); -} - -/// Horizontally subtracts the adjacent pairs of values contained in two -/// 128-bit vectors of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VHSUBPS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// The horizontal differences between the values are stored in the lower -/// bits of the destination. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// The horizontal differences between the values are stored in the upper -/// bits of the destination. -/// \returns A 128-bit vector of [4 x float] containing the horizontal -/// differences of both operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_hsub_ps(__m128 __a, __m128 __b) -{ - return __builtin_ia32_hsubps((__v4sf)__a, (__v4sf)__b); -} - -/// Moves and duplicates odd-indexed values from a 128-bit vector -/// of [4 x float] to float values stored in a 128-bit vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVSHDUP instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. \n -/// Bits [127:96] of the source are written to bits [127:96] and [95:64] of -/// the destination. \n -/// Bits [63:32] of the source are written to bits [63:32] and [31:0] of the -/// destination. -/// \returns A 128-bit vector of [4 x float] containing the moved and duplicated -/// values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_movehdup_ps(__m128 __a) -{ - return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 1, 1, 3, 3); -} - -/// Duplicates even-indexed values from a 128-bit vector of -/// [4 x float] to float values stored in a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVSLDUP instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float] \n -/// Bits [95:64] of the source are written to bits [127:96] and [95:64] of -/// the destination. \n -/// Bits [31:0] of the source are written to bits [63:32] and [31:0] of the -/// destination. -/// \returns A 128-bit vector of [4 x float] containing the moved and duplicated -/// values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_moveldup_ps(__m128 __a) -{ - return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 2, 2); -} - -/// Adds the even-indexed values and subtracts the odd-indexed values of -/// two 128-bit vectors of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VADDSUBPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing the left source operand. -/// \param __b -/// A 128-bit vector of [2 x double] containing the right source operand. -/// \returns A 128-bit vector of [2 x double] containing the alternating sums -/// and differences of both operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_addsub_pd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_addsubpd((__v2df)__a, (__v2df)__b); -} - -/// Horizontally adds the pairs of values contained in two 128-bit -/// vectors of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VHADDPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// The horizontal sum of the values is stored in the lower bits of the -/// destination. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// The horizontal sum of the values is stored in the upper bits of the -/// destination. -/// \returns A 128-bit vector of [2 x double] containing the horizontal sums of -/// both operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_hadd_pd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_haddpd((__v2df)__a, (__v2df)__b); -} - -/// Horizontally subtracts the pairs of values contained in two 128-bit -/// vectors of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VHSUBPD instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// The horizontal difference of the values is stored in the lower bits of -/// the destination. -/// \param __b -/// A 128-bit vector of [2 x double] containing one of the source operands. -/// The horizontal difference of the values is stored in the upper bits of -/// the destination. -/// \returns A 128-bit vector of [2 x double] containing the horizontal -/// differences of both operands. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_hsub_pd(__m128d __a, __m128d __b) -{ - return __builtin_ia32_hsubpd((__v2df)__a, (__v2df)__b); -} - -/// Moves and duplicates one double-precision value to double-precision -/// values stored in a 128-bit vector of [2 x double]. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_loaddup_pd(double const *dp); -/// \endcode -/// -/// This intrinsic corresponds to the VMOVDDUP instruction. -/// -/// \param dp -/// A pointer to a double-precision value to be moved and duplicated. -/// \returns A 128-bit vector of [2 x double] containing the moved and -/// duplicated values. -#define _mm_loaddup_pd(dp) _mm_load1_pd(dp) - -/// Moves and duplicates the double-precision value in the lower bits of -/// a 128-bit vector of [2 x double] to double-precision values stored in a -/// 128-bit vector of [2 x double]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVDDUP instruction. -/// -/// \param __a -/// A 128-bit vector of [2 x double]. Bits [63:0] are written to bits -/// [127:64] and [63:0] of the destination. -/// \returns A 128-bit vector of [2 x double] containing the moved and -/// duplicated values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_movedup_pd(__m128d __a) -{ - return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0); -} - -/// Establishes a linear address memory range to be monitored and puts -/// the processor in the monitor event pending state. Data stored in the -/// monitored address range causes the processor to exit the pending state. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MONITOR instruction. -/// -/// \param __p -/// The memory range to be monitored. The size of the range is determined by -/// CPUID function 0000_0005h. -/// \param __extensions -/// Optional extensions for the monitoring state. -/// \param __hints -/// Optional hints for the monitoring state. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_monitor(void const *__p, unsigned __extensions, unsigned __hints) -{ - __builtin_ia32_monitor((void *)__p, __extensions, __hints); -} - -/// Used with the MONITOR instruction to wait while the processor is in -/// the monitor event pending state. Data stored in the monitored address -/// range causes the processor to exit the pending state. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MWAIT instruction. -/// -/// \param __extensions -/// Optional extensions for the monitoring state, which may vary by -/// processor. -/// \param __hints -/// Optional hints for the monitoring state, which may vary by processor. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_mwait(unsigned __extensions, unsigned __hints) -{ - __builtin_ia32_mwait(__extensions, __hints); -} - -#undef __DEFAULT_FN_ATTRS - -#endif /* __PMMINTRIN_H */ diff --git a/bin/app/data/cxx/include/popcntintrin.h b/bin/app/data/cxx/include/popcntintrin.h deleted file mode 100644 index 31290101..00000000 --- a/bin/app/data/cxx/include/popcntintrin.h +++ /dev/null @@ -1,52 +0,0 @@ -/*===---- popcntintrin.h - POPCNT intrinsics -------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __POPCNTINTRIN_H -#define __POPCNTINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("popcnt"))) - -/// Counts the number of bits in the source operand having a value of 1. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the POPCNT instruction. -/// -/// \param __A -/// An unsigned 32-bit integer operand. -/// \returns A 32-bit integer containing the number of bits with value 1 in the -/// source operand. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_popcnt_u32(unsigned int __A) -{ - return __builtin_popcount(__A); -} - -#ifdef __x86_64__ -/// Counts the number of bits in the source operand having a value of 1. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the POPCNT instruction. -/// -/// \param __A -/// An unsigned 64-bit integer operand. -/// \returns A 64-bit integer containing the number of bits with value 1 in the -/// source operand. -static __inline__ long long __DEFAULT_FN_ATTRS -_mm_popcnt_u64(unsigned long long __A) -{ - return __builtin_popcountll(__A); -} -#endif /* __x86_64__ */ - -#undef __DEFAULT_FN_ATTRS - -#endif /* __POPCNTINTRIN_H */ diff --git a/bin/app/data/cxx/include/ppc_wrappers/emmintrin.h b/bin/app/data/cxx/include/ppc_wrappers/emmintrin.h deleted file mode 100644 index 617ce24a..00000000 --- a/bin/app/data/cxx/include/ppc_wrappers/emmintrin.h +++ /dev/null @@ -1,2318 +0,0 @@ -/*===---- emmintrin.h - Implementation of SSE2 intrinsics on PowerPC -------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* Implemented from the specification included in the Intel C++ Compiler - User Guide and Reference, version 9.0. */ - -#ifndef NO_WARN_X86_INTRINSICS -/* This header file is to help porting code using Intel intrinsics - explicitly from x86_64 to powerpc64/powerpc64le. - - Since X86 SSE2 intrinsics mainly handles __m128i and __m128d type, - PowerPC VMX/VSX ISA is a good match for vector float SIMD operations. - However scalar float operations in vector (XMM) registers require - the POWER8 VSX ISA (2.07) level. There are differences for data - format and placement of float scalars in the vector register, which - require extra steps to match SSE2 scalar float semantics on POWER. - - It should be noted that there's much difference between X86_64's - MXSCR and PowerISA's FPSCR/VSCR registers. It's recommended to use - portable instead of access MXSCR directly. - - Most SSE2 scalar float intrinsic operations can be performed more - efficiently as C language float scalar operations or optimized to - use vector SIMD operations. We recommend this for new applications. -*/ -#error "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error." -#endif - -#ifndef EMMINTRIN_H_ -#define EMMINTRIN_H_ - -#include - -/* We need definitions from the SSE header files. */ -#include - -/* SSE2 */ -typedef __vector double __v2df; -typedef __vector long long __v2di; -typedef __vector unsigned long long __v2du; -typedef __vector int __v4si; -typedef __vector unsigned int __v4su; -typedef __vector short __v8hi; -typedef __vector unsigned short __v8hu; -typedef __vector signed char __v16qi; -typedef __vector unsigned char __v16qu; - -/* The Intel API is flexible enough that we must allow aliasing with other - vector types, and their scalar components. */ -typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__)); -typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__)); - -/* Unaligned version of the same types. */ -typedef long long __m128i_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1))); -typedef double __m128d_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1))); - -/* Define two value permute mask. */ -#define _MM_SHUFFLE2(x,y) (((x) << 1) | (y)) - -/* Create a vector with element 0 as F and the rest zero. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_sd (double __F) -{ - return __extension__ (__m128d){ __F, 0.0 }; -} - -/* Create a vector with both elements equal to F. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set1_pd (double __F) -{ - return __extension__ (__m128d){ __F, __F }; -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_pd1 (double __F) -{ - return _mm_set1_pd (__F); -} - -/* Create a vector with the lower value X and upper value W. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_pd (double __W, double __X) -{ - return __extension__ (__m128d){ __X, __W }; -} - -/* Create a vector with the lower value W and upper value X. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_setr_pd (double __W, double __X) -{ - return __extension__ (__m128d){ __W, __X }; -} - -/* Create an undefined vector. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_undefined_pd (void) -{ - __m128d __Y = __Y; - return __Y; -} - -/* Create a vector of zeros. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_setzero_pd (void) -{ - return (__m128d) vec_splats (0); -} - -/* Sets the low DPFP value of A from the low value of B. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_move_sd (__m128d __A, __m128d __B) -{ - __v2df result = (__v2df) __A; - result [0] = ((__v2df) __B)[0]; - return (__m128d) result; -} - -/* Load two DPFP values from P. The address must be 16-byte aligned. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_load_pd (double const *__P) -{ - return ((__m128d)vec_ld(0, (__v16qu*)__P)); -} - -/* Load two DPFP values from P. The address need not be 16-byte aligned. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_loadu_pd (double const *__P) -{ - return (vec_vsx_ld(0, __P)); -} - -/* Create a vector with all two elements equal to *P. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_load1_pd (double const *__P) -{ - return (vec_splats (*__P)); -} - -/* Create a vector with element 0 as *P and the rest zero. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_load_sd (double const *__P) -{ - return _mm_set_sd (*__P); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_load_pd1 (double const *__P) -{ - return _mm_load1_pd (__P); -} - -/* Load two DPFP values in reverse order. The address must be aligned. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_loadr_pd (double const *__P) -{ - __v2df __tmp = _mm_load_pd (__P); - return (__m128d)vec_xxpermdi (__tmp, __tmp, 2); -} - -/* Store two DPFP values. The address must be 16-byte aligned. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_store_pd (double *__P, __m128d __A) -{ - vec_st((__v16qu)__A, 0, (__v16qu*)__P); -} - -/* Store two DPFP values. The address need not be 16-byte aligned. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_storeu_pd (double *__P, __m128d __A) -{ - *(__m128d_u *)__P = __A; -} - -/* Stores the lower DPFP value. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_store_sd (double *__P, __m128d __A) -{ - *__P = ((__v2df)__A)[0]; -} - -extern __inline double __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsd_f64 (__m128d __A) -{ - return ((__v2df)__A)[0]; -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_storel_pd (double *__P, __m128d __A) -{ - _mm_store_sd (__P, __A); -} - -/* Stores the upper DPFP value. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_storeh_pd (double *__P, __m128d __A) -{ - *__P = ((__v2df)__A)[1]; -} -/* Store the lower DPFP value across two words. - The address must be 16-byte aligned. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_store1_pd (double *__P, __m128d __A) -{ - _mm_store_pd (__P, vec_splat (__A, 0)); -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_store_pd1 (double *__P, __m128d __A) -{ - _mm_store1_pd (__P, __A); -} - -/* Store two DPFP values in reverse order. The address must be aligned. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_storer_pd (double *__P, __m128d __A) -{ - _mm_store_pd (__P, vec_xxpermdi (__A, __A, 2)); -} - -/* Intel intrinsic. */ -extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi128_si64 (__m128i __A) -{ - return ((__v2di)__A)[0]; -} - -/* Microsoft intrinsic. */ -extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi128_si64x (__m128i __A) -{ - return ((__v2di)__A)[0]; -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_add_pd (__m128d __A, __m128d __B) -{ - return (__m128d) ((__v2df)__A + (__v2df)__B); -} - -/* Add the lower double-precision (64-bit) floating-point element in - a and b, store the result in the lower element of dst, and copy - the upper element from a to the upper element of dst. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_add_sd (__m128d __A, __m128d __B) -{ - __A[0] = __A[0] + __B[0]; - return (__A); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sub_pd (__m128d __A, __m128d __B) -{ - return (__m128d) ((__v2df)__A - (__v2df)__B); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sub_sd (__m128d __A, __m128d __B) -{ - __A[0] = __A[0] - __B[0]; - return (__A); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mul_pd (__m128d __A, __m128d __B) -{ - return (__m128d) ((__v2df)__A * (__v2df)__B); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mul_sd (__m128d __A, __m128d __B) -{ - __A[0] = __A[0] * __B[0]; - return (__A); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_div_pd (__m128d __A, __m128d __B) -{ - return (__m128d) ((__v2df)__A / (__v2df)__B); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_div_sd (__m128d __A, __m128d __B) -{ - __A[0] = __A[0] / __B[0]; - return (__A); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sqrt_pd (__m128d __A) -{ - return (vec_sqrt (__A)); -} - -/* Return pair {sqrt (B[0]), A[1]}. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sqrt_sd (__m128d __A, __m128d __B) -{ - __v2df c; - c = vec_sqrt ((__v2df) _mm_set1_pd (__B[0])); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_min_pd (__m128d __A, __m128d __B) -{ - return (vec_min (__A, __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_min_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - c = vec_min (a, b); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_max_pd (__m128d __A, __m128d __B) -{ - return (vec_max (__A, __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_max_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - c = vec_max (a, b); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpeq_pd (__m128d __A, __m128d __B) -{ - return ((__m128d)vec_cmpeq ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmplt_pd (__m128d __A, __m128d __B) -{ - return ((__m128d)vec_cmplt ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmple_pd (__m128d __A, __m128d __B) -{ - return ((__m128d)vec_cmple ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpgt_pd (__m128d __A, __m128d __B) -{ - return ((__m128d)vec_cmpgt ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpge_pd (__m128d __A, __m128d __B) -{ - return ((__m128d)vec_cmpge ((__v2df) __A,(__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpneq_pd (__m128d __A, __m128d __B) -{ - __v2df temp = (__v2df) vec_cmpeq ((__v2df) __A, (__v2df)__B); - return ((__m128d)vec_nor (temp, temp)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnlt_pd (__m128d __A, __m128d __B) -{ - return ((__m128d)vec_cmpge ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnle_pd (__m128d __A, __m128d __B) -{ - return ((__m128d)vec_cmpgt ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpngt_pd (__m128d __A, __m128d __B) -{ - return ((__m128d)vec_cmple ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnge_pd (__m128d __A, __m128d __B) -{ - return ((__m128d)vec_cmplt ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpord_pd (__m128d __A, __m128d __B) -{ -#if _ARCH_PWR8 - __v2du c, d; - /* Compare against self will return false (0's) if NAN. */ - c = (__v2du)vec_cmpeq (__A, __A); - d = (__v2du)vec_cmpeq (__B, __B); -#else - __v2du a, b; - __v2du c, d; - const __v2du double_exp_mask = {0x7ff0000000000000, 0x7ff0000000000000}; - a = (__v2du)vec_abs ((__v2df)__A); - b = (__v2du)vec_abs ((__v2df)__B); - c = (__v2du)vec_cmpgt (double_exp_mask, a); - d = (__v2du)vec_cmpgt (double_exp_mask, b); -#endif - /* A != NAN and B != NAN. */ - return ((__m128d)vec_and(c, d)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpunord_pd (__m128d __A, __m128d __B) -{ -#if _ARCH_PWR8 - __v2du c, d; - /* Compare against self will return false (0's) if NAN. */ - c = (__v2du)vec_cmpeq ((__v2df)__A, (__v2df)__A); - d = (__v2du)vec_cmpeq ((__v2df)__B, (__v2df)__B); - /* A == NAN OR B == NAN converts too: - NOT(A != NAN) OR NOT(B != NAN). */ - c = vec_nor (c, c); - return ((__m128d)vec_orc(c, d)); -#else - __v2du c, d; - /* Compare against self will return false (0's) if NAN. */ - c = (__v2du)vec_cmpeq ((__v2df)__A, (__v2df)__A); - d = (__v2du)vec_cmpeq ((__v2df)__B, (__v2df)__B); - /* Convert the true ('1's) is NAN. */ - c = vec_nor (c, c); - d = vec_nor (d, d); - return ((__m128d)vec_or(c, d)); -#endif -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpeq_sd(__m128d __A, __m128d __B) -{ - __v2df a, b, c; - /* PowerISA VSX does not allow partial (for just lower double) - results. So to insure we don't generate spurious exceptions - (from the upper double values) we splat the lower double - before we do the operation. */ - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - c = (__v2df) vec_cmpeq(a, b); - /* Then we merge the lower double result with the original upper - double from __A. */ - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmplt_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - c = (__v2df) vec_cmplt(a, b); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmple_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - c = (__v2df) vec_cmple(a, b); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpgt_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - c = (__v2df) vec_cmpgt(a, b); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpge_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - c = (__v2df) vec_cmpge(a, b); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpneq_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - c = (__v2df) vec_cmpeq(a, b); - c = vec_nor (c, c); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnlt_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - /* Not less than is just greater than or equal. */ - c = (__v2df) vec_cmpge(a, b); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnle_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - /* Not less than or equal is just greater than. */ - c = (__v2df) vec_cmpge(a, b); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpngt_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - /* Not greater than is just less than or equal. */ - c = (__v2df) vec_cmple(a, b); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnge_sd (__m128d __A, __m128d __B) -{ - __v2df a, b, c; - a = vec_splats (__A[0]); - b = vec_splats (__B[0]); - /* Not greater than or equal is just less than. */ - c = (__v2df) vec_cmplt(a, b); - return (__m128d) _mm_setr_pd (c[0], __A[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpord_sd (__m128d __A, __m128d __B) -{ - __v2df r; - r = (__v2df)_mm_cmpord_pd (vec_splats (__A[0]), vec_splats (__B[0])); - return (__m128d) _mm_setr_pd (r[0], ((__v2df)__A)[1]); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpunord_sd (__m128d __A, __m128d __B) -{ - __v2df r; - r = _mm_cmpunord_pd (vec_splats (__A[0]), vec_splats (__B[0])); - return (__m128d) _mm_setr_pd (r[0], __A[1]); -} - -/* FIXME - The __mm_comi??_sd and __mm_ucomi??_sd implementations below are - exactly the same because GCC for PowerPC only generates unordered - compares (scalar and vector). - Technically __mm_comieq_sp et all should be using the ordered - compare and signal for QNaNs. The __mm_ucomieq_sd et all should - be OK. */ -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comieq_sd (__m128d __A, __m128d __B) -{ - return (__A[0] == __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comilt_sd (__m128d __A, __m128d __B) -{ - return (__A[0] < __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comile_sd (__m128d __A, __m128d __B) -{ - return (__A[0] <= __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comigt_sd (__m128d __A, __m128d __B) -{ - return (__A[0] > __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comige_sd (__m128d __A, __m128d __B) -{ - return (__A[0] >= __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comineq_sd (__m128d __A, __m128d __B) -{ - return (__A[0] != __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomieq_sd (__m128d __A, __m128d __B) -{ - return (__A[0] == __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomilt_sd (__m128d __A, __m128d __B) -{ - return (__A[0] < __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomile_sd (__m128d __A, __m128d __B) -{ - return (__A[0] <= __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomigt_sd (__m128d __A, __m128d __B) -{ - return (__A[0] > __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomige_sd (__m128d __A, __m128d __B) -{ - return (__A[0] >= __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomineq_sd (__m128d __A, __m128d __B) -{ - return (__A[0] != __B[0]); -} - -/* Create a vector of Qi, where i is the element number. */ -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_epi64x (long long __q1, long long __q0) -{ - return __extension__ (__m128i)(__v2di){ __q0, __q1 }; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_epi64 (__m64 __q1, __m64 __q0) -{ - return _mm_set_epi64x ((long long)__q1, (long long)__q0); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_epi32 (int __q3, int __q2, int __q1, int __q0) -{ - return __extension__ (__m128i)(__v4si){ __q0, __q1, __q2, __q3 }; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_epi16 (short __q7, short __q6, short __q5, short __q4, - short __q3, short __q2, short __q1, short __q0) -{ - return __extension__ (__m128i)(__v8hi){ - __q0, __q1, __q2, __q3, __q4, __q5, __q6, __q7 }; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_epi8 (char __q15, char __q14, char __q13, char __q12, - char __q11, char __q10, char __q09, char __q08, - char __q07, char __q06, char __q05, char __q04, - char __q03, char __q02, char __q01, char __q00) -{ - return __extension__ (__m128i)(__v16qi){ - __q00, __q01, __q02, __q03, __q04, __q05, __q06, __q07, - __q08, __q09, __q10, __q11, __q12, __q13, __q14, __q15 - }; -} - -/* Set all of the elements of the vector to A. */ -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set1_epi64x (long long __A) -{ - return _mm_set_epi64x (__A, __A); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set1_epi64 (__m64 __A) -{ - return _mm_set_epi64 (__A, __A); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set1_epi32 (int __A) -{ - return _mm_set_epi32 (__A, __A, __A, __A); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set1_epi16 (short __A) -{ - return _mm_set_epi16 (__A, __A, __A, __A, __A, __A, __A, __A); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set1_epi8 (char __A) -{ - return _mm_set_epi8 (__A, __A, __A, __A, __A, __A, __A, __A, - __A, __A, __A, __A, __A, __A, __A, __A); -} - -/* Create a vector of Qi, where i is the element number. - The parameter order is reversed from the _mm_set_epi* functions. */ -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_setr_epi64 (__m64 __q0, __m64 __q1) -{ - return _mm_set_epi64 (__q1, __q0); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_setr_epi32 (int __q0, int __q1, int __q2, int __q3) -{ - return _mm_set_epi32 (__q3, __q2, __q1, __q0); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_setr_epi16 (short __q0, short __q1, short __q2, short __q3, - short __q4, short __q5, short __q6, short __q7) -{ - return _mm_set_epi16 (__q7, __q6, __q5, __q4, __q3, __q2, __q1, __q0); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_setr_epi8 (char __q00, char __q01, char __q02, char __q03, - char __q04, char __q05, char __q06, char __q07, - char __q08, char __q09, char __q10, char __q11, - char __q12, char __q13, char __q14, char __q15) -{ - return _mm_set_epi8 (__q15, __q14, __q13, __q12, __q11, __q10, __q09, __q08, - __q07, __q06, __q05, __q04, __q03, __q02, __q01, __q00); -} - -/* Create a vector with element 0 as *P and the rest zero. */ -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_load_si128 (__m128i const *__P) -{ - return *__P; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_loadu_si128 (__m128i_u const *__P) -{ - return (__m128i) (vec_vsx_ld(0, (signed int const *)__P)); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_loadl_epi64 (__m128i_u const *__P) -{ - return _mm_set_epi64 ((__m64)0LL, *(__m64 *)__P); -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_store_si128 (__m128i *__P, __m128i __B) -{ - vec_st ((__v16qu) __B, 0, (__v16qu*)__P); -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_storeu_si128 (__m128i_u *__P, __m128i __B) -{ - *__P = __B; -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_storel_epi64 (__m128i_u *__P, __m128i __B) -{ - *(long long *)__P = ((__v2di)__B)[0]; -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_movepi64_pi64 (__m128i_u __B) -{ - return (__m64) ((__v2di)__B)[0]; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_movpi64_epi64 (__m64 __A) -{ - return _mm_set_epi64 ((__m64)0LL, __A); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_move_epi64 (__m128i __A) -{ - return _mm_set_epi64 ((__m64)0LL, (__m64)__A[0]); -} - -/* Create an undefined vector. */ -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_undefined_si128 (void) -{ - __m128i __Y = __Y; - return __Y; -} - -/* Create a vector of zeros. */ -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_setzero_si128 (void) -{ - return __extension__ (__m128i)(__v4si){ 0, 0, 0, 0 }; -} - -#ifdef _ARCH_PWR8 -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtepi32_pd (__m128i __A) -{ - __v2di val; - /* For LE need to generate Vector Unpack Low Signed Word. - Which is generated from unpackh. */ - val = (__v2di)vec_unpackh ((__v4si)__A); - - return (__m128d)vec_ctf (val, 0); -} -#endif - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtepi32_ps (__m128i __A) -{ - return ((__m128)vec_ctf((__v4si)__A, 0)); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtpd_epi32 (__m128d __A) -{ - __v2df rounded = vec_rint (__A); - __v4si result, temp; - const __v4si vzero = - { 0, 0, 0, 0 }; - - /* VSX Vector truncate Double-Precision to integer and Convert to - Signed Integer Word format with Saturate. */ - __asm__( - "xvcvdpsxws %x0,%x1" - : "=wa" (temp) - : "wa" (rounded) - : ); - -#ifdef _ARCH_PWR8 - temp = vec_mergeo (temp, temp); - result = (__v4si) vec_vpkudum ((__vector long long) temp, - (__vector long long) vzero); -#else - { - const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, - 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; - result = (__v4si) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm); - } -#endif - return (__m128i) result; -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtpd_pi32 (__m128d __A) -{ - __m128i result = _mm_cvtpd_epi32(__A); - - return (__m64) result[0]; -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtpd_ps (__m128d __A) -{ - __v4sf result; - __v4si temp; - const __v4si vzero = { 0, 0, 0, 0 }; - - __asm__( - "xvcvdpsp %x0,%x1" - : "=wa" (temp) - : "wa" (__A) - : ); - -#ifdef _ARCH_PWR8 - temp = vec_mergeo (temp, temp); - result = (__v4sf) vec_vpkudum ((__vector long long) temp, - (__vector long long) vzero); -#else - { - const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, - 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; - result = (__v4sf) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm); - } -#endif - return ((__m128)result); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvttpd_epi32 (__m128d __A) -{ - __v4si result; - __v4si temp; - const __v4si vzero = { 0, 0, 0, 0 }; - - /* VSX Vector truncate Double-Precision to integer and Convert to - Signed Integer Word format with Saturate. */ - __asm__( - "xvcvdpsxws %x0,%x1" - : "=wa" (temp) - : "wa" (__A) - : ); - -#ifdef _ARCH_PWR8 - temp = vec_mergeo (temp, temp); - result = (__v4si) vec_vpkudum ((__vector long long) temp, - (__vector long long) vzero); -#else - { - const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, - 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; - result = (__v4si) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm); - } -#endif - - return ((__m128i) result); -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvttpd_pi32 (__m128d __A) -{ - __m128i result = _mm_cvttpd_epi32 (__A); - - return (__m64) result[0]; -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi128_si32 (__m128i __A) -{ - return ((__v4si)__A)[0]; -} - -#ifdef _ARCH_PWR8 -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtpi32_pd (__m64 __A) -{ - __v4si temp; - __v2di tmp2; - __v2df result; - - temp = (__v4si)vec_splats (__A); - tmp2 = (__v2di)vec_unpackl (temp); - result = vec_ctf ((__vector signed long long) tmp2, 0); - return (__m128d)result; -} -#endif - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtps_epi32 (__m128 __A) -{ - __v4sf rounded; - __v4si result; - - rounded = vec_rint((__v4sf) __A); - result = vec_cts (rounded, 0); - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvttps_epi32 (__m128 __A) -{ - __v4si result; - - result = vec_cts ((__v4sf) __A, 0); - return (__m128i) result; -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtps_pd (__m128 __A) -{ - /* Check if vec_doubleh is defined by . If so use that. */ -#ifdef vec_doubleh - return (__m128d) vec_doubleh ((__v4sf)__A); -#else - /* Otherwise the compiler is not current and so need to generate the - equivalent code. */ - __v4sf a = (__v4sf)__A; - __v4sf temp; - __v2df result; -#ifdef __LITTLE_ENDIAN__ - /* The input float values are in elements {[0], [1]} but the convert - instruction needs them in elements {[1], [3]}, So we use two - shift left double vector word immediates to get the elements - lined up. */ - temp = __builtin_vsx_xxsldwi (a, a, 3); - temp = __builtin_vsx_xxsldwi (a, temp, 2); -#else - /* The input float values are in elements {[0], [1]} but the convert - instruction needs them in elements {[0], [2]}, So we use two - shift left double vector word immediates to get the elements - lined up. */ - temp = vec_vmrghw (a, a); -#endif - __asm__( - " xvcvspdp %x0,%x1" - : "=wa" (result) - : "wa" (temp) - : ); - return (__m128d) result; -#endif -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsd_si32 (__m128d __A) -{ - __v2df rounded = vec_rint((__v2df) __A); - int result = ((__v2df)rounded)[0]; - - return result; -} -/* Intel intrinsic. */ -extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsd_si64 (__m128d __A) -{ - __v2df rounded = vec_rint ((__v2df) __A ); - long long result = ((__v2df) rounded)[0]; - - return result; -} - -/* Microsoft intrinsic. */ -extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsd_si64x (__m128d __A) -{ - return _mm_cvtsd_si64 ((__v2df)__A); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvttsd_si32 (__m128d __A) -{ - int result = ((__v2df)__A)[0]; - - return result; -} - -/* Intel intrinsic. */ -extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvttsd_si64 (__m128d __A) -{ - long long result = ((__v2df)__A)[0]; - - return result; -} - -/* Microsoft intrinsic. */ -extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvttsd_si64x (__m128d __A) -{ - return _mm_cvttsd_si64 (__A); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsd_ss (__m128 __A, __m128d __B) -{ - __v4sf result = (__v4sf)__A; - -#ifdef __LITTLE_ENDIAN__ - __v4sf temp_s; - /* Copy double element[0] to element [1] for conversion. */ - __v2df temp_b = vec_splat((__v2df)__B, 0); - - /* Pre-rotate __A left 3 (logically right 1) elements. */ - result = __builtin_vsx_xxsldwi (result, result, 3); - /* Convert double to single float scalar in a vector. */ - __asm__( - "xscvdpsp %x0,%x1" - : "=wa" (temp_s) - : "wa" (temp_b) - : ); - /* Shift the resulting scalar into vector element [0]. */ - result = __builtin_vsx_xxsldwi (result, temp_s, 1); -#else - result [0] = ((__v2df)__B)[0]; -#endif - return (__m128) result; -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi32_sd (__m128d __A, int __B) -{ - __v2df result = (__v2df)__A; - double db = __B; - result [0] = db; - return (__m128d)result; -} - -/* Intel intrinsic. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi64_sd (__m128d __A, long long __B) -{ - __v2df result = (__v2df)__A; - double db = __B; - result [0] = db; - return (__m128d)result; -} - -/* Microsoft intrinsic. */ -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi64x_sd (__m128d __A, long long __B) -{ - return _mm_cvtsi64_sd (__A, __B); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtss_sd (__m128d __A, __m128 __B) -{ -#ifdef __LITTLE_ENDIAN__ - /* Use splat to move element [0] into position for the convert. */ - __v4sf temp = vec_splat ((__v4sf)__B, 0); - __v2df res; - /* Convert single float scalar to double in a vector. */ - __asm__( - "xscvspdp %x0,%x1" - : "=wa" (res) - : "wa" (temp) - : ); - return (__m128d) vec_mergel (res, (__v2df)__A); -#else - __v2df res = (__v2df)__A; - res [0] = ((__v4sf)__B) [0]; - return (__m128d) res; -#endif -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_shuffle_pd(__m128d __A, __m128d __B, const int __mask) -{ - __vector double result; - const int litmsk = __mask & 0x3; - - if (litmsk == 0) - result = vec_mergeh (__A, __B); -#if __GNUC__ < 6 - else if (litmsk == 1) - result = vec_xxpermdi (__B, __A, 2); - else if (litmsk == 2) - result = vec_xxpermdi (__B, __A, 1); -#else - else if (litmsk == 1) - result = vec_xxpermdi (__A, __B, 2); - else if (litmsk == 2) - result = vec_xxpermdi (__A, __B, 1); -#endif - else - result = vec_mergel (__A, __B); - - return result; -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpackhi_pd (__m128d __A, __m128d __B) -{ - return (__m128d) vec_mergel ((__v2df)__A, (__v2df)__B); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpacklo_pd (__m128d __A, __m128d __B) -{ - return (__m128d) vec_mergeh ((__v2df)__A, (__v2df)__B); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_loadh_pd (__m128d __A, double const *__B) -{ - __v2df result = (__v2df)__A; - result [1] = *__B; - return (__m128d)result; -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_loadl_pd (__m128d __A, double const *__B) -{ - __v2df result = (__v2df)__A; - result [0] = *__B; - return (__m128d)result; -} - -#ifdef _ARCH_PWR8 -/* Intrinsic functions that require PowerISA 2.07 minimum. */ - -/* Creates a 2-bit mask from the most significant bits of the DPFP values. */ -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_movemask_pd (__m128d __A) -{ - __vector unsigned long long result; - static const __vector unsigned int perm_mask = - { -#ifdef __LITTLE_ENDIAN__ - 0x80800040, 0x80808080, 0x80808080, 0x80808080 -#else - 0x80808080, 0x80808080, 0x80808080, 0x80804000 -#endif - }; - - result = ((__vector unsigned long long) - vec_vbpermq ((__vector unsigned char) __A, - (__vector unsigned char) perm_mask)); - -#ifdef __LITTLE_ENDIAN__ - return result[1]; -#else - return result[0]; -#endif -} -#endif /* _ARCH_PWR8 */ - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_packs_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_packs ((__v8hi) __A, (__v8hi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_packs_epi32 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_packs ((__v4si)__A, (__v4si)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_packus_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_packsu ((__v8hi) __A, (__v8hi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpackhi_epi8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_mergel ((__v16qu)__A, (__v16qu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpackhi_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_mergel ((__v8hu)__A, (__v8hu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpackhi_epi32 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_mergel ((__v4su)__A, (__v4su)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpackhi_epi64 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_mergel ((__vector long long) __A, - (__vector long long) __B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpacklo_epi8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_mergeh ((__v16qu)__A, (__v16qu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpacklo_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_mergeh ((__v8hi)__A, (__v8hi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpacklo_epi32 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_mergeh ((__v4si)__A, (__v4si)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpacklo_epi64 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_mergeh ((__vector long long) __A, - (__vector long long) __B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_add_epi8 (__m128i __A, __m128i __B) -{ - return (__m128i) ((__v16qu)__A + (__v16qu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_add_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) ((__v8hu)__A + (__v8hu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_add_epi32 (__m128i __A, __m128i __B) -{ - return (__m128i) ((__v4su)__A + (__v4su)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_add_epi64 (__m128i __A, __m128i __B) -{ - return (__m128i) ((__v2du)__A + (__v2du)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_adds_epi8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_adds ((__v16qi)__A, (__v16qi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_adds_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_adds ((__v8hi)__A, (__v8hi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_adds_epu8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_adds ((__v16qu)__A, (__v16qu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_adds_epu16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_adds ((__v8hu)__A, (__v8hu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sub_epi8 (__m128i __A, __m128i __B) -{ - return (__m128i) ((__v16qu)__A - (__v16qu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sub_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) ((__v8hu)__A - (__v8hu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sub_epi32 (__m128i __A, __m128i __B) -{ - return (__m128i) ((__v4su)__A - (__v4su)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sub_epi64 (__m128i __A, __m128i __B) -{ - return (__m128i) ((__v2du)__A - (__v2du)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_subs_epi8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_subs ((__v16qi)__A, (__v16qi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_subs_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_subs ((__v8hi)__A, (__v8hi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_subs_epu8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_subs ((__v16qu)__A, (__v16qu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_subs_epu16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_subs ((__v8hu)__A, (__v8hu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_madd_epi16 (__m128i __A, __m128i __B) -{ - __vector signed int zero = {0, 0, 0, 0}; - - return (__m128i) vec_vmsumshm ((__v8hi)__A, (__v8hi)__B, zero); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mulhi_epi16 (__m128i __A, __m128i __B) -{ - __vector signed int w0, w1; - - __vector unsigned char xform1 = { -#ifdef __LITTLE_ENDIAN__ - 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, - 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F -#else - 0x00, 0x01, 0x10, 0x11, 0x04, 0x05, 0x14, 0x15, - 0x08, 0x09, 0x18, 0x19, 0x0C, 0x0D, 0x1C, 0x1D -#endif - }; - - w0 = vec_vmulesh ((__v8hi)__A, (__v8hi)__B); - w1 = vec_vmulosh ((__v8hi)__A, (__v8hi)__B); - return (__m128i) vec_perm (w0, w1, xform1); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mullo_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) ((__v8hi)__A * (__v8hi)__B); -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mul_su32 (__m64 __A, __m64 __B) -{ - unsigned int a = __A; - unsigned int b = __B; - - return ((__m64)a * (__m64)b); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mul_epu32 (__m128i __A, __m128i __B) -{ -#if __GNUC__ < 8 - __v2du result; - -#ifdef __LITTLE_ENDIAN__ - /* VMX Vector Multiply Odd Unsigned Word. */ - __asm__( - "vmulouw %0,%1,%2" - : "=v" (result) - : "v" (__A), "v" (__B) - : ); -#else - /* VMX Vector Multiply Even Unsigned Word. */ - __asm__( - "vmuleuw %0,%1,%2" - : "=v" (result) - : "v" (__A), "v" (__B) - : ); -#endif - return (__m128i) result; -#else - return (__m128i) vec_mule ((__v4su)__A, (__v4su)__B); -#endif -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_slli_epi16 (__m128i __A, int __B) -{ - __v8hu lshift; - __v8hi result = { 0, 0, 0, 0, 0, 0, 0, 0 }; - - if (__B >= 0 && __B < 16) - { - if (__builtin_constant_p(__B)) - lshift = (__v8hu) vec_splat_s16(__B); - else - lshift = vec_splats ((unsigned short) __B); - - result = vec_sl ((__v8hi) __A, lshift); - } - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_slli_epi32 (__m128i __A, int __B) -{ - __v4su lshift; - __v4si result = { 0, 0, 0, 0 }; - - if (__B >= 0 && __B < 32) - { - if (__builtin_constant_p(__B) && __B < 16) - lshift = (__v4su) vec_splat_s32(__B); - else - lshift = vec_splats ((unsigned int) __B); - - result = vec_sl ((__v4si) __A, lshift); - } - - return (__m128i) result; -} - -#ifdef _ARCH_PWR8 -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_slli_epi64 (__m128i __A, int __B) -{ - __v2du lshift; - __v2di result = { 0, 0 }; - - if (__B >= 0 && __B < 64) - { - if (__builtin_constant_p(__B) && __B < 16) - lshift = (__v2du) vec_splat_s32(__B); - else - lshift = (__v2du) vec_splats ((unsigned int) __B); - - result = vec_sl ((__v2di) __A, lshift); - } - - return (__m128i) result; -} -#endif - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_srai_epi16 (__m128i __A, int __B) -{ - __v8hu rshift = { 15, 15, 15, 15, 15, 15, 15, 15 }; - __v8hi result; - - if (__B < 16) - { - if (__builtin_constant_p(__B)) - rshift = (__v8hu) vec_splat_s16(__B); - else - rshift = vec_splats ((unsigned short) __B); - } - result = vec_sra ((__v8hi) __A, rshift); - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_srai_epi32 (__m128i __A, int __B) -{ - __v4su rshift = { 31, 31, 31, 31 }; - __v4si result; - - if (__B < 32) - { - if (__builtin_constant_p(__B)) - { - if (__B < 16) - rshift = (__v4su) vec_splat_s32(__B); - else - rshift = (__v4su) vec_splats((unsigned int)__B); - } - else - rshift = vec_splats ((unsigned int) __B); - } - result = vec_sra ((__v4si) __A, rshift); - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_bslli_si128 (__m128i __A, const int __N) -{ - __v16qu result; - const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - - if (__N < 16) - result = vec_sld ((__v16qu) __A, zeros, __N); - else - result = zeros; - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_bsrli_si128 (__m128i __A, const int __N) -{ - __v16qu result; - const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - - if (__N < 16) -#ifdef __LITTLE_ENDIAN__ - if (__builtin_constant_p(__N)) - /* Would like to use Vector Shift Left Double by Octet - Immediate here to use the immediate form and avoid - load of __N * 8 value into a separate VR. */ - result = vec_sld (zeros, (__v16qu) __A, (16 - __N)); - else -#endif - { - __v16qu shift = vec_splats((unsigned char)(__N*8)); -#ifdef __LITTLE_ENDIAN__ - result = vec_sro ((__v16qu)__A, shift); -#else - result = vec_slo ((__v16qu)__A, shift); -#endif - } - else - result = zeros; - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_srli_si128 (__m128i __A, const int __N) -{ - return _mm_bsrli_si128 (__A, __N); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_slli_si128 (__m128i __A, const int _imm5) -{ - __v16qu result; - const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - - if (_imm5 < 16) -#ifdef __LITTLE_ENDIAN__ - result = vec_sld ((__v16qu) __A, zeros, _imm5); -#else - result = vec_sld (zeros, (__v16qu) __A, (16 - _imm5)); -#endif - else - result = zeros; - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - -_mm_srli_epi16 (__m128i __A, int __B) -{ - __v8hu rshift; - __v8hi result = { 0, 0, 0, 0, 0, 0, 0, 0 }; - - if (__B < 16) - { - if (__builtin_constant_p(__B)) - rshift = (__v8hu) vec_splat_s16(__B); - else - rshift = vec_splats ((unsigned short) __B); - - result = vec_sr ((__v8hi) __A, rshift); - } - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_srli_epi32 (__m128i __A, int __B) -{ - __v4su rshift; - __v4si result = { 0, 0, 0, 0 }; - - if (__B < 32) - { - if (__builtin_constant_p(__B)) - { - if (__B < 16) - rshift = (__v4su) vec_splat_s32(__B); - else - rshift = (__v4su) vec_splats((unsigned int)__B); - } - else - rshift = vec_splats ((unsigned int) __B); - - result = vec_sr ((__v4si) __A, rshift); - } - - return (__m128i) result; -} - -#ifdef _ARCH_PWR8 -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_srli_epi64 (__m128i __A, int __B) -{ - __v2du rshift; - __v2di result = { 0, 0 }; - - if (__B < 64) - { - if (__builtin_constant_p(__B)) - { - if (__B < 16) - rshift = (__v2du) vec_splat_s32(__B); - else - rshift = (__v2du) vec_splats((unsigned long long)__B); - } - else - rshift = (__v2du) vec_splats ((unsigned int) __B); - - result = vec_sr ((__v2di) __A, rshift); - } - - return (__m128i) result; -} -#endif - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sll_epi16 (__m128i __A, __m128i __B) -{ - __v8hu lshift; - __vector __bool short shmask; - const __v8hu shmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; - __v8hu result; - -#ifdef __LITTLE_ENDIAN__ - lshift = vec_splat ((__v8hu) __B, 0); -#else - lshift = vec_splat ((__v8hu) __B, 3); -#endif - shmask = vec_cmple (lshift, shmax); - result = vec_sl ((__v8hu) __A, lshift); - result = vec_sel ((__v8hu) shmask, result, shmask); - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sll_epi32 (__m128i __A, __m128i __B) -{ - __v4su lshift; - __vector __bool int shmask; - const __v4su shmax = { 32, 32, 32, 32 }; - __v4su result; -#ifdef __LITTLE_ENDIAN__ - lshift = vec_splat ((__v4su) __B, 0); -#else - lshift = vec_splat ((__v4su) __B, 1); -#endif - shmask = vec_cmplt (lshift, shmax); - result = vec_sl ((__v4su) __A, lshift); - result = vec_sel ((__v4su) shmask, result, shmask); - - return (__m128i) result; -} - -#ifdef _ARCH_PWR8 -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sll_epi64 (__m128i __A, __m128i __B) -{ - __v2du lshift; - __vector __bool long long shmask; - const __v2du shmax = { 64, 64 }; - __v2du result; - - lshift = vec_splat ((__v2du) __B, 0); - shmask = vec_cmplt (lshift, shmax); - result = vec_sl ((__v2du) __A, lshift); - result = vec_sel ((__v2du) shmask, result, shmask); - - return (__m128i) result; -} -#endif - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sra_epi16 (__m128i __A, __m128i __B) -{ - const __v8hu rshmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; - __v8hu rshift; - __v8hi result; - -#ifdef __LITTLE_ENDIAN__ - rshift = vec_splat ((__v8hu)__B, 0); -#else - rshift = vec_splat ((__v8hu)__B, 3); -#endif - rshift = vec_min (rshift, rshmax); - result = vec_sra ((__v8hi) __A, rshift); - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sra_epi32 (__m128i __A, __m128i __B) -{ - const __v4su rshmax = { 31, 31, 31, 31 }; - __v4su rshift; - __v4si result; - -#ifdef __LITTLE_ENDIAN__ - rshift = vec_splat ((__v4su)__B, 0); -#else - rshift = vec_splat ((__v4su)__B, 1); -#endif - rshift = vec_min (rshift, rshmax); - result = vec_sra ((__v4si) __A, rshift); - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_srl_epi16 (__m128i __A, __m128i __B) -{ - __v8hu rshift; - __vector __bool short shmask; - const __v8hu shmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; - __v8hu result; - -#ifdef __LITTLE_ENDIAN__ - rshift = vec_splat ((__v8hu) __B, 0); -#else - rshift = vec_splat ((__v8hu) __B, 3); -#endif - shmask = vec_cmple (rshift, shmax); - result = vec_sr ((__v8hu) __A, rshift); - result = vec_sel ((__v8hu) shmask, result, shmask); - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_srl_epi32 (__m128i __A, __m128i __B) -{ - __v4su rshift; - __vector __bool int shmask; - const __v4su shmax = { 32, 32, 32, 32 }; - __v4su result; - -#ifdef __LITTLE_ENDIAN__ - rshift = vec_splat ((__v4su) __B, 0); -#else - rshift = vec_splat ((__v4su) __B, 1); -#endif - shmask = vec_cmplt (rshift, shmax); - result = vec_sr ((__v4su) __A, rshift); - result = vec_sel ((__v4su) shmask, result, shmask); - - return (__m128i) result; -} - -#ifdef _ARCH_PWR8 -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_srl_epi64 (__m128i __A, __m128i __B) -{ - __v2du rshift; - __vector __bool long long shmask; - const __v2du shmax = { 64, 64 }; - __v2du result; - - rshift = vec_splat ((__v2du) __B, 0); - shmask = vec_cmplt (rshift, shmax); - result = vec_sr ((__v2du) __A, rshift); - result = vec_sel ((__v2du) shmask, result, shmask); - - return (__m128i) result; -} -#endif - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_and_pd (__m128d __A, __m128d __B) -{ - return (vec_and ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_andnot_pd (__m128d __A, __m128d __B) -{ - return (vec_andc ((__v2df) __B, (__v2df) __A)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_or_pd (__m128d __A, __m128d __B) -{ - return (vec_or ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_xor_pd (__m128d __A, __m128d __B) -{ - return (vec_xor ((__v2df) __A, (__v2df) __B)); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_and_si128 (__m128i __A, __m128i __B) -{ - return (__m128i)vec_and ((__v2di) __A, (__v2di) __B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_andnot_si128 (__m128i __A, __m128i __B) -{ - return (__m128i)vec_andc ((__v2di) __B, (__v2di) __A); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_or_si128 (__m128i __A, __m128i __B) -{ - return (__m128i)vec_or ((__v2di) __A, (__v2di) __B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_xor_si128 (__m128i __A, __m128i __B) -{ - return (__m128i)vec_xor ((__v2di) __A, (__v2di) __B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpeq_epi8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_cmpeq ((__v16qi) __A, (__v16qi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpeq_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_cmpeq ((__v8hi) __A, (__v8hi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpeq_epi32 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_cmpeq ((__v4si) __A, (__v4si)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmplt_epi8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_cmplt ((__v16qi) __A, (__v16qi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmplt_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_cmplt ((__v8hi) __A, (__v8hi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmplt_epi32 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_cmplt ((__v4si) __A, (__v4si)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpgt_epi8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_cmpgt ((__v16qi) __A, (__v16qi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpgt_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_cmpgt ((__v8hi) __A, (__v8hi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpgt_epi32 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_cmpgt ((__v4si) __A, (__v4si)__B); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_extract_epi16 (__m128i const __A, int const __N) -{ - return (unsigned short) ((__v8hi)__A)[__N & 7]; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_insert_epi16 (__m128i const __A, int const __D, int const __N) -{ - __v8hi result = (__v8hi)__A; - - result [(__N & 7)] = __D; - - return (__m128i) result; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_max_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_max ((__v8hi)__A, (__v8hi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_max_epu8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_max ((__v16qu) __A, (__v16qu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_min_epi16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_min ((__v8hi) __A, (__v8hi)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_min_epu8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_min ((__v16qu) __A, (__v16qu)__B); -} - - -#ifdef _ARCH_PWR8 -/* Intrinsic functions that require PowerISA 2.07 minimum. */ - -/* Creates a 4-bit mask from the most significant bits of the SPFP values. */ -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_movemask_epi8 (__m128i __A) -{ - __vector unsigned long long result; - static const __vector unsigned char perm_mask = - { - 0x78, 0x70, 0x68, 0x60, 0x58, 0x50, 0x48, 0x40, - 0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00 - }; - - result = ((__vector unsigned long long) - vec_vbpermq ((__vector unsigned char) __A, - (__vector unsigned char) perm_mask)); - -#ifdef __LITTLE_ENDIAN__ - return result[1]; -#else - return result[0]; -#endif -} -#endif /* _ARCH_PWR8 */ - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mulhi_epu16 (__m128i __A, __m128i __B) -{ - __v4su w0, w1; - __v16qu xform1 = { -#ifdef __LITTLE_ENDIAN__ - 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, - 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F -#else - 0x00, 0x01, 0x10, 0x11, 0x04, 0x05, 0x14, 0x15, - 0x08, 0x09, 0x18, 0x19, 0x0C, 0x0D, 0x1C, 0x1D -#endif - }; - - w0 = vec_vmuleuh ((__v8hu)__A, (__v8hu)__B); - w1 = vec_vmulouh ((__v8hu)__A, (__v8hu)__B); - return (__m128i) vec_perm (w0, w1, xform1); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_shufflehi_epi16 (__m128i __A, const int __mask) -{ - unsigned long element_selector_98 = __mask & 0x03; - unsigned long element_selector_BA = (__mask >> 2) & 0x03; - unsigned long element_selector_DC = (__mask >> 4) & 0x03; - unsigned long element_selector_FE = (__mask >> 6) & 0x03; - static const unsigned short permute_selectors[4] = - { -#ifdef __LITTLE_ENDIAN__ - 0x0908, 0x0B0A, 0x0D0C, 0x0F0E -#else - 0x0809, 0x0A0B, 0x0C0D, 0x0E0F -#endif - }; - __v2du pmask = -#ifdef __LITTLE_ENDIAN__ - { 0x1716151413121110UL, 0UL}; -#else - { 0x1011121314151617UL, 0UL}; -#endif - __m64_union t; - __v2du a, r; - - t.as_short[0] = permute_selectors[element_selector_98]; - t.as_short[1] = permute_selectors[element_selector_BA]; - t.as_short[2] = permute_selectors[element_selector_DC]; - t.as_short[3] = permute_selectors[element_selector_FE]; - pmask[1] = t.as_m64; - a = (__v2du)__A; - r = vec_perm (a, a, (__vector unsigned char)pmask); - return (__m128i) r; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_shufflelo_epi16 (__m128i __A, const int __mask) -{ - unsigned long element_selector_10 = __mask & 0x03; - unsigned long element_selector_32 = (__mask >> 2) & 0x03; - unsigned long element_selector_54 = (__mask >> 4) & 0x03; - unsigned long element_selector_76 = (__mask >> 6) & 0x03; - static const unsigned short permute_selectors[4] = - { -#ifdef __LITTLE_ENDIAN__ - 0x0100, 0x0302, 0x0504, 0x0706 -#else - 0x0001, 0x0203, 0x0405, 0x0607 -#endif - }; - __v2du pmask = -#ifdef __LITTLE_ENDIAN__ - { 0UL, 0x1f1e1d1c1b1a1918UL}; -#else - { 0UL, 0x18191a1b1c1d1e1fUL}; -#endif - __m64_union t; - __v2du a, r; - t.as_short[0] = permute_selectors[element_selector_10]; - t.as_short[1] = permute_selectors[element_selector_32]; - t.as_short[2] = permute_selectors[element_selector_54]; - t.as_short[3] = permute_selectors[element_selector_76]; - pmask[0] = t.as_m64; - a = (__v2du)__A; - r = vec_perm (a, a, (__vector unsigned char)pmask); - return (__m128i) r; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_shuffle_epi32 (__m128i __A, const int __mask) -{ - unsigned long element_selector_10 = __mask & 0x03; - unsigned long element_selector_32 = (__mask >> 2) & 0x03; - unsigned long element_selector_54 = (__mask >> 4) & 0x03; - unsigned long element_selector_76 = (__mask >> 6) & 0x03; - static const unsigned int permute_selectors[4] = - { -#ifdef __LITTLE_ENDIAN__ - 0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C -#else - 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F -#endif - }; - __v4su t; - - t[0] = permute_selectors[element_selector_10]; - t[1] = permute_selectors[element_selector_32]; - t[2] = permute_selectors[element_selector_54] + 0x10101010; - t[3] = permute_selectors[element_selector_76] + 0x10101010; - return (__m128i)vec_perm ((__v4si) __A, (__v4si)__A, (__vector unsigned char)t); -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C) -{ - __v2du hibit = { 0x7f7f7f7f7f7f7f7fUL, 0x7f7f7f7f7f7f7f7fUL}; - __v16qu mask, tmp; - __m128i_u *p = (__m128i_u*)__C; - - tmp = (__v16qu)_mm_loadu_si128(p); - mask = (__v16qu)vec_cmpgt ((__v16qu)__B, (__v16qu)hibit); - tmp = vec_sel (tmp, (__v16qu)__A, mask); - _mm_storeu_si128 (p, (__m128i)tmp); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_avg_epu8 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_avg ((__v16qu)__A, (__v16qu)__B); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_avg_epu16 (__m128i __A, __m128i __B) -{ - return (__m128i) vec_avg ((__v8hu)__A, (__v8hu)__B); -} - - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sad_epu8 (__m128i __A, __m128i __B) -{ - __v16qu a, b; - __v16qu vmin, vmax, vabsdiff; - __v4si vsum; - const __v4su zero = { 0, 0, 0, 0 }; - __v4si result; - - a = (__v16qu) __A; - b = (__v16qu) __B; - vmin = vec_min (a, b); - vmax = vec_max (a, b); - vabsdiff = vec_sub (vmax, vmin); - /* Sum four groups of bytes into integers. */ - vsum = (__vector signed int) vec_sum4s (vabsdiff, zero); - /* Sum across four integers with two integer results. */ - result = vec_sum2s (vsum, (__vector signed int) zero); - /* Rotate the sums into the correct position. */ -#ifdef __LITTLE_ENDIAN__ - result = vec_sld (result, result, 4); -#else - result = vec_sld (result, result, 6); -#endif - /* Rotate the sums into the correct position. */ - return (__m128i) result; -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_stream_si32 (int *__A, int __B) -{ - /* Use the data cache block touch for store transient. */ - __asm__ ( - "dcbtstt 0,%0" - : - : "b" (__A) - : "memory" - ); - *__A = __B; -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_stream_si64 (long long int *__A, long long int __B) -{ - /* Use the data cache block touch for store transient. */ - __asm__ ( - " dcbtstt 0,%0" - : - : "b" (__A) - : "memory" - ); - *__A = __B; -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_stream_si128 (__m128i *__A, __m128i __B) -{ - /* Use the data cache block touch for store transient. */ - __asm__ ( - "dcbtstt 0,%0" - : - : "b" (__A) - : "memory" - ); - *__A = __B; -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_stream_pd (double *__A, __m128d __B) -{ - /* Use the data cache block touch for store transient. */ - __asm__ ( - "dcbtstt 0,%0" - : - : "b" (__A) - : "memory" - ); - *(__m128d*)__A = __B; -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_clflush (void const *__A) -{ - /* Use the data cache block flush. */ - __asm__ ( - "dcbf 0,%0" - : - : "b" (__A) - : "memory" - ); -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_lfence (void) -{ - /* Use light weight sync for load to load ordering. */ - __atomic_thread_fence (__ATOMIC_RELEASE); -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mfence (void) -{ - /* Use heavy weight sync for any to any ordering. */ - __atomic_thread_fence (__ATOMIC_SEQ_CST); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi32_si128 (int __A) -{ - return _mm_set_epi32 (0, 0, 0, __A); -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi64_si128 (long long __A) -{ - return __extension__ (__m128i)(__v2di){ __A, 0LL }; -} - -/* Microsoft intrinsic. */ -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi64x_si128 (long long __A) -{ - return __extension__ (__m128i)(__v2di){ __A, 0LL }; -} - -/* Casts between various SP, DP, INT vector types. Note that these do no - conversion of values, they just change the type. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_castpd_ps(__m128d __A) -{ - return (__m128) __A; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_castpd_si128(__m128d __A) -{ - return (__m128i) __A; -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_castps_pd(__m128 __A) -{ - return (__m128d) __A; -} - -extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_castps_si128(__m128 __A) -{ - return (__m128i) __A; -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_castsi128_ps(__m128i __A) -{ - return (__m128) __A; -} - -extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_castsi128_pd(__m128i __A) -{ - return (__m128d) __A; -} - -#endif /* EMMINTRIN_H_ */ diff --git a/bin/app/data/cxx/include/ppc_wrappers/mm_malloc.h b/bin/app/data/cxx/include/ppc_wrappers/mm_malloc.h deleted file mode 100644 index d91d7865..00000000 --- a/bin/app/data/cxx/include/ppc_wrappers/mm_malloc.h +++ /dev/null @@ -1,44 +0,0 @@ -/*===---- mm_malloc.h - Implementation of _mm_malloc and _mm_free ----------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef _MM_MALLOC_H_INCLUDED -#define _MM_MALLOC_H_INCLUDED - -#include - -/* We can't depend on since the prototype of posix_memalign - may not be visible. */ -#ifndef __cplusplus -extern int posix_memalign (void **, size_t, size_t); -#else -extern "C" int posix_memalign (void **, size_t, size_t) throw (); -#endif - -static __inline void * -_mm_malloc (size_t size, size_t alignment) -{ - /* PowerPC64 ELF V2 ABI requires quadword alignment. */ - size_t vec_align = sizeof (__vector float); - void *ptr; - - if (alignment < vec_align) - alignment = vec_align; - if (posix_memalign (&ptr, alignment, size) == 0) - return ptr; - else - return NULL; -} - -static __inline void -_mm_free (void * ptr) -{ - free (ptr); -} - -#endif /* _MM_MALLOC_H_INCLUDED */ diff --git a/bin/app/data/cxx/include/ppc_wrappers/mmintrin.h b/bin/app/data/cxx/include/ppc_wrappers/mmintrin.h deleted file mode 100644 index b949653a..00000000 --- a/bin/app/data/cxx/include/ppc_wrappers/mmintrin.h +++ /dev/null @@ -1,1443 +0,0 @@ -/*===---- mmintrin.h - Implementation of MMX intrinsics on PowerPC ---------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* Implemented from the specification included in the Intel C++ Compiler - User Guide and Reference, version 9.0. */ - -#ifndef NO_WARN_X86_INTRINSICS -/* This header file is to help porting code using Intel intrinsics - explicitly from x86_64 to powerpc64/powerpc64le. - - Since PowerPC target doesn't support native 64-bit vector type, we - typedef __m64 to 64-bit unsigned long long in MMX intrinsics, which - works well for _si64 and some _pi32 operations. - - For _pi16 and _pi8 operations, it's better to transfer __m64 into - 128-bit PowerPC vector first. Power8 introduced direct register - move instructions which helps for more efficient implementation. - - It's user's responsibility to determine if the results of such port - are acceptable or further changes are needed. Please note that much - code using Intel intrinsics CAN BE REWRITTEN in more portable and - efficient standard C or GNU C extensions with 64-bit scalar - operations, or 128-bit SSE/Altivec operations, which are more - recommended. */ -#error \ - "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error." -#endif - -#ifndef _MMINTRIN_H_INCLUDED -#define _MMINTRIN_H_INCLUDED - -#include -/* The Intel API is flexible enough that we must allow aliasing with other - vector types, and their scalar components. */ -typedef __attribute__((__aligned__(8))) unsigned long long __m64; - -typedef __attribute__((__aligned__(8))) union { - __m64 as_m64; - char as_char[8]; - signed char as_signed_char[8]; - short as_short[4]; - int as_int[2]; - long long as_long_long; - float as_float[2]; - double as_double; -} __m64_union; - -/* Empty the multimedia state. */ -extern __inline void - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_empty(void) { - /* nothing to do on PowerPC. */ -} - -extern __inline void - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_empty(void) { - /* nothing to do on PowerPC. */ -} - -/* Convert I to a __m64 object. The integer is zero-extended to 64-bits. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cvtsi32_si64(int __i) { - return (__m64)(unsigned int)__i; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_from_int(int __i) { - return _mm_cvtsi32_si64(__i); -} - -/* Convert the lower 32 bits of the __m64 object into an integer. */ -extern __inline int - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cvtsi64_si32(__m64 __i) { - return ((int)__i); -} - -extern __inline int - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_to_int(__m64 __i) { - return _mm_cvtsi64_si32(__i); -} - -/* Convert I to a __m64 object. */ - -/* Intel intrinsic. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_from_int64(long long __i) { - return (__m64)__i; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cvtsi64_m64(long long __i) { - return (__m64)__i; -} - -/* Microsoft intrinsic. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cvtsi64x_si64(long long __i) { - return (__m64)__i; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_set_pi64x(long long __i) { - return (__m64)__i; -} - -/* Convert the __m64 object to a 64bit integer. */ - -/* Intel intrinsic. */ -extern __inline long long - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_to_int64(__m64 __i) { - return (long long)__i; -} - -extern __inline long long - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cvtm64_si64(__m64 __i) { - return (long long)__i; -} - -/* Microsoft intrinsic. */ -extern __inline long long - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cvtsi64_si64x(__m64 __i) { - return (long long)__i; -} - -#ifdef _ARCH_PWR8 -/* Pack the four 16-bit values from M1 into the lower four 8-bit values of - the result, and the four 16-bit values from M2 into the upper four 8-bit - values of the result, all with signed saturation. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_packs_pi16(__m64 __m1, __m64 __m2) { - __vector signed short vm1; - __vector signed char vresult; - - vm1 = (__vector signed short)(__vector unsigned long long) -#ifdef __LITTLE_ENDIAN__ - {__m1, __m2}; -#else - {__m2, __m1}; -#endif - vresult = vec_packs(vm1, vm1); - return (__m64)((__vector long long)vresult)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_packsswb(__m64 __m1, __m64 __m2) { - return _mm_packs_pi16(__m1, __m2); -} - -/* Pack the two 32-bit values from M1 in to the lower two 16-bit values of - the result, and the two 32-bit values from M2 into the upper two 16-bit - values of the result, all with signed saturation. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_packs_pi32(__m64 __m1, __m64 __m2) { - __vector signed int vm1; - __vector signed short vresult; - - vm1 = (__vector signed int)(__vector unsigned long long) -#ifdef __LITTLE_ENDIAN__ - {__m1, __m2}; -#else - {__m2, __m1}; -#endif - vresult = vec_packs(vm1, vm1); - return (__m64)((__vector long long)vresult)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_packssdw(__m64 __m1, __m64 __m2) { - return _mm_packs_pi32(__m1, __m2); -} - -/* Pack the four 16-bit values from M1 into the lower four 8-bit values of - the result, and the four 16-bit values from M2 into the upper four 8-bit - values of the result, all with unsigned saturation. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_packs_pu16(__m64 __m1, __m64 __m2) { - __vector unsigned char r; - __vector signed short vm1 = (__vector signed short)(__vector long long) -#ifdef __LITTLE_ENDIAN__ - {__m1, __m2}; -#else - {__m2, __m1}; -#endif - const __vector signed short __zero = {0}; - __vector __bool short __select = vec_cmplt(vm1, __zero); - r = vec_packs((__vector unsigned short)vm1, (__vector unsigned short)vm1); - __vector __bool char packsel = vec_pack(__select, __select); - r = vec_sel(r, (const __vector unsigned char)__zero, packsel); - return (__m64)((__vector long long)r)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_packuswb(__m64 __m1, __m64 __m2) { - return _mm_packs_pu16(__m1, __m2); -} -#endif /* end ARCH_PWR8 */ - -/* Interleave the four 8-bit values from the high half of M1 with the four - 8-bit values from the high half of M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_unpackhi_pi8(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR8 - __vector unsigned char a, b, c; - - a = (__vector unsigned char)vec_splats(__m1); - b = (__vector unsigned char)vec_splats(__m2); - c = vec_mergel(a, b); - return (__m64)((__vector long long)c)[1]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_char[0] = m1.as_char[4]; - res.as_char[1] = m2.as_char[4]; - res.as_char[2] = m1.as_char[5]; - res.as_char[3] = m2.as_char[5]; - res.as_char[4] = m1.as_char[6]; - res.as_char[5] = m2.as_char[6]; - res.as_char[6] = m1.as_char[7]; - res.as_char[7] = m2.as_char[7]; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_punpckhbw(__m64 __m1, __m64 __m2) { - return _mm_unpackhi_pi8(__m1, __m2); -} - -/* Interleave the two 16-bit values from the high half of M1 with the two - 16-bit values from the high half of M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_unpackhi_pi16(__m64 __m1, __m64 __m2) { - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_short[0] = m1.as_short[2]; - res.as_short[1] = m2.as_short[2]; - res.as_short[2] = m1.as_short[3]; - res.as_short[3] = m2.as_short[3]; - - return (__m64)res.as_m64; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_punpckhwd(__m64 __m1, __m64 __m2) { - return _mm_unpackhi_pi16(__m1, __m2); -} -/* Interleave the 32-bit value from the high half of M1 with the 32-bit - value from the high half of M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_unpackhi_pi32(__m64 __m1, __m64 __m2) { - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_int[0] = m1.as_int[1]; - res.as_int[1] = m2.as_int[1]; - - return (__m64)res.as_m64; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_punpckhdq(__m64 __m1, __m64 __m2) { - return _mm_unpackhi_pi32(__m1, __m2); -} -/* Interleave the four 8-bit values from the low half of M1 with the four - 8-bit values from the low half of M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_unpacklo_pi8(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR8 - __vector unsigned char a, b, c; - - a = (__vector unsigned char)vec_splats(__m1); - b = (__vector unsigned char)vec_splats(__m2); - c = vec_mergel(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_char[0] = m1.as_char[0]; - res.as_char[1] = m2.as_char[0]; - res.as_char[2] = m1.as_char[1]; - res.as_char[3] = m2.as_char[1]; - res.as_char[4] = m1.as_char[2]; - res.as_char[5] = m2.as_char[2]; - res.as_char[6] = m1.as_char[3]; - res.as_char[7] = m2.as_char[3]; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_punpcklbw(__m64 __m1, __m64 __m2) { - return _mm_unpacklo_pi8(__m1, __m2); -} -/* Interleave the two 16-bit values from the low half of M1 with the two - 16-bit values from the low half of M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_unpacklo_pi16(__m64 __m1, __m64 __m2) { - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_short[0] = m1.as_short[0]; - res.as_short[1] = m2.as_short[0]; - res.as_short[2] = m1.as_short[1]; - res.as_short[3] = m2.as_short[1]; - - return (__m64)res.as_m64; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_punpcklwd(__m64 __m1, __m64 __m2) { - return _mm_unpacklo_pi16(__m1, __m2); -} - -/* Interleave the 32-bit value from the low half of M1 with the 32-bit - value from the low half of M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_unpacklo_pi32(__m64 __m1, __m64 __m2) { - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_int[0] = m1.as_int[0]; - res.as_int[1] = m2.as_int[0]; - - return (__m64)res.as_m64; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_punpckldq(__m64 __m1, __m64 __m2) { - return _mm_unpacklo_pi32(__m1, __m2); -} - -/* Add the 8-bit values in M1 to the 8-bit values in M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_add_pi8(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR8 - __vector signed char a, b, c; - - a = (__vector signed char)vec_splats(__m1); - b = (__vector signed char)vec_splats(__m2); - c = vec_add(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_char[0] = m1.as_char[0] + m2.as_char[0]; - res.as_char[1] = m1.as_char[1] + m2.as_char[1]; - res.as_char[2] = m1.as_char[2] + m2.as_char[2]; - res.as_char[3] = m1.as_char[3] + m2.as_char[3]; - res.as_char[4] = m1.as_char[4] + m2.as_char[4]; - res.as_char[5] = m1.as_char[5] + m2.as_char[5]; - res.as_char[6] = m1.as_char[6] + m2.as_char[6]; - res.as_char[7] = m1.as_char[7] + m2.as_char[7]; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_paddb(__m64 __m1, __m64 __m2) { - return _mm_add_pi8(__m1, __m2); -} - -/* Add the 16-bit values in M1 to the 16-bit values in M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_add_pi16(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR8 - __vector signed short a, b, c; - - a = (__vector signed short)vec_splats(__m1); - b = (__vector signed short)vec_splats(__m2); - c = vec_add(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_short[0] = m1.as_short[0] + m2.as_short[0]; - res.as_short[1] = m1.as_short[1] + m2.as_short[1]; - res.as_short[2] = m1.as_short[2] + m2.as_short[2]; - res.as_short[3] = m1.as_short[3] + m2.as_short[3]; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_paddw(__m64 __m1, __m64 __m2) { - return _mm_add_pi16(__m1, __m2); -} - -/* Add the 32-bit values in M1 to the 32-bit values in M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_add_pi32(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR9 - __vector signed int a, b, c; - - a = (__vector signed int)vec_splats(__m1); - b = (__vector signed int)vec_splats(__m2); - c = vec_add(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_int[0] = m1.as_int[0] + m2.as_int[0]; - res.as_int[1] = m1.as_int[1] + m2.as_int[1]; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_paddd(__m64 __m1, __m64 __m2) { - return _mm_add_pi32(__m1, __m2); -} - -/* Subtract the 8-bit values in M2 from the 8-bit values in M1. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_sub_pi8(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR8 - __vector signed char a, b, c; - - a = (__vector signed char)vec_splats(__m1); - b = (__vector signed char)vec_splats(__m2); - c = vec_sub(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_char[0] = m1.as_char[0] - m2.as_char[0]; - res.as_char[1] = m1.as_char[1] - m2.as_char[1]; - res.as_char[2] = m1.as_char[2] - m2.as_char[2]; - res.as_char[3] = m1.as_char[3] - m2.as_char[3]; - res.as_char[4] = m1.as_char[4] - m2.as_char[4]; - res.as_char[5] = m1.as_char[5] - m2.as_char[5]; - res.as_char[6] = m1.as_char[6] - m2.as_char[6]; - res.as_char[7] = m1.as_char[7] - m2.as_char[7]; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psubb(__m64 __m1, __m64 __m2) { - return _mm_sub_pi8(__m1, __m2); -} - -/* Subtract the 16-bit values in M2 from the 16-bit values in M1. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_sub_pi16(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR8 - __vector signed short a, b, c; - - a = (__vector signed short)vec_splats(__m1); - b = (__vector signed short)vec_splats(__m2); - c = vec_sub(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_short[0] = m1.as_short[0] - m2.as_short[0]; - res.as_short[1] = m1.as_short[1] - m2.as_short[1]; - res.as_short[2] = m1.as_short[2] - m2.as_short[2]; - res.as_short[3] = m1.as_short[3] - m2.as_short[3]; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psubw(__m64 __m1, __m64 __m2) { - return _mm_sub_pi16(__m1, __m2); -} - -/* Subtract the 32-bit values in M2 from the 32-bit values in M1. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_sub_pi32(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR9 - __vector signed int a, b, c; - - a = (__vector signed int)vec_splats(__m1); - b = (__vector signed int)vec_splats(__m2); - c = vec_sub(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_int[0] = m1.as_int[0] - m2.as_int[0]; - res.as_int[1] = m1.as_int[1] - m2.as_int[1]; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psubd(__m64 __m1, __m64 __m2) { - return _mm_sub_pi32(__m1, __m2); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_add_si64(__m64 __m1, __m64 __m2) { - return (__m1 + __m2); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_sub_si64(__m64 __m1, __m64 __m2) { - return (__m1 - __m2); -} - -/* Shift the 64-bit value in M left by COUNT. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_sll_si64(__m64 __m, __m64 __count) { - return (__m << __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psllq(__m64 __m, __m64 __count) { - return _mm_sll_si64(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_slli_si64(__m64 __m, const int __count) { - return (__m << __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psllqi(__m64 __m, const int __count) { - return _mm_slli_si64(__m, __count); -} - -/* Shift the 64-bit value in M left by COUNT; shift in zeros. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_srl_si64(__m64 __m, __m64 __count) { - return (__m >> __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psrlq(__m64 __m, __m64 __count) { - return _mm_srl_si64(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_srli_si64(__m64 __m, const int __count) { - return (__m >> __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psrlqi(__m64 __m, const int __count) { - return _mm_srli_si64(__m, __count); -} - -/* Bit-wise AND the 64-bit values in M1 and M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_and_si64(__m64 __m1, __m64 __m2) { - return (__m1 & __m2); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pand(__m64 __m1, __m64 __m2) { - return _mm_and_si64(__m1, __m2); -} - -/* Bit-wise complement the 64-bit value in M1 and bit-wise AND it with the - 64-bit value in M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_andnot_si64(__m64 __m1, __m64 __m2) { - return (~__m1 & __m2); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pandn(__m64 __m1, __m64 __m2) { - return _mm_andnot_si64(__m1, __m2); -} - -/* Bit-wise inclusive OR the 64-bit values in M1 and M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_or_si64(__m64 __m1, __m64 __m2) { - return (__m1 | __m2); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_por(__m64 __m1, __m64 __m2) { - return _mm_or_si64(__m1, __m2); -} - -/* Bit-wise exclusive OR the 64-bit values in M1 and M2. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_xor_si64(__m64 __m1, __m64 __m2) { - return (__m1 ^ __m2); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pxor(__m64 __m1, __m64 __m2) { - return _mm_xor_si64(__m1, __m2); -} - -/* Creates a 64-bit zero. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_setzero_si64(void) { - return (__m64)0; -} - -/* Compare eight 8-bit values. The result of the comparison is 0xFF if the - test is true and zero if false. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cmpeq_pi8(__m64 __m1, __m64 __m2) { -#if defined(_ARCH_PWR6) && defined(__powerpc64__) - __m64 res; - __asm__("cmpb %0,%1,%2;\n" : "=r"(res) : "r"(__m1), "r"(__m2) :); - return (res); -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_char[0] = (m1.as_char[0] == m2.as_char[0]) ? -1 : 0; - res.as_char[1] = (m1.as_char[1] == m2.as_char[1]) ? -1 : 0; - res.as_char[2] = (m1.as_char[2] == m2.as_char[2]) ? -1 : 0; - res.as_char[3] = (m1.as_char[3] == m2.as_char[3]) ? -1 : 0; - res.as_char[4] = (m1.as_char[4] == m2.as_char[4]) ? -1 : 0; - res.as_char[5] = (m1.as_char[5] == m2.as_char[5]) ? -1 : 0; - res.as_char[6] = (m1.as_char[6] == m2.as_char[6]) ? -1 : 0; - res.as_char[7] = (m1.as_char[7] == m2.as_char[7]) ? -1 : 0; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pcmpeqb(__m64 __m1, __m64 __m2) { - return _mm_cmpeq_pi8(__m1, __m2); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cmpgt_pi8(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR8 - __vector signed char a, b, c; - - a = (__vector signed char)vec_splats(__m1); - b = (__vector signed char)vec_splats(__m2); - c = (__vector signed char)vec_cmpgt(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_char[0] = (m1.as_char[0] > m2.as_char[0]) ? -1 : 0; - res.as_char[1] = (m1.as_char[1] > m2.as_char[1]) ? -1 : 0; - res.as_char[2] = (m1.as_char[2] > m2.as_char[2]) ? -1 : 0; - res.as_char[3] = (m1.as_char[3] > m2.as_char[3]) ? -1 : 0; - res.as_char[4] = (m1.as_char[4] > m2.as_char[4]) ? -1 : 0; - res.as_char[5] = (m1.as_char[5] > m2.as_char[5]) ? -1 : 0; - res.as_char[6] = (m1.as_char[6] > m2.as_char[6]) ? -1 : 0; - res.as_char[7] = (m1.as_char[7] > m2.as_char[7]) ? -1 : 0; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pcmpgtb(__m64 __m1, __m64 __m2) { - return _mm_cmpgt_pi8(__m1, __m2); -} - -/* Compare four 16-bit values. The result of the comparison is 0xFFFF if - the test is true and zero if false. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cmpeq_pi16(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR8 - __vector signed short a, b, c; - - a = (__vector signed short)vec_splats(__m1); - b = (__vector signed short)vec_splats(__m2); - c = (__vector signed short)vec_cmpeq(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_short[0] = (m1.as_short[0] == m2.as_short[0]) ? -1 : 0; - res.as_short[1] = (m1.as_short[1] == m2.as_short[1]) ? -1 : 0; - res.as_short[2] = (m1.as_short[2] == m2.as_short[2]) ? -1 : 0; - res.as_short[3] = (m1.as_short[3] == m2.as_short[3]) ? -1 : 0; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pcmpeqw(__m64 __m1, __m64 __m2) { - return _mm_cmpeq_pi16(__m1, __m2); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cmpgt_pi16(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR8 - __vector signed short a, b, c; - - a = (__vector signed short)vec_splats(__m1); - b = (__vector signed short)vec_splats(__m2); - c = (__vector signed short)vec_cmpgt(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_short[0] = (m1.as_short[0] > m2.as_short[0]) ? -1 : 0; - res.as_short[1] = (m1.as_short[1] > m2.as_short[1]) ? -1 : 0; - res.as_short[2] = (m1.as_short[2] > m2.as_short[2]) ? -1 : 0; - res.as_short[3] = (m1.as_short[3] > m2.as_short[3]) ? -1 : 0; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pcmpgtw(__m64 __m1, __m64 __m2) { - return _mm_cmpgt_pi16(__m1, __m2); -} - -/* Compare two 32-bit values. The result of the comparison is 0xFFFFFFFF if - the test is true and zero if false. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cmpeq_pi32(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR9 - __vector signed int a, b, c; - - a = (__vector signed int)vec_splats(__m1); - b = (__vector signed int)vec_splats(__m2); - c = (__vector signed int)vec_cmpeq(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_int[0] = (m1.as_int[0] == m2.as_int[0]) ? -1 : 0; - res.as_int[1] = (m1.as_int[1] == m2.as_int[1]) ? -1 : 0; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pcmpeqd(__m64 __m1, __m64 __m2) { - return _mm_cmpeq_pi32(__m1, __m2); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_cmpgt_pi32(__m64 __m1, __m64 __m2) { -#if _ARCH_PWR9 - __vector signed int a, b, c; - - a = (__vector signed int)vec_splats(__m1); - b = (__vector signed int)vec_splats(__m2); - c = (__vector signed int)vec_cmpgt(a, b); - return (__m64)((__vector long long)c)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __m1; - m2.as_m64 = __m2; - - res.as_int[0] = (m1.as_int[0] > m2.as_int[0]) ? -1 : 0; - res.as_int[1] = (m1.as_int[1] > m2.as_int[1]) ? -1 : 0; - - return (__m64)res.as_m64; -#endif -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pcmpgtd(__m64 __m1, __m64 __m2) { - return _mm_cmpgt_pi32(__m1, __m2); -} - -#if _ARCH_PWR8 -/* Add the 8-bit values in M1 to the 8-bit values in M2 using signed - saturated arithmetic. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_adds_pi8(__m64 __m1, __m64 __m2) { - __vector signed char a, b, c; - - a = (__vector signed char)vec_splats(__m1); - b = (__vector signed char)vec_splats(__m2); - c = vec_adds(a, b); - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_paddsb(__m64 __m1, __m64 __m2) { - return _mm_adds_pi8(__m1, __m2); -} -/* Add the 16-bit values in M1 to the 16-bit values in M2 using signed - saturated arithmetic. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_adds_pi16(__m64 __m1, __m64 __m2) { - __vector signed short a, b, c; - - a = (__vector signed short)vec_splats(__m1); - b = (__vector signed short)vec_splats(__m2); - c = vec_adds(a, b); - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_paddsw(__m64 __m1, __m64 __m2) { - return _mm_adds_pi16(__m1, __m2); -} -/* Add the 8-bit values in M1 to the 8-bit values in M2 using unsigned - saturated arithmetic. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_adds_pu8(__m64 __m1, __m64 __m2) { - __vector unsigned char a, b, c; - - a = (__vector unsigned char)vec_splats(__m1); - b = (__vector unsigned char)vec_splats(__m2); - c = vec_adds(a, b); - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_paddusb(__m64 __m1, __m64 __m2) { - return _mm_adds_pu8(__m1, __m2); -} - -/* Add the 16-bit values in M1 to the 16-bit values in M2 using unsigned - saturated arithmetic. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_adds_pu16(__m64 __m1, __m64 __m2) { - __vector unsigned short a, b, c; - - a = (__vector unsigned short)vec_splats(__m1); - b = (__vector unsigned short)vec_splats(__m2); - c = vec_adds(a, b); - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_paddusw(__m64 __m1, __m64 __m2) { - return _mm_adds_pu16(__m1, __m2); -} - -/* Subtract the 8-bit values in M2 from the 8-bit values in M1 using signed - saturating arithmetic. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_subs_pi8(__m64 __m1, __m64 __m2) { - __vector signed char a, b, c; - - a = (__vector signed char)vec_splats(__m1); - b = (__vector signed char)vec_splats(__m2); - c = vec_subs(a, b); - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psubsb(__m64 __m1, __m64 __m2) { - return _mm_subs_pi8(__m1, __m2); -} - -/* Subtract the 16-bit values in M2 from the 16-bit values in M1 using - signed saturating arithmetic. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_subs_pi16(__m64 __m1, __m64 __m2) { - __vector signed short a, b, c; - - a = (__vector signed short)vec_splats(__m1); - b = (__vector signed short)vec_splats(__m2); - c = vec_subs(a, b); - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psubsw(__m64 __m1, __m64 __m2) { - return _mm_subs_pi16(__m1, __m2); -} - -/* Subtract the 8-bit values in M2 from the 8-bit values in M1 using - unsigned saturating arithmetic. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_subs_pu8(__m64 __m1, __m64 __m2) { - __vector unsigned char a, b, c; - - a = (__vector unsigned char)vec_splats(__m1); - b = (__vector unsigned char)vec_splats(__m2); - c = vec_subs(a, b); - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psubusb(__m64 __m1, __m64 __m2) { - return _mm_subs_pu8(__m1, __m2); -} - -/* Subtract the 16-bit values in M2 from the 16-bit values in M1 using - unsigned saturating arithmetic. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_subs_pu16(__m64 __m1, __m64 __m2) { - __vector unsigned short a, b, c; - - a = (__vector unsigned short)vec_splats(__m1); - b = (__vector unsigned short)vec_splats(__m2); - c = vec_subs(a, b); - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psubusw(__m64 __m1, __m64 __m2) { - return _mm_subs_pu16(__m1, __m2); -} - -/* Multiply four 16-bit values in M1 by four 16-bit values in M2 producing - four 32-bit intermediate results, which are then summed by pairs to - produce two 32-bit results. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_madd_pi16(__m64 __m1, __m64 __m2) { - __vector signed short a, b; - __vector signed int c; - __vector signed int zero = {0, 0, 0, 0}; - - a = (__vector signed short)vec_splats(__m1); - b = (__vector signed short)vec_splats(__m2); - c = vec_vmsumshm(a, b, zero); - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pmaddwd(__m64 __m1, __m64 __m2) { - return _mm_madd_pi16(__m1, __m2); -} -/* Multiply four signed 16-bit values in M1 by four signed 16-bit values in - M2 and produce the high 16 bits of the 32-bit results. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_mulhi_pi16(__m64 __m1, __m64 __m2) { - __vector signed short a, b; - __vector signed short c; - __vector signed int w0, w1; - __vector unsigned char xform1 = { -#ifdef __LITTLE_ENDIAN__ - 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, - 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F -#else - 0x00, 0x01, 0x10, 0x11, 0x04, 0x05, 0x14, 0x15, 0x00, - 0x01, 0x10, 0x11, 0x04, 0x05, 0x14, 0x15 -#endif - }; - - a = (__vector signed short)vec_splats(__m1); - b = (__vector signed short)vec_splats(__m2); - - w0 = vec_vmulesh(a, b); - w1 = vec_vmulosh(a, b); - c = (__vector signed short)vec_perm(w0, w1, xform1); - - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pmulhw(__m64 __m1, __m64 __m2) { - return _mm_mulhi_pi16(__m1, __m2); -} - -/* Multiply four 16-bit values in M1 by four 16-bit values in M2 and produce - the low 16 bits of the results. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_mullo_pi16(__m64 __m1, __m64 __m2) { - __vector signed short a, b, c; - - a = (__vector signed short)vec_splats(__m1); - b = (__vector signed short)vec_splats(__m2); - c = a * b; - return (__m64)((__vector long long)c)[0]; -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pmullw(__m64 __m1, __m64 __m2) { - return _mm_mullo_pi16(__m1, __m2); -} - -/* Shift four 16-bit values in M left by COUNT. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_sll_pi16(__m64 __m, __m64 __count) { - __vector signed short m, r; - __vector unsigned short c; - - if (__count <= 15) { - m = (__vector signed short)vec_splats(__m); - c = (__vector unsigned short)vec_splats((unsigned short)__count); - r = vec_sl(m, (__vector unsigned short)c); - return (__m64)((__vector long long)r)[0]; - } else - return (0); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psllw(__m64 __m, __m64 __count) { - return _mm_sll_pi16(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_slli_pi16(__m64 __m, int __count) { - /* Promote int to long then invoke mm_sll_pi16. */ - return _mm_sll_pi16(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psllwi(__m64 __m, int __count) { - return _mm_slli_pi16(__m, __count); -} - -/* Shift two 32-bit values in M left by COUNT. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_sll_pi32(__m64 __m, __m64 __count) { - __m64_union m, res; - - m.as_m64 = __m; - - res.as_int[0] = m.as_int[0] << __count; - res.as_int[1] = m.as_int[1] << __count; - return (res.as_m64); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pslld(__m64 __m, __m64 __count) { - return _mm_sll_pi32(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_slli_pi32(__m64 __m, int __count) { - /* Promote int to long then invoke mm_sll_pi32. */ - return _mm_sll_pi32(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_pslldi(__m64 __m, int __count) { - return _mm_slli_pi32(__m, __count); -} - -/* Shift four 16-bit values in M right by COUNT; shift in the sign bit. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_sra_pi16(__m64 __m, __m64 __count) { - __vector signed short m, r; - __vector unsigned short c; - - if (__count <= 15) { - m = (__vector signed short)vec_splats(__m); - c = (__vector unsigned short)vec_splats((unsigned short)__count); - r = vec_sra(m, (__vector unsigned short)c); - return (__m64)((__vector long long)r)[0]; - } else - return (0); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psraw(__m64 __m, __m64 __count) { - return _mm_sra_pi16(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_srai_pi16(__m64 __m, int __count) { - /* Promote int to long then invoke mm_sra_pi32. */ - return _mm_sra_pi16(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psrawi(__m64 __m, int __count) { - return _mm_srai_pi16(__m, __count); -} - -/* Shift two 32-bit values in M right by COUNT; shift in the sign bit. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_sra_pi32(__m64 __m, __m64 __count) { - __m64_union m, res; - - m.as_m64 = __m; - - res.as_int[0] = m.as_int[0] >> __count; - res.as_int[1] = m.as_int[1] >> __count; - return (res.as_m64); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psrad(__m64 __m, __m64 __count) { - return _mm_sra_pi32(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_srai_pi32(__m64 __m, int __count) { - /* Promote int to long then invoke mm_sra_pi32. */ - return _mm_sra_pi32(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psradi(__m64 __m, int __count) { - return _mm_srai_pi32(__m, __count); -} - -/* Shift four 16-bit values in M right by COUNT; shift in zeros. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_srl_pi16(__m64 __m, __m64 __count) { - __vector unsigned short m, r; - __vector unsigned short c; - - if (__count <= 15) { - m = (__vector unsigned short)vec_splats(__m); - c = (__vector unsigned short)vec_splats((unsigned short)__count); - r = vec_sr(m, (__vector unsigned short)c); - return (__m64)((__vector long long)r)[0]; - } else - return (0); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psrlw(__m64 __m, __m64 __count) { - return _mm_srl_pi16(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_srli_pi16(__m64 __m, int __count) { - /* Promote int to long then invoke mm_sra_pi32. */ - return _mm_srl_pi16(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psrlwi(__m64 __m, int __count) { - return _mm_srli_pi16(__m, __count); -} - -/* Shift two 32-bit values in M right by COUNT; shift in zeros. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_srl_pi32(__m64 __m, __m64 __count) { - __m64_union m, res; - - m.as_m64 = __m; - - res.as_int[0] = (unsigned int)m.as_int[0] >> __count; - res.as_int[1] = (unsigned int)m.as_int[1] >> __count; - return (res.as_m64); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psrld(__m64 __m, __m64 __count) { - return _mm_srl_pi32(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_srli_pi32(__m64 __m, int __count) { - /* Promote int to long then invoke mm_srl_pi32. */ - return _mm_srl_pi32(__m, __count); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _m_psrldi(__m64 __m, int __count) { - return _mm_srli_pi32(__m, __count); -} -#endif /* _ARCH_PWR8 */ - -/* Creates a vector of two 32-bit values; I0 is least significant. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_set_pi32(int __i1, int __i0) { - __m64_union res; - - res.as_int[0] = __i0; - res.as_int[1] = __i1; - return (res.as_m64); -} - -/* Creates a vector of four 16-bit values; W0 is least significant. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_set_pi16(short __w3, short __w2, short __w1, short __w0) { - __m64_union res; - - res.as_short[0] = __w0; - res.as_short[1] = __w1; - res.as_short[2] = __w2; - res.as_short[3] = __w3; - return (res.as_m64); -} - -/* Creates a vector of eight 8-bit values; B0 is least significant. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, - char __b2, char __b1, char __b0) { - __m64_union res; - - res.as_char[0] = __b0; - res.as_char[1] = __b1; - res.as_char[2] = __b2; - res.as_char[3] = __b3; - res.as_char[4] = __b4; - res.as_char[5] = __b5; - res.as_char[6] = __b6; - res.as_char[7] = __b7; - return (res.as_m64); -} - -/* Similar, but with the arguments in reverse order. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_setr_pi32(int __i0, int __i1) { - __m64_union res; - - res.as_int[0] = __i0; - res.as_int[1] = __i1; - return (res.as_m64); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3) { - return _mm_set_pi16(__w3, __w2, __w1, __w0); -} - -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, - char __b5, char __b6, char __b7) { - return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0); -} - -/* Creates a vector of two 32-bit values, both elements containing I. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_set1_pi32(int __i) { - __m64_union res; - - res.as_int[0] = __i; - res.as_int[1] = __i; - return (res.as_m64); -} - -/* Creates a vector of four 16-bit values, all elements containing W. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_set1_pi16(short __w) { -#if _ARCH_PWR9 - __vector signed short w; - - w = (__vector signed short)vec_splats(__w); - return (__m64)((__vector long long)w)[0]; -#else - __m64_union res; - - res.as_short[0] = __w; - res.as_short[1] = __w; - res.as_short[2] = __w; - res.as_short[3] = __w; - return (res.as_m64); -#endif -} - -/* Creates a vector of eight 8-bit values, all elements containing B. */ -extern __inline __m64 - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_set1_pi8(signed char __b) { -#if _ARCH_PWR8 - __vector signed char b; - - b = (__vector signed char)vec_splats(__b); - return (__m64)((__vector long long)b)[0]; -#else - __m64_union res; - - res.as_char[0] = __b; - res.as_char[1] = __b; - res.as_char[2] = __b; - res.as_char[3] = __b; - res.as_char[4] = __b; - res.as_char[5] = __b; - res.as_char[6] = __b; - res.as_char[7] = __b; - return (res.as_m64); -#endif -} -#endif /* _MMINTRIN_H_INCLUDED */ diff --git a/bin/app/data/cxx/include/ppc_wrappers/xmmintrin.h b/bin/app/data/cxx/include/ppc_wrappers/xmmintrin.h deleted file mode 100644 index 1b322b66..00000000 --- a/bin/app/data/cxx/include/ppc_wrappers/xmmintrin.h +++ /dev/null @@ -1,1838 +0,0 @@ -/*===---- xmmintrin.h - Implementation of SSE intrinsics on PowerPC --------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* Implemented from the specification included in the Intel C++ Compiler - User Guide and Reference, version 9.0. */ - -#ifndef NO_WARN_X86_INTRINSICS -/* This header file is to help porting code using Intel intrinsics - explicitly from x86_64 to powerpc64/powerpc64le. - - Since X86 SSE intrinsics mainly handles __m128 type, PowerPC - VMX/VSX ISA is a good match for vector float SIMD operations. - However scalar float operations in vector (XMM) registers require - the POWER8 VSX ISA (2.07) level. There are differences for data - format and placement of float scalars in the vector register, which - require extra steps to match SSE scalar float semantics on POWER. - - It should be noted that there's much difference between X86_64's - MXSCR and PowerISA's FPSCR/VSCR registers. It's recommended to use - portable instead of access MXSCR directly. - - Most SSE scalar float intrinsic operations can be performed more - efficiently as C language float scalar operations or optimized to - use vector SIMD operations. We recommend this for new applications. */ -#error "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error." -#endif - -#ifndef _XMMINTRIN_H_INCLUDED -#define _XMMINTRIN_H_INCLUDED - -/* Define four value permute mask */ -#define _MM_SHUFFLE(w,x,y,z) (((w) << 6) | ((x) << 4) | ((y) << 2) | (z)) - -#include - -/* Avoid collisions between altivec.h and strict adherence to C++ and - C11 standards. This should eventually be done inside altivec.h itself, - but only after testing a full distro build. */ -#if defined(__STRICT_ANSI__) && (defined(__cplusplus) || \ - (defined(__STDC_VERSION__) && \ - __STDC_VERSION__ >= 201112L)) -#undef vector -#undef pixel -#undef bool -#endif - -/* We need type definitions from the MMX header file. */ -#include - -/* Get _mm_malloc () and _mm_free (). */ -#if __STDC_HOSTED__ -#include -#endif - -/* The Intel API is flexible enough that we must allow aliasing with other - vector types, and their scalar components. */ -typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); - -/* Unaligned version of the same type. */ -typedef float __m128_u __attribute__ ((__vector_size__ (16), __may_alias__, - __aligned__ (1))); - -/* Internal data types for implementing the intrinsics. */ -typedef float __v4sf __attribute__ ((__vector_size__ (16))); - -/* Create an undefined vector. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_undefined_ps (void) -{ - __m128 __Y = __Y; - return __Y; -} - -/* Create a vector of zeros. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_setzero_ps (void) -{ - return __extension__ (__m128){ 0.0f, 0.0f, 0.0f, 0.0f }; -} - -/* Load four SPFP values from P. The address must be 16-byte aligned. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_load_ps (float const *__P) -{ - return ((__m128)vec_ld(0, (__v4sf*)__P)); -} - -/* Load four SPFP values from P. The address need not be 16-byte aligned. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_loadu_ps (float const *__P) -{ - return (vec_vsx_ld(0, __P)); -} - -/* Load four SPFP values in reverse order. The address must be aligned. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_loadr_ps (float const *__P) -{ - __v4sf __tmp; - __m128 result; - static const __vector unsigned char permute_vector = - { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16, - 0x17, 0x10, 0x11, 0x12, 0x13 }; - - __tmp = vec_ld (0, (__v4sf *) __P); - result = (__m128) vec_perm (__tmp, __tmp, permute_vector); - return result; -} - -/* Create a vector with all four elements equal to F. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set1_ps (float __F) -{ - return __extension__ (__m128)(__v4sf){ __F, __F, __F, __F }; -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_ps1 (float __F) -{ - return _mm_set1_ps (__F); -} - -/* Create the vector [Z Y X W]. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_ps (const float __Z, const float __Y, const float __X, const float __W) -{ - return __extension__ (__m128)(__v4sf){ __W, __X, __Y, __Z }; -} - -/* Create the vector [W X Y Z]. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_setr_ps (float __Z, float __Y, float __X, float __W) -{ - return __extension__ (__m128)(__v4sf){ __Z, __Y, __X, __W }; -} - -/* Store four SPFP values. The address must be 16-byte aligned. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_store_ps (float *__P, __m128 __A) -{ - vec_st((__v4sf)__A, 0, (__v4sf*)__P); -} - -/* Store four SPFP values. The address need not be 16-byte aligned. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_storeu_ps (float *__P, __m128 __A) -{ - *(__m128_u *)__P = __A; -} - -/* Store four SPFP values in reverse order. The address must be aligned. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_storer_ps (float *__P, __m128 __A) -{ - __v4sf __tmp; - static const __vector unsigned char permute_vector = - { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16, - 0x17, 0x10, 0x11, 0x12, 0x13 }; - - __tmp = (__m128) vec_perm (__A, __A, permute_vector); - - _mm_store_ps (__P, __tmp); -} - -/* Store the lower SPFP value across four words. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_store1_ps (float *__P, __m128 __A) -{ - __v4sf __va = vec_splat((__v4sf)__A, 0); - _mm_store_ps (__P, __va); -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_store_ps1 (float *__P, __m128 __A) -{ - _mm_store1_ps (__P, __A); -} - -/* Create a vector with element 0 as F and the rest zero. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_set_ss (float __F) -{ - return __extension__ (__m128)(__v4sf){ __F, 0.0f, 0.0f, 0.0f }; -} - -/* Sets the low SPFP value of A from the low value of B. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_move_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; - - return (vec_sel ((__v4sf)__A, (__v4sf)__B, mask)); -} - -/* Create a vector with element 0 as *P and the rest zero. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_load_ss (float const *__P) -{ - return _mm_set_ss (*__P); -} - -/* Stores the lower SPFP value. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_store_ss (float *__P, __m128 __A) -{ - *__P = ((__v4sf)__A)[0]; -} - -/* Perform the respective operation on the lower SPFP (single-precision - floating-point) values of A and B; the upper three SPFP values are - passed through from A. */ - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_add_ss (__m128 __A, __m128 __B) -{ -#ifdef _ARCH_PWR7 - __m128 a, b, c; - static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; - /* PowerISA VSX does not allow partial (for just lower double) - results. So to insure we don't generate spurious exceptions - (from the upper double values) we splat the lower double - before we to the operation. */ - a = vec_splat (__A, 0); - b = vec_splat (__B, 0); - c = a + b; - /* Then we merge the lower float result with the original upper - float elements from __A. */ - return (vec_sel (__A, c, mask)); -#else - __A[0] = __A[0] + __B[0]; - return (__A); -#endif -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sub_ss (__m128 __A, __m128 __B) -{ -#ifdef _ARCH_PWR7 - __m128 a, b, c; - static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; - /* PowerISA VSX does not allow partial (for just lower double) - results. So to insure we don't generate spurious exceptions - (from the upper double values) we splat the lower double - before we to the operation. */ - a = vec_splat (__A, 0); - b = vec_splat (__B, 0); - c = a - b; - /* Then we merge the lower float result with the original upper - float elements from __A. */ - return (vec_sel (__A, c, mask)); -#else - __A[0] = __A[0] - __B[0]; - return (__A); -#endif -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mul_ss (__m128 __A, __m128 __B) -{ -#ifdef _ARCH_PWR7 - __m128 a, b, c; - static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; - /* PowerISA VSX does not allow partial (for just lower double) - results. So to insure we don't generate spurious exceptions - (from the upper double values) we splat the lower double - before we to the operation. */ - a = vec_splat (__A, 0); - b = vec_splat (__B, 0); - c = a * b; - /* Then we merge the lower float result with the original upper - float elements from __A. */ - return (vec_sel (__A, c, mask)); -#else - __A[0] = __A[0] * __B[0]; - return (__A); -#endif -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_div_ss (__m128 __A, __m128 __B) -{ -#ifdef _ARCH_PWR7 - __m128 a, b, c; - static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; - /* PowerISA VSX does not allow partial (for just lower double) - results. So to insure we don't generate spurious exceptions - (from the upper double values) we splat the lower double - before we to the operation. */ - a = vec_splat (__A, 0); - b = vec_splat (__B, 0); - c = a / b; - /* Then we merge the lower float result with the original upper - float elements from __A. */ - return (vec_sel (__A, c, mask)); -#else - __A[0] = __A[0] / __B[0]; - return (__A); -#endif -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sqrt_ss (__m128 __A) -{ - __m128 a, c; - static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; - /* PowerISA VSX does not allow partial (for just lower double) - * results. So to insure we don't generate spurious exceptions - * (from the upper double values) we splat the lower double - * before we to the operation. */ - a = vec_splat (__A, 0); - c = vec_sqrt (a); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return (vec_sel (__A, c, mask)); -} - -/* Perform the respective operation on the four SPFP values in A and B. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_add_ps (__m128 __A, __m128 __B) -{ - return (__m128) ((__v4sf)__A + (__v4sf)__B); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sub_ps (__m128 __A, __m128 __B) -{ - return (__m128) ((__v4sf)__A - (__v4sf)__B); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mul_ps (__m128 __A, __m128 __B) -{ - return (__m128) ((__v4sf)__A * (__v4sf)__B); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_div_ps (__m128 __A, __m128 __B) -{ - return (__m128) ((__v4sf)__A / (__v4sf)__B); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sqrt_ps (__m128 __A) -{ - return (vec_sqrt ((__v4sf)__A)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_rcp_ps (__m128 __A) -{ - return (vec_re ((__v4sf)__A)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_rsqrt_ps (__m128 __A) -{ - return (vec_rsqrte (__A)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_rcp_ss (__m128 __A) -{ - __m128 a, c; - static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; - /* PowerISA VSX does not allow partial (for just lower double) - * results. So to insure we don't generate spurious exceptions - * (from the upper double values) we splat the lower double - * before we to the operation. */ - a = vec_splat (__A, 0); - c = _mm_rcp_ps (a); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return (vec_sel (__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_rsqrt_ss (__m128 __A) -{ - __m128 a, c; - static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; - /* PowerISA VSX does not allow partial (for just lower double) - * results. So to insure we don't generate spurious exceptions - * (from the upper double values) we splat the lower double - * before we to the operation. */ - a = vec_splat (__A, 0); - c = vec_rsqrte (a); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return (vec_sel (__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_min_ss (__m128 __A, __m128 __B) -{ - __v4sf a, b, c; - static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; - /* PowerISA VSX does not allow partial (for just lower float) - * results. So to insure we don't generate spurious exceptions - * (from the upper float values) we splat the lower float - * before we to the operation. */ - a = vec_splat ((__v4sf)__A, 0); - b = vec_splat ((__v4sf)__B, 0); - c = vec_min (a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return (vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_max_ss (__m128 __A, __m128 __B) -{ - __v4sf a, b, c; - static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; - /* PowerISA VSX does not allow partial (for just lower float) - * results. So to insure we don't generate spurious exceptions - * (from the upper float values) we splat the lower float - * before we to the operation. */ - a = vec_splat (__A, 0); - b = vec_splat (__B, 0); - c = vec_max (a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return (vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_min_ps (__m128 __A, __m128 __B) -{ - __vector __bool int m = vec_cmpgt ((__v4sf) __B, (__v4sf) __A); - return vec_sel (__B, __A, m); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_max_ps (__m128 __A, __m128 __B) -{ - __vector __bool int m = vec_cmpgt ((__v4sf) __A, (__v4sf) __B); - return vec_sel (__B, __A, m); -} - -/* Perform logical bit-wise operations on 128-bit values. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_and_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_and ((__v4sf)__A, (__v4sf)__B)); -// return __builtin_ia32_andps (__A, __B); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_andnot_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_andc ((__v4sf)__B, (__v4sf)__A)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_or_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_or ((__v4sf)__A, (__v4sf)__B)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_xor_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_xor ((__v4sf)__A, (__v4sf)__B)); -} - -/* Perform a comparison on the four SPFP values of A and B. For each - element, if the comparison is true, place a mask of all ones in the - result, otherwise a mask of zeros. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpeq_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_cmpeq ((__v4sf)__A,(__v4sf) __B)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmplt_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_cmplt ((__v4sf)__A, (__v4sf)__B)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmple_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_cmple ((__v4sf)__A, (__v4sf)__B)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpgt_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_cmpgt ((__v4sf)__A, (__v4sf)__B)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpge_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_cmpge ((__v4sf)__A, (__v4sf)__B)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpneq_ps (__m128 __A, __m128 __B) -{ - __v4sf temp = (__v4sf ) vec_cmpeq ((__v4sf) __A, (__v4sf)__B); - return ((__m128)vec_nor (temp, temp)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnlt_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_cmpge ((__v4sf)__A, (__v4sf)__B)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnle_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_cmpgt ((__v4sf)__A, (__v4sf)__B)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpngt_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_cmple ((__v4sf)__A, (__v4sf)__B)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnge_ps (__m128 __A, __m128 __B) -{ - return ((__m128)vec_cmplt ((__v4sf)__A, (__v4sf)__B)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpord_ps (__m128 __A, __m128 __B) -{ - __vector unsigned int a, b; - __vector unsigned int c, d; - static const __vector unsigned int float_exp_mask = - { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; - - a = (__vector unsigned int) vec_abs ((__v4sf)__A); - b = (__vector unsigned int) vec_abs ((__v4sf)__B); - c = (__vector unsigned int) vec_cmpgt (float_exp_mask, a); - d = (__vector unsigned int) vec_cmpgt (float_exp_mask, b); - return ((__m128 ) vec_and (c, d)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpunord_ps (__m128 __A, __m128 __B) -{ - __vector unsigned int a, b; - __vector unsigned int c, d; - static const __vector unsigned int float_exp_mask = - { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; - - a = (__vector unsigned int) vec_abs ((__v4sf)__A); - b = (__vector unsigned int) vec_abs ((__v4sf)__B); - c = (__vector unsigned int) vec_cmpgt (a, float_exp_mask); - d = (__vector unsigned int) vec_cmpgt (b, float_exp_mask); - return ((__m128 ) vec_or (c, d)); -} - -/* Perform a comparison on the lower SPFP values of A and B. If the - comparison is true, place a mask of all ones in the result, otherwise a - mask of zeros. The upper three SPFP values are passed through from A. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpeq_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - __v4sf a, b, c; - /* PowerISA VMX does not allow partial (for just element 0) - * results. So to insure we don't generate spurious exceptions - * (from the upper elements) we splat the lower float - * before we to the operation. */ - a = vec_splat ((__v4sf) __A, 0); - b = vec_splat ((__v4sf) __B, 0); - c = (__v4sf) vec_cmpeq(a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmplt_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - __v4sf a, b, c; - /* PowerISA VMX does not allow partial (for just element 0) - * results. So to insure we don't generate spurious exceptions - * (from the upper elements) we splat the lower float - * before we to the operation. */ - a = vec_splat ((__v4sf) __A, 0); - b = vec_splat ((__v4sf) __B, 0); - c = (__v4sf) vec_cmplt(a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmple_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - __v4sf a, b, c; - /* PowerISA VMX does not allow partial (for just element 0) - * results. So to insure we don't generate spurious exceptions - * (from the upper elements) we splat the lower float - * before we to the operation. */ - a = vec_splat ((__v4sf) __A, 0); - b = vec_splat ((__v4sf) __B, 0); - c = (__v4sf) vec_cmple(a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpgt_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - __v4sf a, b, c; - /* PowerISA VMX does not allow partial (for just element 0) - * results. So to insure we don't generate spurious exceptions - * (from the upper elements) we splat the lower float - * before we to the operation. */ - a = vec_splat ((__v4sf) __A, 0); - b = vec_splat ((__v4sf) __B, 0); - c = (__v4sf) vec_cmpgt(a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpge_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - __v4sf a, b, c; - /* PowerISA VMX does not allow partial (for just element 0) - * results. So to insure we don't generate spurious exceptions - * (from the upper elements) we splat the lower float - * before we to the operation. */ - a = vec_splat ((__v4sf) __A, 0); - b = vec_splat ((__v4sf) __B, 0); - c = (__v4sf) vec_cmpge(a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpneq_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - __v4sf a, b, c; - /* PowerISA VMX does not allow partial (for just element 0) - * results. So to insure we don't generate spurious exceptions - * (from the upper elements) we splat the lower float - * before we to the operation. */ - a = vec_splat ((__v4sf) __A, 0); - b = vec_splat ((__v4sf) __B, 0); - c = (__v4sf) vec_cmpeq(a, b); - c = vec_nor (c, c); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnlt_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - __v4sf a, b, c; - /* PowerISA VMX does not allow partial (for just element 0) - * results. So to insure we don't generate spurious exceptions - * (from the upper elements) we splat the lower float - * before we to the operation. */ - a = vec_splat ((__v4sf) __A, 0); - b = vec_splat ((__v4sf) __B, 0); - c = (__v4sf) vec_cmpge(a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnle_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - __v4sf a, b, c; - /* PowerISA VMX does not allow partial (for just element 0) - * results. So to insure we don't generate spurious exceptions - * (from the upper elements) we splat the lower float - * before we to the operation. */ - a = vec_splat ((__v4sf) __A, 0); - b = vec_splat ((__v4sf) __B, 0); - c = (__v4sf) vec_cmpgt(a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpngt_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - __v4sf a, b, c; - /* PowerISA VMX does not allow partial (for just element 0) - * results. So to insure we don't generate spurious exceptions - * (from the upper elements) we splat the lower float - * before we to the operation. */ - a = vec_splat ((__v4sf) __A, 0); - b = vec_splat ((__v4sf) __B, 0); - c = (__v4sf) vec_cmple(a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpnge_ss (__m128 __A, __m128 __B) -{ - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - __v4sf a, b, c; - /* PowerISA VMX does not allow partial (for just element 0) - * results. So to insure we don't generate spurious exceptions - * (from the upper elements) we splat the lower float - * before we do the operation. */ - a = vec_splat ((__v4sf) __A, 0); - b = vec_splat ((__v4sf) __B, 0); - c = (__v4sf) vec_cmplt(a, b); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpord_ss (__m128 __A, __m128 __B) -{ - __vector unsigned int a, b; - __vector unsigned int c, d; - static const __vector unsigned int float_exp_mask = - { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - - a = (__vector unsigned int) vec_abs ((__v4sf)__A); - b = (__vector unsigned int) vec_abs ((__v4sf)__B); - c = (__vector unsigned int) vec_cmpgt (float_exp_mask, a); - d = (__vector unsigned int) vec_cmpgt (float_exp_mask, b); - c = vec_and (c, d); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)c, mask)); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cmpunord_ss (__m128 __A, __m128 __B) -{ - __vector unsigned int a, b; - __vector unsigned int c, d; - static const __vector unsigned int float_exp_mask = - { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; - static const __vector unsigned int mask = - { 0xffffffff, 0, 0, 0 }; - - a = (__vector unsigned int) vec_abs ((__v4sf)__A); - b = (__vector unsigned int) vec_abs ((__v4sf)__B); - c = (__vector unsigned int) vec_cmpgt (a, float_exp_mask); - d = (__vector unsigned int) vec_cmpgt (b, float_exp_mask); - c = vec_or (c, d); - /* Then we merge the lower float result with the original upper - * float elements from __A. */ - return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)c, mask)); -} - -/* Compare the lower SPFP values of A and B and return 1 if true - and 0 if false. */ -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comieq_ss (__m128 __A, __m128 __B) -{ - return (__A[0] == __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comilt_ss (__m128 __A, __m128 __B) -{ - return (__A[0] < __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comile_ss (__m128 __A, __m128 __B) -{ - return (__A[0] <= __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comigt_ss (__m128 __A, __m128 __B) -{ - return (__A[0] > __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comige_ss (__m128 __A, __m128 __B) -{ - return (__A[0] >= __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_comineq_ss (__m128 __A, __m128 __B) -{ - return (__A[0] != __B[0]); -} - -/* FIXME - * The __mm_ucomi??_ss implementations below are exactly the same as - * __mm_comi??_ss because GCC for PowerPC only generates unordered - * compares (scalar and vector). - * Technically __mm_comieq_ss et al should be using the ordered - * compare and signal for QNaNs. - * The __mm_ucomieq_sd et all should be OK, as is. - */ -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomieq_ss (__m128 __A, __m128 __B) -{ - return (__A[0] == __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomilt_ss (__m128 __A, __m128 __B) -{ - return (__A[0] < __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomile_ss (__m128 __A, __m128 __B) -{ - return (__A[0] <= __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomigt_ss (__m128 __A, __m128 __B) -{ - return (__A[0] > __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomige_ss (__m128 __A, __m128 __B) -{ - return (__A[0] >= __B[0]); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_ucomineq_ss (__m128 __A, __m128 __B) -{ - return (__A[0] != __B[0]); -} - -extern __inline float __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtss_f32 (__m128 __A) -{ - return ((__v4sf)__A)[0]; -} - -/* Convert the lower SPFP value to a 32-bit integer according to the current - rounding mode. */ -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtss_si32 (__m128 __A) -{ - __m64 res = 0; -#ifdef _ARCH_PWR8 - double dtmp; - __asm__( -#ifdef __LITTLE_ENDIAN__ - "xxsldwi %x0,%x0,%x0,3;\n" -#endif - "xscvspdp %x2,%x0;\n" - "fctiw %2,%2;\n" - "mfvsrd %1,%x2;\n" - : "+wa" (__A), - "=r" (res), - "=f" (dtmp) - : ); -#else - res = __builtin_rint(__A[0]); -#endif - return (res); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvt_ss2si (__m128 __A) -{ - return _mm_cvtss_si32 (__A); -} - -/* Convert the lower SPFP value to a 32-bit integer according to the - current rounding mode. */ - -/* Intel intrinsic. */ -extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtss_si64 (__m128 __A) -{ - __m64 res = 0; -#ifdef _ARCH_PWR8 - double dtmp; - __asm__( -#ifdef __LITTLE_ENDIAN__ - "xxsldwi %x0,%x0,%x0,3;\n" -#endif - "xscvspdp %x2,%x0;\n" - "fctid %2,%2;\n" - "mfvsrd %1,%x2;\n" - : "+wa" (__A), - "=r" (res), - "=f" (dtmp) - : ); -#else - res = __builtin_llrint(__A[0]); -#endif - return (res); -} - -/* Microsoft intrinsic. */ -extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtss_si64x (__m128 __A) -{ - return _mm_cvtss_si64 ((__v4sf) __A); -} - -/* Constants for use with _mm_prefetch. */ -enum _mm_hint -{ - /* _MM_HINT_ET is _MM_HINT_T with set 3rd bit. */ - _MM_HINT_ET0 = 7, - _MM_HINT_ET1 = 6, - _MM_HINT_T0 = 3, - _MM_HINT_T1 = 2, - _MM_HINT_T2 = 1, - _MM_HINT_NTA = 0 -}; - -/* Loads one cache line from address P to a location "closer" to the - processor. The selector I specifies the type of prefetch operation. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_prefetch (const void *__P, enum _mm_hint __I) -{ - /* Current PowerPC will ignores the hint parameters. */ - __builtin_prefetch (__P); -} - -/* Convert the two lower SPFP values to 32-bit integers according to the - current rounding mode. Return the integers in packed form. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtps_pi32 (__m128 __A) -{ - /* Splat two lower SPFP values to both halves. */ - __v4sf temp, rounded; - __vector unsigned long long result; - - /* Splat two lower SPFP values to both halves. */ - temp = (__v4sf) vec_splat ((__vector long long)__A, 0); - rounded = vec_rint(temp); - result = (__vector unsigned long long) vec_cts (rounded, 0); - - return (__m64) ((__vector long long) result)[0]; -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvt_ps2pi (__m128 __A) -{ - return _mm_cvtps_pi32 (__A); -} - -/* Truncate the lower SPFP value to a 32-bit integer. */ -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvttss_si32 (__m128 __A) -{ - /* Extract the lower float element. */ - float temp = __A[0]; - /* truncate to 32-bit integer and return. */ - return temp; -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtt_ss2si (__m128 __A) -{ - return _mm_cvttss_si32 (__A); -} - -/* Intel intrinsic. */ -extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvttss_si64 (__m128 __A) -{ - /* Extract the lower float element. */ - float temp = __A[0]; - /* truncate to 32-bit integer and return. */ - return temp; -} - -/* Microsoft intrinsic. */ -extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvttss_si64x (__m128 __A) -{ - /* Extract the lower float element. */ - float temp = __A[0]; - /* truncate to 32-bit integer and return. */ - return temp; -} - -/* Truncate the two lower SPFP values to 32-bit integers. Return the - integers in packed form. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvttps_pi32 (__m128 __A) -{ - __v4sf temp; - __vector unsigned long long result; - - /* Splat two lower SPFP values to both halves. */ - temp = (__v4sf) vec_splat ((__vector long long)__A, 0); - result = (__vector unsigned long long) vec_cts (temp, 0); - - return (__m64) ((__vector long long) result)[0]; -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtt_ps2pi (__m128 __A) -{ - return _mm_cvttps_pi32 (__A); -} - -/* Convert B to a SPFP value and insert it as element zero in A. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi32_ss (__m128 __A, int __B) -{ - float temp = __B; - __A[0] = temp; - - return __A; -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvt_si2ss (__m128 __A, int __B) -{ - return _mm_cvtsi32_ss (__A, __B); -} - -/* Convert B to a SPFP value and insert it as element zero in A. */ -/* Intel intrinsic. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi64_ss (__m128 __A, long long __B) -{ - float temp = __B; - __A[0] = temp; - - return __A; -} - -/* Microsoft intrinsic. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtsi64x_ss (__m128 __A, long long __B) -{ - return _mm_cvtsi64_ss (__A, __B); -} - -/* Convert the two 32-bit values in B to SPFP form and insert them - as the two lower elements in A. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtpi32_ps (__m128 __A, __m64 __B) -{ - __vector signed int vm1; - __vector float vf1; - - vm1 = (__vector signed int) (__vector unsigned long long) {__B, __B}; - vf1 = (__vector float) vec_ctf (vm1, 0); - - return ((__m128) (__vector unsigned long long) - { ((__vector unsigned long long)vf1) [0], - ((__vector unsigned long long)__A) [1]}); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvt_pi2ps (__m128 __A, __m64 __B) -{ - return _mm_cvtpi32_ps (__A, __B); -} - -/* Convert the four signed 16-bit values in A to SPFP form. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtpi16_ps (__m64 __A) -{ - __vector signed short vs8; - __vector signed int vi4; - __vector float vf1; - - vs8 = (__vector signed short) (__vector unsigned long long) { __A, __A }; - vi4 = vec_vupklsh (vs8); - vf1 = (__vector float) vec_ctf (vi4, 0); - - return (__m128) vf1; -} - -/* Convert the four unsigned 16-bit values in A to SPFP form. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtpu16_ps (__m64 __A) -{ - const __vector unsigned short zero = - { 0, 0, 0, 0, 0, 0, 0, 0 }; - __vector unsigned short vs8; - __vector unsigned int vi4; - __vector float vf1; - - vs8 = (__vector unsigned short) (__vector unsigned long long) { __A, __A }; - vi4 = (__vector unsigned int) vec_mergel -#ifdef __LITTLE_ENDIAN__ - (vs8, zero); -#else - (zero, vs8); -#endif - vf1 = (__vector float) vec_ctf (vi4, 0); - - return (__m128) vf1; -} - -/* Convert the low four signed 8-bit values in A to SPFP form. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtpi8_ps (__m64 __A) -{ - __vector signed char vc16; - __vector signed short vs8; - __vector signed int vi4; - __vector float vf1; - - vc16 = (__vector signed char) (__vector unsigned long long) { __A, __A }; - vs8 = vec_vupkhsb (vc16); - vi4 = vec_vupkhsh (vs8); - vf1 = (__vector float) vec_ctf (vi4, 0); - - return (__m128) vf1; -} - -/* Convert the low four unsigned 8-bit values in A to SPFP form. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - -_mm_cvtpu8_ps (__m64 __A) -{ - const __vector unsigned char zero = - { 0, 0, 0, 0, 0, 0, 0, 0 }; - __vector unsigned char vc16; - __vector unsigned short vs8; - __vector unsigned int vi4; - __vector float vf1; - - vc16 = (__vector unsigned char) (__vector unsigned long long) { __A, __A }; -#ifdef __LITTLE_ENDIAN__ - vs8 = (__vector unsigned short) vec_mergel (vc16, zero); - vi4 = (__vector unsigned int) vec_mergeh (vs8, - (__vector unsigned short) zero); -#else - vs8 = (__vector unsigned short) vec_mergel (zero, vc16); - vi4 = (__vector unsigned int) vec_mergeh ((__vector unsigned short) zero, - vs8); -#endif - vf1 = (__vector float) vec_ctf (vi4, 0); - - return (__m128) vf1; -} - -/* Convert the four signed 32-bit values in A and B to SPFP form. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtpi32x2_ps (__m64 __A, __m64 __B) -{ - __vector signed int vi4; - __vector float vf4; - - vi4 = (__vector signed int) (__vector unsigned long long) { __A, __B }; - vf4 = (__vector float) vec_ctf (vi4, 0); - return (__m128) vf4; -} - -/* Convert the four SPFP values in A to four signed 16-bit integers. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtps_pi16 (__m128 __A) -{ - __v4sf rounded; - __vector signed int temp; - __vector unsigned long long result; - - rounded = vec_rint(__A); - temp = vec_cts (rounded, 0); - result = (__vector unsigned long long) vec_pack (temp, temp); - - return (__m64) ((__vector long long) result)[0]; -} - -/* Convert the four SPFP values in A to four signed 8-bit integers. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_cvtps_pi8 (__m128 __A) -{ - __v4sf rounded; - __vector signed int tmp_i; - static const __vector signed int zero = {0, 0, 0, 0}; - __vector signed short tmp_s; - __vector signed char res_v; - - rounded = vec_rint(__A); - tmp_i = vec_cts (rounded, 0); - tmp_s = vec_pack (tmp_i, zero); - res_v = vec_pack (tmp_s, tmp_s); - return (__m64) ((__vector long long) res_v)[0]; -} - -/* Selects four specific SPFP values from A and B based on MASK. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - -_mm_shuffle_ps (__m128 __A, __m128 __B, int const __mask) -{ - unsigned long element_selector_10 = __mask & 0x03; - unsigned long element_selector_32 = (__mask >> 2) & 0x03; - unsigned long element_selector_54 = (__mask >> 4) & 0x03; - unsigned long element_selector_76 = (__mask >> 6) & 0x03; - static const unsigned int permute_selectors[4] = - { -#ifdef __LITTLE_ENDIAN__ - 0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C -#else - 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F -#endif - }; - __vector unsigned int t; - - t[0] = permute_selectors[element_selector_10]; - t[1] = permute_selectors[element_selector_32]; - t[2] = permute_selectors[element_selector_54] + 0x10101010; - t[3] = permute_selectors[element_selector_76] + 0x10101010; - return vec_perm ((__v4sf) __A, (__v4sf)__B, (__vector unsigned char)t); -} - -/* Selects and interleaves the upper two SPFP values from A and B. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpackhi_ps (__m128 __A, __m128 __B) -{ - return (__m128) vec_vmrglw ((__v4sf) __A, (__v4sf)__B); -} - -/* Selects and interleaves the lower two SPFP values from A and B. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_unpacklo_ps (__m128 __A, __m128 __B) -{ - return (__m128) vec_vmrghw ((__v4sf) __A, (__v4sf)__B); -} - -/* Sets the upper two SPFP values with 64-bits of data loaded from P; - the lower two values are passed through from A. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_loadh_pi (__m128 __A, __m64 const *__P) -{ - __vector unsigned long long __a = (__vector unsigned long long)__A; - __vector unsigned long long __p = vec_splats(*__P); - __a [1] = __p [1]; - - return (__m128)__a; -} - -/* Stores the upper two SPFP values of A into P. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_storeh_pi (__m64 *__P, __m128 __A) -{ - __vector unsigned long long __a = (__vector unsigned long long) __A; - - *__P = __a[1]; -} - -/* Moves the upper two values of B into the lower two values of A. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_movehl_ps (__m128 __A, __m128 __B) -{ - return (__m128) vec_mergel ((__vector unsigned long long)__B, - (__vector unsigned long long)__A); -} - -/* Moves the lower two values of B into the upper two values of A. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_movelh_ps (__m128 __A, __m128 __B) -{ - return (__m128) vec_mergeh ((__vector unsigned long long)__A, - (__vector unsigned long long)__B); -} - -/* Sets the lower two SPFP values with 64-bits of data loaded from P; - the upper two values are passed through from A. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_loadl_pi (__m128 __A, __m64 const *__P) -{ - __vector unsigned long long __a = (__vector unsigned long long)__A; - __vector unsigned long long __p = vec_splats(*__P); - __a [0] = __p [0]; - - return (__m128)__a; -} - -/* Stores the lower two SPFP values of A into P. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_storel_pi (__m64 *__P, __m128 __A) -{ - __vector unsigned long long __a = (__vector unsigned long long) __A; - - *__P = __a[0]; -} - -#ifdef _ARCH_PWR8 -/* Intrinsic functions that require PowerISA 2.07 minimum. */ - -/* Creates a 4-bit mask from the most significant bits of the SPFP values. */ -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_movemask_ps (__m128 __A) -{ - __vector unsigned long long result; - static const __vector unsigned int perm_mask = - { -#ifdef __LITTLE_ENDIAN__ - 0x00204060, 0x80808080, 0x80808080, 0x80808080 -#else - 0x80808080, 0x80808080, 0x80808080, 0x00204060 -#endif - }; - - result = ((__vector unsigned long long) - vec_vbpermq ((__vector unsigned char) __A, - (__vector unsigned char) perm_mask)); - -#ifdef __LITTLE_ENDIAN__ - return result[1]; -#else - return result[0]; -#endif -} -#endif /* _ARCH_PWR8 */ - -/* Create a vector with all four elements equal to *P. */ -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_load1_ps (float const *__P) -{ - return _mm_set1_ps (*__P); -} - -extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_load_ps1 (float const *__P) -{ - return _mm_load1_ps (__P); -} - -/* Extracts one of the four words of A. The selector N must be immediate. */ -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_extract_pi16 (__m64 const __A, int const __N) -{ - unsigned int shiftr = __N & 3; -#ifdef __BIG_ENDIAN__ - shiftr = 3 - shiftr; -#endif - - return ((__A >> (shiftr * 16)) & 0xffff); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pextrw (__m64 const __A, int const __N) -{ - return _mm_extract_pi16 (__A, __N); -} - -/* Inserts word D into one of four words of A. The selector N must be - immediate. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_insert_pi16 (__m64 const __A, int const __D, int const __N) -{ - const int shiftl = (__N & 3) * 16; - const __m64 shiftD = (const __m64) __D << shiftl; - const __m64 mask = 0xffffUL << shiftl; - __m64 result = (__A & (~mask)) | (shiftD & mask); - - return (result); -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pinsrw (__m64 const __A, int const __D, int const __N) -{ - return _mm_insert_pi16 (__A, __D, __N); -} - -/* Compute the element-wise maximum of signed 16-bit values. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - -_mm_max_pi16 (__m64 __A, __m64 __B) -{ -#if _ARCH_PWR8 - __vector signed short a, b, r; - __vector __bool short c; - - a = (__vector signed short)vec_splats (__A); - b = (__vector signed short)vec_splats (__B); - c = (__vector __bool short)vec_cmpgt (a, b); - r = vec_sel (b, a, c); - return (__m64) ((__vector long long) r)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __A; - m2.as_m64 = __B; - - res.as_short[0] = - (m1.as_short[0] > m2.as_short[0]) ? m1.as_short[0] : m2.as_short[0]; - res.as_short[1] = - (m1.as_short[1] > m2.as_short[1]) ? m1.as_short[1] : m2.as_short[1]; - res.as_short[2] = - (m1.as_short[2] > m2.as_short[2]) ? m1.as_short[2] : m2.as_short[2]; - res.as_short[3] = - (m1.as_short[3] > m2.as_short[3]) ? m1.as_short[3] : m2.as_short[3]; - - return (__m64) res.as_m64; -#endif -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pmaxsw (__m64 __A, __m64 __B) -{ - return _mm_max_pi16 (__A, __B); -} - -/* Compute the element-wise maximum of unsigned 8-bit values. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_max_pu8 (__m64 __A, __m64 __B) -{ -#if _ARCH_PWR8 - __vector unsigned char a, b, r; - __vector __bool char c; - - a = (__vector unsigned char)vec_splats (__A); - b = (__vector unsigned char)vec_splats (__B); - c = (__vector __bool char)vec_cmpgt (a, b); - r = vec_sel (b, a, c); - return (__m64) ((__vector long long) r)[0]; -#else - __m64_union m1, m2, res; - long i; - - m1.as_m64 = __A; - m2.as_m64 = __B; - - - for (i = 0; i < 8; i++) - res.as_char[i] = - ((unsigned char) m1.as_char[i] > (unsigned char) m2.as_char[i]) ? - m1.as_char[i] : m2.as_char[i]; - - return (__m64) res.as_m64; -#endif -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pmaxub (__m64 __A, __m64 __B) -{ - return _mm_max_pu8 (__A, __B); -} - -/* Compute the element-wise minimum of signed 16-bit values. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_min_pi16 (__m64 __A, __m64 __B) -{ -#if _ARCH_PWR8 - __vector signed short a, b, r; - __vector __bool short c; - - a = (__vector signed short)vec_splats (__A); - b = (__vector signed short)vec_splats (__B); - c = (__vector __bool short)vec_cmplt (a, b); - r = vec_sel (b, a, c); - return (__m64) ((__vector long long) r)[0]; -#else - __m64_union m1, m2, res; - - m1.as_m64 = __A; - m2.as_m64 = __B; - - res.as_short[0] = - (m1.as_short[0] < m2.as_short[0]) ? m1.as_short[0] : m2.as_short[0]; - res.as_short[1] = - (m1.as_short[1] < m2.as_short[1]) ? m1.as_short[1] : m2.as_short[1]; - res.as_short[2] = - (m1.as_short[2] < m2.as_short[2]) ? m1.as_short[2] : m2.as_short[2]; - res.as_short[3] = - (m1.as_short[3] < m2.as_short[3]) ? m1.as_short[3] : m2.as_short[3]; - - return (__m64) res.as_m64; -#endif -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pminsw (__m64 __A, __m64 __B) -{ - return _mm_min_pi16 (__A, __B); -} - -/* Compute the element-wise minimum of unsigned 8-bit values. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_min_pu8 (__m64 __A, __m64 __B) -{ -#if _ARCH_PWR8 - __vector unsigned char a, b, r; - __vector __bool char c; - - a = (__vector unsigned char)vec_splats (__A); - b = (__vector unsigned char)vec_splats (__B); - c = (__vector __bool char)vec_cmplt (a, b); - r = vec_sel (b, a, c); - return (__m64) ((__vector long long) r)[0]; -#else - __m64_union m1, m2, res; - long i; - - m1.as_m64 = __A; - m2.as_m64 = __B; - - - for (i = 0; i < 8; i++) - res.as_char[i] = - ((unsigned char) m1.as_char[i] < (unsigned char) m2.as_char[i]) ? - m1.as_char[i] : m2.as_char[i]; - - return (__m64) res.as_m64; -#endif -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pminub (__m64 __A, __m64 __B) -{ - return _mm_min_pu8 (__A, __B); -} - -/* Create an 8-bit mask of the signs of 8-bit values. */ -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_movemask_pi8 (__m64 __A) -{ - unsigned long long p = -#ifdef __LITTLE_ENDIAN__ - 0x0008101820283038UL; // permute control for sign bits -#else - 0x3830282018100800UL; // permute control for sign bits -#endif - return __builtin_bpermd (p, __A); -} - -extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pmovmskb (__m64 __A) -{ - return _mm_movemask_pi8 (__A); -} - -/* Multiply four unsigned 16-bit values in A by four unsigned 16-bit values - in B and produce the high 16 bits of the 32-bit results. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_mulhi_pu16 (__m64 __A, __m64 __B) -{ - __vector unsigned short a, b; - __vector unsigned short c; - __vector unsigned int w0, w1; - __vector unsigned char xform1 = { -#ifdef __LITTLE_ENDIAN__ - 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, - 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F -#else - 0x00, 0x01, 0x10, 0x11, 0x04, 0x05, 0x14, 0x15, - 0x00, 0x01, 0x10, 0x11, 0x04, 0x05, 0x14, 0x15 -#endif - }; - - a = (__vector unsigned short)vec_splats (__A); - b = (__vector unsigned short)vec_splats (__B); - - w0 = vec_vmuleuh (a, b); - w1 = vec_vmulouh (a, b); - c = (__vector unsigned short)vec_perm (w0, w1, xform1); - - return (__m64) ((__vector long long) c)[0]; -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pmulhuw (__m64 __A, __m64 __B) -{ - return _mm_mulhi_pu16 (__A, __B); -} - -/* Return a combination of the four 16-bit values in A. The selector - must be an immediate. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_shuffle_pi16 (__m64 __A, int const __N) -{ - unsigned long element_selector_10 = __N & 0x03; - unsigned long element_selector_32 = (__N >> 2) & 0x03; - unsigned long element_selector_54 = (__N >> 4) & 0x03; - unsigned long element_selector_76 = (__N >> 6) & 0x03; - static const unsigned short permute_selectors[4] = - { -#ifdef __LITTLE_ENDIAN__ - 0x0908, 0x0B0A, 0x0D0C, 0x0F0E -#else - 0x0607, 0x0405, 0x0203, 0x0001 -#endif - }; - __m64_union t; - __vector unsigned long long a, p, r; - -#ifdef __LITTLE_ENDIAN__ - t.as_short[0] = permute_selectors[element_selector_10]; - t.as_short[1] = permute_selectors[element_selector_32]; - t.as_short[2] = permute_selectors[element_selector_54]; - t.as_short[3] = permute_selectors[element_selector_76]; -#else - t.as_short[3] = permute_selectors[element_selector_10]; - t.as_short[2] = permute_selectors[element_selector_32]; - t.as_short[1] = permute_selectors[element_selector_54]; - t.as_short[0] = permute_selectors[element_selector_76]; -#endif - p = vec_splats (t.as_m64); - a = vec_splats (__A); - r = vec_perm (a, a, (__vector unsigned char)p); - return (__m64) ((__vector long long) r)[0]; -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pshufw (__m64 __A, int const __N) -{ - return _mm_shuffle_pi16 (__A, __N); -} - -/* Conditionally store byte elements of A into P. The high bit of each - byte in the selector N determines whether the corresponding byte from - A is stored. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P) -{ - __m64 hibit = 0x8080808080808080UL; - __m64 mask, tmp; - __m64 *p = (__m64*)__P; - - tmp = *p; - mask = _mm_cmpeq_pi8 ((__N & hibit), hibit); - tmp = (tmp & (~mask)) | (__A & mask); - *p = tmp; -} - -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_maskmovq (__m64 __A, __m64 __N, char *__P) -{ - _mm_maskmove_si64 (__A, __N, __P); -} - -/* Compute the rounded averages of the unsigned 8-bit values in A and B. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_avg_pu8 (__m64 __A, __m64 __B) -{ - __vector unsigned char a, b, c; - - a = (__vector unsigned char)vec_splats (__A); - b = (__vector unsigned char)vec_splats (__B); - c = vec_avg (a, b); - return (__m64) ((__vector long long) c)[0]; -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pavgb (__m64 __A, __m64 __B) -{ - return _mm_avg_pu8 (__A, __B); -} - -/* Compute the rounded averages of the unsigned 16-bit values in A and B. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_avg_pu16 (__m64 __A, __m64 __B) -{ - __vector unsigned short a, b, c; - - a = (__vector unsigned short)vec_splats (__A); - b = (__vector unsigned short)vec_splats (__B); - c = vec_avg (a, b); - return (__m64) ((__vector long long) c)[0]; -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_pavgw (__m64 __A, __m64 __B) -{ - return _mm_avg_pu16 (__A, __B); -} - -/* Compute the sum of the absolute differences of the unsigned 8-bit - values in A and B. Return the value in the lower 16-bit word; the - upper words are cleared. */ -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sad_pu8 (__m64 __A, __m64 __B) -{ - __vector unsigned char a, b; - __vector unsigned char vmin, vmax, vabsdiff; - __vector signed int vsum; - const __vector unsigned int zero = - { 0, 0, 0, 0 }; - __m64_union result = {0}; - - a = (__vector unsigned char) (__vector unsigned long long) { 0UL, __A }; - b = (__vector unsigned char) (__vector unsigned long long) { 0UL, __B }; - vmin = vec_min (a, b); - vmax = vec_max (a, b); - vabsdiff = vec_sub (vmax, vmin); - /* Sum four groups of bytes into integers. */ - vsum = (__vector signed int) vec_sum4s (vabsdiff, zero); - /* Sum across four integers with integer result. */ - vsum = vec_sums (vsum, (__vector signed int) zero); - /* The sum is in the right most 32-bits of the vector result. - Transfer to a GPR and truncate to 16 bits. */ - result.as_short[0] = vsum[3]; - return result.as_m64; -} - -extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_m_psadbw (__m64 __A, __m64 __B) -{ - return _mm_sad_pu8 (__A, __B); -} - -/* Stores the data in A to the address P without polluting the caches. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_stream_pi (__m64 *__P, __m64 __A) -{ - /* Use the data cache block touch for store transient. */ - __asm__ ( - " dcbtstt 0,%0" - : - : "b" (__P) - : "memory" - ); - *__P = __A; -} - -/* Likewise. The address must be 16-byte aligned. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_stream_ps (float *__P, __m128 __A) -{ - /* Use the data cache block touch for store transient. */ - __asm__ ( - " dcbtstt 0,%0" - : - : "b" (__P) - : "memory" - ); - _mm_store_ps (__P, __A); -} - -/* Guarantees that every preceding store is globally visible before - any subsequent store. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_sfence (void) -{ - /* Generate a light weight sync. */ - __atomic_thread_fence (__ATOMIC_RELEASE); -} - -/* The execution of the next instruction is delayed by an implementation - specific amount of time. The instruction does not modify the - architectural state. This is after the pop_options pragma because - it does not require SSE support in the processor--the encoding is a - nop on processors that do not support it. */ -extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) -_mm_pause (void) -{ - /* There is no exact match with this construct, but the following is - close to the desired effect. */ -#if _ARCH_PWR8 - /* On power8 and later processors we can depend on Program Priority - (PRI) and associated "very low" PPI setting. Since we don't know - what PPI this thread is running at we: 1) save the current PRI - from the PPR SPR into a local GRP, 2) set the PRI to "very low* - via the special or 31,31,31 encoding. 3) issue an "isync" to - insure the PRI change takes effect before we execute any more - instructions. - Now we can execute a lwsync (release barrier) while we execute - this thread at "very low" PRI. Finally we restore the original - PRI and continue execution. */ - unsigned long __PPR; - - __asm__ volatile ( - " mfppr %0;" - " or 31,31,31;" - " isync;" - " lwsync;" - " isync;" - " mtppr %0;" - : "=r" (__PPR) - : - : "memory" - ); -#else - /* For older processor where we may not even have Program Priority - controls we can only depend on Heavy Weight Sync. */ - __atomic_thread_fence (__ATOMIC_SEQ_CST); -#endif -} - -/* Transpose the 4x4 matrix composed of row[0-3]. */ -#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ -do { \ - __v4sf __r0 = (row0), __r1 = (row1), __r2 = (row2), __r3 = (row3); \ - __v4sf __t0 = vec_vmrghw (__r0, __r1); \ - __v4sf __t1 = vec_vmrghw (__r2, __r3); \ - __v4sf __t2 = vec_vmrglw (__r0, __r1); \ - __v4sf __t3 = vec_vmrglw (__r2, __r3); \ - (row0) = (__v4sf)vec_mergeh ((__vector long long)__t0, \ - (__vector long long)__t1); \ - (row1) = (__v4sf)vec_mergel ((__vector long long)__t0, \ - (__vector long long)__t1); \ - (row2) = (__v4sf)vec_mergeh ((__vector long long)__t2, \ - (__vector long long)__t3); \ - (row3) = (__v4sf)vec_mergel ((__vector long long)__t2, \ - (__vector long long)__t3); \ -} while (0) - -/* For backward source compatibility. */ -//# include - -#endif /* _XMMINTRIN_H_INCLUDED */ diff --git a/bin/app/data/cxx/include/prfchwintrin.h b/bin/app/data/cxx/include/prfchwintrin.h deleted file mode 100644 index 6e8a4ef2..00000000 --- a/bin/app/data/cxx/include/prfchwintrin.h +++ /dev/null @@ -1,55 +0,0 @@ -/*===---- prfchwintrin.h - PREFETCHW intrinsic -----------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined(__X86INTRIN_H) && !defined(_MM3DNOW_H_INCLUDED) -#error "Never use directly; include or instead." -#endif - -#ifndef __PRFCHWINTRIN_H -#define __PRFCHWINTRIN_H - -/// Loads a memory sequence containing the specified memory address into -/// all data cache levels. The cache-coherency state is set to exclusive. -/// Data can be read from and written to the cache line without additional -/// delay. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PREFETCHT0 instruction. -/// -/// \param __P -/// A pointer specifying the memory address to be prefetched. -static __inline__ void __attribute__((__always_inline__, __nodebug__)) -_m_prefetch(void *__P) -{ - __builtin_prefetch (__P, 0, 3 /* _MM_HINT_T0 */); -} - -/// Loads a memory sequence containing the specified memory address into -/// the L1 data cache and sets the cache-coherency to modified. This -/// provides a hint to the processor that the cache line will be modified. -/// It is intended for use when the cache line will be written to shortly -/// after the prefetch is performed. -/// -/// Note that the effect of this intrinsic is dependent on the processor -/// implementation. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PREFETCHW instruction. -/// -/// \param __P -/// A pointer specifying the memory address to be prefetched. -static __inline__ void __attribute__((__always_inline__, __nodebug__)) -_m_prefetchw(void *__P) -{ - __builtin_prefetch (__P, 1, 3 /* _MM_HINT_T0 */); -} - -#endif /* __PRFCHWINTRIN_H */ diff --git a/bin/app/data/cxx/include/ptwriteintrin.h b/bin/app/data/cxx/include/ptwriteintrin.h deleted file mode 100644 index 0a04f7c1..00000000 --- a/bin/app/data/cxx/include/ptwriteintrin.h +++ /dev/null @@ -1,37 +0,0 @@ -/*===------------ ptwriteintrin.h - PTWRITE intrinsic --------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __PTWRITEINTRIN_H -#define __PTWRITEINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("ptwrite"))) - -static __inline__ void __DEFAULT_FN_ATTRS -_ptwrite32(unsigned int __value) { - __builtin_ia32_ptwrite32(__value); -} - -#ifdef __x86_64__ - -static __inline__ void __DEFAULT_FN_ATTRS -_ptwrite64(unsigned long long __value) { - __builtin_ia32_ptwrite64(__value); -} - -#endif /* __x86_64__ */ - -#undef __DEFAULT_FN_ATTRS - -#endif /* __PTWRITEINTRIN_H */ diff --git a/bin/app/data/cxx/include/rdseedintrin.h b/bin/app/data/cxx/include/rdseedintrin.h deleted file mode 100644 index ccb3d2dd..00000000 --- a/bin/app/data/cxx/include/rdseedintrin.h +++ /dev/null @@ -1,42 +0,0 @@ -/*===---- rdseedintrin.h - RDSEED intrinsics -------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __RDSEEDINTRIN_H -#define __RDSEEDINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("rdseed"))) - -static __inline__ int __DEFAULT_FN_ATTRS -_rdseed16_step(unsigned short *__p) -{ - return __builtin_ia32_rdseed16_step(__p); -} - -static __inline__ int __DEFAULT_FN_ATTRS -_rdseed32_step(unsigned int *__p) -{ - return __builtin_ia32_rdseed32_step(__p); -} - -#ifdef __x86_64__ -static __inline__ int __DEFAULT_FN_ATTRS -_rdseed64_step(unsigned long long *__p) -{ - return __builtin_ia32_rdseed64_step(__p); -} -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif /* __RDSEEDINTRIN_H */ diff --git a/bin/app/data/cxx/include/rtmintrin.h b/bin/app/data/cxx/include/rtmintrin.h deleted file mode 100644 index 36ff5835..00000000 --- a/bin/app/data/cxx/include/rtmintrin.h +++ /dev/null @@ -1,45 +0,0 @@ -/*===---- rtmintrin.h - RTM intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __RTMINTRIN_H -#define __RTMINTRIN_H - -#define _XBEGIN_STARTED (~0u) -#define _XABORT_EXPLICIT (1 << 0) -#define _XABORT_RETRY (1 << 1) -#define _XABORT_CONFLICT (1 << 2) -#define _XABORT_CAPACITY (1 << 3) -#define _XABORT_DEBUG (1 << 4) -#define _XABORT_NESTED (1 << 5) -#define _XABORT_CODE(x) (((x) >> 24) & 0xFF) - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("rtm"))) - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_xbegin(void) -{ - return __builtin_ia32_xbegin(); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_xend(void) -{ - __builtin_ia32_xend(); -} - -#define _xabort(imm) __builtin_ia32_xabort((imm)) - -#undef __DEFAULT_FN_ATTRS - -#endif /* __RTMINTRIN_H */ diff --git a/bin/app/data/cxx/include/s390intrin.h b/bin/app/data/cxx/include/s390intrin.h deleted file mode 100644 index 73a915c2..00000000 --- a/bin/app/data/cxx/include/s390intrin.h +++ /dev/null @@ -1,25 +0,0 @@ -/*===---- s390intrin.h - SystemZ intrinsics --------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __S390INTRIN_H -#define __S390INTRIN_H - -#ifndef __s390__ -#error " is for s390 only" -#endif - -#ifdef __HTM__ -#include -#endif - -#ifdef __VEC__ -#include -#endif - -#endif /* __S390INTRIN_H*/ diff --git a/bin/app/data/cxx/include/sgxintrin.h b/bin/app/data/cxx/include/sgxintrin.h deleted file mode 100644 index 303a21f6..00000000 --- a/bin/app/data/cxx/include/sgxintrin.h +++ /dev/null @@ -1,60 +0,0 @@ -/*===---- sgxintrin.h - X86 SGX intrinsics configuration -------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __SGXINTRIN_H -#define __SGXINTRIN_H - -#if __has_extension(gnu_asm) - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("sgx"))) - -static __inline unsigned int __DEFAULT_FN_ATTRS -_enclu_u32(unsigned int __leaf, __SIZE_TYPE__ __d[]) -{ - unsigned int __result; - __asm__ ("enclu" - : "=a" (__result), "=b" (__d[0]), "=c" (__d[1]), "=d" (__d[2]) - : "a" (__leaf), "b" (__d[0]), "c" (__d[1]), "d" (__d[2]) - : "cc"); - return __result; -} - -static __inline unsigned int __DEFAULT_FN_ATTRS -_encls_u32(unsigned int __leaf, __SIZE_TYPE__ __d[]) -{ - unsigned int __result; - __asm__ ("encls" - : "=a" (__result), "=b" (__d[0]), "=c" (__d[1]), "=d" (__d[2]) - : "a" (__leaf), "b" (__d[0]), "c" (__d[1]), "d" (__d[2]) - : "cc"); - return __result; -} - -static __inline unsigned int __DEFAULT_FN_ATTRS -_enclv_u32(unsigned int __leaf, __SIZE_TYPE__ __d[]) -{ - unsigned int __result; - __asm__ ("enclv" - : "=a" (__result), "=b" (__d[0]), "=c" (__d[1]), "=d" (__d[2]) - : "a" (__leaf), "b" (__d[0]), "c" (__d[1]), "d" (__d[2]) - : "cc"); - return __result; -} - -#undef __DEFAULT_FN_ATTRS - -#endif /* __has_extension(gnu_asm) */ - -#endif diff --git a/bin/app/data/cxx/include/shaintrin.h b/bin/app/data/cxx/include/shaintrin.h deleted file mode 100644 index 08b1fb1d..00000000 --- a/bin/app/data/cxx/include/shaintrin.h +++ /dev/null @@ -1,61 +0,0 @@ -/*===---- shaintrin.h - SHA intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __SHAINTRIN_H -#define __SHAINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sha"), __min_vector_width__(128))) - -#define _mm_sha1rnds4_epu32(V1, V2, M) \ - __builtin_ia32_sha1rnds4((__v4si)(__m128i)(V1), (__v4si)(__m128i)(V2), (M)) - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sha1nexte_epu32(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_sha1nexte((__v4si)__X, (__v4si)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sha1msg1_epu32(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_sha1msg1((__v4si)__X, (__v4si)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sha1msg2_epu32(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_sha1msg2((__v4si)__X, (__v4si)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sha256rnds2_epu32(__m128i __X, __m128i __Y, __m128i __Z) -{ - return (__m128i)__builtin_ia32_sha256rnds2((__v4si)__X, (__v4si)__Y, (__v4si)__Z); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sha256msg1_epu32(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_sha256msg1((__v4si)__X, (__v4si)__Y); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sha256msg2_epu32(__m128i __X, __m128i __Y) -{ - return (__m128i)__builtin_ia32_sha256msg2((__v4si)__X, (__v4si)__Y); -} - -#undef __DEFAULT_FN_ATTRS - -#endif /* __SHAINTRIN_H */ diff --git a/bin/app/data/cxx/include/smmintrin.h b/bin/app/data/cxx/include/smmintrin.h deleted file mode 100644 index 025830a7..00000000 --- a/bin/app/data/cxx/include/smmintrin.h +++ /dev/null @@ -1,2430 +0,0 @@ -/*===---- smmintrin.h - SSE4 intrinsics ------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __SMMINTRIN_H -#define __SMMINTRIN_H - -#include - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) - -/* SSE4 Rounding macros. */ -#define _MM_FROUND_TO_NEAREST_INT 0x00 -#define _MM_FROUND_TO_NEG_INF 0x01 -#define _MM_FROUND_TO_POS_INF 0x02 -#define _MM_FROUND_TO_ZERO 0x03 -#define _MM_FROUND_CUR_DIRECTION 0x04 - -#define _MM_FROUND_RAISE_EXC 0x00 -#define _MM_FROUND_NO_EXC 0x08 - -#define _MM_FROUND_NINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEAREST_INT) -#define _MM_FROUND_FLOOR (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEG_INF) -#define _MM_FROUND_CEIL (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_POS_INF) -#define _MM_FROUND_TRUNC (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_ZERO) -#define _MM_FROUND_RINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_CUR_DIRECTION) -#define _MM_FROUND_NEARBYINT (_MM_FROUND_NO_EXC | _MM_FROUND_CUR_DIRECTION) - -/// Rounds up each element of the 128-bit vector of [4 x float] to an -/// integer and returns the rounded values in a 128-bit vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_ceil_ps(__m128 X); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPS / ROUNDPS instruction. -/// -/// \param X -/// A 128-bit vector of [4 x float] values to be rounded up. -/// \returns A 128-bit vector of [4 x float] containing the rounded values. -#define _mm_ceil_ps(X) _mm_round_ps((X), _MM_FROUND_CEIL) - -/// Rounds up each element of the 128-bit vector of [2 x double] to an -/// integer and returns the rounded values in a 128-bit vector of -/// [2 x double]. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_ceil_pd(__m128d X); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPD / ROUNDPD instruction. -/// -/// \param X -/// A 128-bit vector of [2 x double] values to be rounded up. -/// \returns A 128-bit vector of [2 x double] containing the rounded values. -#define _mm_ceil_pd(X) _mm_round_pd((X), _MM_FROUND_CEIL) - -/// Copies three upper elements of the first 128-bit vector operand to -/// the corresponding three upper elements of the 128-bit result vector of -/// [4 x float]. Rounds up the lowest element of the second 128-bit vector -/// operand to an integer and copies it to the lowest element of the 128-bit -/// result vector of [4 x float]. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_ceil_ss(__m128 X, __m128 Y); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDSS / ROUNDSS instruction. -/// -/// \param X -/// A 128-bit vector of [4 x float]. The values stored in bits [127:32] are -/// copied to the corresponding bits of the result. -/// \param Y -/// A 128-bit vector of [4 x float]. The value stored in bits [31:0] is -/// rounded up to the nearest integer and copied to the corresponding bits -/// of the result. -/// \returns A 128-bit vector of [4 x float] containing the copied and rounded -/// values. -#define _mm_ceil_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_CEIL) - -/// Copies the upper element of the first 128-bit vector operand to the -/// corresponding upper element of the 128-bit result vector of [2 x double]. -/// Rounds up the lower element of the second 128-bit vector operand to an -/// integer and copies it to the lower element of the 128-bit result vector -/// of [2 x double]. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_ceil_sd(__m128d X, __m128d Y); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDSD / ROUNDSD instruction. -/// -/// \param X -/// A 128-bit vector of [2 x double]. The value stored in bits [127:64] is -/// copied to the corresponding bits of the result. -/// \param Y -/// A 128-bit vector of [2 x double]. The value stored in bits [63:0] is -/// rounded up to the nearest integer and copied to the corresponding bits -/// of the result. -/// \returns A 128-bit vector of [2 x double] containing the copied and rounded -/// values. -#define _mm_ceil_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_CEIL) - -/// Rounds down each element of the 128-bit vector of [4 x float] to an -/// an integer and returns the rounded values in a 128-bit vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_floor_ps(__m128 X); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPS / ROUNDPS instruction. -/// -/// \param X -/// A 128-bit vector of [4 x float] values to be rounded down. -/// \returns A 128-bit vector of [4 x float] containing the rounded values. -#define _mm_floor_ps(X) _mm_round_ps((X), _MM_FROUND_FLOOR) - -/// Rounds down each element of the 128-bit vector of [2 x double] to an -/// integer and returns the rounded values in a 128-bit vector of -/// [2 x double]. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_floor_pd(__m128d X); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPD / ROUNDPD instruction. -/// -/// \param X -/// A 128-bit vector of [2 x double]. -/// \returns A 128-bit vector of [2 x double] containing the rounded values. -#define _mm_floor_pd(X) _mm_round_pd((X), _MM_FROUND_FLOOR) - -/// Copies three upper elements of the first 128-bit vector operand to -/// the corresponding three upper elements of the 128-bit result vector of -/// [4 x float]. Rounds down the lowest element of the second 128-bit vector -/// operand to an integer and copies it to the lowest element of the 128-bit -/// result vector of [4 x float]. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_floor_ss(__m128 X, __m128 Y); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDSS / ROUNDSS instruction. -/// -/// \param X -/// A 128-bit vector of [4 x float]. The values stored in bits [127:32] are -/// copied to the corresponding bits of the result. -/// \param Y -/// A 128-bit vector of [4 x float]. The value stored in bits [31:0] is -/// rounded down to the nearest integer and copied to the corresponding bits -/// of the result. -/// \returns A 128-bit vector of [4 x float] containing the copied and rounded -/// values. -#define _mm_floor_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_FLOOR) - -/// Copies the upper element of the first 128-bit vector operand to the -/// corresponding upper element of the 128-bit result vector of [2 x double]. -/// Rounds down the lower element of the second 128-bit vector operand to an -/// integer and copies it to the lower element of the 128-bit result vector -/// of [2 x double]. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_floor_sd(__m128d X, __m128d Y); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDSD / ROUNDSD instruction. -/// -/// \param X -/// A 128-bit vector of [2 x double]. The value stored in bits [127:64] is -/// copied to the corresponding bits of the result. -/// \param Y -/// A 128-bit vector of [2 x double]. The value stored in bits [63:0] is -/// rounded down to the nearest integer and copied to the corresponding bits -/// of the result. -/// \returns A 128-bit vector of [2 x double] containing the copied and rounded -/// values. -#define _mm_floor_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_FLOOR) - -/// Rounds each element of the 128-bit vector of [4 x float] to an -/// integer value according to the rounding control specified by the second -/// argument and returns the rounded values in a 128-bit vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_round_ps(__m128 X, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPS / ROUNDPS instruction. -/// -/// \param X -/// A 128-bit vector of [4 x float]. -/// \param M -/// An integer value that specifies the rounding operation. \n -/// Bits [7:4] are reserved. \n -/// Bit [3] is a precision exception value: \n -/// 0: A normal PE exception is used \n -/// 1: The PE field is not updated \n -/// Bit [2] is the rounding control source: \n -/// 0: Use bits [1:0] of \a M \n -/// 1: Use the current MXCSR setting \n -/// Bits [1:0] contain the rounding control definition: \n -/// 00: Nearest \n -/// 01: Downward (toward negative infinity) \n -/// 10: Upward (toward positive infinity) \n -/// 11: Truncated -/// \returns A 128-bit vector of [4 x float] containing the rounded values. -#define _mm_round_ps(X, M) \ - (__m128)__builtin_ia32_roundps((__v4sf)(__m128)(X), (M)) - -/// Copies three upper elements of the first 128-bit vector operand to -/// the corresponding three upper elements of the 128-bit result vector of -/// [4 x float]. Rounds the lowest element of the second 128-bit vector -/// operand to an integer value according to the rounding control specified -/// by the third argument and copies it to the lowest element of the 128-bit -/// result vector of [4 x float]. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_round_ss(__m128 X, __m128 Y, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDSS / ROUNDSS instruction. -/// -/// \param X -/// A 128-bit vector of [4 x float]. The values stored in bits [127:32] are -/// copied to the corresponding bits of the result. -/// \param Y -/// A 128-bit vector of [4 x float]. The value stored in bits [31:0] is -/// rounded to the nearest integer using the specified rounding control and -/// copied to the corresponding bits of the result. -/// \param M -/// An integer value that specifies the rounding operation. \n -/// Bits [7:4] are reserved. \n -/// Bit [3] is a precision exception value: \n -/// 0: A normal PE exception is used \n -/// 1: The PE field is not updated \n -/// Bit [2] is the rounding control source: \n -/// 0: Use bits [1:0] of \a M \n -/// 1: Use the current MXCSR setting \n -/// Bits [1:0] contain the rounding control definition: \n -/// 00: Nearest \n -/// 01: Downward (toward negative infinity) \n -/// 10: Upward (toward positive infinity) \n -/// 11: Truncated -/// \returns A 128-bit vector of [4 x float] containing the copied and rounded -/// values. -#define _mm_round_ss(X, Y, M) \ - (__m128)__builtin_ia32_roundss((__v4sf)(__m128)(X), \ - (__v4sf)(__m128)(Y), (M)) - -/// Rounds each element of the 128-bit vector of [2 x double] to an -/// integer value according to the rounding control specified by the second -/// argument and returns the rounded values in a 128-bit vector of -/// [2 x double]. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_round_pd(__m128d X, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDPD / ROUNDPD instruction. -/// -/// \param X -/// A 128-bit vector of [2 x double]. -/// \param M -/// An integer value that specifies the rounding operation. \n -/// Bits [7:4] are reserved. \n -/// Bit [3] is a precision exception value: \n -/// 0: A normal PE exception is used \n -/// 1: The PE field is not updated \n -/// Bit [2] is the rounding control source: \n -/// 0: Use bits [1:0] of \a M \n -/// 1: Use the current MXCSR setting \n -/// Bits [1:0] contain the rounding control definition: \n -/// 00: Nearest \n -/// 01: Downward (toward negative infinity) \n -/// 10: Upward (toward positive infinity) \n -/// 11: Truncated -/// \returns A 128-bit vector of [2 x double] containing the rounded values. -#define _mm_round_pd(X, M) \ - (__m128d)__builtin_ia32_roundpd((__v2df)(__m128d)(X), (M)) - -/// Copies the upper element of the first 128-bit vector operand to the -/// corresponding upper element of the 128-bit result vector of [2 x double]. -/// Rounds the lower element of the second 128-bit vector operand to an -/// integer value according to the rounding control specified by the third -/// argument and copies it to the lower element of the 128-bit result vector -/// of [2 x double]. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_round_sd(__m128d X, __m128d Y, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VROUNDSD / ROUNDSD instruction. -/// -/// \param X -/// A 128-bit vector of [2 x double]. The value stored in bits [127:64] is -/// copied to the corresponding bits of the result. -/// \param Y -/// A 128-bit vector of [2 x double]. The value stored in bits [63:0] is -/// rounded to the nearest integer using the specified rounding control and -/// copied to the corresponding bits of the result. -/// \param M -/// An integer value that specifies the rounding operation. \n -/// Bits [7:4] are reserved. \n -/// Bit [3] is a precision exception value: \n -/// 0: A normal PE exception is used \n -/// 1: The PE field is not updated \n -/// Bit [2] is the rounding control source: \n -/// 0: Use bits [1:0] of \a M \n -/// 1: Use the current MXCSR setting \n -/// Bits [1:0] contain the rounding control definition: \n -/// 00: Nearest \n -/// 01: Downward (toward negative infinity) \n -/// 10: Upward (toward positive infinity) \n -/// 11: Truncated -/// \returns A 128-bit vector of [2 x double] containing the copied and rounded -/// values. -#define _mm_round_sd(X, Y, M) \ - (__m128d)__builtin_ia32_roundsd((__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), (M)) - -/* SSE4 Packed Blending Intrinsics. */ -/// Returns a 128-bit vector of [2 x double] where the values are -/// selected from either the first or second operand as specified by the -/// third operand, the control mask. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_blend_pd(__m128d V1, __m128d V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VBLENDPD / BLENDPD instruction. -/// -/// \param V1 -/// A 128-bit vector of [2 x double]. -/// \param V2 -/// A 128-bit vector of [2 x double]. -/// \param M -/// An immediate integer operand, with mask bits [1:0] specifying how the -/// values are to be copied. The position of the mask bit corresponds to the -/// index of a copied value. When a mask bit is 0, the corresponding 64-bit -/// element in operand \a V1 is copied to the same position in the result. -/// When a mask bit is 1, the corresponding 64-bit element in operand \a V2 -/// is copied to the same position in the result. -/// \returns A 128-bit vector of [2 x double] containing the copied values. -#define _mm_blend_pd(V1, V2, M) \ - (__m128d) __builtin_ia32_blendpd ((__v2df)(__m128d)(V1), \ - (__v2df)(__m128d)(V2), (int)(M)) - -/// Returns a 128-bit vector of [4 x float] where the values are selected -/// from either the first or second operand as specified by the third -/// operand, the control mask. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_blend_ps(__m128 V1, __m128 V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VBLENDPS / BLENDPS instruction. -/// -/// \param V1 -/// A 128-bit vector of [4 x float]. -/// \param V2 -/// A 128-bit vector of [4 x float]. -/// \param M -/// An immediate integer operand, with mask bits [3:0] specifying how the -/// values are to be copied. The position of the mask bit corresponds to the -/// index of a copied value. When a mask bit is 0, the corresponding 32-bit -/// element in operand \a V1 is copied to the same position in the result. -/// When a mask bit is 1, the corresponding 32-bit element in operand \a V2 -/// is copied to the same position in the result. -/// \returns A 128-bit vector of [4 x float] containing the copied values. -#define _mm_blend_ps(V1, V2, M) \ - (__m128) __builtin_ia32_blendps ((__v4sf)(__m128)(V1), \ - (__v4sf)(__m128)(V2), (int)(M)) - -/// Returns a 128-bit vector of [2 x double] where the values are -/// selected from either the first or second operand as specified by the -/// third operand, the control mask. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBLENDVPD / BLENDVPD instruction. -/// -/// \param __V1 -/// A 128-bit vector of [2 x double]. -/// \param __V2 -/// A 128-bit vector of [2 x double]. -/// \param __M -/// A 128-bit vector operand, with mask bits 127 and 63 specifying how the -/// values are to be copied. The position of the mask bit corresponds to the -/// most significant bit of a copied value. When a mask bit is 0, the -/// corresponding 64-bit element in operand \a __V1 is copied to the same -/// position in the result. When a mask bit is 1, the corresponding 64-bit -/// element in operand \a __V2 is copied to the same position in the result. -/// \returns A 128-bit vector of [2 x double] containing the copied values. -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_blendv_pd (__m128d __V1, __m128d __V2, __m128d __M) -{ - return (__m128d) __builtin_ia32_blendvpd ((__v2df)__V1, (__v2df)__V2, - (__v2df)__M); -} - -/// Returns a 128-bit vector of [4 x float] where the values are -/// selected from either the first or second operand as specified by the -/// third operand, the control mask. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBLENDVPS / BLENDVPS instruction. -/// -/// \param __V1 -/// A 128-bit vector of [4 x float]. -/// \param __V2 -/// A 128-bit vector of [4 x float]. -/// \param __M -/// A 128-bit vector operand, with mask bits 127, 95, 63, and 31 specifying -/// how the values are to be copied. The position of the mask bit corresponds -/// to the most significant bit of a copied value. When a mask bit is 0, the -/// corresponding 32-bit element in operand \a __V1 is copied to the same -/// position in the result. When a mask bit is 1, the corresponding 32-bit -/// element in operand \a __V2 is copied to the same position in the result. -/// \returns A 128-bit vector of [4 x float] containing the copied values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_blendv_ps (__m128 __V1, __m128 __V2, __m128 __M) -{ - return (__m128) __builtin_ia32_blendvps ((__v4sf)__V1, (__v4sf)__V2, - (__v4sf)__M); -} - -/// Returns a 128-bit vector of [16 x i8] where the values are selected -/// from either of the first or second operand as specified by the third -/// operand, the control mask. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPBLENDVB / PBLENDVB instruction. -/// -/// \param __V1 -/// A 128-bit vector of [16 x i8]. -/// \param __V2 -/// A 128-bit vector of [16 x i8]. -/// \param __M -/// A 128-bit vector operand, with mask bits 127, 119, 111...7 specifying -/// how the values are to be copied. The position of the mask bit corresponds -/// to the most significant bit of a copied value. When a mask bit is 0, the -/// corresponding 8-bit element in operand \a __V1 is copied to the same -/// position in the result. When a mask bit is 1, the corresponding 8-bit -/// element in operand \a __V2 is copied to the same position in the result. -/// \returns A 128-bit vector of [16 x i8] containing the copied values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_blendv_epi8 (__m128i __V1, __m128i __V2, __m128i __M) -{ - return (__m128i) __builtin_ia32_pblendvb128 ((__v16qi)__V1, (__v16qi)__V2, - (__v16qi)__M); -} - -/// Returns a 128-bit vector of [8 x i16] where the values are selected -/// from either of the first or second operand as specified by the third -/// operand, the control mask. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_blend_epi16(__m128i V1, __m128i V2, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPBLENDW / PBLENDW instruction. -/// -/// \param V1 -/// A 128-bit vector of [8 x i16]. -/// \param V2 -/// A 128-bit vector of [8 x i16]. -/// \param M -/// An immediate integer operand, with mask bits [7:0] specifying how the -/// values are to be copied. The position of the mask bit corresponds to the -/// index of a copied value. When a mask bit is 0, the corresponding 16-bit -/// element in operand \a V1 is copied to the same position in the result. -/// When a mask bit is 1, the corresponding 16-bit element in operand \a V2 -/// is copied to the same position in the result. -/// \returns A 128-bit vector of [8 x i16] containing the copied values. -#define _mm_blend_epi16(V1, V2, M) \ - (__m128i) __builtin_ia32_pblendw128 ((__v8hi)(__m128i)(V1), \ - (__v8hi)(__m128i)(V2), (int)(M)) - -/* SSE4 Dword Multiply Instructions. */ -/// Multiples corresponding elements of two 128-bit vectors of [4 x i32] -/// and returns the lower 32 bits of the each product in a 128-bit vector of -/// [4 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMULLD / PMULLD instruction. -/// -/// \param __V1 -/// A 128-bit integer vector. -/// \param __V2 -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the products of both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_mullo_epi32 (__m128i __V1, __m128i __V2) -{ - return (__m128i) ((__v4su)__V1 * (__v4su)__V2); -} - -/// Multiplies corresponding even-indexed elements of two 128-bit -/// vectors of [4 x i32] and returns a 128-bit vector of [2 x i64] -/// containing the products. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMULDQ / PMULDQ instruction. -/// -/// \param __V1 -/// A 128-bit vector of [4 x i32]. -/// \param __V2 -/// A 128-bit vector of [4 x i32]. -/// \returns A 128-bit vector of [2 x i64] containing the products of both -/// operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_mul_epi32 (__m128i __V1, __m128i __V2) -{ - return (__m128i) __builtin_ia32_pmuldq128 ((__v4si)__V1, (__v4si)__V2); -} - -/* SSE4 Floating Point Dot Product Instructions. */ -/// Computes the dot product of the two 128-bit vectors of [4 x float] -/// and returns it in the elements of the 128-bit result vector of -/// [4 x float]. -/// -/// The immediate integer operand controls which input elements -/// will contribute to the dot product, and where the final results are -/// returned. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_dp_ps(__m128 X, __m128 Y, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VDPPS / DPPS instruction. -/// -/// \param X -/// A 128-bit vector of [4 x float]. -/// \param Y -/// A 128-bit vector of [4 x float]. -/// \param M -/// An immediate integer operand. Mask bits [7:4] determine which elements -/// of the input vectors are used, with bit [4] corresponding to the lowest -/// element and bit [7] corresponding to the highest element of each [4 x -/// float] vector. If a bit is set, the corresponding elements from the two -/// input vectors are used as an input for dot product; otherwise that input -/// is treated as zero. Bits [3:0] determine which elements of the result -/// will receive a copy of the final dot product, with bit [0] corresponding -/// to the lowest element and bit [3] corresponding to the highest element of -/// each [4 x float] subvector. If a bit is set, the dot product is returned -/// in the corresponding element; otherwise that element is set to zero. -/// \returns A 128-bit vector of [4 x float] containing the dot product. -#define _mm_dp_ps(X, Y, M) \ - (__m128) __builtin_ia32_dpps((__v4sf)(__m128)(X), \ - (__v4sf)(__m128)(Y), (M)) - -/// Computes the dot product of the two 128-bit vectors of [2 x double] -/// and returns it in the elements of the 128-bit result vector of -/// [2 x double]. -/// -/// The immediate integer operand controls which input -/// elements will contribute to the dot product, and where the final results -/// are returned. -/// -/// \headerfile -/// -/// \code -/// __m128d _mm_dp_pd(__m128d X, __m128d Y, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VDPPD / DPPD instruction. -/// -/// \param X -/// A 128-bit vector of [2 x double]. -/// \param Y -/// A 128-bit vector of [2 x double]. -/// \param M -/// An immediate integer operand. Mask bits [5:4] determine which elements -/// of the input vectors are used, with bit [4] corresponding to the lowest -/// element and bit [5] corresponding to the highest element of each of [2 x -/// double] vector. If a bit is set, the corresponding elements from the two -/// input vectors are used as an input for dot product; otherwise that input -/// is treated as zero. Bits [1:0] determine which elements of the result -/// will receive a copy of the final dot product, with bit [0] corresponding -/// to the lowest element and bit [1] corresponding to the highest element of -/// each [2 x double] vector. If a bit is set, the dot product is returned in -/// the corresponding element; otherwise that element is set to zero. -#define _mm_dp_pd(X, Y, M) \ - (__m128d) __builtin_ia32_dppd((__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), (M)) - -/* SSE4 Streaming Load Hint Instruction. */ -/// Loads integer values from a 128-bit aligned memory location to a -/// 128-bit integer vector. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVNTDQA / MOVNTDQA instruction. -/// -/// \param __V -/// A pointer to a 128-bit aligned memory location that contains the integer -/// values. -/// \returns A 128-bit integer vector containing the data stored at the -/// specified memory location. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_stream_load_si128 (__m128i const *__V) -{ - return (__m128i) __builtin_nontemporal_load ((const __v2di *) __V); -} - -/* SSE4 Packed Integer Min/Max Instructions. */ -/// Compares the corresponding elements of two 128-bit vectors of -/// [16 x i8] and returns a 128-bit vector of [16 x i8] containing the lesser -/// of the two values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMINSB / PMINSB instruction. -/// -/// \param __V1 -/// A 128-bit vector of [16 x i8]. -/// \param __V2 -/// A 128-bit vector of [16 x i8] -/// \returns A 128-bit vector of [16 x i8] containing the lesser values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_min_epi8 (__m128i __V1, __m128i __V2) -{ - return (__m128i) __builtin_ia32_pminsb128 ((__v16qi) __V1, (__v16qi) __V2); -} - -/// Compares the corresponding elements of two 128-bit vectors of -/// [16 x i8] and returns a 128-bit vector of [16 x i8] containing the -/// greater value of the two. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMAXSB / PMAXSB instruction. -/// -/// \param __V1 -/// A 128-bit vector of [16 x i8]. -/// \param __V2 -/// A 128-bit vector of [16 x i8]. -/// \returns A 128-bit vector of [16 x i8] containing the greater values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_max_epi8 (__m128i __V1, __m128i __V2) -{ - return (__m128i) __builtin_ia32_pmaxsb128 ((__v16qi) __V1, (__v16qi) __V2); -} - -/// Compares the corresponding elements of two 128-bit vectors of -/// [8 x u16] and returns a 128-bit vector of [8 x u16] containing the lesser -/// value of the two. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMINUW / PMINUW instruction. -/// -/// \param __V1 -/// A 128-bit vector of [8 x u16]. -/// \param __V2 -/// A 128-bit vector of [8 x u16]. -/// \returns A 128-bit vector of [8 x u16] containing the lesser values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_min_epu16 (__m128i __V1, __m128i __V2) -{ - return (__m128i) __builtin_ia32_pminuw128 ((__v8hi) __V1, (__v8hi) __V2); -} - -/// Compares the corresponding elements of two 128-bit vectors of -/// [8 x u16] and returns a 128-bit vector of [8 x u16] containing the -/// greater value of the two. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMAXUW / PMAXUW instruction. -/// -/// \param __V1 -/// A 128-bit vector of [8 x u16]. -/// \param __V2 -/// A 128-bit vector of [8 x u16]. -/// \returns A 128-bit vector of [8 x u16] containing the greater values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_max_epu16 (__m128i __V1, __m128i __V2) -{ - return (__m128i) __builtin_ia32_pmaxuw128 ((__v8hi) __V1, (__v8hi) __V2); -} - -/// Compares the corresponding elements of two 128-bit vectors of -/// [4 x i32] and returns a 128-bit vector of [4 x i32] containing the lesser -/// value of the two. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMINSD / PMINSD instruction. -/// -/// \param __V1 -/// A 128-bit vector of [4 x i32]. -/// \param __V2 -/// A 128-bit vector of [4 x i32]. -/// \returns A 128-bit vector of [4 x i32] containing the lesser values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_min_epi32 (__m128i __V1, __m128i __V2) -{ - return (__m128i) __builtin_ia32_pminsd128 ((__v4si) __V1, (__v4si) __V2); -} - -/// Compares the corresponding elements of two 128-bit vectors of -/// [4 x i32] and returns a 128-bit vector of [4 x i32] containing the -/// greater value of the two. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMAXSD / PMAXSD instruction. -/// -/// \param __V1 -/// A 128-bit vector of [4 x i32]. -/// \param __V2 -/// A 128-bit vector of [4 x i32]. -/// \returns A 128-bit vector of [4 x i32] containing the greater values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_max_epi32 (__m128i __V1, __m128i __V2) -{ - return (__m128i) __builtin_ia32_pmaxsd128 ((__v4si) __V1, (__v4si) __V2); -} - -/// Compares the corresponding elements of two 128-bit vectors of -/// [4 x u32] and returns a 128-bit vector of [4 x u32] containing the lesser -/// value of the two. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMINUD / PMINUD instruction. -/// -/// \param __V1 -/// A 128-bit vector of [4 x u32]. -/// \param __V2 -/// A 128-bit vector of [4 x u32]. -/// \returns A 128-bit vector of [4 x u32] containing the lesser values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_min_epu32 (__m128i __V1, __m128i __V2) -{ - return (__m128i) __builtin_ia32_pminud128((__v4si) __V1, (__v4si) __V2); -} - -/// Compares the corresponding elements of two 128-bit vectors of -/// [4 x u32] and returns a 128-bit vector of [4 x u32] containing the -/// greater value of the two. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMAXUD / PMAXUD instruction. -/// -/// \param __V1 -/// A 128-bit vector of [4 x u32]. -/// \param __V2 -/// A 128-bit vector of [4 x u32]. -/// \returns A 128-bit vector of [4 x u32] containing the greater values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_max_epu32 (__m128i __V1, __m128i __V2) -{ - return (__m128i) __builtin_ia32_pmaxud128((__v4si) __V1, (__v4si) __V2); -} - -/* SSE4 Insertion and Extraction from XMM Register Instructions. */ -/// Takes the first argument \a X and inserts an element from the second -/// argument \a Y as selected by the third argument \a N. That result then -/// has elements zeroed out also as selected by the third argument \a N. The -/// resulting 128-bit vector of [4 x float] is then returned. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_insert_ps(__m128 X, __m128 Y, const int N); -/// \endcode -/// -/// This intrinsic corresponds to the VINSERTPS instruction. -/// -/// \param X -/// A 128-bit vector source operand of [4 x float]. With the exception of -/// those bits in the result copied from parameter \a Y and zeroed by bits -/// [3:0] of \a N, all bits from this parameter are copied to the result. -/// \param Y -/// A 128-bit vector source operand of [4 x float]. One single-precision -/// floating-point element from this source, as determined by the immediate -/// parameter, is copied to the result. -/// \param N -/// Specifies which bits from operand \a Y will be copied, which bits in the -/// result they will be be copied to, and which bits in the result will be -/// cleared. The following assignments are made: \n -/// Bits [7:6] specify the bits to copy from operand \a Y: \n -/// 00: Selects bits [31:0] from operand \a Y. \n -/// 01: Selects bits [63:32] from operand \a Y. \n -/// 10: Selects bits [95:64] from operand \a Y. \n -/// 11: Selects bits [127:96] from operand \a Y. \n -/// Bits [5:4] specify the bits in the result to which the selected bits -/// from operand \a Y are copied: \n -/// 00: Copies the selected bits from \a Y to result bits [31:0]. \n -/// 01: Copies the selected bits from \a Y to result bits [63:32]. \n -/// 10: Copies the selected bits from \a Y to result bits [95:64]. \n -/// 11: Copies the selected bits from \a Y to result bits [127:96]. \n -/// Bits[3:0]: If any of these bits are set, the corresponding result -/// element is cleared. -/// \returns A 128-bit vector of [4 x float] containing the copied -/// single-precision floating point elements from the operands. -#define _mm_insert_ps(X, Y, N) __builtin_ia32_insertps128((X), (Y), (N)) - -/// Extracts a 32-bit integer from a 128-bit vector of [4 x float] and -/// returns it, using the immediate value parameter \a N as a selector. -/// -/// \headerfile -/// -/// \code -/// int _mm_extract_ps(__m128 X, const int N); -/// \endcode -/// -/// This intrinsic corresponds to the VEXTRACTPS / EXTRACTPS -/// instruction. -/// -/// \param X -/// A 128-bit vector of [4 x float]. -/// \param N -/// An immediate value. Bits [1:0] determines which bits from the argument -/// \a X are extracted and returned: \n -/// 00: Bits [31:0] of parameter \a X are returned. \n -/// 01: Bits [63:32] of parameter \a X are returned. \n -/// 10: Bits [95:64] of parameter \a X are returned. \n -/// 11: Bits [127:96] of parameter \a X are returned. -/// \returns A 32-bit integer containing the extracted 32 bits of float data. -#define _mm_extract_ps(X, N) (__extension__ \ - ({ union { int __i; float __f; } __t; \ - __t.__f = __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)); \ - __t.__i;})) - -/* Miscellaneous insert and extract macros. */ -/* Extract a single-precision float from X at index N into D. */ -#define _MM_EXTRACT_FLOAT(D, X, N) \ - { (D) = __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)); } - -/* Or together 2 sets of indexes (X and Y) with the zeroing bits (Z) to create - an index suitable for _mm_insert_ps. */ -#define _MM_MK_INSERTPS_NDX(X, Y, Z) (((X) << 6) | ((Y) << 4) | (Z)) - -/* Extract a float from X at index N into the first index of the return. */ -#define _MM_PICK_OUT_PS(X, N) _mm_insert_ps (_mm_setzero_ps(), (X), \ - _MM_MK_INSERTPS_NDX((N), 0, 0x0e)) - -/* Insert int into packed integer array at index. */ -/// Constructs a 128-bit vector of [16 x i8] by first making a copy of -/// the 128-bit integer vector parameter, and then inserting the lower 8 bits -/// of an integer parameter \a I into an offset specified by the immediate -/// value parameter \a N. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_insert_epi8(__m128i X, int I, const int N); -/// \endcode -/// -/// This intrinsic corresponds to the VPINSRB / PINSRB instruction. -/// -/// \param X -/// A 128-bit integer vector of [16 x i8]. This vector is copied to the -/// result and then one of the sixteen elements in the result vector is -/// replaced by the lower 8 bits of \a I. -/// \param I -/// An integer. The lower 8 bits of this operand are written to the result -/// beginning at the offset specified by \a N. -/// \param N -/// An immediate value. Bits [3:0] specify the bit offset in the result at -/// which the lower 8 bits of \a I are written. \n -/// 0000: Bits [7:0] of the result are used for insertion. \n -/// 0001: Bits [15:8] of the result are used for insertion. \n -/// 0010: Bits [23:16] of the result are used for insertion. \n -/// 0011: Bits [31:24] of the result are used for insertion. \n -/// 0100: Bits [39:32] of the result are used for insertion. \n -/// 0101: Bits [47:40] of the result are used for insertion. \n -/// 0110: Bits [55:48] of the result are used for insertion. \n -/// 0111: Bits [63:56] of the result are used for insertion. \n -/// 1000: Bits [71:64] of the result are used for insertion. \n -/// 1001: Bits [79:72] of the result are used for insertion. \n -/// 1010: Bits [87:80] of the result are used for insertion. \n -/// 1011: Bits [95:88] of the result are used for insertion. \n -/// 1100: Bits [103:96] of the result are used for insertion. \n -/// 1101: Bits [111:104] of the result are used for insertion. \n -/// 1110: Bits [119:112] of the result are used for insertion. \n -/// 1111: Bits [127:120] of the result are used for insertion. -/// \returns A 128-bit integer vector containing the constructed values. -#define _mm_insert_epi8(X, I, N) \ - (__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), \ - (int)(I), (int)(N)) - -/// Constructs a 128-bit vector of [4 x i32] by first making a copy of -/// the 128-bit integer vector parameter, and then inserting the 32-bit -/// integer parameter \a I at the offset specified by the immediate value -/// parameter \a N. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_insert_epi32(__m128i X, int I, const int N); -/// \endcode -/// -/// This intrinsic corresponds to the VPINSRD / PINSRD instruction. -/// -/// \param X -/// A 128-bit integer vector of [4 x i32]. This vector is copied to the -/// result and then one of the four elements in the result vector is -/// replaced by \a I. -/// \param I -/// A 32-bit integer that is written to the result beginning at the offset -/// specified by \a N. -/// \param N -/// An immediate value. Bits [1:0] specify the bit offset in the result at -/// which the integer \a I is written. \n -/// 00: Bits [31:0] of the result are used for insertion. \n -/// 01: Bits [63:32] of the result are used for insertion. \n -/// 10: Bits [95:64] of the result are used for insertion. \n -/// 11: Bits [127:96] of the result are used for insertion. -/// \returns A 128-bit integer vector containing the constructed values. -#define _mm_insert_epi32(X, I, N) \ - (__m128i)__builtin_ia32_vec_set_v4si((__v4si)(__m128i)(X), \ - (int)(I), (int)(N)) - -#ifdef __x86_64__ -/// Constructs a 128-bit vector of [2 x i64] by first making a copy of -/// the 128-bit integer vector parameter, and then inserting the 64-bit -/// integer parameter \a I, using the immediate value parameter \a N as an -/// insertion location selector. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_insert_epi64(__m128i X, long long I, const int N); -/// \endcode -/// -/// This intrinsic corresponds to the VPINSRQ / PINSRQ instruction. -/// -/// \param X -/// A 128-bit integer vector of [2 x i64]. This vector is copied to the -/// result and then one of the two elements in the result vector is replaced -/// by \a I. -/// \param I -/// A 64-bit integer that is written to the result beginning at the offset -/// specified by \a N. -/// \param N -/// An immediate value. Bit [0] specifies the bit offset in the result at -/// which the integer \a I is written. \n -/// 0: Bits [63:0] of the result are used for insertion. \n -/// 1: Bits [127:64] of the result are used for insertion. \n -/// \returns A 128-bit integer vector containing the constructed values. -#define _mm_insert_epi64(X, I, N) \ - (__m128i)__builtin_ia32_vec_set_v2di((__v2di)(__m128i)(X), \ - (long long)(I), (int)(N)) -#endif /* __x86_64__ */ - -/* Extract int from packed integer array at index. This returns the element - * as a zero extended value, so it is unsigned. - */ -/// Extracts an 8-bit element from the 128-bit integer vector of -/// [16 x i8], using the immediate value parameter \a N as a selector. -/// -/// \headerfile -/// -/// \code -/// int _mm_extract_epi8(__m128i X, const int N); -/// \endcode -/// -/// This intrinsic corresponds to the VPEXTRB / PEXTRB instruction. -/// -/// \param X -/// A 128-bit integer vector. -/// \param N -/// An immediate value. Bits [3:0] specify which 8-bit vector element from -/// the argument \a X to extract and copy to the result. \n -/// 0000: Bits [7:0] of parameter \a X are extracted. \n -/// 0001: Bits [15:8] of the parameter \a X are extracted. \n -/// 0010: Bits [23:16] of the parameter \a X are extracted. \n -/// 0011: Bits [31:24] of the parameter \a X are extracted. \n -/// 0100: Bits [39:32] of the parameter \a X are extracted. \n -/// 0101: Bits [47:40] of the parameter \a X are extracted. \n -/// 0110: Bits [55:48] of the parameter \a X are extracted. \n -/// 0111: Bits [63:56] of the parameter \a X are extracted. \n -/// 1000: Bits [71:64] of the parameter \a X are extracted. \n -/// 1001: Bits [79:72] of the parameter \a X are extracted. \n -/// 1010: Bits [87:80] of the parameter \a X are extracted. \n -/// 1011: Bits [95:88] of the parameter \a X are extracted. \n -/// 1100: Bits [103:96] of the parameter \a X are extracted. \n -/// 1101: Bits [111:104] of the parameter \a X are extracted. \n -/// 1110: Bits [119:112] of the parameter \a X are extracted. \n -/// 1111: Bits [127:120] of the parameter \a X are extracted. -/// \returns An unsigned integer, whose lower 8 bits are selected from the -/// 128-bit integer vector parameter and the remaining bits are assigned -/// zeros. -#define _mm_extract_epi8(X, N) \ - (int)(unsigned char)__builtin_ia32_vec_ext_v16qi((__v16qi)(__m128i)(X), \ - (int)(N)) - -/// Extracts a 32-bit element from the 128-bit integer vector of -/// [4 x i32], using the immediate value parameter \a N as a selector. -/// -/// \headerfile -/// -/// \code -/// int _mm_extract_epi32(__m128i X, const int N); -/// \endcode -/// -/// This intrinsic corresponds to the VPEXTRD / PEXTRD instruction. -/// -/// \param X -/// A 128-bit integer vector. -/// \param N -/// An immediate value. Bits [1:0] specify which 32-bit vector element from -/// the argument \a X to extract and copy to the result. \n -/// 00: Bits [31:0] of the parameter \a X are extracted. \n -/// 01: Bits [63:32] of the parameter \a X are extracted. \n -/// 10: Bits [95:64] of the parameter \a X are extracted. \n -/// 11: Bits [127:96] of the parameter \a X are exracted. -/// \returns An integer, whose lower 32 bits are selected from the 128-bit -/// integer vector parameter and the remaining bits are assigned zeros. -#define _mm_extract_epi32(X, N) \ - (int)__builtin_ia32_vec_ext_v4si((__v4si)(__m128i)(X), (int)(N)) - -#ifdef __x86_64__ -/// Extracts a 64-bit element from the 128-bit integer vector of -/// [2 x i64], using the immediate value parameter \a N as a selector. -/// -/// \headerfile -/// -/// \code -/// long long _mm_extract_epi64(__m128i X, const int N); -/// \endcode -/// -/// This intrinsic corresponds to the VPEXTRQ / PEXTRQ instruction. -/// -/// \param X -/// A 128-bit integer vector. -/// \param N -/// An immediate value. Bit [0] specifies which 64-bit vector element from -/// the argument \a X to return. \n -/// 0: Bits [63:0] are returned. \n -/// 1: Bits [127:64] are returned. \n -/// \returns A 64-bit integer. -#define _mm_extract_epi64(X, N) \ - (long long)__builtin_ia32_vec_ext_v2di((__v2di)(__m128i)(X), (int)(N)) -#endif /* __x86_64 */ - -/* SSE4 128-bit Packed Integer Comparisons. */ -/// Tests whether the specified bits in a 128-bit integer vector are all -/// zeros. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPTEST / PTEST instruction. -/// -/// \param __M -/// A 128-bit integer vector containing the bits to be tested. -/// \param __V -/// A 128-bit integer vector selecting which bits to test in operand \a __M. -/// \returns TRUE if the specified bits are all zeros; FALSE otherwise. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_testz_si128(__m128i __M, __m128i __V) -{ - return __builtin_ia32_ptestz128((__v2di)__M, (__v2di)__V); -} - -/// Tests whether the specified bits in a 128-bit integer vector are all -/// ones. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPTEST / PTEST instruction. -/// -/// \param __M -/// A 128-bit integer vector containing the bits to be tested. -/// \param __V -/// A 128-bit integer vector selecting which bits to test in operand \a __M. -/// \returns TRUE if the specified bits are all ones; FALSE otherwise. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_testc_si128(__m128i __M, __m128i __V) -{ - return __builtin_ia32_ptestc128((__v2di)__M, (__v2di)__V); -} - -/// Tests whether the specified bits in a 128-bit integer vector are -/// neither all zeros nor all ones. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPTEST / PTEST instruction. -/// -/// \param __M -/// A 128-bit integer vector containing the bits to be tested. -/// \param __V -/// A 128-bit integer vector selecting which bits to test in operand \a __M. -/// \returns TRUE if the specified bits are neither all zeros nor all ones; -/// FALSE otherwise. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_testnzc_si128(__m128i __M, __m128i __V) -{ - return __builtin_ia32_ptestnzc128((__v2di)__M, (__v2di)__V); -} - -/// Tests whether the specified bits in a 128-bit integer vector are all -/// ones. -/// -/// \headerfile -/// -/// \code -/// int _mm_test_all_ones(__m128i V); -/// \endcode -/// -/// This intrinsic corresponds to the VPTEST / PTEST instruction. -/// -/// \param V -/// A 128-bit integer vector containing the bits to be tested. -/// \returns TRUE if the bits specified in the operand are all set to 1; FALSE -/// otherwise. -#define _mm_test_all_ones(V) _mm_testc_si128((V), _mm_cmpeq_epi32((V), (V))) - -/// Tests whether the specified bits in a 128-bit integer vector are -/// neither all zeros nor all ones. -/// -/// \headerfile -/// -/// \code -/// int _mm_test_mix_ones_zeros(__m128i M, __m128i V); -/// \endcode -/// -/// This intrinsic corresponds to the VPTEST / PTEST instruction. -/// -/// \param M -/// A 128-bit integer vector containing the bits to be tested. -/// \param V -/// A 128-bit integer vector selecting which bits to test in operand \a M. -/// \returns TRUE if the specified bits are neither all zeros nor all ones; -/// FALSE otherwise. -#define _mm_test_mix_ones_zeros(M, V) _mm_testnzc_si128((M), (V)) - -/// Tests whether the specified bits in a 128-bit integer vector are all -/// zeros. -/// -/// \headerfile -/// -/// \code -/// int _mm_test_all_zeros(__m128i M, __m128i V); -/// \endcode -/// -/// This intrinsic corresponds to the VPTEST / PTEST instruction. -/// -/// \param M -/// A 128-bit integer vector containing the bits to be tested. -/// \param V -/// A 128-bit integer vector selecting which bits to test in operand \a M. -/// \returns TRUE if the specified bits are all zeros; FALSE otherwise. -#define _mm_test_all_zeros(M, V) _mm_testz_si128 ((M), (V)) - -/* SSE4 64-bit Packed Integer Comparisons. */ -/// Compares each of the corresponding 64-bit values of the 128-bit -/// integer vectors for equality. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPEQQ / PCMPEQQ instruction. -/// -/// \param __V1 -/// A 128-bit integer vector. -/// \param __V2 -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmpeq_epi64(__m128i __V1, __m128i __V2) -{ - return (__m128i)((__v2di)__V1 == (__v2di)__V2); -} - -/* SSE4 Packed Integer Sign-Extension. */ -/// Sign-extends each of the lower eight 8-bit integer elements of a -/// 128-bit vector of [16 x i8] to 16-bit values and returns them in a -/// 128-bit vector of [8 x i16]. The upper eight elements of the input vector -/// are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVSXBW / PMOVSXBW instruction. -/// -/// \param __V -/// A 128-bit vector of [16 x i8]. The lower eight 8-bit elements are sign- -/// extended to 16-bit values. -/// \returns A 128-bit vector of [8 x i16] containing the sign-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepi8_epi16(__m128i __V) -{ - /* This function always performs a signed extension, but __v16qi is a char - which may be signed or unsigned, so use __v16qs. */ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi); -} - -/// Sign-extends each of the lower four 8-bit integer elements of a -/// 128-bit vector of [16 x i8] to 32-bit values and returns them in a -/// 128-bit vector of [4 x i32]. The upper twelve elements of the input -/// vector are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVSXBD / PMOVSXBD instruction. -/// -/// \param __V -/// A 128-bit vector of [16 x i8]. The lower four 8-bit elements are -/// sign-extended to 32-bit values. -/// \returns A 128-bit vector of [4 x i32] containing the sign-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepi8_epi32(__m128i __V) -{ - /* This function always performs a signed extension, but __v16qi is a char - which may be signed or unsigned, so use __v16qs. */ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3), __v4si); -} - -/// Sign-extends each of the lower two 8-bit integer elements of a -/// 128-bit integer vector of [16 x i8] to 64-bit values and returns them in -/// a 128-bit vector of [2 x i64]. The upper fourteen elements of the input -/// vector are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVSXBQ / PMOVSXBQ instruction. -/// -/// \param __V -/// A 128-bit vector of [16 x i8]. The lower two 8-bit elements are -/// sign-extended to 64-bit values. -/// \returns A 128-bit vector of [2 x i64] containing the sign-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepi8_epi64(__m128i __V) -{ - /* This function always performs a signed extension, but __v16qi is a char - which may be signed or unsigned, so use __v16qs. */ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1), __v2di); -} - -/// Sign-extends each of the lower four 16-bit integer elements of a -/// 128-bit integer vector of [8 x i16] to 32-bit values and returns them in -/// a 128-bit vector of [4 x i32]. The upper four elements of the input -/// vector are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVSXWD / PMOVSXWD instruction. -/// -/// \param __V -/// A 128-bit vector of [8 x i16]. The lower four 16-bit elements are -/// sign-extended to 32-bit values. -/// \returns A 128-bit vector of [4 x i32] containing the sign-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepi16_epi32(__m128i __V) -{ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1, 2, 3), __v4si); -} - -/// Sign-extends each of the lower two 16-bit integer elements of a -/// 128-bit integer vector of [8 x i16] to 64-bit values and returns them in -/// a 128-bit vector of [2 x i64]. The upper six elements of the input -/// vector are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVSXWQ / PMOVSXWQ instruction. -/// -/// \param __V -/// A 128-bit vector of [8 x i16]. The lower two 16-bit elements are -/// sign-extended to 64-bit values. -/// \returns A 128-bit vector of [2 x i64] containing the sign-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepi16_epi64(__m128i __V) -{ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1), __v2di); -} - -/// Sign-extends each of the lower two 32-bit integer elements of a -/// 128-bit integer vector of [4 x i32] to 64-bit values and returns them in -/// a 128-bit vector of [2 x i64]. The upper two elements of the input vector -/// are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVSXDQ / PMOVSXDQ instruction. -/// -/// \param __V -/// A 128-bit vector of [4 x i32]. The lower two 32-bit elements are -/// sign-extended to 64-bit values. -/// \returns A 128-bit vector of [2 x i64] containing the sign-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepi32_epi64(__m128i __V) -{ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v4si)__V, (__v4si)__V, 0, 1), __v2di); -} - -/* SSE4 Packed Integer Zero-Extension. */ -/// Zero-extends each of the lower eight 8-bit integer elements of a -/// 128-bit vector of [16 x i8] to 16-bit values and returns them in a -/// 128-bit vector of [8 x i16]. The upper eight elements of the input vector -/// are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVZXBW / PMOVZXBW instruction. -/// -/// \param __V -/// A 128-bit vector of [16 x i8]. The lower eight 8-bit elements are -/// zero-extended to 16-bit values. -/// \returns A 128-bit vector of [8 x i16] containing the zero-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepu8_epi16(__m128i __V) -{ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi); -} - -/// Zero-extends each of the lower four 8-bit integer elements of a -/// 128-bit vector of [16 x i8] to 32-bit values and returns them in a -/// 128-bit vector of [4 x i32]. The upper twelve elements of the input -/// vector are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVZXBD / PMOVZXBD instruction. -/// -/// \param __V -/// A 128-bit vector of [16 x i8]. The lower four 8-bit elements are -/// zero-extended to 32-bit values. -/// \returns A 128-bit vector of [4 x i32] containing the zero-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepu8_epi32(__m128i __V) -{ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3), __v4si); -} - -/// Zero-extends each of the lower two 8-bit integer elements of a -/// 128-bit integer vector of [16 x i8] to 64-bit values and returns them in -/// a 128-bit vector of [2 x i64]. The upper fourteen elements of the input -/// vector are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVZXBQ / PMOVZXBQ instruction. -/// -/// \param __V -/// A 128-bit vector of [16 x i8]. The lower two 8-bit elements are -/// zero-extended to 64-bit values. -/// \returns A 128-bit vector of [2 x i64] containing the zero-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepu8_epi64(__m128i __V) -{ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1), __v2di); -} - -/// Zero-extends each of the lower four 16-bit integer elements of a -/// 128-bit integer vector of [8 x i16] to 32-bit values and returns them in -/// a 128-bit vector of [4 x i32]. The upper four elements of the input -/// vector are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVZXWD / PMOVZXWD instruction. -/// -/// \param __V -/// A 128-bit vector of [8 x i16]. The lower four 16-bit elements are -/// zero-extended to 32-bit values. -/// \returns A 128-bit vector of [4 x i32] containing the zero-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepu16_epi32(__m128i __V) -{ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1, 2, 3), __v4si); -} - -/// Zero-extends each of the lower two 16-bit integer elements of a -/// 128-bit integer vector of [8 x i16] to 64-bit values and returns them in -/// a 128-bit vector of [2 x i64]. The upper six elements of the input vector -/// are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVZXWQ / PMOVZXWQ instruction. -/// -/// \param __V -/// A 128-bit vector of [8 x i16]. The lower two 16-bit elements are -/// zero-extended to 64-bit values. -/// \returns A 128-bit vector of [2 x i64] containing the zero-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepu16_epi64(__m128i __V) -{ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1), __v2di); -} - -/// Zero-extends each of the lower two 32-bit integer elements of a -/// 128-bit integer vector of [4 x i32] to 64-bit values and returns them in -/// a 128-bit vector of [2 x i64]. The upper two elements of the input vector -/// are unused. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPMOVZXDQ / PMOVZXDQ instruction. -/// -/// \param __V -/// A 128-bit vector of [4 x i32]. The lower two 32-bit elements are -/// zero-extended to 64-bit values. -/// \returns A 128-bit vector of [2 x i64] containing the zero-extended values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cvtepu32_epi64(__m128i __V) -{ - return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v4su)__V, (__v4su)__V, 0, 1), __v2di); -} - -/* SSE4 Pack with Unsigned Saturation. */ -/// Converts 32-bit signed integers from both 128-bit integer vector -/// operands into 16-bit unsigned integers, and returns the packed result. -/// Values greater than 0xFFFF are saturated to 0xFFFF. Values less than -/// 0x0000 are saturated to 0x0000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPACKUSDW / PACKUSDW instruction. -/// -/// \param __V1 -/// A 128-bit vector of [4 x i32]. Each 32-bit element is treated as a -/// signed integer and is converted to a 16-bit unsigned integer with -/// saturation. Values greater than 0xFFFF are saturated to 0xFFFF. Values -/// less than 0x0000 are saturated to 0x0000. The converted [4 x i16] values -/// are written to the lower 64 bits of the result. -/// \param __V2 -/// A 128-bit vector of [4 x i32]. Each 32-bit element is treated as a -/// signed integer and is converted to a 16-bit unsigned integer with -/// saturation. Values greater than 0xFFFF are saturated to 0xFFFF. Values -/// less than 0x0000 are saturated to 0x0000. The converted [4 x i16] values -/// are written to the higher 64 bits of the result. -/// \returns A 128-bit vector of [8 x i16] containing the converted values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_packus_epi32(__m128i __V1, __m128i __V2) -{ - return (__m128i) __builtin_ia32_packusdw128((__v4si)__V1, (__v4si)__V2); -} - -/* SSE4 Multiple Packed Sums of Absolute Difference. */ -/// Subtracts 8-bit unsigned integer values and computes the absolute -/// values of the differences to the corresponding bits in the destination. -/// Then sums of the absolute differences are returned according to the bit -/// fields in the immediate operand. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_mpsadbw_epu8(__m128i X, __m128i Y, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VMPSADBW / MPSADBW instruction. -/// -/// \param X -/// A 128-bit vector of [16 x i8]. -/// \param Y -/// A 128-bit vector of [16 x i8]. -/// \param M -/// An 8-bit immediate operand specifying how the absolute differences are to -/// be calculated, according to the following algorithm: -/// \code -/// // M2 represents bit 2 of the immediate operand -/// // M10 represents bits [1:0] of the immediate operand -/// i = M2 * 4; -/// j = M10 * 4; -/// for (k = 0; k < 8; k = k + 1) { -/// d0 = abs(X[i + k + 0] - Y[j + 0]); -/// d1 = abs(X[i + k + 1] - Y[j + 1]); -/// d2 = abs(X[i + k + 2] - Y[j + 2]); -/// d3 = abs(X[i + k + 3] - Y[j + 3]); -/// r[k] = d0 + d1 + d2 + d3; -/// } -/// \endcode -/// \returns A 128-bit integer vector containing the sums of the sets of -/// absolute differences between both operands. -#define _mm_mpsadbw_epu8(X, Y, M) \ - (__m128i) __builtin_ia32_mpsadbw128((__v16qi)(__m128i)(X), \ - (__v16qi)(__m128i)(Y), (M)) - -/// Finds the minimum unsigned 16-bit element in the input 128-bit -/// vector of [8 x u16] and returns it and along with its index. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPHMINPOSUW / PHMINPOSUW -/// instruction. -/// -/// \param __V -/// A 128-bit vector of [8 x u16]. -/// \returns A 128-bit value where bits [15:0] contain the minimum value found -/// in parameter \a __V, bits [18:16] contain the index of the minimum value -/// and the remaining bits are set to 0. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_minpos_epu16(__m128i __V) -{ - return (__m128i) __builtin_ia32_phminposuw128((__v8hi)__V); -} - -/* Handle the sse4.2 definitions here. */ - -/* These definitions are normally in nmmintrin.h, but gcc puts them in here - so we'll do the same. */ - -#undef __DEFAULT_FN_ATTRS -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) - -/* These specify the type of data that we're comparing. */ -#define _SIDD_UBYTE_OPS 0x00 -#define _SIDD_UWORD_OPS 0x01 -#define _SIDD_SBYTE_OPS 0x02 -#define _SIDD_SWORD_OPS 0x03 - -/* These specify the type of comparison operation. */ -#define _SIDD_CMP_EQUAL_ANY 0x00 -#define _SIDD_CMP_RANGES 0x04 -#define _SIDD_CMP_EQUAL_EACH 0x08 -#define _SIDD_CMP_EQUAL_ORDERED 0x0c - -/* These macros specify the polarity of the operation. */ -#define _SIDD_POSITIVE_POLARITY 0x00 -#define _SIDD_NEGATIVE_POLARITY 0x10 -#define _SIDD_MASKED_POSITIVE_POLARITY 0x20 -#define _SIDD_MASKED_NEGATIVE_POLARITY 0x30 - -/* These macros are used in _mm_cmpXstri() to specify the return. */ -#define _SIDD_LEAST_SIGNIFICANT 0x00 -#define _SIDD_MOST_SIGNIFICANT 0x40 - -/* These macros are used in _mm_cmpXstri() to specify the return. */ -#define _SIDD_BIT_MASK 0x00 -#define _SIDD_UNIT_MASK 0x40 - -/* SSE4.2 Packed Comparison Intrinsics. */ -/// Uses the immediate operand \a M to perform a comparison of string -/// data with implicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns a 128-bit integer vector representing the result -/// mask of the comparison. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_cmpistrm(__m128i A, __m128i B, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPISTRM / PCMPISTRM -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words, the type of comparison to perform, and the format of the return -/// value. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search \a B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. \n -/// Bit [6]: Determines whether the result is zero-extended or expanded to 16 -/// bytes. \n -/// 0: The result is zero-extended to 16 bytes. \n -/// 1: The result is expanded to 16 bytes (this expansion is performed by -/// repeating each bit 8 or 16 times). -/// \returns Returns a 128-bit integer vector representing the result mask of -/// the comparison. -#define _mm_cmpistrm(A, B, M) \ - (__m128i)__builtin_ia32_pcmpistrm128((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with implicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns an integer representing the result index of the -/// comparison. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpistri(__m128i A, __m128i B, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words, the type of comparison to perform, and the format of the return -/// value. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. \n -/// Bit [6]: Determines whether the index of the lowest set bit or the -/// highest set bit is returned. \n -/// 0: The index of the least significant set bit. \n -/// 1: The index of the most significant set bit. \n -/// \returns Returns an integer representing the result index of the comparison. -#define _mm_cmpistri(A, B, M) \ - (int)__builtin_ia32_pcmpistri128((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with explicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns a 128-bit integer vector representing the result -/// mask of the comparison. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_cmpestrm(__m128i A, int LA, __m128i B, int LB, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPESTRM / PCMPESTRM -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LA -/// An integer that specifies the length of the string in \a A. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LB -/// An integer that specifies the length of the string in \a B. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words, the type of comparison to perform, and the format of the return -/// value. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search \a B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. \n -/// Bit [6]: Determines whether the result is zero-extended or expanded to 16 -/// bytes. \n -/// 0: The result is zero-extended to 16 bytes. \n -/// 1: The result is expanded to 16 bytes (this expansion is performed by -/// repeating each bit 8 or 16 times). \n -/// \returns Returns a 128-bit integer vector representing the result mask of -/// the comparison. -#define _mm_cmpestrm(A, LA, B, LB, M) \ - (__m128i)__builtin_ia32_pcmpestrm128((__v16qi)(__m128i)(A), (int)(LA), \ - (__v16qi)(__m128i)(B), (int)(LB), \ - (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with explicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns an integer representing the result index of the -/// comparison. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpestri(__m128i A, int LA, __m128i B, int LB, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPESTRI / PCMPESTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LA -/// An integer that specifies the length of the string in \a A. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LB -/// An integer that specifies the length of the string in \a B. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words, the type of comparison to perform, and the format of the return -/// value. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. \n -/// Bit [6]: Determines whether the index of the lowest set bit or the -/// highest set bit is returned. \n -/// 0: The index of the least significant set bit. \n -/// 1: The index of the most significant set bit. \n -/// \returns Returns an integer representing the result index of the comparison. -#define _mm_cmpestri(A, LA, B, LB, M) \ - (int)__builtin_ia32_pcmpestri128((__v16qi)(__m128i)(A), (int)(LA), \ - (__v16qi)(__m128i)(B), (int)(LB), \ - (int)(M)) - -/* SSE4.2 Packed Comparison Intrinsics and EFlag Reading. */ -/// Uses the immediate operand \a M to perform a comparison of string -/// data with implicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns 1 if the bit mask is zero and the length of the -/// string in \a B is the maximum, otherwise, returns 0. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpistra(__m128i A, __m128i B, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words and the type of comparison to perform. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search \a B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. \n -/// \returns Returns 1 if the bit mask is zero and the length of the string in -/// \a B is the maximum; otherwise, returns 0. -#define _mm_cmpistra(A, B, M) \ - (int)__builtin_ia32_pcmpistria128((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with implicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns 1 if the bit mask is non-zero, otherwise, returns -/// 0. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpistrc(__m128i A, __m128i B, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words and the type of comparison to perform. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. -/// \returns Returns 1 if the bit mask is non-zero, otherwise, returns 0. -#define _mm_cmpistrc(A, B, M) \ - (int)__builtin_ia32_pcmpistric128((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with implicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns bit 0 of the resulting bit mask. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpistro(__m128i A, __m128i B, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words and the type of comparison to perform. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. \n -/// \returns Returns bit 0 of the resulting bit mask. -#define _mm_cmpistro(A, B, M) \ - (int)__builtin_ia32_pcmpistrio128((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with implicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns 1 if the length of the string in \a A is less than -/// the maximum, otherwise, returns 0. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpistrs(__m128i A, __m128i B, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words and the type of comparison to perform. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search \a B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. \n -/// \returns Returns 1 if the length of the string in \a A is less than the -/// maximum, otherwise, returns 0. -#define _mm_cmpistrs(A, B, M) \ - (int)__builtin_ia32_pcmpistris128((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with implicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns 1 if the length of the string in \a B is less than -/// the maximum, otherwise, returns 0. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpistrz(__m128i A, __m128i B, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words and the type of comparison to perform. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search \a B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. -/// \returns Returns 1 if the length of the string in \a B is less than the -/// maximum, otherwise, returns 0. -#define _mm_cmpistrz(A, B, M) \ - (int)__builtin_ia32_pcmpistriz128((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with explicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns 1 if the bit mask is zero and the length of the -/// string in \a B is the maximum, otherwise, returns 0. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpestra(__m128i A, int LA, __m128i B, int LB, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPESTRI / PCMPESTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LA -/// An integer that specifies the length of the string in \a A. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LB -/// An integer that specifies the length of the string in \a B. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words and the type of comparison to perform. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search \a B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. -/// \returns Returns 1 if the bit mask is zero and the length of the string in -/// \a B is the maximum, otherwise, returns 0. -#define _mm_cmpestra(A, LA, B, LB, M) \ - (int)__builtin_ia32_pcmpestria128((__v16qi)(__m128i)(A), (int)(LA), \ - (__v16qi)(__m128i)(B), (int)(LB), \ - (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with explicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns 1 if the resulting mask is non-zero, otherwise, -/// returns 0. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpestrc(__m128i A, int LA, __m128i B, int LB, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPESTRI / PCMPESTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LA -/// An integer that specifies the length of the string in \a A. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LB -/// An integer that specifies the length of the string in \a B. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words and the type of comparison to perform. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search \a B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. \n -/// \returns Returns 1 if the resulting mask is non-zero, otherwise, returns 0. -#define _mm_cmpestrc(A, LA, B, LB, M) \ - (int)__builtin_ia32_pcmpestric128((__v16qi)(__m128i)(A), (int)(LA), \ - (__v16qi)(__m128i)(B), (int)(LB), \ - (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with explicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns bit 0 of the resulting bit mask. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpestro(__m128i A, int LA, __m128i B, int LB, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPESTRI / PCMPESTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LA -/// An integer that specifies the length of the string in \a A. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LB -/// An integer that specifies the length of the string in \a B. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words and the type of comparison to perform. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search \a B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. -/// \returns Returns bit 0 of the resulting bit mask. -#define _mm_cmpestro(A, LA, B, LB, M) \ - (int)__builtin_ia32_pcmpestrio128((__v16qi)(__m128i)(A), (int)(LA), \ - (__v16qi)(__m128i)(B), (int)(LB), \ - (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with explicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns 1 if the length of the string in \a A is less than -/// the maximum, otherwise, returns 0. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpestrs(__m128i A, int LA, __m128i B, int LB, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPESTRI / PCMPESTRI -/// instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LA -/// An integer that specifies the length of the string in \a A. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LB -/// An integer that specifies the length of the string in \a B. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words and the type of comparison to perform. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search \a B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement in the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. \n -/// \returns Returns 1 if the length of the string in \a A is less than the -/// maximum, otherwise, returns 0. -#define _mm_cmpestrs(A, LA, B, LB, M) \ - (int)__builtin_ia32_pcmpestris128((__v16qi)(__m128i)(A), (int)(LA), \ - (__v16qi)(__m128i)(B), (int)(LB), \ - (int)(M)) - -/// Uses the immediate operand \a M to perform a comparison of string -/// data with explicitly defined lengths that is contained in source operands -/// \a A and \a B. Returns 1 if the length of the string in \a B is less than -/// the maximum, otherwise, returns 0. -/// -/// \headerfile -/// -/// \code -/// int _mm_cmpestrz(__m128i A, int LA, __m128i B, int LB, const int M); -/// \endcode -/// -/// This intrinsic corresponds to the VPCMPESTRI instruction. -/// -/// \param A -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LA -/// An integer that specifies the length of the string in \a A. -/// \param B -/// A 128-bit integer vector containing one of the source operands to be -/// compared. -/// \param LB -/// An integer that specifies the length of the string in \a B. -/// \param M -/// An 8-bit immediate operand specifying whether the characters are bytes or -/// words and the type of comparison to perform. \n -/// Bits [1:0]: Determine source data format. \n -/// 00: 16 unsigned bytes \n -/// 01: 8 unsigned words \n -/// 10: 16 signed bytes \n -/// 11: 8 signed words \n -/// Bits [3:2]: Determine comparison type and aggregation method. \n -/// 00: Subset: Each character in \a B is compared for equality with all -/// the characters in \a A. \n -/// 01: Ranges: Each character in \a B is compared to \a A. The comparison -/// basis is greater than or equal for even-indexed elements in \a A, -/// and less than or equal for odd-indexed elements in \a A. \n -/// 10: Match: Compare each pair of corresponding characters in \a A and -/// \a B for equality. \n -/// 11: Substring: Search \a B for substring matches of \a A. \n -/// Bits [5:4]: Determine whether to perform a one's complement on the bit -/// mask of the comparison results. \n -/// 00: No effect. \n -/// 01: Negate the bit mask. \n -/// 10: No effect. \n -/// 11: Negate the bit mask only for bits with an index less than or equal -/// to the size of \a A or \a B. -/// \returns Returns 1 if the length of the string in \a B is less than the -/// maximum, otherwise, returns 0. -#define _mm_cmpestrz(A, LA, B, LB, M) \ - (int)__builtin_ia32_pcmpestriz128((__v16qi)(__m128i)(A), (int)(LA), \ - (__v16qi)(__m128i)(B), (int)(LB), \ - (int)(M)) - -/* SSE4.2 Compare Packed Data -- Greater Than. */ -/// Compares each of the corresponding 64-bit values of the 128-bit -/// integer vectors to determine if the values in the first operand are -/// greater than those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPCMPGTQ / PCMPGTQ instruction. -/// -/// \param __V1 -/// A 128-bit integer vector. -/// \param __V2 -/// A 128-bit integer vector. -/// \returns A 128-bit integer vector containing the comparison results. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmpgt_epi64(__m128i __V1, __m128i __V2) -{ - return (__m128i)((__v2di)__V1 > (__v2di)__V2); -} - -/* SSE4.2 Accumulate CRC32. */ -/// Adds the unsigned integer operand to the CRC-32C checksum of the -/// unsigned char operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CRC32B instruction. -/// -/// \param __C -/// An unsigned integer operand to add to the CRC-32C checksum of operand -/// \a __D. -/// \param __D -/// An unsigned 8-bit integer operand used to compute the CRC-32C checksum. -/// \returns The result of adding operand \a __C to the CRC-32C checksum of -/// operand \a __D. -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_mm_crc32_u8(unsigned int __C, unsigned char __D) -{ - return __builtin_ia32_crc32qi(__C, __D); -} - -/// Adds the unsigned integer operand to the CRC-32C checksum of the -/// unsigned short operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CRC32W instruction. -/// -/// \param __C -/// An unsigned integer operand to add to the CRC-32C checksum of operand -/// \a __D. -/// \param __D -/// An unsigned 16-bit integer operand used to compute the CRC-32C checksum. -/// \returns The result of adding operand \a __C to the CRC-32C checksum of -/// operand \a __D. -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_mm_crc32_u16(unsigned int __C, unsigned short __D) -{ - return __builtin_ia32_crc32hi(__C, __D); -} - -/// Adds the first unsigned integer operand to the CRC-32C checksum of -/// the second unsigned integer operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CRC32L instruction. -/// -/// \param __C -/// An unsigned integer operand to add to the CRC-32C checksum of operand -/// \a __D. -/// \param __D -/// An unsigned 32-bit integer operand used to compute the CRC-32C checksum. -/// \returns The result of adding operand \a __C to the CRC-32C checksum of -/// operand \a __D. -static __inline__ unsigned int __DEFAULT_FN_ATTRS -_mm_crc32_u32(unsigned int __C, unsigned int __D) -{ - return __builtin_ia32_crc32si(__C, __D); -} - -#ifdef __x86_64__ -/// Adds the unsigned integer operand to the CRC-32C checksum of the -/// unsigned 64-bit integer operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CRC32Q instruction. -/// -/// \param __C -/// An unsigned integer operand to add to the CRC-32C checksum of operand -/// \a __D. -/// \param __D -/// An unsigned 64-bit integer operand used to compute the CRC-32C checksum. -/// \returns The result of adding operand \a __C to the CRC-32C checksum of -/// operand \a __D. -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -_mm_crc32_u64(unsigned long long __C, unsigned long long __D) -{ - return __builtin_ia32_crc32di(__C, __D); -} -#endif /* __x86_64__ */ - -#undef __DEFAULT_FN_ATTRS - -#include - -#endif /* __SMMINTRIN_H */ diff --git a/bin/app/data/cxx/include/stdalign.h b/bin/app/data/cxx/include/stdalign.h deleted file mode 100644 index 6ad25db4..00000000 --- a/bin/app/data/cxx/include/stdalign.h +++ /dev/null @@ -1,21 +0,0 @@ -/*===---- stdalign.h - Standard header for alignment ------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __STDALIGN_H -#define __STDALIGN_H - -#ifndef __cplusplus -#define alignas _Alignas -#define alignof _Alignof -#endif - -#define __alignas_is_defined 1 -#define __alignof_is_defined 1 - -#endif /* __STDALIGN_H */ diff --git a/bin/app/data/cxx/include/stdarg.h b/bin/app/data/cxx/include/stdarg.h deleted file mode 100644 index 0bc39408..00000000 --- a/bin/app/data/cxx/include/stdarg.h +++ /dev/null @@ -1,35 +0,0 @@ -/*===---- stdarg.h - Variable argument handling ----------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __STDARG_H -#define __STDARG_H - -#ifndef _VA_LIST -typedef __builtin_va_list va_list; -#define _VA_LIST -#endif -#define va_start(ap, param) __builtin_va_start(ap, param) -#define va_end(ap) __builtin_va_end(ap) -#define va_arg(ap, type) __builtin_va_arg(ap, type) - -/* GCC always defines __va_copy, but does not define va_copy unless in c99 mode - * or -ansi is not specified, since it was not part of C90. - */ -#define __va_copy(d,s) __builtin_va_copy(d,s) - -#if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L || !defined(__STRICT_ANSI__) -#define va_copy(dest, src) __builtin_va_copy(dest, src) -#endif - -#ifndef __GNUC_VA_LIST -#define __GNUC_VA_LIST 1 -typedef __builtin_va_list __gnuc_va_list; -#endif - -#endif /* __STDARG_H */ diff --git a/bin/app/data/cxx/include/stdatomic.h b/bin/app/data/cxx/include/stdatomic.h deleted file mode 100644 index 665551ea..00000000 --- a/bin/app/data/cxx/include/stdatomic.h +++ /dev/null @@ -1,176 +0,0 @@ -/*===---- stdatomic.h - Standard header for atomic types and operations -----=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __CLANG_STDATOMIC_H -#define __CLANG_STDATOMIC_H - -/* If we're hosted, fall back to the system's stdatomic.h. FreeBSD, for - * example, already has a Clang-compatible stdatomic.h header. - */ -#if __STDC_HOSTED__ && __has_include_next() -# include_next -#else - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* 7.17.1 Introduction */ - -#define ATOMIC_BOOL_LOCK_FREE __CLANG_ATOMIC_BOOL_LOCK_FREE -#define ATOMIC_CHAR_LOCK_FREE __CLANG_ATOMIC_CHAR_LOCK_FREE -#define ATOMIC_CHAR16_T_LOCK_FREE __CLANG_ATOMIC_CHAR16_T_LOCK_FREE -#define ATOMIC_CHAR32_T_LOCK_FREE __CLANG_ATOMIC_CHAR32_T_LOCK_FREE -#define ATOMIC_WCHAR_T_LOCK_FREE __CLANG_ATOMIC_WCHAR_T_LOCK_FREE -#define ATOMIC_SHORT_LOCK_FREE __CLANG_ATOMIC_SHORT_LOCK_FREE -#define ATOMIC_INT_LOCK_FREE __CLANG_ATOMIC_INT_LOCK_FREE -#define ATOMIC_LONG_LOCK_FREE __CLANG_ATOMIC_LONG_LOCK_FREE -#define ATOMIC_LLONG_LOCK_FREE __CLANG_ATOMIC_LLONG_LOCK_FREE -#define ATOMIC_POINTER_LOCK_FREE __CLANG_ATOMIC_POINTER_LOCK_FREE - -/* 7.17.2 Initialization */ - -#define ATOMIC_VAR_INIT(value) (value) -#define atomic_init __c11_atomic_init - -/* 7.17.3 Order and consistency */ - -typedef enum memory_order { - memory_order_relaxed = __ATOMIC_RELAXED, - memory_order_consume = __ATOMIC_CONSUME, - memory_order_acquire = __ATOMIC_ACQUIRE, - memory_order_release = __ATOMIC_RELEASE, - memory_order_acq_rel = __ATOMIC_ACQ_REL, - memory_order_seq_cst = __ATOMIC_SEQ_CST -} memory_order; - -#define kill_dependency(y) (y) - -/* 7.17.4 Fences */ - -/* These should be provided by the libc implementation. */ -void atomic_thread_fence(memory_order); -void atomic_signal_fence(memory_order); - -#define atomic_thread_fence(order) __c11_atomic_thread_fence(order) -#define atomic_signal_fence(order) __c11_atomic_signal_fence(order) - -/* 7.17.5 Lock-free property */ - -#define atomic_is_lock_free(obj) __c11_atomic_is_lock_free(sizeof(*(obj))) - -/* 7.17.6 Atomic integer types */ - -#ifdef __cplusplus -typedef _Atomic(bool) atomic_bool; -#else -typedef _Atomic(_Bool) atomic_bool; -#endif -typedef _Atomic(char) atomic_char; -typedef _Atomic(signed char) atomic_schar; -typedef _Atomic(unsigned char) atomic_uchar; -typedef _Atomic(short) atomic_short; -typedef _Atomic(unsigned short) atomic_ushort; -typedef _Atomic(int) atomic_int; -typedef _Atomic(unsigned int) atomic_uint; -typedef _Atomic(long) atomic_long; -typedef _Atomic(unsigned long) atomic_ulong; -typedef _Atomic(long long) atomic_llong; -typedef _Atomic(unsigned long long) atomic_ullong; -typedef _Atomic(uint_least16_t) atomic_char16_t; -typedef _Atomic(uint_least32_t) atomic_char32_t; -typedef _Atomic(wchar_t) atomic_wchar_t; -typedef _Atomic(int_least8_t) atomic_int_least8_t; -typedef _Atomic(uint_least8_t) atomic_uint_least8_t; -typedef _Atomic(int_least16_t) atomic_int_least16_t; -typedef _Atomic(uint_least16_t) atomic_uint_least16_t; -typedef _Atomic(int_least32_t) atomic_int_least32_t; -typedef _Atomic(uint_least32_t) atomic_uint_least32_t; -typedef _Atomic(int_least64_t) atomic_int_least64_t; -typedef _Atomic(uint_least64_t) atomic_uint_least64_t; -typedef _Atomic(int_fast8_t) atomic_int_fast8_t; -typedef _Atomic(uint_fast8_t) atomic_uint_fast8_t; -typedef _Atomic(int_fast16_t) atomic_int_fast16_t; -typedef _Atomic(uint_fast16_t) atomic_uint_fast16_t; -typedef _Atomic(int_fast32_t) atomic_int_fast32_t; -typedef _Atomic(uint_fast32_t) atomic_uint_fast32_t; -typedef _Atomic(int_fast64_t) atomic_int_fast64_t; -typedef _Atomic(uint_fast64_t) atomic_uint_fast64_t; -typedef _Atomic(intptr_t) atomic_intptr_t; -typedef _Atomic(uintptr_t) atomic_uintptr_t; -typedef _Atomic(size_t) atomic_size_t; -typedef _Atomic(ptrdiff_t) atomic_ptrdiff_t; -typedef _Atomic(intmax_t) atomic_intmax_t; -typedef _Atomic(uintmax_t) atomic_uintmax_t; - -/* 7.17.7 Operations on atomic types */ - -#define atomic_store(object, desired) __c11_atomic_store(object, desired, __ATOMIC_SEQ_CST) -#define atomic_store_explicit __c11_atomic_store - -#define atomic_load(object) __c11_atomic_load(object, __ATOMIC_SEQ_CST) -#define atomic_load_explicit __c11_atomic_load - -#define atomic_exchange(object, desired) __c11_atomic_exchange(object, desired, __ATOMIC_SEQ_CST) -#define atomic_exchange_explicit __c11_atomic_exchange - -#define atomic_compare_exchange_strong(object, expected, desired) __c11_atomic_compare_exchange_strong(object, expected, desired, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) -#define atomic_compare_exchange_strong_explicit __c11_atomic_compare_exchange_strong - -#define atomic_compare_exchange_weak(object, expected, desired) __c11_atomic_compare_exchange_weak(object, expected, desired, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) -#define atomic_compare_exchange_weak_explicit __c11_atomic_compare_exchange_weak - -#define atomic_fetch_add(object, operand) __c11_atomic_fetch_add(object, operand, __ATOMIC_SEQ_CST) -#define atomic_fetch_add_explicit __c11_atomic_fetch_add - -#define atomic_fetch_sub(object, operand) __c11_atomic_fetch_sub(object, operand, __ATOMIC_SEQ_CST) -#define atomic_fetch_sub_explicit __c11_atomic_fetch_sub - -#define atomic_fetch_or(object, operand) __c11_atomic_fetch_or(object, operand, __ATOMIC_SEQ_CST) -#define atomic_fetch_or_explicit __c11_atomic_fetch_or - -#define atomic_fetch_xor(object, operand) __c11_atomic_fetch_xor(object, operand, __ATOMIC_SEQ_CST) -#define atomic_fetch_xor_explicit __c11_atomic_fetch_xor - -#define atomic_fetch_and(object, operand) __c11_atomic_fetch_and(object, operand, __ATOMIC_SEQ_CST) -#define atomic_fetch_and_explicit __c11_atomic_fetch_and - -/* 7.17.8 Atomic flag type and operations */ - -typedef struct atomic_flag { atomic_bool _Value; } atomic_flag; - -#define ATOMIC_FLAG_INIT { 0 } - -/* These should be provided by the libc implementation. */ -#ifdef __cplusplus -bool atomic_flag_test_and_set(volatile atomic_flag *); -bool atomic_flag_test_and_set_explicit(volatile atomic_flag *, memory_order); -#else -_Bool atomic_flag_test_and_set(volatile atomic_flag *); -_Bool atomic_flag_test_and_set_explicit(volatile atomic_flag *, memory_order); -#endif -void atomic_flag_clear(volatile atomic_flag *); -void atomic_flag_clear_explicit(volatile atomic_flag *, memory_order); - -#define atomic_flag_test_and_set(object) __c11_atomic_exchange(&(object)->_Value, 1, __ATOMIC_SEQ_CST) -#define atomic_flag_test_and_set_explicit(object, order) __c11_atomic_exchange(&(object)->_Value, 1, order) - -#define atomic_flag_clear(object) __c11_atomic_store(&(object)->_Value, 0, __ATOMIC_SEQ_CST) -#define atomic_flag_clear_explicit(object, order) __c11_atomic_store(&(object)->_Value, 0, order) - -#ifdef __cplusplus -} -#endif - -#endif /* __STDC_HOSTED__ */ -#endif /* __CLANG_STDATOMIC_H */ - diff --git a/bin/app/data/cxx/include/stdbool.h b/bin/app/data/cxx/include/stdbool.h deleted file mode 100644 index 2525363d..00000000 --- a/bin/app/data/cxx/include/stdbool.h +++ /dev/null @@ -1,31 +0,0 @@ -/*===---- stdbool.h - Standard header for booleans -------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __STDBOOL_H -#define __STDBOOL_H - -/* Don't define bool, true, and false in C++, except as a GNU extension. */ -#ifndef __cplusplus -#define bool _Bool -#define true 1 -#define false 0 -#elif defined(__GNUC__) && !defined(__STRICT_ANSI__) -/* Define _Bool as a GNU extension. */ -#define _Bool bool -#if __cplusplus < 201103L -/* For C++98, define bool, false, true as a GNU extension. */ -#define bool bool -#define false false -#define true true -#endif -#endif - -#define __bool_true_false_are_defined 1 - -#endif /* __STDBOOL_H */ diff --git a/bin/app/data/cxx/include/stddef.h b/bin/app/data/cxx/include/stddef.h deleted file mode 100644 index 15acd442..00000000 --- a/bin/app/data/cxx/include/stddef.h +++ /dev/null @@ -1,121 +0,0 @@ -/*===---- stddef.h - Basic type definitions --------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined(__STDDEF_H) || defined(__need_ptrdiff_t) || \ - defined(__need_size_t) || defined(__need_wchar_t) || \ - defined(__need_NULL) || defined(__need_wint_t) - -#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ - !defined(__need_wchar_t) && !defined(__need_NULL) && \ - !defined(__need_wint_t) -/* Always define miscellaneous pieces when modules are available. */ -#if !__has_feature(modules) -#define __STDDEF_H -#endif -#define __need_ptrdiff_t -#define __need_size_t -#define __need_wchar_t -#define __need_NULL -#define __need_STDDEF_H_misc -/* __need_wint_t is intentionally not defined here. */ -#endif - -#if defined(__need_ptrdiff_t) -#if !defined(_PTRDIFF_T) || __has_feature(modules) -/* Always define ptrdiff_t when modules are available. */ -#if !__has_feature(modules) -#define _PTRDIFF_T -#endif -typedef __PTRDIFF_TYPE__ ptrdiff_t; -#endif -#undef __need_ptrdiff_t -#endif /* defined(__need_ptrdiff_t) */ - -#if defined(__need_size_t) -#if !defined(_SIZE_T) || __has_feature(modules) -/* Always define size_t when modules are available. */ -#if !__has_feature(modules) -#define _SIZE_T -#endif -typedef __SIZE_TYPE__ size_t; -#endif -#undef __need_size_t -#endif /*defined(__need_size_t) */ - -#if defined(__need_STDDEF_H_misc) -/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is - * enabled. */ -#if (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 && \ - !defined(_RSIZE_T)) || __has_feature(modules) -/* Always define rsize_t when modules are available. */ -#if !__has_feature(modules) -#define _RSIZE_T -#endif -typedef __SIZE_TYPE__ rsize_t; -#endif -#endif /* defined(__need_STDDEF_H_misc) */ - -#if defined(__need_wchar_t) -#ifndef __cplusplus -/* Always define wchar_t when modules are available. */ -#if !defined(_WCHAR_T) || __has_feature(modules) -#if !__has_feature(modules) -#define _WCHAR_T -#if defined(_MSC_EXTENSIONS) -#define _WCHAR_T_DEFINED -#endif -#endif -typedef __WCHAR_TYPE__ wchar_t; -#endif -#endif -#undef __need_wchar_t -#endif /* defined(__need_wchar_t) */ - -#if defined(__need_NULL) -#undef NULL -#ifdef __cplusplus -# if !defined(__MINGW32__) && !defined(_MSC_VER) -# define NULL __null -# else -# define NULL 0 -# endif -#else -# define NULL ((void*)0) -#endif -#ifdef __cplusplus -#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED) -namespace std { typedef decltype(nullptr) nullptr_t; } -using ::std::nullptr_t; -#endif -#endif -#undef __need_NULL -#endif /* defined(__need_NULL) */ - -#if defined(__need_STDDEF_H_misc) -#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L -#include "__stddef_max_align_t.h" -#endif -#define offsetof(t, d) __builtin_offsetof(t, d) -#undef __need_STDDEF_H_misc -#endif /* defined(__need_STDDEF_H_misc) */ - -/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use -__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ -#if defined(__need_wint_t) -/* Always define wint_t when modules are available. */ -#if !defined(_WINT_T) || __has_feature(modules) -#if !__has_feature(modules) -#define _WINT_T -#endif -typedef __WINT_TYPE__ wint_t; -#endif -#undef __need_wint_t -#endif /* __need_wint_t */ - -#endif diff --git a/bin/app/data/cxx/include/stdint.h b/bin/app/data/cxx/include/stdint.h deleted file mode 100644 index 192f653e..00000000 --- a/bin/app/data/cxx/include/stdint.h +++ /dev/null @@ -1,693 +0,0 @@ -/*===---- stdint.h - Standard header for sized integer types --------------===*\ - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * -\*===----------------------------------------------------------------------===*/ - -#ifndef __CLANG_STDINT_H -// AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T -// is defined until an inclusion of it without _STD_TYPES_T occurs, in which -// case the header guard macro is defined. -#if !defined(_AIX) || !defined(_STD_TYPES_T) || !defined(__STDC_HOSTED__) -#define __CLANG_STDINT_H -#endif - -/* If we're hosted, fall back to the system's stdint.h, which might have - * additional definitions. - */ -#if __STDC_HOSTED__ && __has_include_next() - -// C99 7.18.3 Limits of other integer types -// -// Footnote 219, 220: C++ implementations should define these macros only when -// __STDC_LIMIT_MACROS is defined before is included. -// -// Footnote 222: C++ implementations should define these macros only when -// __STDC_CONSTANT_MACROS is defined before is included. -// -// C++11 [cstdint.syn]p2: -// -// The macros defined by are provided unconditionally. In particular, -// the symbols __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS (mentioned in -// footnotes 219, 220, and 222 in the C standard) play no role in C++. -// -// C11 removed the problematic footnotes. -// -// Work around this inconsistency by always defining those macros in C++ mode, -// so that a C library implementation which follows the C99 standard can be -// used in C++. -# ifdef __cplusplus -# if !defined(__STDC_LIMIT_MACROS) -# define __STDC_LIMIT_MACROS -# define __STDC_LIMIT_MACROS_DEFINED_BY_CLANG -# endif -# if !defined(__STDC_CONSTANT_MACROS) -# define __STDC_CONSTANT_MACROS -# define __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG -# endif -# endif - -# include_next - -# ifdef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG -# undef __STDC_LIMIT_MACROS -# undef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG -# endif -# ifdef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG -# undef __STDC_CONSTANT_MACROS -# undef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG -# endif - -#else - -/* C99 7.18.1.1 Exact-width integer types. - * C99 7.18.1.2 Minimum-width integer types. - * C99 7.18.1.3 Fastest minimum-width integer types. - * - * The standard requires that exact-width type be defined for 8-, 16-, 32-, and - * 64-bit types if they are implemented. Other exact width types are optional. - * This implementation defines an exact-width types for every integer width - * that is represented in the standard integer types. - * - * The standard also requires minimum-width types be defined for 8-, 16-, 32-, - * and 64-bit widths regardless of whether there are corresponding exact-width - * types. - * - * To accommodate targets that are missing types that are exactly 8, 16, 32, or - * 64 bits wide, this implementation takes an approach of cascading - * redefinitions, redefining __int_leastN_t to successively smaller exact-width - * types. It is therefore important that the types are defined in order of - * descending widths. - * - * We currently assume that the minimum-width types and the fastest - * minimum-width types are the same. This is allowed by the standard, but is - * suboptimal. - * - * In violation of the standard, some targets do not implement a type that is - * wide enough to represent all of the required widths (8-, 16-, 32-, 64-bit). - * To accommodate these targets, a required minimum-width type is only - * defined if there exists an exact-width type of equal or greater width. - */ - -#ifdef __INT64_TYPE__ -# ifndef __int8_t_defined /* glibc sys/types.h also defines int64_t*/ -typedef __INT64_TYPE__ int64_t; -# endif /* __int8_t_defined */ -typedef __UINT64_TYPE__ uint64_t; -# define __int_least64_t int64_t -# define __uint_least64_t uint64_t -# define __int_least32_t int64_t -# define __uint_least32_t uint64_t -# define __int_least16_t int64_t -# define __uint_least16_t uint64_t -# define __int_least8_t int64_t -# define __uint_least8_t uint64_t -#endif /* __INT64_TYPE__ */ - -#ifdef __int_least64_t -typedef __int_least64_t int_least64_t; -typedef __uint_least64_t uint_least64_t; -typedef __int_least64_t int_fast64_t; -typedef __uint_least64_t uint_fast64_t; -#endif /* __int_least64_t */ - -#ifdef __INT56_TYPE__ -typedef __INT56_TYPE__ int56_t; -typedef __UINT56_TYPE__ uint56_t; -typedef int56_t int_least56_t; -typedef uint56_t uint_least56_t; -typedef int56_t int_fast56_t; -typedef uint56_t uint_fast56_t; -# define __int_least32_t int56_t -# define __uint_least32_t uint56_t -# define __int_least16_t int56_t -# define __uint_least16_t uint56_t -# define __int_least8_t int56_t -# define __uint_least8_t uint56_t -#endif /* __INT56_TYPE__ */ - - -#ifdef __INT48_TYPE__ -typedef __INT48_TYPE__ int48_t; -typedef __UINT48_TYPE__ uint48_t; -typedef int48_t int_least48_t; -typedef uint48_t uint_least48_t; -typedef int48_t int_fast48_t; -typedef uint48_t uint_fast48_t; -# define __int_least32_t int48_t -# define __uint_least32_t uint48_t -# define __int_least16_t int48_t -# define __uint_least16_t uint48_t -# define __int_least8_t int48_t -# define __uint_least8_t uint48_t -#endif /* __INT48_TYPE__ */ - - -#ifdef __INT40_TYPE__ -typedef __INT40_TYPE__ int40_t; -typedef __UINT40_TYPE__ uint40_t; -typedef int40_t int_least40_t; -typedef uint40_t uint_least40_t; -typedef int40_t int_fast40_t; -typedef uint40_t uint_fast40_t; -# define __int_least32_t int40_t -# define __uint_least32_t uint40_t -# define __int_least16_t int40_t -# define __uint_least16_t uint40_t -# define __int_least8_t int40_t -# define __uint_least8_t uint40_t -#endif /* __INT40_TYPE__ */ - - -#ifdef __INT32_TYPE__ - -# ifndef __int8_t_defined /* glibc sys/types.h also defines int32_t*/ -typedef __INT32_TYPE__ int32_t; -# endif /* __int8_t_defined */ - -# ifndef __uint32_t_defined /* more glibc compatibility */ -# define __uint32_t_defined -typedef __UINT32_TYPE__ uint32_t; -# endif /* __uint32_t_defined */ - -# define __int_least32_t int32_t -# define __uint_least32_t uint32_t -# define __int_least16_t int32_t -# define __uint_least16_t uint32_t -# define __int_least8_t int32_t -# define __uint_least8_t uint32_t -#endif /* __INT32_TYPE__ */ - -#ifdef __int_least32_t -typedef __int_least32_t int_least32_t; -typedef __uint_least32_t uint_least32_t; -typedef __int_least32_t int_fast32_t; -typedef __uint_least32_t uint_fast32_t; -#endif /* __int_least32_t */ - -#ifdef __INT24_TYPE__ -typedef __INT24_TYPE__ int24_t; -typedef __UINT24_TYPE__ uint24_t; -typedef int24_t int_least24_t; -typedef uint24_t uint_least24_t; -typedef int24_t int_fast24_t; -typedef uint24_t uint_fast24_t; -# define __int_least16_t int24_t -# define __uint_least16_t uint24_t -# define __int_least8_t int24_t -# define __uint_least8_t uint24_t -#endif /* __INT24_TYPE__ */ - -#ifdef __INT16_TYPE__ -#ifndef __int8_t_defined /* glibc sys/types.h also defines int16_t*/ -typedef __INT16_TYPE__ int16_t; -#endif /* __int8_t_defined */ -typedef __UINT16_TYPE__ uint16_t; -# define __int_least16_t int16_t -# define __uint_least16_t uint16_t -# define __int_least8_t int16_t -# define __uint_least8_t uint16_t -#endif /* __INT16_TYPE__ */ - -#ifdef __int_least16_t -typedef __int_least16_t int_least16_t; -typedef __uint_least16_t uint_least16_t; -typedef __int_least16_t int_fast16_t; -typedef __uint_least16_t uint_fast16_t; -#endif /* __int_least16_t */ - - -#ifdef __INT8_TYPE__ -#ifndef __int8_t_defined /* glibc sys/types.h also defines int8_t*/ -typedef __INT8_TYPE__ int8_t; -#endif /* __int8_t_defined */ -typedef __UINT8_TYPE__ uint8_t; -# define __int_least8_t int8_t -# define __uint_least8_t uint8_t -#endif /* __INT8_TYPE__ */ - -#ifdef __int_least8_t -typedef __int_least8_t int_least8_t; -typedef __uint_least8_t uint_least8_t; -typedef __int_least8_t int_fast8_t; -typedef __uint_least8_t uint_fast8_t; -#endif /* __int_least8_t */ - -/* prevent glibc sys/types.h from defining conflicting types */ -#ifndef __int8_t_defined -# define __int8_t_defined -#endif /* __int8_t_defined */ - -/* C99 7.18.1.4 Integer types capable of holding object pointers. - */ -#define __stdint_join3(a,b,c) a ## b ## c - -#ifndef _INTPTR_T -#ifndef __intptr_t_defined -typedef __INTPTR_TYPE__ intptr_t; -#define __intptr_t_defined -#define _INTPTR_T -#endif -#endif - -#ifndef _UINTPTR_T -typedef __UINTPTR_TYPE__ uintptr_t; -#define _UINTPTR_T -#endif - -/* C99 7.18.1.5 Greatest-width integer types. - */ -typedef __INTMAX_TYPE__ intmax_t; -typedef __UINTMAX_TYPE__ uintmax_t; - -/* C99 7.18.4 Macros for minimum-width integer constants. - * - * The standard requires that integer constant macros be defined for all the - * minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width - * types are required, the corresponding integer constant macros are defined - * here. This implementation also defines minimum-width types for every other - * integer width that the target implements, so corresponding macros are - * defined below, too. - * - * These macros are defined using the same successive-shrinking approach as - * the type definitions above. It is likewise important that macros are defined - * in order of decending width. - * - * Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the - * claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). - */ - -#define __int_c_join(a, b) a ## b -#define __int_c(v, suffix) __int_c_join(v, suffix) -#define __uint_c(v, suffix) __int_c_join(v##U, suffix) - - -#ifdef __INT64_TYPE__ -# ifdef __INT64_C_SUFFIX__ -# define __int64_c_suffix __INT64_C_SUFFIX__ -# define __int32_c_suffix __INT64_C_SUFFIX__ -# define __int16_c_suffix __INT64_C_SUFFIX__ -# define __int8_c_suffix __INT64_C_SUFFIX__ -# else -# undef __int64_c_suffix -# undef __int32_c_suffix -# undef __int16_c_suffix -# undef __int8_c_suffix -# endif /* __INT64_C_SUFFIX__ */ -#endif /* __INT64_TYPE__ */ - -#ifdef __int_least64_t -# ifdef __int64_c_suffix -# define INT64_C(v) __int_c(v, __int64_c_suffix) -# define UINT64_C(v) __uint_c(v, __int64_c_suffix) -# else -# define INT64_C(v) v -# define UINT64_C(v) v ## U -# endif /* __int64_c_suffix */ -#endif /* __int_least64_t */ - - -#ifdef __INT56_TYPE__ -# ifdef __INT56_C_SUFFIX__ -# define INT56_C(v) __int_c(v, __INT56_C_SUFFIX__) -# define UINT56_C(v) __uint_c(v, __INT56_C_SUFFIX__) -# define __int32_c_suffix __INT56_C_SUFFIX__ -# define __int16_c_suffix __INT56_C_SUFFIX__ -# define __int8_c_suffix __INT56_C_SUFFIX__ -# else -# define INT56_C(v) v -# define UINT56_C(v) v ## U -# undef __int32_c_suffix -# undef __int16_c_suffix -# undef __int8_c_suffix -# endif /* __INT56_C_SUFFIX__ */ -#endif /* __INT56_TYPE__ */ - - -#ifdef __INT48_TYPE__ -# ifdef __INT48_C_SUFFIX__ -# define INT48_C(v) __int_c(v, __INT48_C_SUFFIX__) -# define UINT48_C(v) __uint_c(v, __INT48_C_SUFFIX__) -# define __int32_c_suffix __INT48_C_SUFFIX__ -# define __int16_c_suffix __INT48_C_SUFFIX__ -# define __int8_c_suffix __INT48_C_SUFFIX__ -# else -# define INT48_C(v) v -# define UINT48_C(v) v ## U -# undef __int32_c_suffix -# undef __int16_c_suffix -# undef __int8_c_suffix -# endif /* __INT48_C_SUFFIX__ */ -#endif /* __INT48_TYPE__ */ - - -#ifdef __INT40_TYPE__ -# ifdef __INT40_C_SUFFIX__ -# define INT40_C(v) __int_c(v, __INT40_C_SUFFIX__) -# define UINT40_C(v) __uint_c(v, __INT40_C_SUFFIX__) -# define __int32_c_suffix __INT40_C_SUFFIX__ -# define __int16_c_suffix __INT40_C_SUFFIX__ -# define __int8_c_suffix __INT40_C_SUFFIX__ -# else -# define INT40_C(v) v -# define UINT40_C(v) v ## U -# undef __int32_c_suffix -# undef __int16_c_suffix -# undef __int8_c_suffix -# endif /* __INT40_C_SUFFIX__ */ -#endif /* __INT40_TYPE__ */ - - -#ifdef __INT32_TYPE__ -# ifdef __INT32_C_SUFFIX__ -# define __int32_c_suffix __INT32_C_SUFFIX__ -# define __int16_c_suffix __INT32_C_SUFFIX__ -# define __int8_c_suffix __INT32_C_SUFFIX__ -#else -# undef __int32_c_suffix -# undef __int16_c_suffix -# undef __int8_c_suffix -# endif /* __INT32_C_SUFFIX__ */ -#endif /* __INT32_TYPE__ */ - -#ifdef __int_least32_t -# ifdef __int32_c_suffix -# define INT32_C(v) __int_c(v, __int32_c_suffix) -# define UINT32_C(v) __uint_c(v, __int32_c_suffix) -# else -# define INT32_C(v) v -# define UINT32_C(v) v ## U -# endif /* __int32_c_suffix */ -#endif /* __int_least32_t */ - - -#ifdef __INT24_TYPE__ -# ifdef __INT24_C_SUFFIX__ -# define INT24_C(v) __int_c(v, __INT24_C_SUFFIX__) -# define UINT24_C(v) __uint_c(v, __INT24_C_SUFFIX__) -# define __int16_c_suffix __INT24_C_SUFFIX__ -# define __int8_c_suffix __INT24_C_SUFFIX__ -# else -# define INT24_C(v) v -# define UINT24_C(v) v ## U -# undef __int16_c_suffix -# undef __int8_c_suffix -# endif /* __INT24_C_SUFFIX__ */ -#endif /* __INT24_TYPE__ */ - - -#ifdef __INT16_TYPE__ -# ifdef __INT16_C_SUFFIX__ -# define __int16_c_suffix __INT16_C_SUFFIX__ -# define __int8_c_suffix __INT16_C_SUFFIX__ -#else -# undef __int16_c_suffix -# undef __int8_c_suffix -# endif /* __INT16_C_SUFFIX__ */ -#endif /* __INT16_TYPE__ */ - -#ifdef __int_least16_t -# ifdef __int16_c_suffix -# define INT16_C(v) __int_c(v, __int16_c_suffix) -# define UINT16_C(v) __uint_c(v, __int16_c_suffix) -# else -# define INT16_C(v) v -# define UINT16_C(v) v ## U -# endif /* __int16_c_suffix */ -#endif /* __int_least16_t */ - - -#ifdef __INT8_TYPE__ -# ifdef __INT8_C_SUFFIX__ -# define __int8_c_suffix __INT8_C_SUFFIX__ -#else -# undef __int8_c_suffix -# endif /* __INT8_C_SUFFIX__ */ -#endif /* __INT8_TYPE__ */ - -#ifdef __int_least8_t -# ifdef __int8_c_suffix -# define INT8_C(v) __int_c(v, __int8_c_suffix) -# define UINT8_C(v) __uint_c(v, __int8_c_suffix) -# else -# define INT8_C(v) v -# define UINT8_C(v) v ## U -# endif /* __int8_c_suffix */ -#endif /* __int_least8_t */ - - -/* C99 7.18.2.1 Limits of exact-width integer types. - * C99 7.18.2.2 Limits of minimum-width integer types. - * C99 7.18.2.3 Limits of fastest minimum-width integer types. - * - * The presence of limit macros are completely optional in C99. This - * implementation defines limits for all of the types (exact- and - * minimum-width) that it defines above, using the limits of the minimum-width - * type for any types that do not have exact-width representations. - * - * As in the type definitions, this section takes an approach of - * successive-shrinking to determine which limits to use for the standard (8, - * 16, 32, 64) bit widths when they don't have exact representations. It is - * therefore important that the definitions be kept in order of decending - * widths. - * - * Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the - * claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). - */ - -#ifdef __INT64_TYPE__ -# define INT64_MAX INT64_C( 9223372036854775807) -# define INT64_MIN (-INT64_C( 9223372036854775807)-1) -# define UINT64_MAX UINT64_C(18446744073709551615) -# define __INT_LEAST64_MIN INT64_MIN -# define __INT_LEAST64_MAX INT64_MAX -# define __UINT_LEAST64_MAX UINT64_MAX -# define __INT_LEAST32_MIN INT64_MIN -# define __INT_LEAST32_MAX INT64_MAX -# define __UINT_LEAST32_MAX UINT64_MAX -# define __INT_LEAST16_MIN INT64_MIN -# define __INT_LEAST16_MAX INT64_MAX -# define __UINT_LEAST16_MAX UINT64_MAX -# define __INT_LEAST8_MIN INT64_MIN -# define __INT_LEAST8_MAX INT64_MAX -# define __UINT_LEAST8_MAX UINT64_MAX -#endif /* __INT64_TYPE__ */ - -#ifdef __INT_LEAST64_MIN -# define INT_LEAST64_MIN __INT_LEAST64_MIN -# define INT_LEAST64_MAX __INT_LEAST64_MAX -# define UINT_LEAST64_MAX __UINT_LEAST64_MAX -# define INT_FAST64_MIN __INT_LEAST64_MIN -# define INT_FAST64_MAX __INT_LEAST64_MAX -# define UINT_FAST64_MAX __UINT_LEAST64_MAX -#endif /* __INT_LEAST64_MIN */ - - -#ifdef __INT56_TYPE__ -# define INT56_MAX INT56_C(36028797018963967) -# define INT56_MIN (-INT56_C(36028797018963967)-1) -# define UINT56_MAX UINT56_C(72057594037927935) -# define INT_LEAST56_MIN INT56_MIN -# define INT_LEAST56_MAX INT56_MAX -# define UINT_LEAST56_MAX UINT56_MAX -# define INT_FAST56_MIN INT56_MIN -# define INT_FAST56_MAX INT56_MAX -# define UINT_FAST56_MAX UINT56_MAX -# define __INT_LEAST32_MIN INT56_MIN -# define __INT_LEAST32_MAX INT56_MAX -# define __UINT_LEAST32_MAX UINT56_MAX -# define __INT_LEAST16_MIN INT56_MIN -# define __INT_LEAST16_MAX INT56_MAX -# define __UINT_LEAST16_MAX UINT56_MAX -# define __INT_LEAST8_MIN INT56_MIN -# define __INT_LEAST8_MAX INT56_MAX -# define __UINT_LEAST8_MAX UINT56_MAX -#endif /* __INT56_TYPE__ */ - - -#ifdef __INT48_TYPE__ -# define INT48_MAX INT48_C(140737488355327) -# define INT48_MIN (-INT48_C(140737488355327)-1) -# define UINT48_MAX UINT48_C(281474976710655) -# define INT_LEAST48_MIN INT48_MIN -# define INT_LEAST48_MAX INT48_MAX -# define UINT_LEAST48_MAX UINT48_MAX -# define INT_FAST48_MIN INT48_MIN -# define INT_FAST48_MAX INT48_MAX -# define UINT_FAST48_MAX UINT48_MAX -# define __INT_LEAST32_MIN INT48_MIN -# define __INT_LEAST32_MAX INT48_MAX -# define __UINT_LEAST32_MAX UINT48_MAX -# define __INT_LEAST16_MIN INT48_MIN -# define __INT_LEAST16_MAX INT48_MAX -# define __UINT_LEAST16_MAX UINT48_MAX -# define __INT_LEAST8_MIN INT48_MIN -# define __INT_LEAST8_MAX INT48_MAX -# define __UINT_LEAST8_MAX UINT48_MAX -#endif /* __INT48_TYPE__ */ - - -#ifdef __INT40_TYPE__ -# define INT40_MAX INT40_C(549755813887) -# define INT40_MIN (-INT40_C(549755813887)-1) -# define UINT40_MAX UINT40_C(1099511627775) -# define INT_LEAST40_MIN INT40_MIN -# define INT_LEAST40_MAX INT40_MAX -# define UINT_LEAST40_MAX UINT40_MAX -# define INT_FAST40_MIN INT40_MIN -# define INT_FAST40_MAX INT40_MAX -# define UINT_FAST40_MAX UINT40_MAX -# define __INT_LEAST32_MIN INT40_MIN -# define __INT_LEAST32_MAX INT40_MAX -# define __UINT_LEAST32_MAX UINT40_MAX -# define __INT_LEAST16_MIN INT40_MIN -# define __INT_LEAST16_MAX INT40_MAX -# define __UINT_LEAST16_MAX UINT40_MAX -# define __INT_LEAST8_MIN INT40_MIN -# define __INT_LEAST8_MAX INT40_MAX -# define __UINT_LEAST8_MAX UINT40_MAX -#endif /* __INT40_TYPE__ */ - - -#ifdef __INT32_TYPE__ -# define INT32_MAX INT32_C(2147483647) -# define INT32_MIN (-INT32_C(2147483647)-1) -# define UINT32_MAX UINT32_C(4294967295) -# define __INT_LEAST32_MIN INT32_MIN -# define __INT_LEAST32_MAX INT32_MAX -# define __UINT_LEAST32_MAX UINT32_MAX -# define __INT_LEAST16_MIN INT32_MIN -# define __INT_LEAST16_MAX INT32_MAX -# define __UINT_LEAST16_MAX UINT32_MAX -# define __INT_LEAST8_MIN INT32_MIN -# define __INT_LEAST8_MAX INT32_MAX -# define __UINT_LEAST8_MAX UINT32_MAX -#endif /* __INT32_TYPE__ */ - -#ifdef __INT_LEAST32_MIN -# define INT_LEAST32_MIN __INT_LEAST32_MIN -# define INT_LEAST32_MAX __INT_LEAST32_MAX -# define UINT_LEAST32_MAX __UINT_LEAST32_MAX -# define INT_FAST32_MIN __INT_LEAST32_MIN -# define INT_FAST32_MAX __INT_LEAST32_MAX -# define UINT_FAST32_MAX __UINT_LEAST32_MAX -#endif /* __INT_LEAST32_MIN */ - - -#ifdef __INT24_TYPE__ -# define INT24_MAX INT24_C(8388607) -# define INT24_MIN (-INT24_C(8388607)-1) -# define UINT24_MAX UINT24_C(16777215) -# define INT_LEAST24_MIN INT24_MIN -# define INT_LEAST24_MAX INT24_MAX -# define UINT_LEAST24_MAX UINT24_MAX -# define INT_FAST24_MIN INT24_MIN -# define INT_FAST24_MAX INT24_MAX -# define UINT_FAST24_MAX UINT24_MAX -# define __INT_LEAST16_MIN INT24_MIN -# define __INT_LEAST16_MAX INT24_MAX -# define __UINT_LEAST16_MAX UINT24_MAX -# define __INT_LEAST8_MIN INT24_MIN -# define __INT_LEAST8_MAX INT24_MAX -# define __UINT_LEAST8_MAX UINT24_MAX -#endif /* __INT24_TYPE__ */ - - -#ifdef __INT16_TYPE__ -#define INT16_MAX INT16_C(32767) -#define INT16_MIN (-INT16_C(32767)-1) -#define UINT16_MAX UINT16_C(65535) -# define __INT_LEAST16_MIN INT16_MIN -# define __INT_LEAST16_MAX INT16_MAX -# define __UINT_LEAST16_MAX UINT16_MAX -# define __INT_LEAST8_MIN INT16_MIN -# define __INT_LEAST8_MAX INT16_MAX -# define __UINT_LEAST8_MAX UINT16_MAX -#endif /* __INT16_TYPE__ */ - -#ifdef __INT_LEAST16_MIN -# define INT_LEAST16_MIN __INT_LEAST16_MIN -# define INT_LEAST16_MAX __INT_LEAST16_MAX -# define UINT_LEAST16_MAX __UINT_LEAST16_MAX -# define INT_FAST16_MIN __INT_LEAST16_MIN -# define INT_FAST16_MAX __INT_LEAST16_MAX -# define UINT_FAST16_MAX __UINT_LEAST16_MAX -#endif /* __INT_LEAST16_MIN */ - - -#ifdef __INT8_TYPE__ -# define INT8_MAX INT8_C(127) -# define INT8_MIN (-INT8_C(127)-1) -# define UINT8_MAX UINT8_C(255) -# define __INT_LEAST8_MIN INT8_MIN -# define __INT_LEAST8_MAX INT8_MAX -# define __UINT_LEAST8_MAX UINT8_MAX -#endif /* __INT8_TYPE__ */ - -#ifdef __INT_LEAST8_MIN -# define INT_LEAST8_MIN __INT_LEAST8_MIN -# define INT_LEAST8_MAX __INT_LEAST8_MAX -# define UINT_LEAST8_MAX __UINT_LEAST8_MAX -# define INT_FAST8_MIN __INT_LEAST8_MIN -# define INT_FAST8_MAX __INT_LEAST8_MAX -# define UINT_FAST8_MAX __UINT_LEAST8_MAX -#endif /* __INT_LEAST8_MIN */ - -/* Some utility macros */ -#define __INTN_MIN(n) __stdint_join3( INT, n, _MIN) -#define __INTN_MAX(n) __stdint_join3( INT, n, _MAX) -#define __UINTN_MAX(n) __stdint_join3(UINT, n, _MAX) -#define __INTN_C(n, v) __stdint_join3( INT, n, _C(v)) -#define __UINTN_C(n, v) __stdint_join3(UINT, n, _C(v)) - -/* C99 7.18.2.4 Limits of integer types capable of holding object pointers. */ -/* C99 7.18.3 Limits of other integer types. */ - -#define INTPTR_MIN (-__INTPTR_MAX__-1) -#define INTPTR_MAX __INTPTR_MAX__ -#define UINTPTR_MAX __UINTPTR_MAX__ -#define PTRDIFF_MIN (-__PTRDIFF_MAX__-1) -#define PTRDIFF_MAX __PTRDIFF_MAX__ -#define SIZE_MAX __SIZE_MAX__ - -/* ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__ - * is enabled. */ -#if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 -#define RSIZE_MAX (SIZE_MAX >> 1) -#endif - -/* C99 7.18.2.5 Limits of greatest-width integer types. */ -#define INTMAX_MIN (-__INTMAX_MAX__-1) -#define INTMAX_MAX __INTMAX_MAX__ -#define UINTMAX_MAX __UINTMAX_MAX__ - -/* C99 7.18.3 Limits of other integer types. */ -#define SIG_ATOMIC_MIN __INTN_MIN(__SIG_ATOMIC_WIDTH__) -#define SIG_ATOMIC_MAX __INTN_MAX(__SIG_ATOMIC_WIDTH__) -#ifdef __WINT_UNSIGNED__ -# define WINT_MIN __UINTN_C(__WINT_WIDTH__, 0) -# define WINT_MAX __UINTN_MAX(__WINT_WIDTH__) -#else -# define WINT_MIN __INTN_MIN(__WINT_WIDTH__) -# define WINT_MAX __INTN_MAX(__WINT_WIDTH__) -#endif - -#ifndef WCHAR_MAX -# define WCHAR_MAX __WCHAR_MAX__ -#endif -#ifndef WCHAR_MIN -# if __WCHAR_MAX__ == __INTN_MAX(__WCHAR_WIDTH__) -# define WCHAR_MIN __INTN_MIN(__WCHAR_WIDTH__) -# else -# define WCHAR_MIN __UINTN_C(__WCHAR_WIDTH__, 0) -# endif -#endif - -/* 7.18.4.2 Macros for greatest-width integer constants. */ -#define INTMAX_C(v) __int_c(v, __INTMAX_C_SUFFIX__) -#define UINTMAX_C(v) __int_c(v, __UINTMAX_C_SUFFIX__) - -#endif /* __STDC_HOSTED__ */ -#endif /* __CLANG_STDINT_H */ diff --git a/bin/app/data/cxx/include/stdnoreturn.h b/bin/app/data/cxx/include/stdnoreturn.h deleted file mode 100644 index e83cd815..00000000 --- a/bin/app/data/cxx/include/stdnoreturn.h +++ /dev/null @@ -1,16 +0,0 @@ -/*===---- stdnoreturn.h - Standard header for noreturn macro ---------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __STDNORETURN_H -#define __STDNORETURN_H - -#define noreturn _Noreturn -#define __noreturn_is_defined 1 - -#endif /* __STDNORETURN_H */ diff --git a/bin/app/data/cxx/include/tbmintrin.h b/bin/app/data/cxx/include/tbmintrin.h deleted file mode 100644 index f4e848a1..00000000 --- a/bin/app/data/cxx/include/tbmintrin.h +++ /dev/null @@ -1,140 +0,0 @@ -/*===---- tbmintrin.h - TBM intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __X86INTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __TBMINTRIN_H -#define __TBMINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("tbm"))) - -#define __bextri_u32(a, b) \ - ((unsigned int)__builtin_ia32_bextri_u32((unsigned int)(a), \ - (unsigned int)(b))) - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__blcfill_u32(unsigned int __a) -{ - return __a & (__a + 1); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__blci_u32(unsigned int __a) -{ - return __a | ~(__a + 1); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__blcic_u32(unsigned int __a) -{ - return ~__a & (__a + 1); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__blcmsk_u32(unsigned int __a) -{ - return __a ^ (__a + 1); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__blcs_u32(unsigned int __a) -{ - return __a | (__a + 1); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__blsfill_u32(unsigned int __a) -{ - return __a | (__a - 1); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__blsic_u32(unsigned int __a) -{ - return ~__a | (__a - 1); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__t1mskc_u32(unsigned int __a) -{ - return ~__a | (__a + 1); -} - -static __inline__ unsigned int __DEFAULT_FN_ATTRS -__tzmsk_u32(unsigned int __a) -{ - return ~__a & (__a - 1); -} - -#ifdef __x86_64__ -#define __bextri_u64(a, b) \ - ((unsigned long long)__builtin_ia32_bextri_u64((unsigned long long)(a), \ - (unsigned long long)(b))) - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__blcfill_u64(unsigned long long __a) -{ - return __a & (__a + 1); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__blci_u64(unsigned long long __a) -{ - return __a | ~(__a + 1); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__blcic_u64(unsigned long long __a) -{ - return ~__a & (__a + 1); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__blcmsk_u64(unsigned long long __a) -{ - return __a ^ (__a + 1); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__blcs_u64(unsigned long long __a) -{ - return __a | (__a + 1); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__blsfill_u64(unsigned long long __a) -{ - return __a | (__a - 1); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__blsic_u64(unsigned long long __a) -{ - return ~__a | (__a - 1); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__t1mskc_u64(unsigned long long __a) -{ - return ~__a | (__a + 1); -} - -static __inline__ unsigned long long __DEFAULT_FN_ATTRS -__tzmsk_u64(unsigned long long __a) -{ - return ~__a & (__a - 1); -} -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif /* __TBMINTRIN_H */ diff --git a/bin/app/data/cxx/include/tgmath.h b/bin/app/data/cxx/include/tgmath.h deleted file mode 100644 index 7acf18b9..00000000 --- a/bin/app/data/cxx/include/tgmath.h +++ /dev/null @@ -1,1368 +0,0 @@ -/*===---- tgmath.h - Standard header for type generic math ----------------===*\ - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * -\*===----------------------------------------------------------------------===*/ - -#ifndef __CLANG_TGMATH_H -#define __CLANG_TGMATH_H - -/* C99 7.22 Type-generic math . */ -#include - -/* - * Allow additional definitions and implementation-defined values on Apple - * platforms. This is done after #include to avoid depcycle conflicts - * between libcxx and darwin in C++ modules builds. - */ -#if defined(__APPLE__) && __STDC_HOSTED__ && __has_include_next() -# include_next -#else - -/* C++ handles type genericity with overloading in math.h. */ -#ifndef __cplusplus -#include - -#define _TG_ATTRSp __attribute__((__overloadable__)) -#define _TG_ATTRS __attribute__((__overloadable__, __always_inline__)) - -// promotion - -typedef void _Argument_type_is_not_arithmetic; -static _Argument_type_is_not_arithmetic __tg_promote(...) - __attribute__((__unavailable__,__overloadable__)); -static double _TG_ATTRSp __tg_promote(int); -static double _TG_ATTRSp __tg_promote(unsigned int); -static double _TG_ATTRSp __tg_promote(long); -static double _TG_ATTRSp __tg_promote(unsigned long); -static double _TG_ATTRSp __tg_promote(long long); -static double _TG_ATTRSp __tg_promote(unsigned long long); -static float _TG_ATTRSp __tg_promote(float); -static double _TG_ATTRSp __tg_promote(double); -static long double _TG_ATTRSp __tg_promote(long double); -static float _Complex _TG_ATTRSp __tg_promote(float _Complex); -static double _Complex _TG_ATTRSp __tg_promote(double _Complex); -static long double _Complex _TG_ATTRSp __tg_promote(long double _Complex); - -#define __tg_promote1(__x) (__typeof__(__tg_promote(__x))) -#define __tg_promote2(__x, __y) (__typeof__(__tg_promote(__x) + \ - __tg_promote(__y))) -#define __tg_promote3(__x, __y, __z) (__typeof__(__tg_promote(__x) + \ - __tg_promote(__y) + \ - __tg_promote(__z))) - -// acos - -static float - _TG_ATTRS - __tg_acos(float __x) {return acosf(__x);} - -static double - _TG_ATTRS - __tg_acos(double __x) {return acos(__x);} - -static long double - _TG_ATTRS - __tg_acos(long double __x) {return acosl(__x);} - -static float _Complex - _TG_ATTRS - __tg_acos(float _Complex __x) {return cacosf(__x);} - -static double _Complex - _TG_ATTRS - __tg_acos(double _Complex __x) {return cacos(__x);} - -static long double _Complex - _TG_ATTRS - __tg_acos(long double _Complex __x) {return cacosl(__x);} - -#undef acos -#define acos(__x) __tg_acos(__tg_promote1((__x))(__x)) - -// asin - -static float - _TG_ATTRS - __tg_asin(float __x) {return asinf(__x);} - -static double - _TG_ATTRS - __tg_asin(double __x) {return asin(__x);} - -static long double - _TG_ATTRS - __tg_asin(long double __x) {return asinl(__x);} - -static float _Complex - _TG_ATTRS - __tg_asin(float _Complex __x) {return casinf(__x);} - -static double _Complex - _TG_ATTRS - __tg_asin(double _Complex __x) {return casin(__x);} - -static long double _Complex - _TG_ATTRS - __tg_asin(long double _Complex __x) {return casinl(__x);} - -#undef asin -#define asin(__x) __tg_asin(__tg_promote1((__x))(__x)) - -// atan - -static float - _TG_ATTRS - __tg_atan(float __x) {return atanf(__x);} - -static double - _TG_ATTRS - __tg_atan(double __x) {return atan(__x);} - -static long double - _TG_ATTRS - __tg_atan(long double __x) {return atanl(__x);} - -static float _Complex - _TG_ATTRS - __tg_atan(float _Complex __x) {return catanf(__x);} - -static double _Complex - _TG_ATTRS - __tg_atan(double _Complex __x) {return catan(__x);} - -static long double _Complex - _TG_ATTRS - __tg_atan(long double _Complex __x) {return catanl(__x);} - -#undef atan -#define atan(__x) __tg_atan(__tg_promote1((__x))(__x)) - -// acosh - -static float - _TG_ATTRS - __tg_acosh(float __x) {return acoshf(__x);} - -static double - _TG_ATTRS - __tg_acosh(double __x) {return acosh(__x);} - -static long double - _TG_ATTRS - __tg_acosh(long double __x) {return acoshl(__x);} - -static float _Complex - _TG_ATTRS - __tg_acosh(float _Complex __x) {return cacoshf(__x);} - -static double _Complex - _TG_ATTRS - __tg_acosh(double _Complex __x) {return cacosh(__x);} - -static long double _Complex - _TG_ATTRS - __tg_acosh(long double _Complex __x) {return cacoshl(__x);} - -#undef acosh -#define acosh(__x) __tg_acosh(__tg_promote1((__x))(__x)) - -// asinh - -static float - _TG_ATTRS - __tg_asinh(float __x) {return asinhf(__x);} - -static double - _TG_ATTRS - __tg_asinh(double __x) {return asinh(__x);} - -static long double - _TG_ATTRS - __tg_asinh(long double __x) {return asinhl(__x);} - -static float _Complex - _TG_ATTRS - __tg_asinh(float _Complex __x) {return casinhf(__x);} - -static double _Complex - _TG_ATTRS - __tg_asinh(double _Complex __x) {return casinh(__x);} - -static long double _Complex - _TG_ATTRS - __tg_asinh(long double _Complex __x) {return casinhl(__x);} - -#undef asinh -#define asinh(__x) __tg_asinh(__tg_promote1((__x))(__x)) - -// atanh - -static float - _TG_ATTRS - __tg_atanh(float __x) {return atanhf(__x);} - -static double - _TG_ATTRS - __tg_atanh(double __x) {return atanh(__x);} - -static long double - _TG_ATTRS - __tg_atanh(long double __x) {return atanhl(__x);} - -static float _Complex - _TG_ATTRS - __tg_atanh(float _Complex __x) {return catanhf(__x);} - -static double _Complex - _TG_ATTRS - __tg_atanh(double _Complex __x) {return catanh(__x);} - -static long double _Complex - _TG_ATTRS - __tg_atanh(long double _Complex __x) {return catanhl(__x);} - -#undef atanh -#define atanh(__x) __tg_atanh(__tg_promote1((__x))(__x)) - -// cos - -static float - _TG_ATTRS - __tg_cos(float __x) {return cosf(__x);} - -static double - _TG_ATTRS - __tg_cos(double __x) {return cos(__x);} - -static long double - _TG_ATTRS - __tg_cos(long double __x) {return cosl(__x);} - -static float _Complex - _TG_ATTRS - __tg_cos(float _Complex __x) {return ccosf(__x);} - -static double _Complex - _TG_ATTRS - __tg_cos(double _Complex __x) {return ccos(__x);} - -static long double _Complex - _TG_ATTRS - __tg_cos(long double _Complex __x) {return ccosl(__x);} - -#undef cos -#define cos(__x) __tg_cos(__tg_promote1((__x))(__x)) - -// sin - -static float - _TG_ATTRS - __tg_sin(float __x) {return sinf(__x);} - -static double - _TG_ATTRS - __tg_sin(double __x) {return sin(__x);} - -static long double - _TG_ATTRS - __tg_sin(long double __x) {return sinl(__x);} - -static float _Complex - _TG_ATTRS - __tg_sin(float _Complex __x) {return csinf(__x);} - -static double _Complex - _TG_ATTRS - __tg_sin(double _Complex __x) {return csin(__x);} - -static long double _Complex - _TG_ATTRS - __tg_sin(long double _Complex __x) {return csinl(__x);} - -#undef sin -#define sin(__x) __tg_sin(__tg_promote1((__x))(__x)) - -// tan - -static float - _TG_ATTRS - __tg_tan(float __x) {return tanf(__x);} - -static double - _TG_ATTRS - __tg_tan(double __x) {return tan(__x);} - -static long double - _TG_ATTRS - __tg_tan(long double __x) {return tanl(__x);} - -static float _Complex - _TG_ATTRS - __tg_tan(float _Complex __x) {return ctanf(__x);} - -static double _Complex - _TG_ATTRS - __tg_tan(double _Complex __x) {return ctan(__x);} - -static long double _Complex - _TG_ATTRS - __tg_tan(long double _Complex __x) {return ctanl(__x);} - -#undef tan -#define tan(__x) __tg_tan(__tg_promote1((__x))(__x)) - -// cosh - -static float - _TG_ATTRS - __tg_cosh(float __x) {return coshf(__x);} - -static double - _TG_ATTRS - __tg_cosh(double __x) {return cosh(__x);} - -static long double - _TG_ATTRS - __tg_cosh(long double __x) {return coshl(__x);} - -static float _Complex - _TG_ATTRS - __tg_cosh(float _Complex __x) {return ccoshf(__x);} - -static double _Complex - _TG_ATTRS - __tg_cosh(double _Complex __x) {return ccosh(__x);} - -static long double _Complex - _TG_ATTRS - __tg_cosh(long double _Complex __x) {return ccoshl(__x);} - -#undef cosh -#define cosh(__x) __tg_cosh(__tg_promote1((__x))(__x)) - -// sinh - -static float - _TG_ATTRS - __tg_sinh(float __x) {return sinhf(__x);} - -static double - _TG_ATTRS - __tg_sinh(double __x) {return sinh(__x);} - -static long double - _TG_ATTRS - __tg_sinh(long double __x) {return sinhl(__x);} - -static float _Complex - _TG_ATTRS - __tg_sinh(float _Complex __x) {return csinhf(__x);} - -static double _Complex - _TG_ATTRS - __tg_sinh(double _Complex __x) {return csinh(__x);} - -static long double _Complex - _TG_ATTRS - __tg_sinh(long double _Complex __x) {return csinhl(__x);} - -#undef sinh -#define sinh(__x) __tg_sinh(__tg_promote1((__x))(__x)) - -// tanh - -static float - _TG_ATTRS - __tg_tanh(float __x) {return tanhf(__x);} - -static double - _TG_ATTRS - __tg_tanh(double __x) {return tanh(__x);} - -static long double - _TG_ATTRS - __tg_tanh(long double __x) {return tanhl(__x);} - -static float _Complex - _TG_ATTRS - __tg_tanh(float _Complex __x) {return ctanhf(__x);} - -static double _Complex - _TG_ATTRS - __tg_tanh(double _Complex __x) {return ctanh(__x);} - -static long double _Complex - _TG_ATTRS - __tg_tanh(long double _Complex __x) {return ctanhl(__x);} - -#undef tanh -#define tanh(__x) __tg_tanh(__tg_promote1((__x))(__x)) - -// exp - -static float - _TG_ATTRS - __tg_exp(float __x) {return expf(__x);} - -static double - _TG_ATTRS - __tg_exp(double __x) {return exp(__x);} - -static long double - _TG_ATTRS - __tg_exp(long double __x) {return expl(__x);} - -static float _Complex - _TG_ATTRS - __tg_exp(float _Complex __x) {return cexpf(__x);} - -static double _Complex - _TG_ATTRS - __tg_exp(double _Complex __x) {return cexp(__x);} - -static long double _Complex - _TG_ATTRS - __tg_exp(long double _Complex __x) {return cexpl(__x);} - -#undef exp -#define exp(__x) __tg_exp(__tg_promote1((__x))(__x)) - -// log - -static float - _TG_ATTRS - __tg_log(float __x) {return logf(__x);} - -static double - _TG_ATTRS - __tg_log(double __x) {return log(__x);} - -static long double - _TG_ATTRS - __tg_log(long double __x) {return logl(__x);} - -static float _Complex - _TG_ATTRS - __tg_log(float _Complex __x) {return clogf(__x);} - -static double _Complex - _TG_ATTRS - __tg_log(double _Complex __x) {return clog(__x);} - -static long double _Complex - _TG_ATTRS - __tg_log(long double _Complex __x) {return clogl(__x);} - -#undef log -#define log(__x) __tg_log(__tg_promote1((__x))(__x)) - -// pow - -static float - _TG_ATTRS - __tg_pow(float __x, float __y) {return powf(__x, __y);} - -static double - _TG_ATTRS - __tg_pow(double __x, double __y) {return pow(__x, __y);} - -static long double - _TG_ATTRS - __tg_pow(long double __x, long double __y) {return powl(__x, __y);} - -static float _Complex - _TG_ATTRS - __tg_pow(float _Complex __x, float _Complex __y) {return cpowf(__x, __y);} - -static double _Complex - _TG_ATTRS - __tg_pow(double _Complex __x, double _Complex __y) {return cpow(__x, __y);} - -static long double _Complex - _TG_ATTRS - __tg_pow(long double _Complex __x, long double _Complex __y) - {return cpowl(__x, __y);} - -#undef pow -#define pow(__x, __y) __tg_pow(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y)) - -// sqrt - -static float - _TG_ATTRS - __tg_sqrt(float __x) {return sqrtf(__x);} - -static double - _TG_ATTRS - __tg_sqrt(double __x) {return sqrt(__x);} - -static long double - _TG_ATTRS - __tg_sqrt(long double __x) {return sqrtl(__x);} - -static float _Complex - _TG_ATTRS - __tg_sqrt(float _Complex __x) {return csqrtf(__x);} - -static double _Complex - _TG_ATTRS - __tg_sqrt(double _Complex __x) {return csqrt(__x);} - -static long double _Complex - _TG_ATTRS - __tg_sqrt(long double _Complex __x) {return csqrtl(__x);} - -#undef sqrt -#define sqrt(__x) __tg_sqrt(__tg_promote1((__x))(__x)) - -// fabs - -static float - _TG_ATTRS - __tg_fabs(float __x) {return fabsf(__x);} - -static double - _TG_ATTRS - __tg_fabs(double __x) {return fabs(__x);} - -static long double - _TG_ATTRS - __tg_fabs(long double __x) {return fabsl(__x);} - -static float - _TG_ATTRS - __tg_fabs(float _Complex __x) {return cabsf(__x);} - -static double - _TG_ATTRS - __tg_fabs(double _Complex __x) {return cabs(__x);} - -static long double - _TG_ATTRS - __tg_fabs(long double _Complex __x) {return cabsl(__x);} - -#undef fabs -#define fabs(__x) __tg_fabs(__tg_promote1((__x))(__x)) - -// atan2 - -static float - _TG_ATTRS - __tg_atan2(float __x, float __y) {return atan2f(__x, __y);} - -static double - _TG_ATTRS - __tg_atan2(double __x, double __y) {return atan2(__x, __y);} - -static long double - _TG_ATTRS - __tg_atan2(long double __x, long double __y) {return atan2l(__x, __y);} - -#undef atan2 -#define atan2(__x, __y) __tg_atan2(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y)) - -// cbrt - -static float - _TG_ATTRS - __tg_cbrt(float __x) {return cbrtf(__x);} - -static double - _TG_ATTRS - __tg_cbrt(double __x) {return cbrt(__x);} - -static long double - _TG_ATTRS - __tg_cbrt(long double __x) {return cbrtl(__x);} - -#undef cbrt -#define cbrt(__x) __tg_cbrt(__tg_promote1((__x))(__x)) - -// ceil - -static float - _TG_ATTRS - __tg_ceil(float __x) {return ceilf(__x);} - -static double - _TG_ATTRS - __tg_ceil(double __x) {return ceil(__x);} - -static long double - _TG_ATTRS - __tg_ceil(long double __x) {return ceill(__x);} - -#undef ceil -#define ceil(__x) __tg_ceil(__tg_promote1((__x))(__x)) - -// copysign - -static float - _TG_ATTRS - __tg_copysign(float __x, float __y) {return copysignf(__x, __y);} - -static double - _TG_ATTRS - __tg_copysign(double __x, double __y) {return copysign(__x, __y);} - -static long double - _TG_ATTRS - __tg_copysign(long double __x, long double __y) {return copysignl(__x, __y);} - -#undef copysign -#define copysign(__x, __y) __tg_copysign(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y)) - -// erf - -static float - _TG_ATTRS - __tg_erf(float __x) {return erff(__x);} - -static double - _TG_ATTRS - __tg_erf(double __x) {return erf(__x);} - -static long double - _TG_ATTRS - __tg_erf(long double __x) {return erfl(__x);} - -#undef erf -#define erf(__x) __tg_erf(__tg_promote1((__x))(__x)) - -// erfc - -static float - _TG_ATTRS - __tg_erfc(float __x) {return erfcf(__x);} - -static double - _TG_ATTRS - __tg_erfc(double __x) {return erfc(__x);} - -static long double - _TG_ATTRS - __tg_erfc(long double __x) {return erfcl(__x);} - -#undef erfc -#define erfc(__x) __tg_erfc(__tg_promote1((__x))(__x)) - -// exp2 - -static float - _TG_ATTRS - __tg_exp2(float __x) {return exp2f(__x);} - -static double - _TG_ATTRS - __tg_exp2(double __x) {return exp2(__x);} - -static long double - _TG_ATTRS - __tg_exp2(long double __x) {return exp2l(__x);} - -#undef exp2 -#define exp2(__x) __tg_exp2(__tg_promote1((__x))(__x)) - -// expm1 - -static float - _TG_ATTRS - __tg_expm1(float __x) {return expm1f(__x);} - -static double - _TG_ATTRS - __tg_expm1(double __x) {return expm1(__x);} - -static long double - _TG_ATTRS - __tg_expm1(long double __x) {return expm1l(__x);} - -#undef expm1 -#define expm1(__x) __tg_expm1(__tg_promote1((__x))(__x)) - -// fdim - -static float - _TG_ATTRS - __tg_fdim(float __x, float __y) {return fdimf(__x, __y);} - -static double - _TG_ATTRS - __tg_fdim(double __x, double __y) {return fdim(__x, __y);} - -static long double - _TG_ATTRS - __tg_fdim(long double __x, long double __y) {return fdiml(__x, __y);} - -#undef fdim -#define fdim(__x, __y) __tg_fdim(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y)) - -// floor - -static float - _TG_ATTRS - __tg_floor(float __x) {return floorf(__x);} - -static double - _TG_ATTRS - __tg_floor(double __x) {return floor(__x);} - -static long double - _TG_ATTRS - __tg_floor(long double __x) {return floorl(__x);} - -#undef floor -#define floor(__x) __tg_floor(__tg_promote1((__x))(__x)) - -// fma - -static float - _TG_ATTRS - __tg_fma(float __x, float __y, float __z) - {return fmaf(__x, __y, __z);} - -static double - _TG_ATTRS - __tg_fma(double __x, double __y, double __z) - {return fma(__x, __y, __z);} - -static long double - _TG_ATTRS - __tg_fma(long double __x,long double __y, long double __z) - {return fmal(__x, __y, __z);} - -#undef fma -#define fma(__x, __y, __z) \ - __tg_fma(__tg_promote3((__x), (__y), (__z))(__x), \ - __tg_promote3((__x), (__y), (__z))(__y), \ - __tg_promote3((__x), (__y), (__z))(__z)) - -// fmax - -static float - _TG_ATTRS - __tg_fmax(float __x, float __y) {return fmaxf(__x, __y);} - -static double - _TG_ATTRS - __tg_fmax(double __x, double __y) {return fmax(__x, __y);} - -static long double - _TG_ATTRS - __tg_fmax(long double __x, long double __y) {return fmaxl(__x, __y);} - -#undef fmax -#define fmax(__x, __y) __tg_fmax(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y)) - -// fmin - -static float - _TG_ATTRS - __tg_fmin(float __x, float __y) {return fminf(__x, __y);} - -static double - _TG_ATTRS - __tg_fmin(double __x, double __y) {return fmin(__x, __y);} - -static long double - _TG_ATTRS - __tg_fmin(long double __x, long double __y) {return fminl(__x, __y);} - -#undef fmin -#define fmin(__x, __y) __tg_fmin(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y)) - -// fmod - -static float - _TG_ATTRS - __tg_fmod(float __x, float __y) {return fmodf(__x, __y);} - -static double - _TG_ATTRS - __tg_fmod(double __x, double __y) {return fmod(__x, __y);} - -static long double - _TG_ATTRS - __tg_fmod(long double __x, long double __y) {return fmodl(__x, __y);} - -#undef fmod -#define fmod(__x, __y) __tg_fmod(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y)) - -// frexp - -static float - _TG_ATTRS - __tg_frexp(float __x, int* __y) {return frexpf(__x, __y);} - -static double - _TG_ATTRS - __tg_frexp(double __x, int* __y) {return frexp(__x, __y);} - -static long double - _TG_ATTRS - __tg_frexp(long double __x, int* __y) {return frexpl(__x, __y);} - -#undef frexp -#define frexp(__x, __y) __tg_frexp(__tg_promote1((__x))(__x), __y) - -// hypot - -static float - _TG_ATTRS - __tg_hypot(float __x, float __y) {return hypotf(__x, __y);} - -static double - _TG_ATTRS - __tg_hypot(double __x, double __y) {return hypot(__x, __y);} - -static long double - _TG_ATTRS - __tg_hypot(long double __x, long double __y) {return hypotl(__x, __y);} - -#undef hypot -#define hypot(__x, __y) __tg_hypot(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y)) - -// ilogb - -static int - _TG_ATTRS - __tg_ilogb(float __x) {return ilogbf(__x);} - -static int - _TG_ATTRS - __tg_ilogb(double __x) {return ilogb(__x);} - -static int - _TG_ATTRS - __tg_ilogb(long double __x) {return ilogbl(__x);} - -#undef ilogb -#define ilogb(__x) __tg_ilogb(__tg_promote1((__x))(__x)) - -// ldexp - -static float - _TG_ATTRS - __tg_ldexp(float __x, int __y) {return ldexpf(__x, __y);} - -static double - _TG_ATTRS - __tg_ldexp(double __x, int __y) {return ldexp(__x, __y);} - -static long double - _TG_ATTRS - __tg_ldexp(long double __x, int __y) {return ldexpl(__x, __y);} - -#undef ldexp -#define ldexp(__x, __y) __tg_ldexp(__tg_promote1((__x))(__x), __y) - -// lgamma - -static float - _TG_ATTRS - __tg_lgamma(float __x) {return lgammaf(__x);} - -static double - _TG_ATTRS - __tg_lgamma(double __x) {return lgamma(__x);} - -static long double - _TG_ATTRS - __tg_lgamma(long double __x) {return lgammal(__x);} - -#undef lgamma -#define lgamma(__x) __tg_lgamma(__tg_promote1((__x))(__x)) - -// llrint - -static long long - _TG_ATTRS - __tg_llrint(float __x) {return llrintf(__x);} - -static long long - _TG_ATTRS - __tg_llrint(double __x) {return llrint(__x);} - -static long long - _TG_ATTRS - __tg_llrint(long double __x) {return llrintl(__x);} - -#undef llrint -#define llrint(__x) __tg_llrint(__tg_promote1((__x))(__x)) - -// llround - -static long long - _TG_ATTRS - __tg_llround(float __x) {return llroundf(__x);} - -static long long - _TG_ATTRS - __tg_llround(double __x) {return llround(__x);} - -static long long - _TG_ATTRS - __tg_llround(long double __x) {return llroundl(__x);} - -#undef llround -#define llround(__x) __tg_llround(__tg_promote1((__x))(__x)) - -// log10 - -static float - _TG_ATTRS - __tg_log10(float __x) {return log10f(__x);} - -static double - _TG_ATTRS - __tg_log10(double __x) {return log10(__x);} - -static long double - _TG_ATTRS - __tg_log10(long double __x) {return log10l(__x);} - -#undef log10 -#define log10(__x) __tg_log10(__tg_promote1((__x))(__x)) - -// log1p - -static float - _TG_ATTRS - __tg_log1p(float __x) {return log1pf(__x);} - -static double - _TG_ATTRS - __tg_log1p(double __x) {return log1p(__x);} - -static long double - _TG_ATTRS - __tg_log1p(long double __x) {return log1pl(__x);} - -#undef log1p -#define log1p(__x) __tg_log1p(__tg_promote1((__x))(__x)) - -// log2 - -static float - _TG_ATTRS - __tg_log2(float __x) {return log2f(__x);} - -static double - _TG_ATTRS - __tg_log2(double __x) {return log2(__x);} - -static long double - _TG_ATTRS - __tg_log2(long double __x) {return log2l(__x);} - -#undef log2 -#define log2(__x) __tg_log2(__tg_promote1((__x))(__x)) - -// logb - -static float - _TG_ATTRS - __tg_logb(float __x) {return logbf(__x);} - -static double - _TG_ATTRS - __tg_logb(double __x) {return logb(__x);} - -static long double - _TG_ATTRS - __tg_logb(long double __x) {return logbl(__x);} - -#undef logb -#define logb(__x) __tg_logb(__tg_promote1((__x))(__x)) - -// lrint - -static long - _TG_ATTRS - __tg_lrint(float __x) {return lrintf(__x);} - -static long - _TG_ATTRS - __tg_lrint(double __x) {return lrint(__x);} - -static long - _TG_ATTRS - __tg_lrint(long double __x) {return lrintl(__x);} - -#undef lrint -#define lrint(__x) __tg_lrint(__tg_promote1((__x))(__x)) - -// lround - -static long - _TG_ATTRS - __tg_lround(float __x) {return lroundf(__x);} - -static long - _TG_ATTRS - __tg_lround(double __x) {return lround(__x);} - -static long - _TG_ATTRS - __tg_lround(long double __x) {return lroundl(__x);} - -#undef lround -#define lround(__x) __tg_lround(__tg_promote1((__x))(__x)) - -// nearbyint - -static float - _TG_ATTRS - __tg_nearbyint(float __x) {return nearbyintf(__x);} - -static double - _TG_ATTRS - __tg_nearbyint(double __x) {return nearbyint(__x);} - -static long double - _TG_ATTRS - __tg_nearbyint(long double __x) {return nearbyintl(__x);} - -#undef nearbyint -#define nearbyint(__x) __tg_nearbyint(__tg_promote1((__x))(__x)) - -// nextafter - -static float - _TG_ATTRS - __tg_nextafter(float __x, float __y) {return nextafterf(__x, __y);} - -static double - _TG_ATTRS - __tg_nextafter(double __x, double __y) {return nextafter(__x, __y);} - -static long double - _TG_ATTRS - __tg_nextafter(long double __x, long double __y) {return nextafterl(__x, __y);} - -#undef nextafter -#define nextafter(__x, __y) __tg_nextafter(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y)) - -// nexttoward - -static float - _TG_ATTRS - __tg_nexttoward(float __x, long double __y) {return nexttowardf(__x, __y);} - -static double - _TG_ATTRS - __tg_nexttoward(double __x, long double __y) {return nexttoward(__x, __y);} - -static long double - _TG_ATTRS - __tg_nexttoward(long double __x, long double __y) {return nexttowardl(__x, __y);} - -#undef nexttoward -#define nexttoward(__x, __y) __tg_nexttoward(__tg_promote1((__x))(__x), (__y)) - -// remainder - -static float - _TG_ATTRS - __tg_remainder(float __x, float __y) {return remainderf(__x, __y);} - -static double - _TG_ATTRS - __tg_remainder(double __x, double __y) {return remainder(__x, __y);} - -static long double - _TG_ATTRS - __tg_remainder(long double __x, long double __y) {return remainderl(__x, __y);} - -#undef remainder -#define remainder(__x, __y) __tg_remainder(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y)) - -// remquo - -static float - _TG_ATTRS - __tg_remquo(float __x, float __y, int* __z) - {return remquof(__x, __y, __z);} - -static double - _TG_ATTRS - __tg_remquo(double __x, double __y, int* __z) - {return remquo(__x, __y, __z);} - -static long double - _TG_ATTRS - __tg_remquo(long double __x,long double __y, int* __z) - {return remquol(__x, __y, __z);} - -#undef remquo -#define remquo(__x, __y, __z) \ - __tg_remquo(__tg_promote2((__x), (__y))(__x), \ - __tg_promote2((__x), (__y))(__y), \ - (__z)) - -// rint - -static float - _TG_ATTRS - __tg_rint(float __x) {return rintf(__x);} - -static double - _TG_ATTRS - __tg_rint(double __x) {return rint(__x);} - -static long double - _TG_ATTRS - __tg_rint(long double __x) {return rintl(__x);} - -#undef rint -#define rint(__x) __tg_rint(__tg_promote1((__x))(__x)) - -// round - -static float - _TG_ATTRS - __tg_round(float __x) {return roundf(__x);} - -static double - _TG_ATTRS - __tg_round(double __x) {return round(__x);} - -static long double - _TG_ATTRS - __tg_round(long double __x) {return roundl(__x);} - -#undef round -#define round(__x) __tg_round(__tg_promote1((__x))(__x)) - -// scalbn - -static float - _TG_ATTRS - __tg_scalbn(float __x, int __y) {return scalbnf(__x, __y);} - -static double - _TG_ATTRS - __tg_scalbn(double __x, int __y) {return scalbn(__x, __y);} - -static long double - _TG_ATTRS - __tg_scalbn(long double __x, int __y) {return scalbnl(__x, __y);} - -#undef scalbn -#define scalbn(__x, __y) __tg_scalbn(__tg_promote1((__x))(__x), __y) - -// scalbln - -static float - _TG_ATTRS - __tg_scalbln(float __x, long __y) {return scalblnf(__x, __y);} - -static double - _TG_ATTRS - __tg_scalbln(double __x, long __y) {return scalbln(__x, __y);} - -static long double - _TG_ATTRS - __tg_scalbln(long double __x, long __y) {return scalblnl(__x, __y);} - -#undef scalbln -#define scalbln(__x, __y) __tg_scalbln(__tg_promote1((__x))(__x), __y) - -// tgamma - -static float - _TG_ATTRS - __tg_tgamma(float __x) {return tgammaf(__x);} - -static double - _TG_ATTRS - __tg_tgamma(double __x) {return tgamma(__x);} - -static long double - _TG_ATTRS - __tg_tgamma(long double __x) {return tgammal(__x);} - -#undef tgamma -#define tgamma(__x) __tg_tgamma(__tg_promote1((__x))(__x)) - -// trunc - -static float - _TG_ATTRS - __tg_trunc(float __x) {return truncf(__x);} - -static double - _TG_ATTRS - __tg_trunc(double __x) {return trunc(__x);} - -static long double - _TG_ATTRS - __tg_trunc(long double __x) {return truncl(__x);} - -#undef trunc -#define trunc(__x) __tg_trunc(__tg_promote1((__x))(__x)) - -// carg - -static float - _TG_ATTRS - __tg_carg(float __x) {return atan2f(0.F, __x);} - -static double - _TG_ATTRS - __tg_carg(double __x) {return atan2(0., __x);} - -static long double - _TG_ATTRS - __tg_carg(long double __x) {return atan2l(0.L, __x);} - -static float - _TG_ATTRS - __tg_carg(float _Complex __x) {return cargf(__x);} - -static double - _TG_ATTRS - __tg_carg(double _Complex __x) {return carg(__x);} - -static long double - _TG_ATTRS - __tg_carg(long double _Complex __x) {return cargl(__x);} - -#undef carg -#define carg(__x) __tg_carg(__tg_promote1((__x))(__x)) - -// cimag - -static float - _TG_ATTRS - __tg_cimag(float __x) {return 0;} - -static double - _TG_ATTRS - __tg_cimag(double __x) {return 0;} - -static long double - _TG_ATTRS - __tg_cimag(long double __x) {return 0;} - -static float - _TG_ATTRS - __tg_cimag(float _Complex __x) {return cimagf(__x);} - -static double - _TG_ATTRS - __tg_cimag(double _Complex __x) {return cimag(__x);} - -static long double - _TG_ATTRS - __tg_cimag(long double _Complex __x) {return cimagl(__x);} - -#undef cimag -#define cimag(__x) __tg_cimag(__tg_promote1((__x))(__x)) - -// conj - -static float _Complex - _TG_ATTRS - __tg_conj(float __x) {return __x;} - -static double _Complex - _TG_ATTRS - __tg_conj(double __x) {return __x;} - -static long double _Complex - _TG_ATTRS - __tg_conj(long double __x) {return __x;} - -static float _Complex - _TG_ATTRS - __tg_conj(float _Complex __x) {return conjf(__x);} - -static double _Complex - _TG_ATTRS - __tg_conj(double _Complex __x) {return conj(__x);} - -static long double _Complex - _TG_ATTRS - __tg_conj(long double _Complex __x) {return conjl(__x);} - -#undef conj -#define conj(__x) __tg_conj(__tg_promote1((__x))(__x)) - -// cproj - -static float _Complex - _TG_ATTRS - __tg_cproj(float __x) {return cprojf(__x);} - -static double _Complex - _TG_ATTRS - __tg_cproj(double __x) {return cproj(__x);} - -static long double _Complex - _TG_ATTRS - __tg_cproj(long double __x) {return cprojl(__x);} - -static float _Complex - _TG_ATTRS - __tg_cproj(float _Complex __x) {return cprojf(__x);} - -static double _Complex - _TG_ATTRS - __tg_cproj(double _Complex __x) {return cproj(__x);} - -static long double _Complex - _TG_ATTRS - __tg_cproj(long double _Complex __x) {return cprojl(__x);} - -#undef cproj -#define cproj(__x) __tg_cproj(__tg_promote1((__x))(__x)) - -// creal - -static float - _TG_ATTRS - __tg_creal(float __x) {return __x;} - -static double - _TG_ATTRS - __tg_creal(double __x) {return __x;} - -static long double - _TG_ATTRS - __tg_creal(long double __x) {return __x;} - -static float - _TG_ATTRS - __tg_creal(float _Complex __x) {return crealf(__x);} - -static double - _TG_ATTRS - __tg_creal(double _Complex __x) {return creal(__x);} - -static long double - _TG_ATTRS - __tg_creal(long double _Complex __x) {return creall(__x);} - -#undef creal -#define creal(__x) __tg_creal(__tg_promote1((__x))(__x)) - -#undef _TG_ATTRSp -#undef _TG_ATTRS - -#endif /* __cplusplus */ -#endif /* __has_include_next */ -#endif /* __CLANG_TGMATH_H */ diff --git a/bin/app/data/cxx/include/tmmintrin.h b/bin/app/data/cxx/include/tmmintrin.h deleted file mode 100644 index 35533e11..00000000 --- a/bin/app/data/cxx/include/tmmintrin.h +++ /dev/null @@ -1,771 +0,0 @@ -/*===---- tmmintrin.h - SSSE3 intrinsics -----------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __TMMINTRIN_H -#define __TMMINTRIN_H - -#include - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) -#define __DEFAULT_FN_ATTRS_MMX __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) - -/// Computes the absolute value of each of the packed 8-bit signed -/// integers in the source operand and stores the 8-bit unsigned integer -/// results in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PABSB instruction. -/// -/// \param __a -/// A 64-bit vector of [8 x i8]. -/// \returns A 64-bit integer vector containing the absolute values of the -/// elements in the operand. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_abs_pi8(__m64 __a) -{ - return (__m64)__builtin_ia32_pabsb((__v8qi)__a); -} - -/// Computes the absolute value of each of the packed 8-bit signed -/// integers in the source operand and stores the 8-bit unsigned integer -/// results in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPABSB instruction. -/// -/// \param __a -/// A 128-bit vector of [16 x i8]. -/// \returns A 128-bit integer vector containing the absolute values of the -/// elements in the operand. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_abs_epi8(__m128i __a) -{ - return (__m128i)__builtin_ia32_pabsb128((__v16qi)__a); -} - -/// Computes the absolute value of each of the packed 16-bit signed -/// integers in the source operand and stores the 16-bit unsigned integer -/// results in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PABSW instruction. -/// -/// \param __a -/// A 64-bit vector of [4 x i16]. -/// \returns A 64-bit integer vector containing the absolute values of the -/// elements in the operand. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_abs_pi16(__m64 __a) -{ - return (__m64)__builtin_ia32_pabsw((__v4hi)__a); -} - -/// Computes the absolute value of each of the packed 16-bit signed -/// integers in the source operand and stores the 16-bit unsigned integer -/// results in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPABSW instruction. -/// -/// \param __a -/// A 128-bit vector of [8 x i16]. -/// \returns A 128-bit integer vector containing the absolute values of the -/// elements in the operand. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_abs_epi16(__m128i __a) -{ - return (__m128i)__builtin_ia32_pabsw128((__v8hi)__a); -} - -/// Computes the absolute value of each of the packed 32-bit signed -/// integers in the source operand and stores the 32-bit unsigned integer -/// results in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PABSD instruction. -/// -/// \param __a -/// A 64-bit vector of [2 x i32]. -/// \returns A 64-bit integer vector containing the absolute values of the -/// elements in the operand. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_abs_pi32(__m64 __a) -{ - return (__m64)__builtin_ia32_pabsd((__v2si)__a); -} - -/// Computes the absolute value of each of the packed 32-bit signed -/// integers in the source operand and stores the 32-bit unsigned integer -/// results in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPABSD instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x i32]. -/// \returns A 128-bit integer vector containing the absolute values of the -/// elements in the operand. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_abs_epi32(__m128i __a) -{ - return (__m128i)__builtin_ia32_pabsd128((__v4si)__a); -} - -/// Concatenates the two 128-bit integer vector operands, and -/// right-shifts the result by the number of bytes specified in the immediate -/// operand. -/// -/// \headerfile -/// -/// \code -/// __m128i _mm_alignr_epi8(__m128i a, __m128i b, const int n); -/// \endcode -/// -/// This intrinsic corresponds to the \c PALIGNR instruction. -/// -/// \param a -/// A 128-bit vector of [16 x i8] containing one of the source operands. -/// \param b -/// A 128-bit vector of [16 x i8] containing one of the source operands. -/// \param n -/// An immediate operand specifying how many bytes to right-shift the result. -/// \returns A 128-bit integer vector containing the concatenated right-shifted -/// value. -#define _mm_alignr_epi8(a, b, n) \ - (__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \ - (__v16qi)(__m128i)(b), (n)) - -/// Concatenates the two 64-bit integer vector operands, and right-shifts -/// the result by the number of bytes specified in the immediate operand. -/// -/// \headerfile -/// -/// \code -/// __m64 _mm_alignr_pi8(__m64 a, __m64 b, const int n); -/// \endcode -/// -/// This intrinsic corresponds to the \c PALIGNR instruction. -/// -/// \param a -/// A 64-bit vector of [8 x i8] containing one of the source operands. -/// \param b -/// A 64-bit vector of [8 x i8] containing one of the source operands. -/// \param n -/// An immediate operand specifying how many bytes to right-shift the result. -/// \returns A 64-bit integer vector containing the concatenated right-shifted -/// value. -#define _mm_alignr_pi8(a, b, n) \ - (__m64)__builtin_ia32_palignr((__v8qi)(__m64)(a), (__v8qi)(__m64)(b), (n)) - -/// Horizontally adds the adjacent pairs of values contained in 2 packed -/// 128-bit vectors of [8 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPHADDW instruction. -/// -/// \param __a -/// A 128-bit vector of [8 x i16] containing one of the source operands. The -/// horizontal sums of the values are stored in the lower bits of the -/// destination. -/// \param __b -/// A 128-bit vector of [8 x i16] containing one of the source operands. The -/// horizontal sums of the values are stored in the upper bits of the -/// destination. -/// \returns A 128-bit vector of [8 x i16] containing the horizontal sums of -/// both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_hadd_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_phaddw128((__v8hi)__a, (__v8hi)__b); -} - -/// Horizontally adds the adjacent pairs of values contained in 2 packed -/// 128-bit vectors of [4 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPHADDD instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x i32] containing one of the source operands. The -/// horizontal sums of the values are stored in the lower bits of the -/// destination. -/// \param __b -/// A 128-bit vector of [4 x i32] containing one of the source operands. The -/// horizontal sums of the values are stored in the upper bits of the -/// destination. -/// \returns A 128-bit vector of [4 x i32] containing the horizontal sums of -/// both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_hadd_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_phaddd128((__v4si)__a, (__v4si)__b); -} - -/// Horizontally adds the adjacent pairs of values contained in 2 packed -/// 64-bit vectors of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PHADDW instruction. -/// -/// \param __a -/// A 64-bit vector of [4 x i16] containing one of the source operands. The -/// horizontal sums of the values are stored in the lower bits of the -/// destination. -/// \param __b -/// A 64-bit vector of [4 x i16] containing one of the source operands. The -/// horizontal sums of the values are stored in the upper bits of the -/// destination. -/// \returns A 64-bit vector of [4 x i16] containing the horizontal sums of both -/// operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_hadd_pi16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_phaddw((__v4hi)__a, (__v4hi)__b); -} - -/// Horizontally adds the adjacent pairs of values contained in 2 packed -/// 64-bit vectors of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PHADDD instruction. -/// -/// \param __a -/// A 64-bit vector of [2 x i32] containing one of the source operands. The -/// horizontal sums of the values are stored in the lower bits of the -/// destination. -/// \param __b -/// A 64-bit vector of [2 x i32] containing one of the source operands. The -/// horizontal sums of the values are stored in the upper bits of the -/// destination. -/// \returns A 64-bit vector of [2 x i32] containing the horizontal sums of both -/// operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_hadd_pi32(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_phaddd((__v2si)__a, (__v2si)__b); -} - -/// Horizontally adds the adjacent pairs of values contained in 2 packed -/// 128-bit vectors of [8 x i16]. Positive sums greater than 0x7FFF are -/// saturated to 0x7FFF. Negative sums less than 0x8000 are saturated to -/// 0x8000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPHADDSW instruction. -/// -/// \param __a -/// A 128-bit vector of [8 x i16] containing one of the source operands. The -/// horizontal sums of the values are stored in the lower bits of the -/// destination. -/// \param __b -/// A 128-bit vector of [8 x i16] containing one of the source operands. The -/// horizontal sums of the values are stored in the upper bits of the -/// destination. -/// \returns A 128-bit vector of [8 x i16] containing the horizontal saturated -/// sums of both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_hadds_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_phaddsw128((__v8hi)__a, (__v8hi)__b); -} - -/// Horizontally adds the adjacent pairs of values contained in 2 packed -/// 64-bit vectors of [4 x i16]. Positive sums greater than 0x7FFF are -/// saturated to 0x7FFF. Negative sums less than 0x8000 are saturated to -/// 0x8000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PHADDSW instruction. -/// -/// \param __a -/// A 64-bit vector of [4 x i16] containing one of the source operands. The -/// horizontal sums of the values are stored in the lower bits of the -/// destination. -/// \param __b -/// A 64-bit vector of [4 x i16] containing one of the source operands. The -/// horizontal sums of the values are stored in the upper bits of the -/// destination. -/// \returns A 64-bit vector of [4 x i16] containing the horizontal saturated -/// sums of both operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_hadds_pi16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_phaddsw((__v4hi)__a, (__v4hi)__b); -} - -/// Horizontally subtracts the adjacent pairs of values contained in 2 -/// packed 128-bit vectors of [8 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPHSUBW instruction. -/// -/// \param __a -/// A 128-bit vector of [8 x i16] containing one of the source operands. The -/// horizontal differences between the values are stored in the lower bits of -/// the destination. -/// \param __b -/// A 128-bit vector of [8 x i16] containing one of the source operands. The -/// horizontal differences between the values are stored in the upper bits of -/// the destination. -/// \returns A 128-bit vector of [8 x i16] containing the horizontal differences -/// of both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_hsub_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_phsubw128((__v8hi)__a, (__v8hi)__b); -} - -/// Horizontally subtracts the adjacent pairs of values contained in 2 -/// packed 128-bit vectors of [4 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPHSUBD instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x i32] containing one of the source operands. The -/// horizontal differences between the values are stored in the lower bits of -/// the destination. -/// \param __b -/// A 128-bit vector of [4 x i32] containing one of the source operands. The -/// horizontal differences between the values are stored in the upper bits of -/// the destination. -/// \returns A 128-bit vector of [4 x i32] containing the horizontal differences -/// of both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_hsub_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_phsubd128((__v4si)__a, (__v4si)__b); -} - -/// Horizontally subtracts the adjacent pairs of values contained in 2 -/// packed 64-bit vectors of [4 x i16]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PHSUBW instruction. -/// -/// \param __a -/// A 64-bit vector of [4 x i16] containing one of the source operands. The -/// horizontal differences between the values are stored in the lower bits of -/// the destination. -/// \param __b -/// A 64-bit vector of [4 x i16] containing one of the source operands. The -/// horizontal differences between the values are stored in the upper bits of -/// the destination. -/// \returns A 64-bit vector of [4 x i16] containing the horizontal differences -/// of both operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_hsub_pi16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_phsubw((__v4hi)__a, (__v4hi)__b); -} - -/// Horizontally subtracts the adjacent pairs of values contained in 2 -/// packed 64-bit vectors of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PHSUBD instruction. -/// -/// \param __a -/// A 64-bit vector of [2 x i32] containing one of the source operands. The -/// horizontal differences between the values are stored in the lower bits of -/// the destination. -/// \param __b -/// A 64-bit vector of [2 x i32] containing one of the source operands. The -/// horizontal differences between the values are stored in the upper bits of -/// the destination. -/// \returns A 64-bit vector of [2 x i32] containing the horizontal differences -/// of both operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_hsub_pi32(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_phsubd((__v2si)__a, (__v2si)__b); -} - -/// Horizontally subtracts the adjacent pairs of values contained in 2 -/// packed 128-bit vectors of [8 x i16]. Positive differences greater than -/// 0x7FFF are saturated to 0x7FFF. Negative differences less than 0x8000 are -/// saturated to 0x8000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPHSUBSW instruction. -/// -/// \param __a -/// A 128-bit vector of [8 x i16] containing one of the source operands. The -/// horizontal differences between the values are stored in the lower bits of -/// the destination. -/// \param __b -/// A 128-bit vector of [8 x i16] containing one of the source operands. The -/// horizontal differences between the values are stored in the upper bits of -/// the destination. -/// \returns A 128-bit vector of [8 x i16] containing the horizontal saturated -/// differences of both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_hsubs_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_phsubsw128((__v8hi)__a, (__v8hi)__b); -} - -/// Horizontally subtracts the adjacent pairs of values contained in 2 -/// packed 64-bit vectors of [4 x i16]. Positive differences greater than -/// 0x7FFF are saturated to 0x7FFF. Negative differences less than 0x8000 are -/// saturated to 0x8000. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PHSUBSW instruction. -/// -/// \param __a -/// A 64-bit vector of [4 x i16] containing one of the source operands. The -/// horizontal differences between the values are stored in the lower bits of -/// the destination. -/// \param __b -/// A 64-bit vector of [4 x i16] containing one of the source operands. The -/// horizontal differences between the values are stored in the upper bits of -/// the destination. -/// \returns A 64-bit vector of [4 x i16] containing the horizontal saturated -/// differences of both operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_hsubs_pi16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_phsubsw((__v4hi)__a, (__v4hi)__b); -} - -/// Multiplies corresponding pairs of packed 8-bit unsigned integer -/// values contained in the first source operand and packed 8-bit signed -/// integer values contained in the second source operand, adds pairs of -/// contiguous products with signed saturation, and writes the 16-bit sums to -/// the corresponding bits in the destination. -/// -/// For example, bits [7:0] of both operands are multiplied, bits [15:8] of -/// both operands are multiplied, and the sum of both results is written to -/// bits [15:0] of the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPMADDUBSW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the first source operand. -/// \param __b -/// A 128-bit integer vector containing the second source operand. -/// \returns A 128-bit integer vector containing the sums of products of both -/// operands: \n -/// \a R0 := (\a __a0 * \a __b0) + (\a __a1 * \a __b1) \n -/// \a R1 := (\a __a2 * \a __b2) + (\a __a3 * \a __b3) \n -/// \a R2 := (\a __a4 * \a __b4) + (\a __a5 * \a __b5) \n -/// \a R3 := (\a __a6 * \a __b6) + (\a __a7 * \a __b7) \n -/// \a R4 := (\a __a8 * \a __b8) + (\a __a9 * \a __b9) \n -/// \a R5 := (\a __a10 * \a __b10) + (\a __a11 * \a __b11) \n -/// \a R6 := (\a __a12 * \a __b12) + (\a __a13 * \a __b13) \n -/// \a R7 := (\a __a14 * \a __b14) + (\a __a15 * \a __b15) -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_maddubs_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pmaddubsw128((__v16qi)__a, (__v16qi)__b); -} - -/// Multiplies corresponding pairs of packed 8-bit unsigned integer -/// values contained in the first source operand and packed 8-bit signed -/// integer values contained in the second source operand, adds pairs of -/// contiguous products with signed saturation, and writes the 16-bit sums to -/// the corresponding bits in the destination. -/// -/// For example, bits [7:0] of both operands are multiplied, bits [15:8] of -/// both operands are multiplied, and the sum of both results is written to -/// bits [15:0] of the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PMADDUBSW instruction. -/// -/// \param __a -/// A 64-bit integer vector containing the first source operand. -/// \param __b -/// A 64-bit integer vector containing the second source operand. -/// \returns A 64-bit integer vector containing the sums of products of both -/// operands: \n -/// \a R0 := (\a __a0 * \a __b0) + (\a __a1 * \a __b1) \n -/// \a R1 := (\a __a2 * \a __b2) + (\a __a3 * \a __b3) \n -/// \a R2 := (\a __a4 * \a __b4) + (\a __a5 * \a __b5) \n -/// \a R3 := (\a __a6 * \a __b6) + (\a __a7 * \a __b7) -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_maddubs_pi16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_pmaddubsw((__v8qi)__a, (__v8qi)__b); -} - -/// Multiplies packed 16-bit signed integer values, truncates the 32-bit -/// products to the 18 most significant bits by right-shifting, rounds the -/// truncated value by adding 1, and writes bits [16:1] to the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPMULHRSW instruction. -/// -/// \param __a -/// A 128-bit vector of [8 x i16] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [8 x i16] containing one of the source operands. -/// \returns A 128-bit vector of [8 x i16] containing the rounded and scaled -/// products of both operands. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_mulhrs_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pmulhrsw128((__v8hi)__a, (__v8hi)__b); -} - -/// Multiplies packed 16-bit signed integer values, truncates the 32-bit -/// products to the 18 most significant bits by right-shifting, rounds the -/// truncated value by adding 1, and writes bits [16:1] to the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PMULHRSW instruction. -/// -/// \param __a -/// A 64-bit vector of [4 x i16] containing one of the source operands. -/// \param __b -/// A 64-bit vector of [4 x i16] containing one of the source operands. -/// \returns A 64-bit vector of [4 x i16] containing the rounded and scaled -/// products of both operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_mulhrs_pi16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_pmulhrsw((__v4hi)__a, (__v4hi)__b); -} - -/// Copies the 8-bit integers from a 128-bit integer vector to the -/// destination or clears 8-bit values in the destination, as specified by -/// the second source operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPSHUFB instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the values to be copied. -/// \param __b -/// A 128-bit integer vector containing control bytes corresponding to -/// positions in the destination: -/// Bit 7: \n -/// 1: Clear the corresponding byte in the destination. \n -/// 0: Copy the selected source byte to the corresponding byte in the -/// destination. \n -/// Bits [6:4] Reserved. \n -/// Bits [3:0] select the source byte to be copied. -/// \returns A 128-bit integer vector containing the copied or cleared values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_shuffle_epi8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_pshufb128((__v16qi)__a, (__v16qi)__b); -} - -/// Copies the 8-bit integers from a 64-bit integer vector to the -/// destination or clears 8-bit values in the destination, as specified by -/// the second source operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PSHUFB instruction. -/// -/// \param __a -/// A 64-bit integer vector containing the values to be copied. -/// \param __b -/// A 64-bit integer vector containing control bytes corresponding to -/// positions in the destination: -/// Bit 7: \n -/// 1: Clear the corresponding byte in the destination. \n -/// 0: Copy the selected source byte to the corresponding byte in the -/// destination. \n -/// Bits [3:0] select the source byte to be copied. -/// \returns A 64-bit integer vector containing the copied or cleared values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_shuffle_pi8(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_pshufb((__v8qi)__a, (__v8qi)__b); -} - -/// For each 8-bit integer in the first source operand, perform one of -/// the following actions as specified by the second source operand. -/// -/// If the byte in the second source is negative, calculate the two's -/// complement of the corresponding byte in the first source, and write that -/// value to the destination. If the byte in the second source is positive, -/// copy the corresponding byte from the first source to the destination. If -/// the byte in the second source is zero, clear the corresponding byte in -/// the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPSIGNB instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the values to be copied. -/// \param __b -/// A 128-bit integer vector containing control bytes corresponding to -/// positions in the destination. -/// \returns A 128-bit integer vector containing the resultant values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sign_epi8(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_psignb128((__v16qi)__a, (__v16qi)__b); -} - -/// For each 16-bit integer in the first source operand, perform one of -/// the following actions as specified by the second source operand. -/// -/// If the word in the second source is negative, calculate the two's -/// complement of the corresponding word in the first source, and write that -/// value to the destination. If the word in the second source is positive, -/// copy the corresponding word from the first source to the destination. If -/// the word in the second source is zero, clear the corresponding word in -/// the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPSIGNW instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the values to be copied. -/// \param __b -/// A 128-bit integer vector containing control words corresponding to -/// positions in the destination. -/// \returns A 128-bit integer vector containing the resultant values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sign_epi16(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_psignw128((__v8hi)__a, (__v8hi)__b); -} - -/// For each 32-bit integer in the first source operand, perform one of -/// the following actions as specified by the second source operand. -/// -/// If the doubleword in the second source is negative, calculate the two's -/// complement of the corresponding word in the first source, and write that -/// value to the destination. If the doubleword in the second source is -/// positive, copy the corresponding word from the first source to the -/// destination. If the doubleword in the second source is zero, clear the -/// corresponding word in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VPSIGND instruction. -/// -/// \param __a -/// A 128-bit integer vector containing the values to be copied. -/// \param __b -/// A 128-bit integer vector containing control doublewords corresponding to -/// positions in the destination. -/// \returns A 128-bit integer vector containing the resultant values. -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sign_epi32(__m128i __a, __m128i __b) -{ - return (__m128i)__builtin_ia32_psignd128((__v4si)__a, (__v4si)__b); -} - -/// For each 8-bit integer in the first source operand, perform one of -/// the following actions as specified by the second source operand. -/// -/// If the byte in the second source is negative, calculate the two's -/// complement of the corresponding byte in the first source, and write that -/// value to the destination. If the byte in the second source is positive, -/// copy the corresponding byte from the first source to the destination. If -/// the byte in the second source is zero, clear the corresponding byte in -/// the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PSIGNB instruction. -/// -/// \param __a -/// A 64-bit integer vector containing the values to be copied. -/// \param __b -/// A 64-bit integer vector containing control bytes corresponding to -/// positions in the destination. -/// \returns A 64-bit integer vector containing the resultant values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_sign_pi8(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_psignb((__v8qi)__a, (__v8qi)__b); -} - -/// For each 16-bit integer in the first source operand, perform one of -/// the following actions as specified by the second source operand. -/// -/// If the word in the second source is negative, calculate the two's -/// complement of the corresponding word in the first source, and write that -/// value to the destination. If the word in the second source is positive, -/// copy the corresponding word from the first source to the destination. If -/// the word in the second source is zero, clear the corresponding word in -/// the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PSIGNW instruction. -/// -/// \param __a -/// A 64-bit integer vector containing the values to be copied. -/// \param __b -/// A 64-bit integer vector containing control words corresponding to -/// positions in the destination. -/// \returns A 64-bit integer vector containing the resultant values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_sign_pi16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_psignw((__v4hi)__a, (__v4hi)__b); -} - -/// For each 32-bit integer in the first source operand, perform one of -/// the following actions as specified by the second source operand. -/// -/// If the doubleword in the second source is negative, calculate the two's -/// complement of the corresponding doubleword in the first source, and -/// write that value to the destination. If the doubleword in the second -/// source is positive, copy the corresponding doubleword from the first -/// source to the destination. If the doubleword in the second source is -/// zero, clear the corresponding doubleword in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c PSIGND instruction. -/// -/// \param __a -/// A 64-bit integer vector containing the values to be copied. -/// \param __b -/// A 64-bit integer vector containing two control doublewords corresponding -/// to positions in the destination. -/// \returns A 64-bit integer vector containing the resultant values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_sign_pi32(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_psignd((__v2si)__a, (__v2si)__b); -} - -#undef __DEFAULT_FN_ATTRS -#undef __DEFAULT_FN_ATTRS_MMX - -#endif /* __TMMINTRIN_H */ diff --git a/bin/app/data/cxx/include/unwind.h b/bin/app/data/cxx/include/unwind.h deleted file mode 100644 index 029524b7..00000000 --- a/bin/app/data/cxx/include/unwind.h +++ /dev/null @@ -1,327 +0,0 @@ -/*===---- unwind.h - Stack unwinding ----------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* See "Data Definitions for libgcc_s" in the Linux Standard Base.*/ - -#ifndef __CLANG_UNWIND_H -#define __CLANG_UNWIND_H - -#if defined(__APPLE__) && __has_include_next() -/* Darwin (from 11.x on) provide an unwind.h. If that's available, - * use it. libunwind wraps some of its definitions in #ifdef _GNU_SOURCE, - * so define that around the include.*/ -# ifndef _GNU_SOURCE -# define _SHOULD_UNDEFINE_GNU_SOURCE -# define _GNU_SOURCE -# endif -// libunwind's unwind.h reflects the current visibility. However, Mozilla -// builds with -fvisibility=hidden and relies on gcc's unwind.h to reset the -// visibility to default and export its contents. gcc also allows users to -// override its override by #defining HIDE_EXPORTS (but note, this only obeys -// the user's -fvisibility setting; it doesn't hide any exports on its own). We -// imitate gcc's header here: -# ifdef HIDE_EXPORTS -# include_next -# else -# pragma GCC visibility push(default) -# include_next -# pragma GCC visibility pop -# endif -# ifdef _SHOULD_UNDEFINE_GNU_SOURCE -# undef _GNU_SOURCE -# undef _SHOULD_UNDEFINE_GNU_SOURCE -# endif -#else - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* It is a bit strange for a header to play with the visibility of the - symbols it declares, but this matches gcc's behavior and some programs - depend on it */ -#ifndef HIDE_EXPORTS -#pragma GCC visibility push(default) -#endif - -typedef uintptr_t _Unwind_Word __attribute__((__mode__(__unwind_word__))); -typedef intptr_t _Unwind_Sword __attribute__((__mode__(__unwind_word__))); -typedef uintptr_t _Unwind_Ptr; -typedef uintptr_t _Unwind_Internal_Ptr; -typedef uint64_t _Unwind_Exception_Class; - -typedef intptr_t _sleb128_t; -typedef uintptr_t _uleb128_t; - -struct _Unwind_Context; -#if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) || defined(__ARM_DWARF_EH__)) -struct _Unwind_Control_Block; -typedef struct _Unwind_Control_Block _Unwind_Exception; /* Alias */ -#else -struct _Unwind_Exception; -typedef struct _Unwind_Exception _Unwind_Exception; -#endif -typedef enum { - _URC_NO_REASON = 0, -#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \ - !defined(__ARM_DWARF_EH__) - _URC_OK = 0, /* used by ARM EHABI */ -#endif - _URC_FOREIGN_EXCEPTION_CAUGHT = 1, - - _URC_FATAL_PHASE2_ERROR = 2, - _URC_FATAL_PHASE1_ERROR = 3, - _URC_NORMAL_STOP = 4, - - _URC_END_OF_STACK = 5, - _URC_HANDLER_FOUND = 6, - _URC_INSTALL_CONTEXT = 7, - _URC_CONTINUE_UNWIND = 8, -#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \ - !defined(__ARM_DWARF_EH__) - _URC_FAILURE = 9 /* used by ARM EHABI */ -#endif -} _Unwind_Reason_Code; - -typedef enum { - _UA_SEARCH_PHASE = 1, - _UA_CLEANUP_PHASE = 2, - - _UA_HANDLER_FRAME = 4, - _UA_FORCE_UNWIND = 8, - _UA_END_OF_STACK = 16 /* gcc extension to C++ ABI */ -} _Unwind_Action; - -typedef void (*_Unwind_Exception_Cleanup_Fn)(_Unwind_Reason_Code, - _Unwind_Exception *); - -#if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) || defined(__ARM_DWARF_EH__)) -typedef struct _Unwind_Control_Block _Unwind_Control_Block; -typedef uint32_t _Unwind_EHT_Header; - -struct _Unwind_Control_Block { - uint64_t exception_class; - void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *); - /* unwinder cache (private fields for the unwinder's use) */ - struct { - uint32_t reserved1; /* forced unwind stop function, 0 if not forced */ - uint32_t reserved2; /* personality routine */ - uint32_t reserved3; /* callsite */ - uint32_t reserved4; /* forced unwind stop argument */ - uint32_t reserved5; - } unwinder_cache; - /* propagation barrier cache (valid after phase 1) */ - struct { - uint32_t sp; - uint32_t bitpattern[5]; - } barrier_cache; - /* cleanup cache (preserved over cleanup) */ - struct { - uint32_t bitpattern[4]; - } cleanup_cache; - /* personality cache (for personality's benefit) */ - struct { - uint32_t fnstart; /* function start address */ - _Unwind_EHT_Header *ehtp; /* pointer to EHT entry header word */ - uint32_t additional; /* additional data */ - uint32_t reserved1; - } pr_cache; - long long int : 0; /* force alignment of next item to 8-byte boundary */ -} __attribute__((__aligned__(8))); -#else -struct _Unwind_Exception { - _Unwind_Exception_Class exception_class; - _Unwind_Exception_Cleanup_Fn exception_cleanup; -#if !defined (__USING_SJLJ_EXCEPTIONS__) && defined (__SEH__) - _Unwind_Word private_[6]; -#else - _Unwind_Word private_1; - _Unwind_Word private_2; -#endif - /* The Itanium ABI requires that _Unwind_Exception objects are "double-word - * aligned". GCC has interpreted this to mean "use the maximum useful - * alignment for the target"; so do we. */ -} __attribute__((__aligned__)); -#endif - -typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)(int, _Unwind_Action, - _Unwind_Exception_Class, - _Unwind_Exception *, - struct _Unwind_Context *, - void *); - -typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)(int, _Unwind_Action, - _Unwind_Exception_Class, - _Unwind_Exception *, - struct _Unwind_Context *); -typedef _Unwind_Personality_Fn __personality_routine; - -typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)(struct _Unwind_Context *, - void *); - -#if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) || defined(__ARM_DWARF_EH__)) -typedef enum { - _UVRSC_CORE = 0, /* integer register */ - _UVRSC_VFP = 1, /* vfp */ - _UVRSC_WMMXD = 3, /* Intel WMMX data register */ - _UVRSC_WMMXC = 4 /* Intel WMMX control register */ -} _Unwind_VRS_RegClass; - -typedef enum { - _UVRSD_UINT32 = 0, - _UVRSD_VFPX = 1, - _UVRSD_UINT64 = 3, - _UVRSD_FLOAT = 4, - _UVRSD_DOUBLE = 5 -} _Unwind_VRS_DataRepresentation; - -typedef enum { - _UVRSR_OK = 0, - _UVRSR_NOT_IMPLEMENTED = 1, - _UVRSR_FAILED = 2 -} _Unwind_VRS_Result; - -typedef uint32_t _Unwind_State; -#define _US_VIRTUAL_UNWIND_FRAME ((_Unwind_State)0) -#define _US_UNWIND_FRAME_STARTING ((_Unwind_State)1) -#define _US_UNWIND_FRAME_RESUME ((_Unwind_State)2) -#define _US_ACTION_MASK ((_Unwind_State)3) -#define _US_FORCE_UNWIND ((_Unwind_State)8) - -_Unwind_VRS_Result _Unwind_VRS_Get(struct _Unwind_Context *__context, - _Unwind_VRS_RegClass __regclass, - uint32_t __regno, - _Unwind_VRS_DataRepresentation __representation, - void *__valuep); - -_Unwind_VRS_Result _Unwind_VRS_Set(struct _Unwind_Context *__context, - _Unwind_VRS_RegClass __regclass, - uint32_t __regno, - _Unwind_VRS_DataRepresentation __representation, - void *__valuep); - -static __inline__ -_Unwind_Word _Unwind_GetGR(struct _Unwind_Context *__context, int __index) { - _Unwind_Word __value; - _Unwind_VRS_Get(__context, _UVRSC_CORE, __index, _UVRSD_UINT32, &__value); - return __value; -} - -static __inline__ -void _Unwind_SetGR(struct _Unwind_Context *__context, int __index, - _Unwind_Word __value) { - _Unwind_VRS_Set(__context, _UVRSC_CORE, __index, _UVRSD_UINT32, &__value); -} - -static __inline__ -_Unwind_Word _Unwind_GetIP(struct _Unwind_Context *__context) { - _Unwind_Word __ip = _Unwind_GetGR(__context, 15); - return __ip & ~(_Unwind_Word)(0x1); /* Remove thumb mode bit. */ -} - -static __inline__ -void _Unwind_SetIP(struct _Unwind_Context *__context, _Unwind_Word __value) { - _Unwind_Word __thumb_mode_bit = _Unwind_GetGR(__context, 15) & 0x1; - _Unwind_SetGR(__context, 15, __value | __thumb_mode_bit); -} -#else -_Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int); -void _Unwind_SetGR(struct _Unwind_Context *, int, _Unwind_Word); - -_Unwind_Word _Unwind_GetIP(struct _Unwind_Context *); -void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Word); -#endif - - -_Unwind_Word _Unwind_GetIPInfo(struct _Unwind_Context *, int *); - -_Unwind_Word _Unwind_GetCFA(struct _Unwind_Context *); - -_Unwind_Word _Unwind_GetBSP(struct _Unwind_Context *); - -void *_Unwind_GetLanguageSpecificData(struct _Unwind_Context *); - -_Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); - -/* DWARF EH functions; currently not available on Darwin/ARM */ -#if !defined(__APPLE__) || !defined(__arm__) -_Unwind_Reason_Code _Unwind_RaiseException(_Unwind_Exception *); -_Unwind_Reason_Code _Unwind_ForcedUnwind(_Unwind_Exception *, _Unwind_Stop_Fn, - void *); -void _Unwind_DeleteException(_Unwind_Exception *); -void _Unwind_Resume(_Unwind_Exception *); -_Unwind_Reason_Code _Unwind_Resume_or_Rethrow(_Unwind_Exception *); - -#endif - -_Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *); - -/* setjmp(3)/longjmp(3) stuff */ -typedef struct SjLj_Function_Context *_Unwind_FunctionContext_t; - -void _Unwind_SjLj_Register(_Unwind_FunctionContext_t); -void _Unwind_SjLj_Unregister(_Unwind_FunctionContext_t); -_Unwind_Reason_Code _Unwind_SjLj_RaiseException(_Unwind_Exception *); -_Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind(_Unwind_Exception *, - _Unwind_Stop_Fn, void *); -void _Unwind_SjLj_Resume(_Unwind_Exception *); -_Unwind_Reason_Code _Unwind_SjLj_Resume_or_Rethrow(_Unwind_Exception *); - -void *_Unwind_FindEnclosingFunction(void *); - -#ifdef __APPLE__ - -_Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *) - __attribute__((__unavailable__)); -_Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *) - __attribute__((__unavailable__)); - -/* Darwin-specific functions */ -void __register_frame(const void *); -void __deregister_frame(const void *); - -struct dwarf_eh_bases { - uintptr_t tbase; - uintptr_t dbase; - uintptr_t func; -}; -void *_Unwind_Find_FDE(const void *, struct dwarf_eh_bases *); - -void __register_frame_info_bases(const void *, void *, void *, void *) - __attribute__((__unavailable__)); -void __register_frame_info(const void *, void *) __attribute__((__unavailable__)); -void __register_frame_info_table_bases(const void *, void*, void *, void *) - __attribute__((__unavailable__)); -void __register_frame_info_table(const void *, void *) - __attribute__((__unavailable__)); -void __register_frame_table(const void *) __attribute__((__unavailable__)); -void __deregister_frame_info(const void *) __attribute__((__unavailable__)); -void __deregister_frame_info_bases(const void *)__attribute__((__unavailable__)); - -#else - -_Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *); -_Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *); - -#endif - - -#ifndef HIDE_EXPORTS -#pragma GCC visibility pop -#endif - -#ifdef __cplusplus -} -#endif - -#endif - -#endif /* __CLANG_UNWIND_H */ diff --git a/bin/app/data/cxx/include/vadefs.h b/bin/app/data/cxx/include/vadefs.h deleted file mode 100644 index b6175684..00000000 --- a/bin/app/data/cxx/include/vadefs.h +++ /dev/null @@ -1,51 +0,0 @@ -/* ===-------- vadefs.h ---------------------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -/* Only include this if we are aiming for MSVC compatibility. */ -#ifndef _MSC_VER -#include_next -#else - -#ifndef __clang_vadefs_h -#define __clang_vadefs_h - -#include_next - -/* Override macros from vadefs.h with definitions that work with Clang. */ -#ifdef _crt_va_start -#undef _crt_va_start -#define _crt_va_start(ap, param) __builtin_va_start(ap, param) -#endif -#ifdef _crt_va_end -#undef _crt_va_end -#define _crt_va_end(ap) __builtin_va_end(ap) -#endif -#ifdef _crt_va_arg -#undef _crt_va_arg -#define _crt_va_arg(ap, type) __builtin_va_arg(ap, type) -#endif - -/* VS 2015 switched to double underscore names, which is an improvement, but now - * we have to intercept those names too. - */ -#ifdef __crt_va_start -#undef __crt_va_start -#define __crt_va_start(ap, param) __builtin_va_start(ap, param) -#endif -#ifdef __crt_va_end -#undef __crt_va_end -#define __crt_va_end(ap) __builtin_va_end(ap) -#endif -#ifdef __crt_va_arg -#undef __crt_va_arg -#define __crt_va_arg(ap, type) __builtin_va_arg(ap, type) -#endif - -#endif -#endif diff --git a/bin/app/data/cxx/include/vaesintrin.h b/bin/app/data/cxx/include/vaesintrin.h deleted file mode 100644 index c4d5c3e7..00000000 --- a/bin/app/data/cxx/include/vaesintrin.h +++ /dev/null @@ -1,84 +0,0 @@ -/*===------------------ vaesintrin.h - VAES intrinsics ---------------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __VAESINTRIN_H -#define __VAESINTRIN_H - -/* Default attributes for YMM forms. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("vaes"), __min_vector_width__(256))) - -/* Default attributes for ZMM forms. */ -#define __DEFAULT_FN_ATTRS_F __attribute__((__always_inline__, __nodebug__, __target__("avx512f,vaes"), __min_vector_width__(512))) - - -static __inline__ __m256i __DEFAULT_FN_ATTRS - _mm256_aesenc_epi128(__m256i __A, __m256i __B) -{ - return (__m256i) __builtin_ia32_aesenc256((__v4di) __A, - (__v4di) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS_F - _mm512_aesenc_epi128(__m512i __A, __m512i __B) -{ - return (__m512i) __builtin_ia32_aesenc512((__v8di) __A, - (__v8di) __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS - _mm256_aesdec_epi128(__m256i __A, __m256i __B) -{ - return (__m256i) __builtin_ia32_aesdec256((__v4di) __A, - (__v4di) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS_F - _mm512_aesdec_epi128(__m512i __A, __m512i __B) -{ - return (__m512i) __builtin_ia32_aesdec512((__v8di) __A, - (__v8di) __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS - _mm256_aesenclast_epi128(__m256i __A, __m256i __B) -{ - return (__m256i) __builtin_ia32_aesenclast256((__v4di) __A, - (__v4di) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS_F - _mm512_aesenclast_epi128(__m512i __A, __m512i __B) -{ - return (__m512i) __builtin_ia32_aesenclast512((__v8di) __A, - (__v8di) __B); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS - _mm256_aesdeclast_epi128(__m256i __A, __m256i __B) -{ - return (__m256i) __builtin_ia32_aesdeclast256((__v4di) __A, - (__v4di) __B); -} - -static __inline__ __m512i __DEFAULT_FN_ATTRS_F - _mm512_aesdeclast_epi128(__m512i __A, __m512i __B) -{ - return (__m512i) __builtin_ia32_aesdeclast512((__v8di) __A, - (__v8di) __B); -} - - -#undef __DEFAULT_FN_ATTRS -#undef __DEFAULT_FN_ATTRS_F - -#endif diff --git a/bin/app/data/cxx/include/varargs.h b/bin/app/data/cxx/include/varargs.h deleted file mode 100644 index d241b7de..00000000 --- a/bin/app/data/cxx/include/varargs.h +++ /dev/null @@ -1,12 +0,0 @@ -/*===---- varargs.h - Variable argument handling -------------------------------------=== -* -* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -* See https://llvm.org/LICENSE.txt for license information. -* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -* -*===-----------------------------------------------------------------------=== -*/ -#ifndef __VARARGS_H -#define __VARARGS_H - #error "Please use instead of " -#endif diff --git a/bin/app/data/cxx/include/vecintrin.h b/bin/app/data/cxx/include/vecintrin.h deleted file mode 100644 index c71b76a3..00000000 --- a/bin/app/data/cxx/include/vecintrin.h +++ /dev/null @@ -1,10862 +0,0 @@ -/*===---- vecintrin.h - Vector intrinsics ----------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if defined(__s390x__) && defined(__VEC__) - -#define __ATTRS_ai __attribute__((__always_inline__)) -#define __ATTRS_o __attribute__((__overloadable__)) -#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__)) - -#define __constant(PARM) \ - __attribute__((__enable_if__ ((PARM) == (PARM), \ - "argument must be a constant integer"))) -#define __constant_range(PARM, LOW, HIGH) \ - __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \ - "argument must be a constant integer from " #LOW " to " #HIGH))) -#define __constant_pow2_range(PARM, LOW, HIGH) \ - __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \ - ((PARM) & ((PARM) - 1)) == 0, \ - "argument must be a constant power of 2 from " #LOW " to " #HIGH))) - -/*-- __lcbb -----------------------------------------------------------------*/ - -extern __ATTRS_o unsigned int -__lcbb(const void *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); - -#define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \ - __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \ - ((Y) == 64 ? 0 : \ - (Y) == 128 ? 1 : \ - (Y) == 256 ? 2 : \ - (Y) == 512 ? 3 : \ - (Y) == 1024 ? 4 : \ - (Y) == 2048 ? 5 : \ - (Y) == 4096 ? 6 : 0) : 0)) - -/*-- vec_extract ------------------------------------------------------------*/ - -static inline __ATTRS_o_ai signed char -vec_extract(vector signed char __vec, int __index) { - return __vec[__index & 15]; -} - -static inline __ATTRS_o_ai unsigned char -vec_extract(vector bool char __vec, int __index) { - return __vec[__index & 15]; -} - -static inline __ATTRS_o_ai unsigned char -vec_extract(vector unsigned char __vec, int __index) { - return __vec[__index & 15]; -} - -static inline __ATTRS_o_ai signed short -vec_extract(vector signed short __vec, int __index) { - return __vec[__index & 7]; -} - -static inline __ATTRS_o_ai unsigned short -vec_extract(vector bool short __vec, int __index) { - return __vec[__index & 7]; -} - -static inline __ATTRS_o_ai unsigned short -vec_extract(vector unsigned short __vec, int __index) { - return __vec[__index & 7]; -} - -static inline __ATTRS_o_ai signed int -vec_extract(vector signed int __vec, int __index) { - return __vec[__index & 3]; -} - -static inline __ATTRS_o_ai unsigned int -vec_extract(vector bool int __vec, int __index) { - return __vec[__index & 3]; -} - -static inline __ATTRS_o_ai unsigned int -vec_extract(vector unsigned int __vec, int __index) { - return __vec[__index & 3]; -} - -static inline __ATTRS_o_ai signed long long -vec_extract(vector signed long long __vec, int __index) { - return __vec[__index & 1]; -} - -static inline __ATTRS_o_ai unsigned long long -vec_extract(vector bool long long __vec, int __index) { - return __vec[__index & 1]; -} - -static inline __ATTRS_o_ai unsigned long long -vec_extract(vector unsigned long long __vec, int __index) { - return __vec[__index & 1]; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai float -vec_extract(vector float __vec, int __index) { - return __vec[__index & 3]; -} -#endif - -static inline __ATTRS_o_ai double -vec_extract(vector double __vec, int __index) { - return __vec[__index & 1]; -} - -/*-- vec_insert -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_insert(signed char __scalar, vector signed char __vec, int __index) { - __vec[__index & 15] = __scalar; - return __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_insert(unsigned char __scalar, vector bool char __vec, int __index) { - vector unsigned char __newvec = (vector unsigned char)__vec; - __newvec[__index & 15] = (unsigned char)__scalar; - return __newvec; -} - -static inline __ATTRS_o_ai vector unsigned char -vec_insert(unsigned char __scalar, vector unsigned char __vec, int __index) { - __vec[__index & 15] = __scalar; - return __vec; -} - -static inline __ATTRS_o_ai vector signed short -vec_insert(signed short __scalar, vector signed short __vec, int __index) { - __vec[__index & 7] = __scalar; - return __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_insert(unsigned short __scalar, vector bool short __vec, int __index) { - vector unsigned short __newvec = (vector unsigned short)__vec; - __newvec[__index & 7] = (unsigned short)__scalar; - return __newvec; -} - -static inline __ATTRS_o_ai vector unsigned short -vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) { - __vec[__index & 7] = __scalar; - return __vec; -} - -static inline __ATTRS_o_ai vector signed int -vec_insert(signed int __scalar, vector signed int __vec, int __index) { - __vec[__index & 3] = __scalar; - return __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_insert(unsigned int __scalar, vector bool int __vec, int __index) { - vector unsigned int __newvec = (vector unsigned int)__vec; - __newvec[__index & 3] = __scalar; - return __newvec; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) { - __vec[__index & 3] = __scalar; - return __vec; -} - -static inline __ATTRS_o_ai vector signed long long -vec_insert(signed long long __scalar, vector signed long long __vec, - int __index) { - __vec[__index & 1] = __scalar; - return __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_insert(unsigned long long __scalar, vector bool long long __vec, - int __index) { - vector unsigned long long __newvec = (vector unsigned long long)__vec; - __newvec[__index & 1] = __scalar; - return __newvec; -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_insert(unsigned long long __scalar, vector unsigned long long __vec, - int __index) { - __vec[__index & 1] = __scalar; - return __vec; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_insert(float __scalar, vector float __vec, int __index) { - __vec[__index & 1] = __scalar; - return __vec; -} -#endif - -static inline __ATTRS_o_ai vector double -vec_insert(double __scalar, vector double __vec, int __index) { - __vec[__index & 1] = __scalar; - return __vec; -} - -/*-- vec_promote ------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_promote(signed char __scalar, int __index) { - const vector signed char __zero = (vector signed char)0; - vector signed char __vec = __builtin_shufflevector(__zero, __zero, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); - __vec[__index & 15] = __scalar; - return __vec; -} - -static inline __ATTRS_o_ai vector unsigned char -vec_promote(unsigned char __scalar, int __index) { - const vector unsigned char __zero = (vector unsigned char)0; - vector unsigned char __vec = __builtin_shufflevector(__zero, __zero, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); - __vec[__index & 15] = __scalar; - return __vec; -} - -static inline __ATTRS_o_ai vector signed short -vec_promote(signed short __scalar, int __index) { - const vector signed short __zero = (vector signed short)0; - vector signed short __vec = __builtin_shufflevector(__zero, __zero, - -1, -1, -1, -1, -1, -1, -1, -1); - __vec[__index & 7] = __scalar; - return __vec; -} - -static inline __ATTRS_o_ai vector unsigned short -vec_promote(unsigned short __scalar, int __index) { - const vector unsigned short __zero = (vector unsigned short)0; - vector unsigned short __vec = __builtin_shufflevector(__zero, __zero, - -1, -1, -1, -1, -1, -1, -1, -1); - __vec[__index & 7] = __scalar; - return __vec; -} - -static inline __ATTRS_o_ai vector signed int -vec_promote(signed int __scalar, int __index) { - const vector signed int __zero = (vector signed int)0; - vector signed int __vec = __builtin_shufflevector(__zero, __zero, - -1, -1, -1, -1); - __vec[__index & 3] = __scalar; - return __vec; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_promote(unsigned int __scalar, int __index) { - const vector unsigned int __zero = (vector unsigned int)0; - vector unsigned int __vec = __builtin_shufflevector(__zero, __zero, - -1, -1, -1, -1); - __vec[__index & 3] = __scalar; - return __vec; -} - -static inline __ATTRS_o_ai vector signed long long -vec_promote(signed long long __scalar, int __index) { - const vector signed long long __zero = (vector signed long long)0; - vector signed long long __vec = __builtin_shufflevector(__zero, __zero, - -1, -1); - __vec[__index & 1] = __scalar; - return __vec; -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_promote(unsigned long long __scalar, int __index) { - const vector unsigned long long __zero = (vector unsigned long long)0; - vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero, - -1, -1); - __vec[__index & 1] = __scalar; - return __vec; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_promote(float __scalar, int __index) { - const vector float __zero = (vector float)0; - vector float __vec = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1); - __vec[__index & 3] = __scalar; - return __vec; -} -#endif - -static inline __ATTRS_o_ai vector double -vec_promote(double __scalar, int __index) { - const vector double __zero = (vector double)0; - vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1); - __vec[__index & 1] = __scalar; - return __vec; -} - -/*-- vec_insert_and_zero ----------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_insert_and_zero(const signed char *__ptr) { - vector signed char __vec = (vector signed char)0; - __vec[7] = *__ptr; - return __vec; -} - -static inline __ATTRS_o_ai vector unsigned char -vec_insert_and_zero(const unsigned char *__ptr) { - vector unsigned char __vec = (vector unsigned char)0; - __vec[7] = *__ptr; - return __vec; -} - -static inline __ATTRS_o_ai vector signed short -vec_insert_and_zero(const signed short *__ptr) { - vector signed short __vec = (vector signed short)0; - __vec[3] = *__ptr; - return __vec; -} - -static inline __ATTRS_o_ai vector unsigned short -vec_insert_and_zero(const unsigned short *__ptr) { - vector unsigned short __vec = (vector unsigned short)0; - __vec[3] = *__ptr; - return __vec; -} - -static inline __ATTRS_o_ai vector signed int -vec_insert_and_zero(const signed int *__ptr) { - vector signed int __vec = (vector signed int)0; - __vec[1] = *__ptr; - return __vec; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_insert_and_zero(const unsigned int *__ptr) { - vector unsigned int __vec = (vector unsigned int)0; - __vec[1] = *__ptr; - return __vec; -} - -static inline __ATTRS_o_ai vector signed long long -vec_insert_and_zero(const signed long long *__ptr) { - vector signed long long __vec = (vector signed long long)0; - __vec[0] = *__ptr; - return __vec; -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_insert_and_zero(const unsigned long long *__ptr) { - vector unsigned long long __vec = (vector unsigned long long)0; - __vec[0] = *__ptr; - return __vec; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_insert_and_zero(const float *__ptr) { - vector float __vec = (vector float)0; - __vec[1] = *__ptr; - return __vec; -} -#endif - -static inline __ATTRS_o_ai vector double -vec_insert_and_zero(const double *__ptr) { - vector double __vec = (vector double)0; - __vec[0] = *__ptr; - return __vec; -} - -/*-- vec_perm ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_perm(vector signed char __a, vector signed char __b, - vector unsigned char __c) { - return (vector signed char)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_perm(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return (vector unsigned char)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector bool char -vec_perm(vector bool char __a, vector bool char __b, - vector unsigned char __c) { - return (vector bool char)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector signed short -vec_perm(vector signed short __a, vector signed short __b, - vector unsigned char __c) { - return (vector signed short)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_perm(vector unsigned short __a, vector unsigned short __b, - vector unsigned char __c) { - return (vector unsigned short)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector bool short -vec_perm(vector bool short __a, vector bool short __b, - vector unsigned char __c) { - return (vector bool short)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector signed int -vec_perm(vector signed int __a, vector signed int __b, - vector unsigned char __c) { - return (vector signed int)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_perm(vector unsigned int __a, vector unsigned int __b, - vector unsigned char __c) { - return (vector unsigned int)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector bool int -vec_perm(vector bool int __a, vector bool int __b, - vector unsigned char __c) { - return (vector bool int)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector signed long long -vec_perm(vector signed long long __a, vector signed long long __b, - vector unsigned char __c) { - return (vector signed long long)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_perm(vector unsigned long long __a, vector unsigned long long __b, - vector unsigned char __c) { - return (vector unsigned long long)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -static inline __ATTRS_o_ai vector bool long long -vec_perm(vector bool long long __a, vector bool long long __b, - vector unsigned char __c) { - return (vector bool long long)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_perm(vector float __a, vector float __b, - vector unsigned char __c) { - return (vector float)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_perm(vector double __a, vector double __b, - vector unsigned char __c) { - return (vector double)__builtin_s390_vperm( - (vector unsigned char)__a, (vector unsigned char)__b, __c); -} - -/*-- vec_permi --------------------------------------------------------------*/ - -// This prototype is deprecated. -extern __ATTRS_o vector signed long long -vec_permi(vector signed long long __a, vector signed long long __b, int __c) - __constant_range(__c, 0, 3); - -// This prototype is deprecated. -extern __ATTRS_o vector unsigned long long -vec_permi(vector unsigned long long __a, vector unsigned long long __b, int __c) - __constant_range(__c, 0, 3); - -// This prototype is deprecated. -extern __ATTRS_o vector bool long long -vec_permi(vector bool long long __a, vector bool long long __b, int __c) - __constant_range(__c, 0, 3); - -// This prototype is deprecated. -extern __ATTRS_o vector double -vec_permi(vector double __a, vector double __b, int __c) - __constant_range(__c, 0, 3); - -#define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \ - __builtin_s390_vpdi((vector unsigned long long)(X), \ - (vector unsigned long long)(Y), \ - (((Z) & 2) << 1) | ((Z) & 1))) - -/*-- vec_bperm_u128 ---------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_ai vector unsigned long long -vec_bperm_u128(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vbperm(__a, __b); -} -#endif - -/*-- vec_revb ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed short -vec_revb(vector signed short __vec) { - return (vector signed short) - __builtin_s390_vlbrh((vector unsigned short)__vec); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_revb(vector unsigned short __vec) { - return __builtin_s390_vlbrh(__vec); -} - -static inline __ATTRS_o_ai vector signed int -vec_revb(vector signed int __vec) { - return (vector signed int) - __builtin_s390_vlbrf((vector unsigned int)__vec); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_revb(vector unsigned int __vec) { - return __builtin_s390_vlbrf(__vec); -} - -static inline __ATTRS_o_ai vector signed long long -vec_revb(vector signed long long __vec) { - return (vector signed long long) - __builtin_s390_vlbrg((vector unsigned long long)__vec); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_revb(vector unsigned long long __vec) { - return __builtin_s390_vlbrg(__vec); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_revb(vector float __vec) { - return (vector float) - __builtin_s390_vlbrf((vector unsigned int)__vec); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_revb(vector double __vec) { - return (vector double) - __builtin_s390_vlbrg((vector unsigned long long)__vec); -} - -/*-- vec_reve ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_reve(vector signed char __vec) { - return (vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12], - __vec[11], __vec[10], __vec[9], __vec[8], - __vec[7], __vec[6], __vec[5], __vec[4], - __vec[3], __vec[2], __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector unsigned char -vec_reve(vector unsigned char __vec) { - return (vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12], - __vec[11], __vec[10], __vec[9], __vec[8], - __vec[7], __vec[6], __vec[5], __vec[4], - __vec[3], __vec[2], __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector bool char -vec_reve(vector bool char __vec) { - return (vector bool char) { __vec[15], __vec[14], __vec[13], __vec[12], - __vec[11], __vec[10], __vec[9], __vec[8], - __vec[7], __vec[6], __vec[5], __vec[4], - __vec[3], __vec[2], __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector signed short -vec_reve(vector signed short __vec) { - return (vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4], - __vec[3], __vec[2], __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector unsigned short -vec_reve(vector unsigned short __vec) { - return (vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4], - __vec[3], __vec[2], __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector bool short -vec_reve(vector bool short __vec) { - return (vector bool short) { __vec[7], __vec[6], __vec[5], __vec[4], - __vec[3], __vec[2], __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector signed int -vec_reve(vector signed int __vec) { - return (vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_reve(vector unsigned int __vec) { - return (vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector bool int -vec_reve(vector bool int __vec) { - return (vector bool int) { __vec[3], __vec[2], __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector signed long long -vec_reve(vector signed long long __vec) { - return (vector signed long long) { __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_reve(vector unsigned long long __vec) { - return (vector unsigned long long) { __vec[1], __vec[0] }; -} - -static inline __ATTRS_o_ai vector bool long long -vec_reve(vector bool long long __vec) { - return (vector bool long long) { __vec[1], __vec[0] }; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_reve(vector float __vec) { - return (vector float) { __vec[3], __vec[2], __vec[1], __vec[0] }; -} -#endif - -static inline __ATTRS_o_ai vector double -vec_reve(vector double __vec) { - return (vector double) { __vec[1], __vec[0] }; -} - -/*-- vec_sel ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_sel(vector signed char __a, vector signed char __b, - vector unsigned char __c) { - return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a); -} - -static inline __ATTRS_o_ai vector signed char -vec_sel(vector signed char __a, vector signed char __b, vector bool char __c) { - return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a); -} - -static inline __ATTRS_o_ai vector bool char -vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) { - return ((vector bool char)__c & __b) | (~(vector bool char)__c & __a); -} - -static inline __ATTRS_o_ai vector bool char -vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) { - return (__c & __b) | (~__c & __a); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_sel(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return (__c & __b) | (~__c & __a); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_sel(vector unsigned char __a, vector unsigned char __b, - vector bool char __c) { - return ((vector unsigned char)__c & __b) | (~(vector unsigned char)__c & __a); -} - -static inline __ATTRS_o_ai vector signed short -vec_sel(vector signed short __a, vector signed short __b, - vector unsigned short __c) { - return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a); -} - -static inline __ATTRS_o_ai vector signed short -vec_sel(vector signed short __a, vector signed short __b, - vector bool short __c) { - return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a); -} - -static inline __ATTRS_o_ai vector bool short -vec_sel(vector bool short __a, vector bool short __b, - vector unsigned short __c) { - return ((vector bool short)__c & __b) | (~(vector bool short)__c & __a); -} - -static inline __ATTRS_o_ai vector bool short -vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) { - return (__c & __b) | (~__c & __a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_sel(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return (__c & __b) | (~__c & __a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_sel(vector unsigned short __a, vector unsigned short __b, - vector bool short __c) { - return (((vector unsigned short)__c & __b) | - (~(vector unsigned short)__c & __a)); -} - -static inline __ATTRS_o_ai vector signed int -vec_sel(vector signed int __a, vector signed int __b, - vector unsigned int __c) { - return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a); -} - -static inline __ATTRS_o_ai vector signed int -vec_sel(vector signed int __a, vector signed int __b, vector bool int __c) { - return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a); -} - -static inline __ATTRS_o_ai vector bool int -vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) { - return ((vector bool int)__c & __b) | (~(vector bool int)__c & __a); -} - -static inline __ATTRS_o_ai vector bool int -vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) { - return (__c & __b) | (~__c & __a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_sel(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return (__c & __b) | (~__c & __a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) { - return ((vector unsigned int)__c & __b) | (~(vector unsigned int)__c & __a); -} - -static inline __ATTRS_o_ai vector signed long long -vec_sel(vector signed long long __a, vector signed long long __b, - vector unsigned long long __c) { - return (((vector signed long long)__c & __b) | - (~(vector signed long long)__c & __a)); -} - -static inline __ATTRS_o_ai vector signed long long -vec_sel(vector signed long long __a, vector signed long long __b, - vector bool long long __c) { - return (((vector signed long long)__c & __b) | - (~(vector signed long long)__c & __a)); -} - -static inline __ATTRS_o_ai vector bool long long -vec_sel(vector bool long long __a, vector bool long long __b, - vector unsigned long long __c) { - return (((vector bool long long)__c & __b) | - (~(vector bool long long)__c & __a)); -} - -static inline __ATTRS_o_ai vector bool long long -vec_sel(vector bool long long __a, vector bool long long __b, - vector bool long long __c) { - return (__c & __b) | (~__c & __a); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_sel(vector unsigned long long __a, vector unsigned long long __b, - vector unsigned long long __c) { - return (__c & __b) | (~__c & __a); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_sel(vector unsigned long long __a, vector unsigned long long __b, - vector bool long long __c) { - return (((vector unsigned long long)__c & __b) | - (~(vector unsigned long long)__c & __a)); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_sel(vector float __a, vector float __b, vector unsigned int __c) { - return (vector float)((__c & (vector unsigned int)__b) | - (~__c & (vector unsigned int)__a)); -} - -static inline __ATTRS_o_ai vector float -vec_sel(vector float __a, vector float __b, vector bool int __c) { - vector unsigned int __ac = (vector unsigned int)__a; - vector unsigned int __bc = (vector unsigned int)__b; - vector unsigned int __cc = (vector unsigned int)__c; - return (vector float)((__cc & __bc) | (~__cc & __ac)); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_sel(vector double __a, vector double __b, vector unsigned long long __c) { - return (vector double)((__c & (vector unsigned long long)__b) | - (~__c & (vector unsigned long long)__a)); -} - -static inline __ATTRS_o_ai vector double -vec_sel(vector double __a, vector double __b, vector bool long long __c) { - vector unsigned long long __ac = (vector unsigned long long)__a; - vector unsigned long long __bc = (vector unsigned long long)__b; - vector unsigned long long __cc = (vector unsigned long long)__c; - return (vector double)((__cc & __bc) | (~__cc & __ac)); -} - -/*-- vec_gather_element -----------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed int -vec_gather_element(vector signed int __vec, vector unsigned int __offset, - const signed int *__ptr, int __index) - __constant_range(__index, 0, 3) { - __vec[__index] = *(const signed int *)( - (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); - return __vec; -} - -static inline __ATTRS_o_ai vector bool int -vec_gather_element(vector bool int __vec, vector unsigned int __offset, - const unsigned int *__ptr, int __index) - __constant_range(__index, 0, 3) { - __vec[__index] = *(const unsigned int *)( - (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); - return __vec; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_gather_element(vector unsigned int __vec, vector unsigned int __offset, - const unsigned int *__ptr, int __index) - __constant_range(__index, 0, 3) { - __vec[__index] = *(const unsigned int *)( - (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); - return __vec; -} - -static inline __ATTRS_o_ai vector signed long long -vec_gather_element(vector signed long long __vec, - vector unsigned long long __offset, - const signed long long *__ptr, int __index) - __constant_range(__index, 0, 1) { - __vec[__index] = *(const signed long long *)( - (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); - return __vec; -} - -static inline __ATTRS_o_ai vector bool long long -vec_gather_element(vector bool long long __vec, - vector unsigned long long __offset, - const unsigned long long *__ptr, int __index) - __constant_range(__index, 0, 1) { - __vec[__index] = *(const unsigned long long *)( - (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); - return __vec; -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_gather_element(vector unsigned long long __vec, - vector unsigned long long __offset, - const unsigned long long *__ptr, int __index) - __constant_range(__index, 0, 1) { - __vec[__index] = *(const unsigned long long *)( - (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); - return __vec; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_gather_element(vector float __vec, vector unsigned int __offset, - const float *__ptr, int __index) - __constant_range(__index, 0, 3) { - __vec[__index] = *(const float *)( - (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); - return __vec; -} -#endif - -static inline __ATTRS_o_ai vector double -vec_gather_element(vector double __vec, vector unsigned long long __offset, - const double *__ptr, int __index) - __constant_range(__index, 0, 1) { - __vec[__index] = *(const double *)( - (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); - return __vec; -} - -/*-- vec_scatter_element ----------------------------------------------------*/ - -static inline __ATTRS_o_ai void -vec_scatter_element(vector signed int __vec, vector unsigned int __offset, - signed int *__ptr, int __index) - __constant_range(__index, 0, 3) { - *(signed int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = - __vec[__index]; -} - -static inline __ATTRS_o_ai void -vec_scatter_element(vector bool int __vec, vector unsigned int __offset, - unsigned int *__ptr, int __index) - __constant_range(__index, 0, 3) { - *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = - __vec[__index]; -} - -static inline __ATTRS_o_ai void -vec_scatter_element(vector unsigned int __vec, vector unsigned int __offset, - unsigned int *__ptr, int __index) - __constant_range(__index, 0, 3) { - *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = - __vec[__index]; -} - -static inline __ATTRS_o_ai void -vec_scatter_element(vector signed long long __vec, - vector unsigned long long __offset, - signed long long *__ptr, int __index) - __constant_range(__index, 0, 1) { - *(signed long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = - __vec[__index]; -} - -static inline __ATTRS_o_ai void -vec_scatter_element(vector bool long long __vec, - vector unsigned long long __offset, - unsigned long long *__ptr, int __index) - __constant_range(__index, 0, 1) { - *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = - __vec[__index]; -} - -static inline __ATTRS_o_ai void -vec_scatter_element(vector unsigned long long __vec, - vector unsigned long long __offset, - unsigned long long *__ptr, int __index) - __constant_range(__index, 0, 1) { - *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = - __vec[__index]; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai void -vec_scatter_element(vector float __vec, vector unsigned int __offset, - float *__ptr, int __index) - __constant_range(__index, 0, 3) { - *(float *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = - __vec[__index]; -} -#endif - -static inline __ATTRS_o_ai void -vec_scatter_element(vector double __vec, vector unsigned long long __offset, - double *__ptr, int __index) - __constant_range(__index, 0, 1) { - *(double *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = - __vec[__index]; -} - -/*-- vec_xl -----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_xl(long __offset, const signed char *__ptr) { - return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_xl(long __offset, const unsigned char *__ptr) { - return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset); -} - -static inline __ATTRS_o_ai vector signed short -vec_xl(long __offset, const signed short *__ptr) { - return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_xl(long __offset, const unsigned short *__ptr) { - return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset); -} - -static inline __ATTRS_o_ai vector signed int -vec_xl(long __offset, const signed int *__ptr) { - return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_xl(long __offset, const unsigned int *__ptr) { - return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset); -} - -static inline __ATTRS_o_ai vector signed long long -vec_xl(long __offset, const signed long long *__ptr) { - return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_xl(long __offset, const unsigned long long *__ptr) { - return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_xl(long __offset, const float *__ptr) { - return *(const vector float *)((__INTPTR_TYPE__)__ptr + __offset); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_xl(long __offset, const double *__ptr) { - return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset); -} - -/*-- vec_xld2 ---------------------------------------------------------------*/ - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_xld2(long __offset, const signed char *__ptr) { - return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_xld2(long __offset, const unsigned char *__ptr) { - return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_xld2(long __offset, const signed short *__ptr) { - return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_xld2(long __offset, const unsigned short *__ptr) { - return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_xld2(long __offset, const signed int *__ptr) { - return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_xld2(long __offset, const unsigned int *__ptr) { - return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_xld2(long __offset, const signed long long *__ptr) { - return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_xld2(long __offset, const unsigned long long *__ptr) { - return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector double -vec_xld2(long __offset, const double *__ptr) { - return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset); -} - -/*-- vec_xlw4 ---------------------------------------------------------------*/ - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_xlw4(long __offset, const signed char *__ptr) { - return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_xlw4(long __offset, const unsigned char *__ptr) { - return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_xlw4(long __offset, const signed short *__ptr) { - return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_xlw4(long __offset, const unsigned short *__ptr) { - return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_xlw4(long __offset, const signed int *__ptr) { - return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_xlw4(long __offset, const unsigned int *__ptr) { - return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset); -} - -/*-- vec_xst ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai void -vec_xst(vector signed char __vec, long __offset, signed char *__ptr) { - *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void -vec_xst(vector unsigned char __vec, long __offset, unsigned char *__ptr) { - *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void -vec_xst(vector signed short __vec, long __offset, signed short *__ptr) { - *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void -vec_xst(vector unsigned short __vec, long __offset, unsigned short *__ptr) { - *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void -vec_xst(vector signed int __vec, long __offset, signed int *__ptr) { - *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void -vec_xst(vector unsigned int __vec, long __offset, unsigned int *__ptr) { - *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void -vec_xst(vector signed long long __vec, long __offset, - signed long long *__ptr) { - *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -static inline __ATTRS_o_ai void -vec_xst(vector unsigned long long __vec, long __offset, - unsigned long long *__ptr) { - *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) = - __vec; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai void -vec_xst(vector float __vec, long __offset, float *__ptr) { - *(vector float *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} -#endif - -static inline __ATTRS_o_ai void -vec_xst(vector double __vec, long __offset, double *__ptr) { - *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -/*-- vec_xstd2 --------------------------------------------------------------*/ - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstd2(vector signed char __vec, long __offset, signed char *__ptr) { - *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstd2(vector unsigned char __vec, long __offset, unsigned char *__ptr) { - *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstd2(vector signed short __vec, long __offset, signed short *__ptr) { - *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstd2(vector unsigned short __vec, long __offset, unsigned short *__ptr) { - *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstd2(vector signed int __vec, long __offset, signed int *__ptr) { - *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstd2(vector unsigned int __vec, long __offset, unsigned int *__ptr) { - *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstd2(vector signed long long __vec, long __offset, - signed long long *__ptr) { - *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstd2(vector unsigned long long __vec, long __offset, - unsigned long long *__ptr) { - *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) = - __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstd2(vector double __vec, long __offset, double *__ptr) { - *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -/*-- vec_xstw4 --------------------------------------------------------------*/ - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstw4(vector signed char __vec, long __offset, signed char *__ptr) { - *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstw4(vector unsigned char __vec, long __offset, unsigned char *__ptr) { - *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstw4(vector signed short __vec, long __offset, signed short *__ptr) { - *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstw4(vector unsigned short __vec, long __offset, unsigned short *__ptr) { - *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstw4(vector signed int __vec, long __offset, signed int *__ptr) { - *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai void -vec_xstw4(vector unsigned int __vec, long __offset, unsigned int *__ptr) { - *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; -} - -/*-- vec_load_bndry ---------------------------------------------------------*/ - -extern __ATTRS_o vector signed char -vec_load_bndry(const signed char *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); - -extern __ATTRS_o vector unsigned char -vec_load_bndry(const unsigned char *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); - -extern __ATTRS_o vector signed short -vec_load_bndry(const signed short *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); - -extern __ATTRS_o vector unsigned short -vec_load_bndry(const unsigned short *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); - -extern __ATTRS_o vector signed int -vec_load_bndry(const signed int *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); - -extern __ATTRS_o vector unsigned int -vec_load_bndry(const unsigned int *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); - -extern __ATTRS_o vector signed long long -vec_load_bndry(const signed long long *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); - -extern __ATTRS_o vector unsigned long long -vec_load_bndry(const unsigned long long *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); - -#if __ARCH__ >= 12 -extern __ATTRS_o vector float -vec_load_bndry(const float *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); -#endif - -extern __ATTRS_o vector double -vec_load_bndry(const double *__ptr, unsigned short __len) - __constant_pow2_range(__len, 64, 4096); - -#define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \ - __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \ - (Y) == 128 ? 1 : \ - (Y) == 256 ? 2 : \ - (Y) == 512 ? 3 : \ - (Y) == 1024 ? 4 : \ - (Y) == 2048 ? 5 : \ - (Y) == 4096 ? 6 : -1))) - -/*-- vec_load_len -----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_load_len(const signed char *__ptr, unsigned int __len) { - return (vector signed char)__builtin_s390_vll(__len, __ptr); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_load_len(const unsigned char *__ptr, unsigned int __len) { - return (vector unsigned char)__builtin_s390_vll(__len, __ptr); -} - -static inline __ATTRS_o_ai vector signed short -vec_load_len(const signed short *__ptr, unsigned int __len) { - return (vector signed short)__builtin_s390_vll(__len, __ptr); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_load_len(const unsigned short *__ptr, unsigned int __len) { - return (vector unsigned short)__builtin_s390_vll(__len, __ptr); -} - -static inline __ATTRS_o_ai vector signed int -vec_load_len(const signed int *__ptr, unsigned int __len) { - return (vector signed int)__builtin_s390_vll(__len, __ptr); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_load_len(const unsigned int *__ptr, unsigned int __len) { - return (vector unsigned int)__builtin_s390_vll(__len, __ptr); -} - -static inline __ATTRS_o_ai vector signed long long -vec_load_len(const signed long long *__ptr, unsigned int __len) { - return (vector signed long long)__builtin_s390_vll(__len, __ptr); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_load_len(const unsigned long long *__ptr, unsigned int __len) { - return (vector unsigned long long)__builtin_s390_vll(__len, __ptr); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_load_len(const float *__ptr, unsigned int __len) { - return (vector float)__builtin_s390_vll(__len, __ptr); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_load_len(const double *__ptr, unsigned int __len) { - return (vector double)__builtin_s390_vll(__len, __ptr); -} - -/*-- vec_load_len_r ---------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_ai vector unsigned char -vec_load_len_r(const unsigned char *__ptr, unsigned int __len) { - return (vector unsigned char)__builtin_s390_vlrl(__len, __ptr); -} -#endif - -/*-- vec_store_len ----------------------------------------------------------*/ - -static inline __ATTRS_o_ai void -vec_store_len(vector signed char __vec, signed char *__ptr, - unsigned int __len) { - __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); -} - -static inline __ATTRS_o_ai void -vec_store_len(vector unsigned char __vec, unsigned char *__ptr, - unsigned int __len) { - __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); -} - -static inline __ATTRS_o_ai void -vec_store_len(vector signed short __vec, signed short *__ptr, - unsigned int __len) { - __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); -} - -static inline __ATTRS_o_ai void -vec_store_len(vector unsigned short __vec, unsigned short *__ptr, - unsigned int __len) { - __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); -} - -static inline __ATTRS_o_ai void -vec_store_len(vector signed int __vec, signed int *__ptr, - unsigned int __len) { - __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); -} - -static inline __ATTRS_o_ai void -vec_store_len(vector unsigned int __vec, unsigned int *__ptr, - unsigned int __len) { - __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); -} - -static inline __ATTRS_o_ai void -vec_store_len(vector signed long long __vec, signed long long *__ptr, - unsigned int __len) { - __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); -} - -static inline __ATTRS_o_ai void -vec_store_len(vector unsigned long long __vec, unsigned long long *__ptr, - unsigned int __len) { - __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai void -vec_store_len(vector float __vec, float *__ptr, - unsigned int __len) { - __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); -} -#endif - -static inline __ATTRS_o_ai void -vec_store_len(vector double __vec, double *__ptr, - unsigned int __len) { - __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); -} - -/*-- vec_store_len_r --------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_ai void -vec_store_len_r(vector unsigned char __vec, unsigned char *__ptr, - unsigned int __len) { - __builtin_s390_vstrl((vector signed char)__vec, __len, __ptr); -} -#endif - -/*-- vec_load_pair ----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed long long -vec_load_pair(signed long long __a, signed long long __b) { - return (vector signed long long)(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_load_pair(unsigned long long __a, unsigned long long __b) { - return (vector unsigned long long)(__a, __b); -} - -/*-- vec_genmask ------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_genmask(unsigned short __mask) - __constant(__mask) { - return (vector unsigned char)( - __mask & 0x8000 ? 0xff : 0, - __mask & 0x4000 ? 0xff : 0, - __mask & 0x2000 ? 0xff : 0, - __mask & 0x1000 ? 0xff : 0, - __mask & 0x0800 ? 0xff : 0, - __mask & 0x0400 ? 0xff : 0, - __mask & 0x0200 ? 0xff : 0, - __mask & 0x0100 ? 0xff : 0, - __mask & 0x0080 ? 0xff : 0, - __mask & 0x0040 ? 0xff : 0, - __mask & 0x0020 ? 0xff : 0, - __mask & 0x0010 ? 0xff : 0, - __mask & 0x0008 ? 0xff : 0, - __mask & 0x0004 ? 0xff : 0, - __mask & 0x0002 ? 0xff : 0, - __mask & 0x0001 ? 0xff : 0); -} - -/*-- vec_genmasks_* ---------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_genmasks_8(unsigned char __first, unsigned char __last) - __constant(__first) __constant(__last) { - unsigned char __bit1 = __first & 7; - unsigned char __bit2 = __last & 7; - unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1; - unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1; - unsigned char __value = (__bit1 <= __bit2 ? - __mask1 & ~__mask2 : - __mask1 | ~__mask2); - return (vector unsigned char)__value; -} - -static inline __ATTRS_o_ai vector unsigned short -vec_genmasks_16(unsigned char __first, unsigned char __last) - __constant(__first) __constant(__last) { - unsigned char __bit1 = __first & 15; - unsigned char __bit2 = __last & 15; - unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1; - unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1; - unsigned short __value = (__bit1 <= __bit2 ? - __mask1 & ~__mask2 : - __mask1 | ~__mask2); - return (vector unsigned short)__value; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_genmasks_32(unsigned char __first, unsigned char __last) - __constant(__first) __constant(__last) { - unsigned char __bit1 = __first & 31; - unsigned char __bit2 = __last & 31; - unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1; - unsigned int __mask2 = (1U << (31 - __bit2)) - 1; - unsigned int __value = (__bit1 <= __bit2 ? - __mask1 & ~__mask2 : - __mask1 | ~__mask2); - return (vector unsigned int)__value; -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_genmasks_64(unsigned char __first, unsigned char __last) - __constant(__first) __constant(__last) { - unsigned char __bit1 = __first & 63; - unsigned char __bit2 = __last & 63; - unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1; - unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1; - unsigned long long __value = (__bit1 <= __bit2 ? - __mask1 & ~__mask2 : - __mask1 | ~__mask2); - return (vector unsigned long long)__value; -} - -/*-- vec_splat --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_splat(vector signed char __vec, int __index) - __constant_range(__index, 0, 15) { - return (vector signed char)__vec[__index]; -} - -static inline __ATTRS_o_ai vector bool char -vec_splat(vector bool char __vec, int __index) - __constant_range(__index, 0, 15) { - return (vector bool char)(vector unsigned char)__vec[__index]; -} - -static inline __ATTRS_o_ai vector unsigned char -vec_splat(vector unsigned char __vec, int __index) - __constant_range(__index, 0, 15) { - return (vector unsigned char)__vec[__index]; -} - -static inline __ATTRS_o_ai vector signed short -vec_splat(vector signed short __vec, int __index) - __constant_range(__index, 0, 7) { - return (vector signed short)__vec[__index]; -} - -static inline __ATTRS_o_ai vector bool short -vec_splat(vector bool short __vec, int __index) - __constant_range(__index, 0, 7) { - return (vector bool short)(vector unsigned short)__vec[__index]; -} - -static inline __ATTRS_o_ai vector unsigned short -vec_splat(vector unsigned short __vec, int __index) - __constant_range(__index, 0, 7) { - return (vector unsigned short)__vec[__index]; -} - -static inline __ATTRS_o_ai vector signed int -vec_splat(vector signed int __vec, int __index) - __constant_range(__index, 0, 3) { - return (vector signed int)__vec[__index]; -} - -static inline __ATTRS_o_ai vector bool int -vec_splat(vector bool int __vec, int __index) - __constant_range(__index, 0, 3) { - return (vector bool int)(vector unsigned int)__vec[__index]; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_splat(vector unsigned int __vec, int __index) - __constant_range(__index, 0, 3) { - return (vector unsigned int)__vec[__index]; -} - -static inline __ATTRS_o_ai vector signed long long -vec_splat(vector signed long long __vec, int __index) - __constant_range(__index, 0, 1) { - return (vector signed long long)__vec[__index]; -} - -static inline __ATTRS_o_ai vector bool long long -vec_splat(vector bool long long __vec, int __index) - __constant_range(__index, 0, 1) { - return (vector bool long long)(vector unsigned long long)__vec[__index]; -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_splat(vector unsigned long long __vec, int __index) - __constant_range(__index, 0, 1) { - return (vector unsigned long long)__vec[__index]; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_splat(vector float __vec, int __index) - __constant_range(__index, 0, 3) { - return (vector float)__vec[__index]; -} -#endif - -static inline __ATTRS_o_ai vector double -vec_splat(vector double __vec, int __index) - __constant_range(__index, 0, 1) { - return (vector double)__vec[__index]; -} - -/*-- vec_splat_s* -----------------------------------------------------------*/ - -static inline __ATTRS_ai vector signed char -vec_splat_s8(signed char __scalar) - __constant(__scalar) { - return (vector signed char)__scalar; -} - -static inline __ATTRS_ai vector signed short -vec_splat_s16(signed short __scalar) - __constant(__scalar) { - return (vector signed short)__scalar; -} - -static inline __ATTRS_ai vector signed int -vec_splat_s32(signed short __scalar) - __constant(__scalar) { - return (vector signed int)(signed int)__scalar; -} - -static inline __ATTRS_ai vector signed long long -vec_splat_s64(signed short __scalar) - __constant(__scalar) { - return (vector signed long long)(signed long)__scalar; -} - -/*-- vec_splat_u* -----------------------------------------------------------*/ - -static inline __ATTRS_ai vector unsigned char -vec_splat_u8(unsigned char __scalar) - __constant(__scalar) { - return (vector unsigned char)__scalar; -} - -static inline __ATTRS_ai vector unsigned short -vec_splat_u16(unsigned short __scalar) - __constant(__scalar) { - return (vector unsigned short)__scalar; -} - -static inline __ATTRS_ai vector unsigned int -vec_splat_u32(signed short __scalar) - __constant(__scalar) { - return (vector unsigned int)(signed int)__scalar; -} - -static inline __ATTRS_ai vector unsigned long long -vec_splat_u64(signed short __scalar) - __constant(__scalar) { - return (vector unsigned long long)(signed long long)__scalar; -} - -/*-- vec_splats -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_splats(signed char __scalar) { - return (vector signed char)__scalar; -} - -static inline __ATTRS_o_ai vector unsigned char -vec_splats(unsigned char __scalar) { - return (vector unsigned char)__scalar; -} - -static inline __ATTRS_o_ai vector signed short -vec_splats(signed short __scalar) { - return (vector signed short)__scalar; -} - -static inline __ATTRS_o_ai vector unsigned short -vec_splats(unsigned short __scalar) { - return (vector unsigned short)__scalar; -} - -static inline __ATTRS_o_ai vector signed int -vec_splats(signed int __scalar) { - return (vector signed int)__scalar; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_splats(unsigned int __scalar) { - return (vector unsigned int)__scalar; -} - -static inline __ATTRS_o_ai vector signed long long -vec_splats(signed long long __scalar) { - return (vector signed long long)__scalar; -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_splats(unsigned long long __scalar) { - return (vector unsigned long long)__scalar; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_splats(float __scalar) { - return (vector float)__scalar; -} -#endif - -static inline __ATTRS_o_ai vector double -vec_splats(double __scalar) { - return (vector double)__scalar; -} - -/*-- vec_extend_s64 ---------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed long long -vec_extend_s64(vector signed char __a) { - return (vector signed long long)(__a[7], __a[15]); -} - -static inline __ATTRS_o_ai vector signed long long -vec_extend_s64(vector signed short __a) { - return (vector signed long long)(__a[3], __a[7]); -} - -static inline __ATTRS_o_ai vector signed long long -vec_extend_s64(vector signed int __a) { - return (vector signed long long)(__a[1], __a[3]); -} - -/*-- vec_mergeh -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_mergeh(vector signed char __a, vector signed char __b) { - return (vector signed char)( - __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3], - __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); -} - -static inline __ATTRS_o_ai vector bool char -vec_mergeh(vector bool char __a, vector bool char __b) { - return (vector bool char)( - __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3], - __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_mergeh(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)( - __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3], - __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); -} - -static inline __ATTRS_o_ai vector signed short -vec_mergeh(vector signed short __a, vector signed short __b) { - return (vector signed short)( - __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]); -} - -static inline __ATTRS_o_ai vector bool short -vec_mergeh(vector bool short __a, vector bool short __b) { - return (vector bool short)( - __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_mergeh(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)( - __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]); -} - -static inline __ATTRS_o_ai vector signed int -vec_mergeh(vector signed int __a, vector signed int __b) { - return (vector signed int)(__a[0], __b[0], __a[1], __b[1]); -} - -static inline __ATTRS_o_ai vector bool int -vec_mergeh(vector bool int __a, vector bool int __b) { - return (vector bool int)(__a[0], __b[0], __a[1], __b[1]); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_mergeh(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]); -} - -static inline __ATTRS_o_ai vector signed long long -vec_mergeh(vector signed long long __a, vector signed long long __b) { - return (vector signed long long)(__a[0], __b[0]); -} - -static inline __ATTRS_o_ai vector bool long long -vec_mergeh(vector bool long long __a, vector bool long long __b) { - return (vector bool long long)(__a[0], __b[0]); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) { - return (vector unsigned long long)(__a[0], __b[0]); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_mergeh(vector float __a, vector float __b) { - return (vector float)(__a[0], __b[0], __a[1], __b[1]); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_mergeh(vector double __a, vector double __b) { - return (vector double)(__a[0], __b[0]); -} - -/*-- vec_mergel -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_mergel(vector signed char __a, vector signed char __b) { - return (vector signed char)( - __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11], - __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]); -} - -static inline __ATTRS_o_ai vector bool char -vec_mergel(vector bool char __a, vector bool char __b) { - return (vector bool char)( - __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11], - __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_mergel(vector unsigned char __a, vector unsigned char __b) { - return (vector unsigned char)( - __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11], - __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]); -} - -static inline __ATTRS_o_ai vector signed short -vec_mergel(vector signed short __a, vector signed short __b) { - return (vector signed short)( - __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); -} - -static inline __ATTRS_o_ai vector bool short -vec_mergel(vector bool short __a, vector bool short __b) { - return (vector bool short)( - __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_mergel(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)( - __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); -} - -static inline __ATTRS_o_ai vector signed int -vec_mergel(vector signed int __a, vector signed int __b) { - return (vector signed int)(__a[2], __b[2], __a[3], __b[3]); -} - -static inline __ATTRS_o_ai vector bool int -vec_mergel(vector bool int __a, vector bool int __b) { - return (vector bool int)(__a[2], __b[2], __a[3], __b[3]); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_mergel(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]); -} - -static inline __ATTRS_o_ai vector signed long long -vec_mergel(vector signed long long __a, vector signed long long __b) { - return (vector signed long long)(__a[1], __b[1]); -} - -static inline __ATTRS_o_ai vector bool long long -vec_mergel(vector bool long long __a, vector bool long long __b) { - return (vector bool long long)(__a[1], __b[1]); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_mergel(vector unsigned long long __a, vector unsigned long long __b) { - return (vector unsigned long long)(__a[1], __b[1]); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_mergel(vector float __a, vector float __b) { - return (vector float)(__a[2], __b[2], __a[3], __b[3]); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_mergel(vector double __a, vector double __b) { - return (vector double)(__a[1], __b[1]); -} - -/*-- vec_pack ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_pack(vector signed short __a, vector signed short __b) { - vector signed char __ac = (vector signed char)__a; - vector signed char __bc = (vector signed char)__b; - return (vector signed char)( - __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15], - __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]); -} - -static inline __ATTRS_o_ai vector bool char -vec_pack(vector bool short __a, vector bool short __b) { - vector bool char __ac = (vector bool char)__a; - vector bool char __bc = (vector bool char)__b; - return (vector bool char)( - __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15], - __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_pack(vector unsigned short __a, vector unsigned short __b) { - vector unsigned char __ac = (vector unsigned char)__a; - vector unsigned char __bc = (vector unsigned char)__b; - return (vector unsigned char)( - __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15], - __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]); -} - -static inline __ATTRS_o_ai vector signed short -vec_pack(vector signed int __a, vector signed int __b) { - vector signed short __ac = (vector signed short)__a; - vector signed short __bc = (vector signed short)__b; - return (vector signed short)( - __ac[1], __ac[3], __ac[5], __ac[7], - __bc[1], __bc[3], __bc[5], __bc[7]); -} - -static inline __ATTRS_o_ai vector bool short -vec_pack(vector bool int __a, vector bool int __b) { - vector bool short __ac = (vector bool short)__a; - vector bool short __bc = (vector bool short)__b; - return (vector bool short)( - __ac[1], __ac[3], __ac[5], __ac[7], - __bc[1], __bc[3], __bc[5], __bc[7]); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_pack(vector unsigned int __a, vector unsigned int __b) { - vector unsigned short __ac = (vector unsigned short)__a; - vector unsigned short __bc = (vector unsigned short)__b; - return (vector unsigned short)( - __ac[1], __ac[3], __ac[5], __ac[7], - __bc[1], __bc[3], __bc[5], __bc[7]); -} - -static inline __ATTRS_o_ai vector signed int -vec_pack(vector signed long long __a, vector signed long long __b) { - vector signed int __ac = (vector signed int)__a; - vector signed int __bc = (vector signed int)__b; - return (vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]); -} - -static inline __ATTRS_o_ai vector bool int -vec_pack(vector bool long long __a, vector bool long long __b) { - vector bool int __ac = (vector bool int)__a; - vector bool int __bc = (vector bool int)__b; - return (vector bool int)(__ac[1], __ac[3], __bc[1], __bc[3]); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_pack(vector unsigned long long __a, vector unsigned long long __b) { - vector unsigned int __ac = (vector unsigned int)__a; - vector unsigned int __bc = (vector unsigned int)__b; - return (vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]); -} - -/*-- vec_packs --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_packs(vector signed short __a, vector signed short __b) { - return __builtin_s390_vpksh(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_packs(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vpklsh(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_packs(vector signed int __a, vector signed int __b) { - return __builtin_s390_vpksf(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_packs(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vpklsf(__a, __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_packs(vector signed long long __a, vector signed long long __b) { - return __builtin_s390_vpksg(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_packs(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_s390_vpklsg(__a, __b); -} - -/*-- vec_packs_cc -----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) { - return __builtin_s390_vpkshs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) { - return __builtin_s390_vpklshs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector signed short -vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) { - return __builtin_s390_vpksfs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) { - return __builtin_s390_vpklsfs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector signed int -vec_packs_cc(vector signed long long __a, vector signed long long __b, - int *__cc) { - return __builtin_s390_vpksgs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_packs_cc(vector unsigned long long __a, vector unsigned long long __b, - int *__cc) { - return __builtin_s390_vpklsgs(__a, __b, __cc); -} - -/*-- vec_packsu -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_packsu(vector signed short __a, vector signed short __b) { - const vector signed short __zero = (vector signed short)0; - return __builtin_s390_vpklsh( - (vector unsigned short)(__a >= __zero) & (vector unsigned short)__a, - (vector unsigned short)(__b >= __zero) & (vector unsigned short)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_packsu(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vpklsh(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_packsu(vector signed int __a, vector signed int __b) { - const vector signed int __zero = (vector signed int)0; - return __builtin_s390_vpklsf( - (vector unsigned int)(__a >= __zero) & (vector unsigned int)__a, - (vector unsigned int)(__b >= __zero) & (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_packsu(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vpklsf(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_packsu(vector signed long long __a, vector signed long long __b) { - const vector signed long long __zero = (vector signed long long)0; - return __builtin_s390_vpklsg( - (vector unsigned long long)(__a >= __zero) & - (vector unsigned long long)__a, - (vector unsigned long long)(__b >= __zero) & - (vector unsigned long long)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_packsu(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_s390_vpklsg(__a, __b); -} - -/*-- vec_packsu_cc ----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) { - return __builtin_s390_vpklshs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) { - return __builtin_s390_vpklsfs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_packsu_cc(vector unsigned long long __a, vector unsigned long long __b, - int *__cc) { - return __builtin_s390_vpklsgs(__a, __b, __cc); -} - -/*-- vec_unpackh ------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed short -vec_unpackh(vector signed char __a) { - return __builtin_s390_vuphb(__a); -} - -static inline __ATTRS_o_ai vector bool short -vec_unpackh(vector bool char __a) { - return (vector bool short)__builtin_s390_vuphb((vector signed char)__a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_unpackh(vector unsigned char __a) { - return __builtin_s390_vuplhb(__a); -} - -static inline __ATTRS_o_ai vector signed int -vec_unpackh(vector signed short __a) { - return __builtin_s390_vuphh(__a); -} - -static inline __ATTRS_o_ai vector bool int -vec_unpackh(vector bool short __a) { - return (vector bool int)__builtin_s390_vuphh((vector signed short)__a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_unpackh(vector unsigned short __a) { - return __builtin_s390_vuplhh(__a); -} - -static inline __ATTRS_o_ai vector signed long long -vec_unpackh(vector signed int __a) { - return __builtin_s390_vuphf(__a); -} - -static inline __ATTRS_o_ai vector bool long long -vec_unpackh(vector bool int __a) { - return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_unpackh(vector unsigned int __a) { - return __builtin_s390_vuplhf(__a); -} - -/*-- vec_unpackl ------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed short -vec_unpackl(vector signed char __a) { - return __builtin_s390_vuplb(__a); -} - -static inline __ATTRS_o_ai vector bool short -vec_unpackl(vector bool char __a) { - return (vector bool short)__builtin_s390_vuplb((vector signed char)__a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_unpackl(vector unsigned char __a) { - return __builtin_s390_vupllb(__a); -} - -static inline __ATTRS_o_ai vector signed int -vec_unpackl(vector signed short __a) { - return __builtin_s390_vuplhw(__a); -} - -static inline __ATTRS_o_ai vector bool int -vec_unpackl(vector bool short __a) { - return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_unpackl(vector unsigned short __a) { - return __builtin_s390_vupllh(__a); -} - -static inline __ATTRS_o_ai vector signed long long -vec_unpackl(vector signed int __a) { - return __builtin_s390_vuplf(__a); -} - -static inline __ATTRS_o_ai vector bool long long -vec_unpackl(vector bool int __a) { - return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_unpackl(vector unsigned int __a) { - return __builtin_s390_vupllf(__a); -} - -/*-- vec_cmpeq --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_cmpeq(vector bool char __a, vector bool char __b) { - return (vector bool char)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool char -vec_cmpeq(vector signed char __a, vector signed char __b) { - return (vector bool char)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool char -vec_cmpeq(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmpeq(vector bool short __a, vector bool short __b) { - return (vector bool short)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmpeq(vector signed short __a, vector signed short __b) { - return (vector bool short)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmpeq(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmpeq(vector bool int __a, vector bool int __b) { - return (vector bool int)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmpeq(vector signed int __a, vector signed int __b) { - return (vector bool int)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmpeq(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmpeq(vector bool long long __a, vector bool long long __b) { - return (vector bool long long)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmpeq(vector signed long long __a, vector signed long long __b) { - return (vector bool long long)(__a == __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) { - return (vector bool long long)(__a == __b); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector bool int -vec_cmpeq(vector float __a, vector float __b) { - return (vector bool int)(__a == __b); -} -#endif - -static inline __ATTRS_o_ai vector bool long long -vec_cmpeq(vector double __a, vector double __b) { - return (vector bool long long)(__a == __b); -} - -/*-- vec_cmpge --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_cmpge(vector signed char __a, vector signed char __b) { - return (vector bool char)(__a >= __b); -} - -static inline __ATTRS_o_ai vector bool char -vec_cmpge(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)(__a >= __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmpge(vector signed short __a, vector signed short __b) { - return (vector bool short)(__a >= __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmpge(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)(__a >= __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmpge(vector signed int __a, vector signed int __b) { - return (vector bool int)(__a >= __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmpge(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)(__a >= __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmpge(vector signed long long __a, vector signed long long __b) { - return (vector bool long long)(__a >= __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) { - return (vector bool long long)(__a >= __b); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector bool int -vec_cmpge(vector float __a, vector float __b) { - return (vector bool int)(__a >= __b); -} -#endif - -static inline __ATTRS_o_ai vector bool long long -vec_cmpge(vector double __a, vector double __b) { - return (vector bool long long)(__a >= __b); -} - -/*-- vec_cmpgt --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_cmpgt(vector signed char __a, vector signed char __b) { - return (vector bool char)(__a > __b); -} - -static inline __ATTRS_o_ai vector bool char -vec_cmpgt(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)(__a > __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmpgt(vector signed short __a, vector signed short __b) { - return (vector bool short)(__a > __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmpgt(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)(__a > __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmpgt(vector signed int __a, vector signed int __b) { - return (vector bool int)(__a > __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmpgt(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)(__a > __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmpgt(vector signed long long __a, vector signed long long __b) { - return (vector bool long long)(__a > __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) { - return (vector bool long long)(__a > __b); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector bool int -vec_cmpgt(vector float __a, vector float __b) { - return (vector bool int)(__a > __b); -} -#endif - -static inline __ATTRS_o_ai vector bool long long -vec_cmpgt(vector double __a, vector double __b) { - return (vector bool long long)(__a > __b); -} - -/*-- vec_cmple --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_cmple(vector signed char __a, vector signed char __b) { - return (vector bool char)(__a <= __b); -} - -static inline __ATTRS_o_ai vector bool char -vec_cmple(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)(__a <= __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmple(vector signed short __a, vector signed short __b) { - return (vector bool short)(__a <= __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmple(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)(__a <= __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmple(vector signed int __a, vector signed int __b) { - return (vector bool int)(__a <= __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmple(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)(__a <= __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmple(vector signed long long __a, vector signed long long __b) { - return (vector bool long long)(__a <= __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmple(vector unsigned long long __a, vector unsigned long long __b) { - return (vector bool long long)(__a <= __b); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector bool int -vec_cmple(vector float __a, vector float __b) { - return (vector bool int)(__a <= __b); -} -#endif - -static inline __ATTRS_o_ai vector bool long long -vec_cmple(vector double __a, vector double __b) { - return (vector bool long long)(__a <= __b); -} - -/*-- vec_cmplt --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_cmplt(vector signed char __a, vector signed char __b) { - return (vector bool char)(__a < __b); -} - -static inline __ATTRS_o_ai vector bool char -vec_cmplt(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)(__a < __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmplt(vector signed short __a, vector signed short __b) { - return (vector bool short)(__a < __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmplt(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)(__a < __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmplt(vector signed int __a, vector signed int __b) { - return (vector bool int)(__a < __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmplt(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)(__a < __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmplt(vector signed long long __a, vector signed long long __b) { - return (vector bool long long)(__a < __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) { - return (vector bool long long)(__a < __b); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector bool int -vec_cmplt(vector float __a, vector float __b) { - return (vector bool int)(__a < __b); -} -#endif - -static inline __ATTRS_o_ai vector bool long long -vec_cmplt(vector double __a, vector double __b) { - return (vector bool long long)(__a < __b); -} - -/*-- vec_all_eq -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_all_eq(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vceqbs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vceqhs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vceqfs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vceqgs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_eq(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_eq(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc == 0; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_eq(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfcesbs(__a, __b, &__cc); - return __cc == 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_eq(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfcedbs(__a, __b, &__cc); - return __cc == 0; -} - -/*-- vec_all_ne -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_all_ne(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vceqbs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vceqhs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vceqfs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vceqgs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ne(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ne(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc == 3; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_ne(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfcesbs(__a, __b, &__cc); - return __cc == 3; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_ne(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfcedbs(__a, __b, &__cc); - return __cc == 3; -} - -/*-- vec_all_ge -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_all_ge(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchbs((vector signed char)__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ge(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__b, - (vector unsigned char)__a, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ge(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchhs((vector signed short)__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ge(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__b, - (vector unsigned short)__a, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ge(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchfs((vector signed int)__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ge(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__b, - (vector unsigned int)__a, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ge(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_ge(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_ge(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__b, - (vector unsigned long long)__a, &__cc); - return __cc == 3; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_ge(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchesbs(__a, __b, &__cc); - return __cc == 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_ge(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchedbs(__a, __b, &__cc); - return __cc == 0; -} - -/*-- vec_all_gt -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_all_gt(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs((vector signed char)__a, __b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_gt(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__a, - (vector unsigned char)__b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_gt(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs((vector signed short)__a, __b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_gt(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__a, - (vector unsigned short)__b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_gt(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs((vector signed int)__a, __b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_gt(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__a, - (vector unsigned int)__b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_gt(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_gt(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_gt(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__a, - (vector unsigned long long)__b, &__cc); - return __cc == 0; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_gt(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchsbs(__a, __b, &__cc); - return __cc == 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_gt(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchdbs(__a, __b, &__cc); - return __cc == 0; -} - -/*-- vec_all_le -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_all_le(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs((vector signed char)__a, __b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_le(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__a, - (vector unsigned char)__b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_le(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs((vector signed short)__a, __b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_le(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__a, - (vector unsigned short)__b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_le(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs((vector signed int)__a, __b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_le(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__a, - (vector unsigned int)__b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_le(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc); - return __cc == 3; -} - -static inline __ATTRS_o_ai int -vec_all_le(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc); - return __cc == 3; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_le(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__a, - (vector unsigned long long)__b, &__cc); - return __cc == 3; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_le(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchesbs(__b, __a, &__cc); - return __cc == 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_le(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchedbs(__b, __a, &__cc); - return __cc == 0; -} - -/*-- vec_all_lt -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_all_lt(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchbs((vector signed char)__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_lt(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__b, - (vector unsigned char)__a, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_lt(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchhs((vector signed short)__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_lt(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__b, - (vector unsigned short)__a, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_lt(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchfs((vector signed int)__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_lt(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__b, - (vector unsigned int)__a, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_lt(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc); - return __cc == 0; -} - -static inline __ATTRS_o_ai int -vec_all_lt(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc); - return __cc == 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_all_lt(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__b, - (vector unsigned long long)__a, &__cc); - return __cc == 0; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_lt(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchsbs(__b, __a, &__cc); - return __cc == 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_lt(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchdbs(__b, __a, &__cc); - return __cc == 0; -} - -/*-- vec_all_nge ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_nge(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchesbs(__a, __b, &__cc); - return __cc == 3; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_nge(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchedbs(__a, __b, &__cc); - return __cc == 3; -} - -/*-- vec_all_ngt ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_ngt(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchsbs(__a, __b, &__cc); - return __cc == 3; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_ngt(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchdbs(__a, __b, &__cc); - return __cc == 3; -} - -/*-- vec_all_nle ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_nle(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchesbs(__b, __a, &__cc); - return __cc == 3; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_nle(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchedbs(__b, __a, &__cc); - return __cc == 3; -} - -/*-- vec_all_nlt ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_nlt(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchsbs(__b, __a, &__cc); - return __cc == 3; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_nlt(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchdbs(__b, __a, &__cc); - return __cc == 3; -} - -/*-- vec_all_nan ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_nan(vector float __a) { - int __cc; - __builtin_s390_vftcisb(__a, 15, &__cc); - return __cc == 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_nan(vector double __a) { - int __cc; - __builtin_s390_vftcidb(__a, 15, &__cc); - return __cc == 0; -} - -/*-- vec_all_numeric --------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_all_numeric(vector float __a) { - int __cc; - __builtin_s390_vftcisb(__a, 15, &__cc); - return __cc == 3; -} -#endif - -static inline __ATTRS_o_ai int -vec_all_numeric(vector double __a) { - int __cc; - __builtin_s390_vftcidb(__a, 15, &__cc); - return __cc == 3; -} - -/*-- vec_any_eq -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_any_eq(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vceqbs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vceqhs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vceqfs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vceqgs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_eq(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_eq(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc <= 1; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_eq(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfcesbs(__a, __b, &__cc); - return __cc <= 1; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_eq(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfcedbs(__a, __b, &__cc); - return __cc <= 1; -} - -/*-- vec_any_ne -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_any_ne(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vceqbs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vceqbs((vector signed char)__a, - (vector signed char)__b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vceqhs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vceqhs((vector signed short)__a, - (vector signed short)__b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vceqfs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vceqfs((vector signed int)__a, - (vector signed int)__b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vceqgs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ne(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ne(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vceqgs((vector signed long long)__a, - (vector signed long long)__b, &__cc); - return __cc != 0; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_ne(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfcesbs(__a, __b, &__cc); - return __cc != 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_ne(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfcedbs(__a, __b, &__cc); - return __cc != 0; -} - -/*-- vec_any_ge -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_any_ge(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchbs((vector signed char)__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ge(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__b, - (vector unsigned char)__a, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ge(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchhs((vector signed short)__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ge(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__b, - (vector unsigned short)__a, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ge(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchfs((vector signed int)__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ge(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__b, - (vector unsigned int)__a, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ge(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_ge(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_ge(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__b, - (vector unsigned long long)__a, &__cc); - return __cc != 0; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_ge(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchesbs(__a, __b, &__cc); - return __cc <= 1; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_ge(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchedbs(__a, __b, &__cc); - return __cc <= 1; -} - -/*-- vec_any_gt -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_any_gt(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs((vector signed char)__a, __b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_gt(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__a, - (vector unsigned char)__b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_gt(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs((vector signed short)__a, __b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_gt(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__a, - (vector unsigned short)__b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_gt(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs((vector signed int)__a, __b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_gt(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__a, - (vector unsigned int)__b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_gt(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_gt(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_gt(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__a, - (vector unsigned long long)__b, &__cc); - return __cc <= 1; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_gt(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchsbs(__a, __b, &__cc); - return __cc <= 1; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_gt(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchdbs(__a, __b, &__cc); - return __cc <= 1; -} - -/*-- vec_any_le -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_any_le(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs((vector signed char)__a, __b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_le(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__a, - (vector unsigned char)__b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_le(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs((vector signed short)__a, __b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_le(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__a, - (vector unsigned short)__b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_le(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs((vector signed int)__a, __b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_le(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__a, - (vector unsigned int)__b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_le(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc); - return __cc != 0; -} - -static inline __ATTRS_o_ai int -vec_any_le(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc); - return __cc != 0; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_le(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__a, - (vector unsigned long long)__b, &__cc); - return __cc != 0; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_le(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchesbs(__b, __a, &__cc); - return __cc <= 1; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_le(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchedbs(__b, __a, &__cc); - return __cc <= 1; -} - -/*-- vec_any_lt -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_any_lt(vector signed char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector signed char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchbs((vector signed char)__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool char __a, vector signed char __b) { - int __cc; - __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_lt(vector unsigned char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector unsigned char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool char __a, vector unsigned char __b) { - int __cc; - __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool char __a, vector bool char __b) { - int __cc; - __builtin_s390_vchlbs((vector unsigned char)__b, - (vector unsigned char)__a, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_lt(vector signed short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector signed short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchhs((vector signed short)__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool short __a, vector signed short __b) { - int __cc; - __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_lt(vector unsigned short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector unsigned short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool short __a, vector unsigned short __b) { - int __cc; - __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool short __a, vector bool short __b) { - int __cc; - __builtin_s390_vchlhs((vector unsigned short)__b, - (vector unsigned short)__a, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_lt(vector signed int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector signed int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchfs((vector signed int)__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool int __a, vector signed int __b) { - int __cc; - __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_lt(vector unsigned int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector unsigned int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool int __a, vector unsigned int __b) { - int __cc; - __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool int __a, vector bool int __b) { - int __cc; - __builtin_s390_vchlfs((vector unsigned int)__b, - (vector unsigned int)__a, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_lt(vector signed long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector signed long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool long long __a, vector signed long long __b) { - int __cc; - __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc); - return __cc <= 1; -} - -static inline __ATTRS_o_ai int -vec_any_lt(vector unsigned long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector unsigned long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool long long __a, vector unsigned long long __b) { - int __cc; - __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc); - return __cc <= 1; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai int -vec_any_lt(vector bool long long __a, vector bool long long __b) { - int __cc; - __builtin_s390_vchlgs((vector unsigned long long)__b, - (vector unsigned long long)__a, &__cc); - return __cc <= 1; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_lt(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchsbs(__b, __a, &__cc); - return __cc <= 1; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_lt(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchdbs(__b, __a, &__cc); - return __cc <= 1; -} - -/*-- vec_any_nge ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_nge(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchesbs(__a, __b, &__cc); - return __cc != 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_nge(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchedbs(__a, __b, &__cc); - return __cc != 0; -} - -/*-- vec_any_ngt ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_ngt(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchsbs(__a, __b, &__cc); - return __cc != 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_ngt(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchdbs(__a, __b, &__cc); - return __cc != 0; -} - -/*-- vec_any_nle ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_nle(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchesbs(__b, __a, &__cc); - return __cc != 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_nle(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchedbs(__b, __a, &__cc); - return __cc != 0; -} - -/*-- vec_any_nlt ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_nlt(vector float __a, vector float __b) { - int __cc; - __builtin_s390_vfchsbs(__b, __a, &__cc); - return __cc != 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_nlt(vector double __a, vector double __b) { - int __cc; - __builtin_s390_vfchdbs(__b, __a, &__cc); - return __cc != 0; -} - -/*-- vec_any_nan ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_nan(vector float __a) { - int __cc; - __builtin_s390_vftcisb(__a, 15, &__cc); - return __cc != 3; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_nan(vector double __a) { - int __cc; - __builtin_s390_vftcidb(__a, 15, &__cc); - return __cc != 3; -} - -/*-- vec_any_numeric --------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_any_numeric(vector float __a) { - int __cc; - __builtin_s390_vftcisb(__a, 15, &__cc); - return __cc != 0; -} -#endif - -static inline __ATTRS_o_ai int -vec_any_numeric(vector double __a) { - int __cc; - __builtin_s390_vftcidb(__a, 15, &__cc); - return __cc != 0; -} - -/*-- vec_andc ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_andc(vector bool char __a, vector bool char __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector signed char -vec_andc(vector signed char __a, vector signed char __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_andc(vector bool char __a, vector signed char __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_andc(vector signed char __a, vector bool char __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector unsigned char -vec_andc(vector unsigned char __a, vector unsigned char __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_andc(vector bool char __a, vector unsigned char __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_andc(vector unsigned char __a, vector bool char __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector bool short -vec_andc(vector bool short __a, vector bool short __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector signed short -vec_andc(vector signed short __a, vector signed short __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_andc(vector bool short __a, vector signed short __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_andc(vector signed short __a, vector bool short __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector unsigned short -vec_andc(vector unsigned short __a, vector unsigned short __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_andc(vector bool short __a, vector unsigned short __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_andc(vector unsigned short __a, vector bool short __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector bool int -vec_andc(vector bool int __a, vector bool int __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector signed int -vec_andc(vector signed int __a, vector signed int __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_andc(vector bool int __a, vector signed int __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_andc(vector signed int __a, vector bool int __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_andc(vector unsigned int __a, vector unsigned int __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_andc(vector bool int __a, vector unsigned int __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_andc(vector unsigned int __a, vector bool int __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector bool long long -vec_andc(vector bool long long __a, vector bool long long __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector signed long long -vec_andc(vector signed long long __a, vector signed long long __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_andc(vector bool long long __a, vector signed long long __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_andc(vector signed long long __a, vector bool long long __b) { - return __a & ~__b; -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_andc(vector unsigned long long __a, vector unsigned long long __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_andc(vector bool long long __a, vector unsigned long long __b) { - return __a & ~__b; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_andc(vector unsigned long long __a, vector bool long long __b) { - return __a & ~__b; -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_andc(vector float __a, vector float __b) { - return (vector float)((vector unsigned int)__a & - ~(vector unsigned int)__b); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_andc(vector double __a, vector double __b) { - return (vector double)((vector unsigned long long)__a & - ~(vector unsigned long long)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector double -vec_andc(vector bool long long __a, vector double __b) { - return (vector double)((vector unsigned long long)__a & - ~(vector unsigned long long)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector double -vec_andc(vector double __a, vector bool long long __b) { - return (vector double)((vector unsigned long long)__a & - ~(vector unsigned long long)__b); -} - -/*-- vec_nor ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_nor(vector bool char __a, vector bool char __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector signed char -vec_nor(vector signed char __a, vector signed char __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_nor(vector bool char __a, vector signed char __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_nor(vector signed char __a, vector bool char __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_nor(vector unsigned char __a, vector unsigned char __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_nor(vector bool char __a, vector unsigned char __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_nor(vector unsigned char __a, vector bool char __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_nor(vector bool short __a, vector bool short __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_nor(vector signed short __a, vector signed short __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_nor(vector bool short __a, vector signed short __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_nor(vector signed short __a, vector bool short __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_nor(vector unsigned short __a, vector unsigned short __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_nor(vector bool short __a, vector unsigned short __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_nor(vector unsigned short __a, vector bool short __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_nor(vector bool int __a, vector bool int __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_nor(vector signed int __a, vector signed int __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_nor(vector bool int __a, vector signed int __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_nor(vector signed int __a, vector bool int __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_nor(vector unsigned int __a, vector unsigned int __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_nor(vector bool int __a, vector unsigned int __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_nor(vector unsigned int __a, vector bool int __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_nor(vector bool long long __a, vector bool long long __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_nor(vector signed long long __a, vector signed long long __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_nor(vector bool long long __a, vector signed long long __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_nor(vector signed long long __a, vector bool long long __b) { - return ~(__a | __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_nor(vector unsigned long long __a, vector unsigned long long __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_nor(vector bool long long __a, vector unsigned long long __b) { - return ~(__a | __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_nor(vector unsigned long long __a, vector bool long long __b) { - return ~(__a | __b); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_nor(vector float __a, vector float __b) { - return (vector float)~((vector unsigned int)__a | - (vector unsigned int)__b); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_nor(vector double __a, vector double __b) { - return (vector double)~((vector unsigned long long)__a | - (vector unsigned long long)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector double -vec_nor(vector bool long long __a, vector double __b) { - return (vector double)~((vector unsigned long long)__a | - (vector unsigned long long)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector double -vec_nor(vector double __a, vector bool long long __b) { - return (vector double)~((vector unsigned long long)__a | - (vector unsigned long long)__b); -} - -/*-- vec_orc ----------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector bool char -vec_orc(vector bool char __a, vector bool char __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector signed char -vec_orc(vector signed char __a, vector signed char __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector unsigned char -vec_orc(vector unsigned char __a, vector unsigned char __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector bool short -vec_orc(vector bool short __a, vector bool short __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector signed short -vec_orc(vector signed short __a, vector signed short __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector unsigned short -vec_orc(vector unsigned short __a, vector unsigned short __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector bool int -vec_orc(vector bool int __a, vector bool int __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector signed int -vec_orc(vector signed int __a, vector signed int __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_orc(vector unsigned int __a, vector unsigned int __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector bool long long -vec_orc(vector bool long long __a, vector bool long long __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector signed long long -vec_orc(vector signed long long __a, vector signed long long __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_orc(vector unsigned long long __a, vector unsigned long long __b) { - return __a | ~__b; -} - -static inline __ATTRS_o_ai vector float -vec_orc(vector float __a, vector float __b) { - return (vector float)((vector unsigned int)__a | - ~(vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector double -vec_orc(vector double __a, vector double __b) { - return (vector double)((vector unsigned long long)__a | - ~(vector unsigned long long)__b); -} -#endif - -/*-- vec_nand ---------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector bool char -vec_nand(vector bool char __a, vector bool char __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector signed char -vec_nand(vector signed char __a, vector signed char __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_nand(vector unsigned char __a, vector unsigned char __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_nand(vector bool short __a, vector bool short __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_nand(vector signed short __a, vector signed short __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_nand(vector unsigned short __a, vector unsigned short __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_nand(vector bool int __a, vector bool int __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_nand(vector signed int __a, vector signed int __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_nand(vector unsigned int __a, vector unsigned int __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_nand(vector bool long long __a, vector bool long long __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_nand(vector signed long long __a, vector signed long long __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_nand(vector unsigned long long __a, vector unsigned long long __b) { - return ~(__a & __b); -} - -static inline __ATTRS_o_ai vector float -vec_nand(vector float __a, vector float __b) { - return (vector float)~((vector unsigned int)__a & - (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector double -vec_nand(vector double __a, vector double __b) { - return (vector double)~((vector unsigned long long)__a & - (vector unsigned long long)__b); -} -#endif - -/*-- vec_eqv ----------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector bool char -vec_eqv(vector bool char __a, vector bool char __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector signed char -vec_eqv(vector signed char __a, vector signed char __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_eqv(vector unsigned char __a, vector unsigned char __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector bool short -vec_eqv(vector bool short __a, vector bool short __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_eqv(vector signed short __a, vector signed short __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_eqv(vector unsigned short __a, vector unsigned short __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector bool int -vec_eqv(vector bool int __a, vector bool int __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_eqv(vector signed int __a, vector signed int __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_eqv(vector unsigned int __a, vector unsigned int __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector bool long long -vec_eqv(vector bool long long __a, vector bool long long __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_eqv(vector signed long long __a, vector signed long long __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_eqv(vector unsigned long long __a, vector unsigned long long __b) { - return ~(__a ^ __b); -} - -static inline __ATTRS_o_ai vector float -vec_eqv(vector float __a, vector float __b) { - return (vector float)~((vector unsigned int)__a ^ - (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector double -vec_eqv(vector double __a, vector double __b) { - return (vector double)~((vector unsigned long long)__a ^ - (vector unsigned long long)__b); -} -#endif - -/*-- vec_cntlz --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_cntlz(vector signed char __a) { - return __builtin_s390_vclzb((vector unsigned char)__a); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cntlz(vector unsigned char __a) { - return __builtin_s390_vclzb(__a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cntlz(vector signed short __a) { - return __builtin_s390_vclzh((vector unsigned short)__a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cntlz(vector unsigned short __a) { - return __builtin_s390_vclzh(__a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cntlz(vector signed int __a) { - return __builtin_s390_vclzf((vector unsigned int)__a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cntlz(vector unsigned int __a) { - return __builtin_s390_vclzf(__a); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_cntlz(vector signed long long __a) { - return __builtin_s390_vclzg((vector unsigned long long)__a); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_cntlz(vector unsigned long long __a) { - return __builtin_s390_vclzg(__a); -} - -/*-- vec_cnttz --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_cnttz(vector signed char __a) { - return __builtin_s390_vctzb((vector unsigned char)__a); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cnttz(vector unsigned char __a) { - return __builtin_s390_vctzb(__a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cnttz(vector signed short __a) { - return __builtin_s390_vctzh((vector unsigned short)__a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cnttz(vector unsigned short __a) { - return __builtin_s390_vctzh(__a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cnttz(vector signed int __a) { - return __builtin_s390_vctzf((vector unsigned int)__a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cnttz(vector unsigned int __a) { - return __builtin_s390_vctzf(__a); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_cnttz(vector signed long long __a) { - return __builtin_s390_vctzg((vector unsigned long long)__a); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_cnttz(vector unsigned long long __a) { - return __builtin_s390_vctzg(__a); -} - -/*-- vec_popcnt -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_popcnt(vector signed char __a) { - return __builtin_s390_vpopctb((vector unsigned char)__a); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_popcnt(vector unsigned char __a) { - return __builtin_s390_vpopctb(__a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_popcnt(vector signed short __a) { - return __builtin_s390_vpopcth((vector unsigned short)__a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_popcnt(vector unsigned short __a) { - return __builtin_s390_vpopcth(__a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_popcnt(vector signed int __a) { - return __builtin_s390_vpopctf((vector unsigned int)__a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_popcnt(vector unsigned int __a) { - return __builtin_s390_vpopctf(__a); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_popcnt(vector signed long long __a) { - return __builtin_s390_vpopctg((vector unsigned long long)__a); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_popcnt(vector unsigned long long __a) { - return __builtin_s390_vpopctg(__a); -} - -/*-- vec_rl -----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_rl(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_s390_verllvb( - (vector unsigned char)__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_rl(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_verllvb(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_rl(vector signed short __a, vector unsigned short __b) { - return (vector signed short)__builtin_s390_verllvh( - (vector unsigned short)__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_rl(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_verllvh(__a, __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_rl(vector signed int __a, vector unsigned int __b) { - return (vector signed int)__builtin_s390_verllvf( - (vector unsigned int)__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_rl(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_verllvf(__a, __b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_rl(vector signed long long __a, vector unsigned long long __b) { - return (vector signed long long)__builtin_s390_verllvg( - (vector unsigned long long)__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_rl(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_s390_verllvg(__a, __b); -} - -/*-- vec_rli ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_rli(vector signed char __a, unsigned long __b) { - return (vector signed char)__builtin_s390_verllb( - (vector unsigned char)__a, (int)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_rli(vector unsigned char __a, unsigned long __b) { - return __builtin_s390_verllb(__a, (int)__b); -} - -static inline __ATTRS_o_ai vector signed short -vec_rli(vector signed short __a, unsigned long __b) { - return (vector signed short)__builtin_s390_verllh( - (vector unsigned short)__a, (int)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_rli(vector unsigned short __a, unsigned long __b) { - return __builtin_s390_verllh(__a, (int)__b); -} - -static inline __ATTRS_o_ai vector signed int -vec_rli(vector signed int __a, unsigned long __b) { - return (vector signed int)__builtin_s390_verllf( - (vector unsigned int)__a, (int)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_rli(vector unsigned int __a, unsigned long __b) { - return __builtin_s390_verllf(__a, (int)__b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_rli(vector signed long long __a, unsigned long __b) { - return (vector signed long long)__builtin_s390_verllg( - (vector unsigned long long)__a, (int)__b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_rli(vector unsigned long long __a, unsigned long __b) { - return __builtin_s390_verllg(__a, (int)__b); -} - -/*-- vec_rl_mask ------------------------------------------------------------*/ - -extern __ATTRS_o vector signed char -vec_rl_mask(vector signed char __a, vector unsigned char __b, - unsigned char __c) __constant(__c); - -extern __ATTRS_o vector unsigned char -vec_rl_mask(vector unsigned char __a, vector unsigned char __b, - unsigned char __c) __constant(__c); - -extern __ATTRS_o vector signed short -vec_rl_mask(vector signed short __a, vector unsigned short __b, - unsigned char __c) __constant(__c); - -extern __ATTRS_o vector unsigned short -vec_rl_mask(vector unsigned short __a, vector unsigned short __b, - unsigned char __c) __constant(__c); - -extern __ATTRS_o vector signed int -vec_rl_mask(vector signed int __a, vector unsigned int __b, - unsigned char __c) __constant(__c); - -extern __ATTRS_o vector unsigned int -vec_rl_mask(vector unsigned int __a, vector unsigned int __b, - unsigned char __c) __constant(__c); - -extern __ATTRS_o vector signed long long -vec_rl_mask(vector signed long long __a, vector unsigned long long __b, - unsigned char __c) __constant(__c); - -extern __ATTRS_o vector unsigned long long -vec_rl_mask(vector unsigned long long __a, vector unsigned long long __b, - unsigned char __c) __constant(__c); - -#define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \ - __extension__ ({ \ - vector unsigned char __res; \ - vector unsigned char __x = (vector unsigned char)(X); \ - vector unsigned char __y = (vector unsigned char)(Y); \ - switch (sizeof ((X)[0])) { \ - case 1: __res = (vector unsigned char) __builtin_s390_verimb( \ - (vector unsigned char)__x, (vector unsigned char)__x, \ - (vector unsigned char)__y, (Z)); break; \ - case 2: __res = (vector unsigned char) __builtin_s390_verimh( \ - (vector unsigned short)__x, (vector unsigned short)__x, \ - (vector unsigned short)__y, (Z)); break; \ - case 4: __res = (vector unsigned char) __builtin_s390_verimf( \ - (vector unsigned int)__x, (vector unsigned int)__x, \ - (vector unsigned int)__y, (Z)); break; \ - default: __res = (vector unsigned char) __builtin_s390_verimg( \ - (vector unsigned long long)__x, (vector unsigned long long)__x, \ - (vector unsigned long long)__y, (Z)); break; \ - } __res; })) - -/*-- vec_sll ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_sll(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_sll(vector signed char __a, vector unsigned short __b) { - return (vector signed char)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_sll(vector signed char __a, vector unsigned int __b) { - return (vector signed char)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool char -vec_sll(vector bool char __a, vector unsigned char __b) { - return (vector bool char)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool char -vec_sll(vector bool char __a, vector unsigned short __b) { - return (vector bool char)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool char -vec_sll(vector bool char __a, vector unsigned int __b) { - return (vector bool char)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_sll(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vsl(__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_sll(vector unsigned char __a, vector unsigned short __b) { - return __builtin_s390_vsl(__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_sll(vector unsigned char __a, vector unsigned int __b) { - return __builtin_s390_vsl(__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed short -vec_sll(vector signed short __a, vector unsigned char __b) { - return (vector signed short)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_sll(vector signed short __a, vector unsigned short __b) { - return (vector signed short)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_sll(vector signed short __a, vector unsigned int __b) { - return (vector signed short)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool short -vec_sll(vector bool short __a, vector unsigned char __b) { - return (vector bool short)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool short -vec_sll(vector bool short __a, vector unsigned short __b) { - return (vector bool short)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool short -vec_sll(vector bool short __a, vector unsigned int __b) { - return (vector bool short)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_sll(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_sll(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_sll(vector unsigned short __a, vector unsigned int __b) { - return (vector unsigned short)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed int -vec_sll(vector signed int __a, vector unsigned char __b) { - return (vector signed int)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_sll(vector signed int __a, vector unsigned short __b) { - return (vector signed int)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_sll(vector signed int __a, vector unsigned int __b) { - return (vector signed int)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool int -vec_sll(vector bool int __a, vector unsigned char __b) { - return (vector bool int)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool int -vec_sll(vector bool int __a, vector unsigned short __b) { - return (vector bool int)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool int -vec_sll(vector bool int __a, vector unsigned int __b) { - return (vector bool int)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_sll(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_sll(vector unsigned int __a, vector unsigned short __b) { - return (vector unsigned int)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_sll(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_sll(vector signed long long __a, vector unsigned char __b) { - return (vector signed long long)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_sll(vector signed long long __a, vector unsigned short __b) { - return (vector signed long long)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_sll(vector signed long long __a, vector unsigned int __b) { - return (vector signed long long)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool long long -vec_sll(vector bool long long __a, vector unsigned char __b) { - return (vector bool long long)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool long long -vec_sll(vector bool long long __a, vector unsigned short __b) { - return (vector bool long long)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool long long -vec_sll(vector bool long long __a, vector unsigned int __b) { - return (vector bool long long)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_sll(vector unsigned long long __a, vector unsigned char __b) { - return (vector unsigned long long)__builtin_s390_vsl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_sll(vector unsigned long long __a, vector unsigned short __b) { - return (vector unsigned long long)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_sll(vector unsigned long long __a, vector unsigned int __b) { - return (vector unsigned long long)__builtin_s390_vsl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -/*-- vec_slb ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_slb(vector signed char __a, vector signed char __b) { - return (vector signed char)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed char -vec_slb(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_s390_vslb( - (vector unsigned char)__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_slb(vector unsigned char __a, vector signed char __b) { - return __builtin_s390_vslb(__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_slb(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vslb(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_slb(vector signed short __a, vector signed short __b) { - return (vector signed short)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed short -vec_slb(vector signed short __a, vector unsigned short __b) { - return (vector signed short)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_slb(vector unsigned short __a, vector signed short __b) { - return (vector unsigned short)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_slb(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed int -vec_slb(vector signed int __a, vector signed int __b) { - return (vector signed int)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed int -vec_slb(vector signed int __a, vector unsigned int __b) { - return (vector signed int)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_slb(vector unsigned int __a, vector signed int __b) { - return (vector unsigned int)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_slb(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_slb(vector signed long long __a, vector signed long long __b) { - return (vector signed long long)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_slb(vector signed long long __a, vector unsigned long long __b) { - return (vector signed long long)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_slb(vector unsigned long long __a, vector signed long long __b) { - return (vector unsigned long long)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_slb(vector unsigned long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_slb(vector float __a, vector signed int __b) { - return (vector float)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector float -vec_slb(vector float __a, vector unsigned int __b) { - return (vector float)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_slb(vector double __a, vector signed long long __b) { - return (vector double)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector double -vec_slb(vector double __a, vector unsigned long long __b) { - return (vector double)__builtin_s390_vslb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -/*-- vec_sld ----------------------------------------------------------------*/ - -extern __ATTRS_o vector signed char -vec_sld(vector signed char __a, vector signed char __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector bool char -vec_sld(vector bool char __a, vector bool char __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector unsigned char -vec_sld(vector unsigned char __a, vector unsigned char __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector signed short -vec_sld(vector signed short __a, vector signed short __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector bool short -vec_sld(vector bool short __a, vector bool short __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector unsigned short -vec_sld(vector unsigned short __a, vector unsigned short __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector signed int -vec_sld(vector signed int __a, vector signed int __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector bool int -vec_sld(vector bool int __a, vector bool int __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector unsigned int -vec_sld(vector unsigned int __a, vector unsigned int __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector signed long long -vec_sld(vector signed long long __a, vector signed long long __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector bool long long -vec_sld(vector bool long long __a, vector bool long long __b, int __c) - __constant_range(__c, 0, 15); - -extern __ATTRS_o vector unsigned long long -vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c) - __constant_range(__c, 0, 15); - -#if __ARCH__ >= 12 -extern __ATTRS_o vector float -vec_sld(vector float __a, vector float __b, int __c) - __constant_range(__c, 0, 15); -#endif - -extern __ATTRS_o vector double -vec_sld(vector double __a, vector double __b, int __c) - __constant_range(__c, 0, 15); - -#define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \ - __builtin_s390_vsldb((vector unsigned char)(X), \ - (vector unsigned char)(Y), (Z))) - -/*-- vec_sldw ---------------------------------------------------------------*/ - -extern __ATTRS_o vector signed char -vec_sldw(vector signed char __a, vector signed char __b, int __c) - __constant_range(__c, 0, 3); - -extern __ATTRS_o vector unsigned char -vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c) - __constant_range(__c, 0, 3); - -extern __ATTRS_o vector signed short -vec_sldw(vector signed short __a, vector signed short __b, int __c) - __constant_range(__c, 0, 3); - -extern __ATTRS_o vector unsigned short -vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c) - __constant_range(__c, 0, 3); - -extern __ATTRS_o vector signed int -vec_sldw(vector signed int __a, vector signed int __b, int __c) - __constant_range(__c, 0, 3); - -extern __ATTRS_o vector unsigned int -vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c) - __constant_range(__c, 0, 3); - -extern __ATTRS_o vector signed long long -vec_sldw(vector signed long long __a, vector signed long long __b, int __c) - __constant_range(__c, 0, 3); - -extern __ATTRS_o vector unsigned long long -vec_sldw(vector unsigned long long __a, vector unsigned long long __b, int __c) - __constant_range(__c, 0, 3); - -// This prototype is deprecated. -extern __ATTRS_o vector double -vec_sldw(vector double __a, vector double __b, int __c) - __constant_range(__c, 0, 3); - -#define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \ - __builtin_s390_vsldb((vector unsigned char)(X), \ - (vector unsigned char)(Y), (Z) * 4)) - -/*-- vec_sldb ---------------------------------------------------------------*/ - -#if __ARCH__ >= 13 - -extern __ATTRS_o vector signed char -vec_sldb(vector signed char __a, vector signed char __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector unsigned char -vec_sldb(vector unsigned char __a, vector unsigned char __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector signed short -vec_sldb(vector signed short __a, vector signed short __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector unsigned short -vec_sldb(vector unsigned short __a, vector unsigned short __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector signed int -vec_sldb(vector signed int __a, vector signed int __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector unsigned int -vec_sldb(vector unsigned int __a, vector unsigned int __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector signed long long -vec_sldb(vector signed long long __a, vector signed long long __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector unsigned long long -vec_sldb(vector unsigned long long __a, vector unsigned long long __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector float -vec_sldb(vector float __a, vector float __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector double -vec_sldb(vector double __a, vector double __b, int __c) - __constant_range(__c, 0, 7); - -#define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \ - __builtin_s390_vsld((vector unsigned char)(X), \ - (vector unsigned char)(Y), (Z))) - -#endif - -/*-- vec_sral ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_sral(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_sral(vector signed char __a, vector unsigned short __b) { - return (vector signed char)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_sral(vector signed char __a, vector unsigned int __b) { - return (vector signed char)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool char -vec_sral(vector bool char __a, vector unsigned char __b) { - return (vector bool char)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool char -vec_sral(vector bool char __a, vector unsigned short __b) { - return (vector bool char)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool char -vec_sral(vector bool char __a, vector unsigned int __b) { - return (vector bool char)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_sral(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vsra(__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_sral(vector unsigned char __a, vector unsigned short __b) { - return __builtin_s390_vsra(__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_sral(vector unsigned char __a, vector unsigned int __b) { - return __builtin_s390_vsra(__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed short -vec_sral(vector signed short __a, vector unsigned char __b) { - return (vector signed short)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_sral(vector signed short __a, vector unsigned short __b) { - return (vector signed short)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_sral(vector signed short __a, vector unsigned int __b) { - return (vector signed short)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool short -vec_sral(vector bool short __a, vector unsigned char __b) { - return (vector bool short)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool short -vec_sral(vector bool short __a, vector unsigned short __b) { - return (vector bool short)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool short -vec_sral(vector bool short __a, vector unsigned int __b) { - return (vector bool short)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_sral(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_sral(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_sral(vector unsigned short __a, vector unsigned int __b) { - return (vector unsigned short)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed int -vec_sral(vector signed int __a, vector unsigned char __b) { - return (vector signed int)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_sral(vector signed int __a, vector unsigned short __b) { - return (vector signed int)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_sral(vector signed int __a, vector unsigned int __b) { - return (vector signed int)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool int -vec_sral(vector bool int __a, vector unsigned char __b) { - return (vector bool int)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool int -vec_sral(vector bool int __a, vector unsigned short __b) { - return (vector bool int)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool int -vec_sral(vector bool int __a, vector unsigned int __b) { - return (vector bool int)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_sral(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_sral(vector unsigned int __a, vector unsigned short __b) { - return (vector unsigned int)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_sral(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_sral(vector signed long long __a, vector unsigned char __b) { - return (vector signed long long)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_sral(vector signed long long __a, vector unsigned short __b) { - return (vector signed long long)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_sral(vector signed long long __a, vector unsigned int __b) { - return (vector signed long long)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool long long -vec_sral(vector bool long long __a, vector unsigned char __b) { - return (vector bool long long)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool long long -vec_sral(vector bool long long __a, vector unsigned short __b) { - return (vector bool long long)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool long long -vec_sral(vector bool long long __a, vector unsigned int __b) { - return (vector bool long long)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_sral(vector unsigned long long __a, vector unsigned char __b) { - return (vector unsigned long long)__builtin_s390_vsra( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_sral(vector unsigned long long __a, vector unsigned short __b) { - return (vector unsigned long long)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_sral(vector unsigned long long __a, vector unsigned int __b) { - return (vector unsigned long long)__builtin_s390_vsra( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -/*-- vec_srab ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_srab(vector signed char __a, vector signed char __b) { - return (vector signed char)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed char -vec_srab(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_s390_vsrab( - (vector unsigned char)__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_srab(vector unsigned char __a, vector signed char __b) { - return __builtin_s390_vsrab(__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_srab(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vsrab(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_srab(vector signed short __a, vector signed short __b) { - return (vector signed short)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed short -vec_srab(vector signed short __a, vector unsigned short __b) { - return (vector signed short)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_srab(vector unsigned short __a, vector signed short __b) { - return (vector unsigned short)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_srab(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed int -vec_srab(vector signed int __a, vector signed int __b) { - return (vector signed int)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed int -vec_srab(vector signed int __a, vector unsigned int __b) { - return (vector signed int)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_srab(vector unsigned int __a, vector signed int __b) { - return (vector unsigned int)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_srab(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_srab(vector signed long long __a, vector signed long long __b) { - return (vector signed long long)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_srab(vector signed long long __a, vector unsigned long long __b) { - return (vector signed long long)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_srab(vector unsigned long long __a, vector signed long long __b) { - return (vector unsigned long long)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_srab(vector unsigned long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_srab(vector float __a, vector signed int __b) { - return (vector float)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector float -vec_srab(vector float __a, vector unsigned int __b) { - return (vector float)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_srab(vector double __a, vector signed long long __b) { - return (vector double)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector double -vec_srab(vector double __a, vector unsigned long long __b) { - return (vector double)__builtin_s390_vsrab( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -/*-- vec_srl ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_srl(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_srl(vector signed char __a, vector unsigned short __b) { - return (vector signed char)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_srl(vector signed char __a, vector unsigned int __b) { - return (vector signed char)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool char -vec_srl(vector bool char __a, vector unsigned char __b) { - return (vector bool char)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool char -vec_srl(vector bool char __a, vector unsigned short __b) { - return (vector bool char)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool char -vec_srl(vector bool char __a, vector unsigned int __b) { - return (vector bool char)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_srl(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vsrl(__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_srl(vector unsigned char __a, vector unsigned short __b) { - return __builtin_s390_vsrl(__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_srl(vector unsigned char __a, vector unsigned int __b) { - return __builtin_s390_vsrl(__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed short -vec_srl(vector signed short __a, vector unsigned char __b) { - return (vector signed short)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_srl(vector signed short __a, vector unsigned short __b) { - return (vector signed short)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_srl(vector signed short __a, vector unsigned int __b) { - return (vector signed short)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool short -vec_srl(vector bool short __a, vector unsigned char __b) { - return (vector bool short)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool short -vec_srl(vector bool short __a, vector unsigned short __b) { - return (vector bool short)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool short -vec_srl(vector bool short __a, vector unsigned int __b) { - return (vector bool short)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_srl(vector unsigned short __a, vector unsigned char __b) { - return (vector unsigned short)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_srl(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_srl(vector unsigned short __a, vector unsigned int __b) { - return (vector unsigned short)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed int -vec_srl(vector signed int __a, vector unsigned char __b) { - return (vector signed int)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_srl(vector signed int __a, vector unsigned short __b) { - return (vector signed int)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_srl(vector signed int __a, vector unsigned int __b) { - return (vector signed int)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool int -vec_srl(vector bool int __a, vector unsigned char __b) { - return (vector bool int)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool int -vec_srl(vector bool int __a, vector unsigned short __b) { - return (vector bool int)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool int -vec_srl(vector bool int __a, vector unsigned int __b) { - return (vector bool int)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_srl(vector unsigned int __a, vector unsigned char __b) { - return (vector unsigned int)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_srl(vector unsigned int __a, vector unsigned short __b) { - return (vector unsigned int)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_srl(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_srl(vector signed long long __a, vector unsigned char __b) { - return (vector signed long long)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_srl(vector signed long long __a, vector unsigned short __b) { - return (vector signed long long)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_srl(vector signed long long __a, vector unsigned int __b) { - return (vector signed long long)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool long long -vec_srl(vector bool long long __a, vector unsigned char __b) { - return (vector bool long long)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool long long -vec_srl(vector bool long long __a, vector unsigned short __b) { - return (vector bool long long)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector bool long long -vec_srl(vector bool long long __a, vector unsigned int __b) { - return (vector bool long long)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_srl(vector unsigned long long __a, vector unsigned char __b) { - return (vector unsigned long long)__builtin_s390_vsrl( - (vector unsigned char)__a, __b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_srl(vector unsigned long long __a, vector unsigned short __b) { - return (vector unsigned long long)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_srl(vector unsigned long long __a, vector unsigned int __b) { - return (vector unsigned long long)__builtin_s390_vsrl( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -/*-- vec_srb ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_srb(vector signed char __a, vector signed char __b) { - return (vector signed char)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed char -vec_srb(vector signed char __a, vector unsigned char __b) { - return (vector signed char)__builtin_s390_vsrlb( - (vector unsigned char)__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_srb(vector unsigned char __a, vector signed char __b) { - return __builtin_s390_vsrlb(__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_srb(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vsrlb(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_srb(vector signed short __a, vector signed short __b) { - return (vector signed short)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed short -vec_srb(vector signed short __a, vector unsigned short __b) { - return (vector signed short)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_srb(vector unsigned short __a, vector signed short __b) { - return (vector unsigned short)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_srb(vector unsigned short __a, vector unsigned short __b) { - return (vector unsigned short)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed int -vec_srb(vector signed int __a, vector signed int __b) { - return (vector signed int)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed int -vec_srb(vector signed int __a, vector unsigned int __b) { - return (vector signed int)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_srb(vector unsigned int __a, vector signed int __b) { - return (vector unsigned int)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_srb(vector unsigned int __a, vector unsigned int __b) { - return (vector unsigned int)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_srb(vector signed long long __a, vector signed long long __b) { - return (vector signed long long)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_srb(vector signed long long __a, vector unsigned long long __b) { - return (vector signed long long)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_srb(vector unsigned long long __a, vector signed long long __b) { - return (vector unsigned long long)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_srb(vector unsigned long long __a, vector unsigned long long __b) { - return (vector unsigned long long)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_srb(vector float __a, vector signed int __b) { - return (vector float)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector float -vec_srb(vector float __a, vector unsigned int __b) { - return (vector float)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_srb(vector double __a, vector signed long long __b) { - return (vector double)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector double -vec_srb(vector double __a, vector unsigned long long __b) { - return (vector double)__builtin_s390_vsrlb( - (vector unsigned char)__a, (vector unsigned char)__b); -} - -/*-- vec_srdb ---------------------------------------------------------------*/ - -#if __ARCH__ >= 13 - -extern __ATTRS_o vector signed char -vec_srdb(vector signed char __a, vector signed char __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector unsigned char -vec_srdb(vector unsigned char __a, vector unsigned char __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector signed short -vec_srdb(vector signed short __a, vector signed short __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector unsigned short -vec_srdb(vector unsigned short __a, vector unsigned short __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector signed int -vec_srdb(vector signed int __a, vector signed int __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector unsigned int -vec_srdb(vector unsigned int __a, vector unsigned int __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector signed long long -vec_srdb(vector signed long long __a, vector signed long long __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector unsigned long long -vec_srdb(vector unsigned long long __a, vector unsigned long long __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector float -vec_srdb(vector float __a, vector float __b, int __c) - __constant_range(__c, 0, 7); - -extern __ATTRS_o vector double -vec_srdb(vector double __a, vector double __b, int __c) - __constant_range(__c, 0, 7); - -#define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \ - __builtin_s390_vsrd((vector unsigned char)(X), \ - (vector unsigned char)(Y), (Z))) - -#endif - -/*-- vec_abs ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_abs(vector signed char __a) { - return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0)); -} - -static inline __ATTRS_o_ai vector signed short -vec_abs(vector signed short __a) { - return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0)); -} - -static inline __ATTRS_o_ai vector signed int -vec_abs(vector signed int __a) { - return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0)); -} - -static inline __ATTRS_o_ai vector signed long long -vec_abs(vector signed long long __a) { - return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed long long)0)); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_abs(vector float __a) { - return __builtin_s390_vflpsb(__a); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_abs(vector double __a) { - return __builtin_s390_vflpdb(__a); -} - -/*-- vec_nabs ---------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_nabs(vector float __a) { - return __builtin_s390_vflnsb(__a); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_nabs(vector double __a) { - return __builtin_s390_vflndb(__a); -} - -/*-- vec_max ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_max(vector signed char __a, vector signed char __b) { - return vec_sel(__b, __a, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_max(vector signed char __a, vector bool char __b) { - vector signed char __bc = (vector signed char)__b; - return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_max(vector bool char __a, vector signed char __b) { - vector signed char __ac = (vector signed char)__a; - return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_max(vector unsigned char __a, vector unsigned char __b) { - return vec_sel(__b, __a, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_max(vector unsigned char __a, vector bool char __b) { - vector unsigned char __bc = (vector unsigned char)__b; - return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_max(vector bool char __a, vector unsigned char __b) { - vector unsigned char __ac = (vector unsigned char)__a; - return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector signed short -vec_max(vector signed short __a, vector signed short __b) { - return vec_sel(__b, __a, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_max(vector signed short __a, vector bool short __b) { - vector signed short __bc = (vector signed short)__b; - return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_max(vector bool short __a, vector signed short __b) { - vector signed short __ac = (vector signed short)__a; - return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_max(vector unsigned short __a, vector unsigned short __b) { - return vec_sel(__b, __a, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_max(vector unsigned short __a, vector bool short __b) { - vector unsigned short __bc = (vector unsigned short)__b; - return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_max(vector bool short __a, vector unsigned short __b) { - vector unsigned short __ac = (vector unsigned short)__a; - return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector signed int -vec_max(vector signed int __a, vector signed int __b) { - return vec_sel(__b, __a, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_max(vector signed int __a, vector bool int __b) { - vector signed int __bc = (vector signed int)__b; - return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_max(vector bool int __a, vector signed int __b) { - vector signed int __ac = (vector signed int)__a; - return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_max(vector unsigned int __a, vector unsigned int __b) { - return vec_sel(__b, __a, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_max(vector unsigned int __a, vector bool int __b) { - vector unsigned int __bc = (vector unsigned int)__b; - return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_max(vector bool int __a, vector unsigned int __b) { - vector unsigned int __ac = (vector unsigned int)__a; - return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector signed long long -vec_max(vector signed long long __a, vector signed long long __b) { - return vec_sel(__b, __a, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_max(vector signed long long __a, vector bool long long __b) { - vector signed long long __bc = (vector signed long long)__b; - return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_max(vector bool long long __a, vector signed long long __b) { - vector signed long long __ac = (vector signed long long)__a; - return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_max(vector unsigned long long __a, vector unsigned long long __b) { - return vec_sel(__b, __a, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_max(vector unsigned long long __a, vector bool long long __b) { - vector unsigned long long __bc = (vector unsigned long long)__b; - return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_max(vector bool long long __a, vector unsigned long long __b) { - vector unsigned long long __ac = (vector unsigned long long)__a; - return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_max(vector float __a, vector float __b) { - return __builtin_s390_vfmaxsb(__a, __b, 0); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_max(vector double __a, vector double __b) { -#if __ARCH__ >= 12 - return __builtin_s390_vfmaxdb(__a, __b, 0); -#else - return vec_sel(__b, __a, vec_cmpgt(__a, __b)); -#endif -} - -/*-- vec_min ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_min(vector signed char __a, vector signed char __b) { - return vec_sel(__a, __b, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_min(vector signed char __a, vector bool char __b) { - vector signed char __bc = (vector signed char)__b; - return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed char -vec_min(vector bool char __a, vector signed char __b) { - vector signed char __ac = (vector signed char)__a; - return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_min(vector unsigned char __a, vector unsigned char __b) { - return vec_sel(__a, __b, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_min(vector unsigned char __a, vector bool char __b) { - vector unsigned char __bc = (vector unsigned char)__b; - return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned char -vec_min(vector bool char __a, vector unsigned char __b) { - vector unsigned char __ac = (vector unsigned char)__a; - return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector signed short -vec_min(vector signed short __a, vector signed short __b) { - return vec_sel(__a, __b, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_min(vector signed short __a, vector bool short __b) { - vector signed short __bc = (vector signed short)__b; - return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed short -vec_min(vector bool short __a, vector signed short __b) { - vector signed short __ac = (vector signed short)__a; - return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_min(vector unsigned short __a, vector unsigned short __b) { - return vec_sel(__a, __b, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_min(vector unsigned short __a, vector bool short __b) { - vector unsigned short __bc = (vector unsigned short)__b; - return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned short -vec_min(vector bool short __a, vector unsigned short __b) { - vector unsigned short __ac = (vector unsigned short)__a; - return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector signed int -vec_min(vector signed int __a, vector signed int __b) { - return vec_sel(__a, __b, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_min(vector signed int __a, vector bool int __b) { - vector signed int __bc = (vector signed int)__b; - return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed int -vec_min(vector bool int __a, vector signed int __b) { - vector signed int __ac = (vector signed int)__a; - return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_min(vector unsigned int __a, vector unsigned int __b) { - return vec_sel(__a, __b, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_min(vector unsigned int __a, vector bool int __b) { - vector unsigned int __bc = (vector unsigned int)__b; - return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned int -vec_min(vector bool int __a, vector unsigned int __b) { - vector unsigned int __ac = (vector unsigned int)__a; - return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector signed long long -vec_min(vector signed long long __a, vector signed long long __b) { - return vec_sel(__a, __b, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_min(vector signed long long __a, vector bool long long __b) { - vector signed long long __bc = (vector signed long long)__b; - return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_min(vector bool long long __a, vector signed long long __b) { - vector signed long long __ac = (vector signed long long)__a; - return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_min(vector unsigned long long __a, vector unsigned long long __b) { - return vec_sel(__a, __b, vec_cmpgt(__a, __b)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_min(vector unsigned long long __a, vector bool long long __b) { - vector unsigned long long __bc = (vector unsigned long long)__b; - return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_min(vector bool long long __a, vector unsigned long long __b) { - vector unsigned long long __ac = (vector unsigned long long)__a; - return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_min(vector float __a, vector float __b) { - return __builtin_s390_vfminsb(__a, __b, 0); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_min(vector double __a, vector double __b) { -#if __ARCH__ >= 12 - return __builtin_s390_vfmindb(__a, __b, 0); -#else - return vec_sel(__a, __b, vec_cmpgt(__a, __b)); -#endif -} - -/*-- vec_add_u128 -----------------------------------------------------------*/ - -static inline __ATTRS_ai vector unsigned char -vec_add_u128(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vaq(__a, __b); -} - -/*-- vec_addc ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_addc(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vaccb(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_addc(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vacch(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_addc(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vaccf(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_addc(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_s390_vaccg(__a, __b); -} - -/*-- vec_addc_u128 ----------------------------------------------------------*/ - -static inline __ATTRS_ai vector unsigned char -vec_addc_u128(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vaccq(__a, __b); -} - -/*-- vec_adde_u128 ----------------------------------------------------------*/ - -static inline __ATTRS_ai vector unsigned char -vec_adde_u128(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_s390_vacq(__a, __b, __c); -} - -/*-- vec_addec_u128 ---------------------------------------------------------*/ - -static inline __ATTRS_ai vector unsigned char -vec_addec_u128(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_s390_vacccq(__a, __b, __c); -} - -/*-- vec_avg ----------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_avg(vector signed char __a, vector signed char __b) { - return __builtin_s390_vavgb(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_avg(vector signed short __a, vector signed short __b) { - return __builtin_s390_vavgh(__a, __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_avg(vector signed int __a, vector signed int __b) { - return __builtin_s390_vavgf(__a, __b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_avg(vector signed long long __a, vector signed long long __b) { - return __builtin_s390_vavgg(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_avg(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vavglb(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_avg(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vavglh(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_avg(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vavglf(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_avg(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_s390_vavglg(__a, __b); -} - -/*-- vec_checksum -----------------------------------------------------------*/ - -static inline __ATTRS_ai vector unsigned int -vec_checksum(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vcksm(__a, __b); -} - -/*-- vec_gfmsum -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned short -vec_gfmsum(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vgfmb(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_gfmsum(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vgfmh(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_gfmsum(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vgfmf(__a, __b); -} - -/*-- vec_gfmsum_128 ---------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_gfmsum_128(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_s390_vgfmg(__a, __b); -} - -/*-- vec_gfmsum_accum -------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned short -vec_gfmsum_accum(vector unsigned char __a, vector unsigned char __b, - vector unsigned short __c) { - return __builtin_s390_vgfmab(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_gfmsum_accum(vector unsigned short __a, vector unsigned short __b, - vector unsigned int __c) { - return __builtin_s390_vgfmah(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_gfmsum_accum(vector unsigned int __a, vector unsigned int __b, - vector unsigned long long __c) { - return __builtin_s390_vgfmaf(__a, __b, __c); -} - -/*-- vec_gfmsum_accum_128 ---------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_gfmsum_accum_128(vector unsigned long long __a, - vector unsigned long long __b, - vector unsigned char __c) { - return __builtin_s390_vgfmag(__a, __b, __c); -} - -/*-- vec_mladd --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_mladd(vector signed char __a, vector signed char __b, - vector signed char __c) { - return __a * __b + __c; -} - -static inline __ATTRS_o_ai vector signed char -vec_mladd(vector unsigned char __a, vector signed char __b, - vector signed char __c) { - return (vector signed char)__a * __b + __c; -} - -static inline __ATTRS_o_ai vector signed char -vec_mladd(vector signed char __a, vector unsigned char __b, - vector unsigned char __c) { - return __a * (vector signed char)__b + (vector signed char)__c; -} - -static inline __ATTRS_o_ai vector unsigned char -vec_mladd(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __a * __b + __c; -} - -static inline __ATTRS_o_ai vector signed short -vec_mladd(vector signed short __a, vector signed short __b, - vector signed short __c) { - return __a * __b + __c; -} - -static inline __ATTRS_o_ai vector signed short -vec_mladd(vector unsigned short __a, vector signed short __b, - vector signed short __c) { - return (vector signed short)__a * __b + __c; -} - -static inline __ATTRS_o_ai vector signed short -vec_mladd(vector signed short __a, vector unsigned short __b, - vector unsigned short __c) { - return __a * (vector signed short)__b + (vector signed short)__c; -} - -static inline __ATTRS_o_ai vector unsigned short -vec_mladd(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return __a * __b + __c; -} - -static inline __ATTRS_o_ai vector signed int -vec_mladd(vector signed int __a, vector signed int __b, - vector signed int __c) { - return __a * __b + __c; -} - -static inline __ATTRS_o_ai vector signed int -vec_mladd(vector unsigned int __a, vector signed int __b, - vector signed int __c) { - return (vector signed int)__a * __b + __c; -} - -static inline __ATTRS_o_ai vector signed int -vec_mladd(vector signed int __a, vector unsigned int __b, - vector unsigned int __c) { - return __a * (vector signed int)__b + (vector signed int)__c; -} - -static inline __ATTRS_o_ai vector unsigned int -vec_mladd(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return __a * __b + __c; -} - -/*-- vec_mhadd --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_mhadd(vector signed char __a, vector signed char __b, - vector signed char __c) { - return __builtin_s390_vmahb(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_mhadd(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_s390_vmalhb(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector signed short -vec_mhadd(vector signed short __a, vector signed short __b, - vector signed short __c) { - return __builtin_s390_vmahh(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_mhadd(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return __builtin_s390_vmalhh(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector signed int -vec_mhadd(vector signed int __a, vector signed int __b, - vector signed int __c) { - return __builtin_s390_vmahf(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_mhadd(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return __builtin_s390_vmalhf(__a, __b, __c); -} - -/*-- vec_meadd --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed short -vec_meadd(vector signed char __a, vector signed char __b, - vector signed short __c) { - return __builtin_s390_vmaeb(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_meadd(vector unsigned char __a, vector unsigned char __b, - vector unsigned short __c) { - return __builtin_s390_vmaleb(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector signed int -vec_meadd(vector signed short __a, vector signed short __b, - vector signed int __c) { - return __builtin_s390_vmaeh(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_meadd(vector unsigned short __a, vector unsigned short __b, - vector unsigned int __c) { - return __builtin_s390_vmaleh(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector signed long long -vec_meadd(vector signed int __a, vector signed int __b, - vector signed long long __c) { - return __builtin_s390_vmaef(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_meadd(vector unsigned int __a, vector unsigned int __b, - vector unsigned long long __c) { - return __builtin_s390_vmalef(__a, __b, __c); -} - -/*-- vec_moadd --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed short -vec_moadd(vector signed char __a, vector signed char __b, - vector signed short __c) { - return __builtin_s390_vmaob(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_moadd(vector unsigned char __a, vector unsigned char __b, - vector unsigned short __c) { - return __builtin_s390_vmalob(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector signed int -vec_moadd(vector signed short __a, vector signed short __b, - vector signed int __c) { - return __builtin_s390_vmaoh(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_moadd(vector unsigned short __a, vector unsigned short __b, - vector unsigned int __c) { - return __builtin_s390_vmaloh(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector signed long long -vec_moadd(vector signed int __a, vector signed int __b, - vector signed long long __c) { - return __builtin_s390_vmaof(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_moadd(vector unsigned int __a, vector unsigned int __b, - vector unsigned long long __c) { - return __builtin_s390_vmalof(__a, __b, __c); -} - -/*-- vec_mulh ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_mulh(vector signed char __a, vector signed char __b) { - return __builtin_s390_vmhb(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_mulh(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vmlhb(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_mulh(vector signed short __a, vector signed short __b) { - return __builtin_s390_vmhh(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_mulh(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vmlhh(__a, __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_mulh(vector signed int __a, vector signed int __b) { - return __builtin_s390_vmhf(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_mulh(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vmlhf(__a, __b); -} - -/*-- vec_mule ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed short -vec_mule(vector signed char __a, vector signed char __b) { - return __builtin_s390_vmeb(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_mule(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vmleb(__a, __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_mule(vector signed short __a, vector signed short __b) { - return __builtin_s390_vmeh(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_mule(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vmleh(__a, __b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_mule(vector signed int __a, vector signed int __b) { - return __builtin_s390_vmef(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_mule(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vmlef(__a, __b); -} - -/*-- vec_mulo ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed short -vec_mulo(vector signed char __a, vector signed char __b) { - return __builtin_s390_vmob(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_mulo(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vmlob(__a, __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_mulo(vector signed short __a, vector signed short __b) { - return __builtin_s390_vmoh(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_mulo(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vmloh(__a, __b); -} - -static inline __ATTRS_o_ai vector signed long long -vec_mulo(vector signed int __a, vector signed int __b) { - return __builtin_s390_vmof(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_mulo(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vmlof(__a, __b); -} - -/*-- vec_msum_u128 ----------------------------------------------------------*/ - -#if __ARCH__ >= 12 -#define vec_msum_u128(X, Y, Z, W) \ - ((vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W))); -#endif - -/*-- vec_sub_u128 -----------------------------------------------------------*/ - -static inline __ATTRS_ai vector unsigned char -vec_sub_u128(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vsq(__a, __b); -} - -/*-- vec_subc ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_subc(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vscbib(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_subc(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vscbih(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_subc(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vscbif(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_subc(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_s390_vscbig(__a, __b); -} - -/*-- vec_subc_u128 ----------------------------------------------------------*/ - -static inline __ATTRS_ai vector unsigned char -vec_subc_u128(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vscbiq(__a, __b); -} - -/*-- vec_sube_u128 ----------------------------------------------------------*/ - -static inline __ATTRS_ai vector unsigned char -vec_sube_u128(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_s390_vsbiq(__a, __b, __c); -} - -/*-- vec_subec_u128 ---------------------------------------------------------*/ - -static inline __ATTRS_ai vector unsigned char -vec_subec_u128(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_s390_vsbcbiq(__a, __b, __c); -} - -/*-- vec_sum2 ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned long long -vec_sum2(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vsumgh(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned long long -vec_sum2(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vsumgf(__a, __b); -} - -/*-- vec_sum_u128 -----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_sum_u128(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vsumqf(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_sum_u128(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_s390_vsumqg(__a, __b); -} - -/*-- vec_sum4 ---------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned int -vec_sum4(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vsumb(__a, __b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_sum4(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vsumh(__a, __b); -} - -/*-- vec_test_mask ----------------------------------------------------------*/ - -static inline __ATTRS_o_ai int -vec_test_mask(vector signed char __a, vector unsigned char __b) { - return __builtin_s390_vtm((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai int -vec_test_mask(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vtm(__a, __b); -} - -static inline __ATTRS_o_ai int -vec_test_mask(vector signed short __a, vector unsigned short __b) { - return __builtin_s390_vtm((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai int -vec_test_mask(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vtm((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai int -vec_test_mask(vector signed int __a, vector unsigned int __b) { - return __builtin_s390_vtm((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai int -vec_test_mask(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vtm((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai int -vec_test_mask(vector signed long long __a, vector unsigned long long __b) { - return __builtin_s390_vtm((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai int -vec_test_mask(vector unsigned long long __a, vector unsigned long long __b) { - return __builtin_s390_vtm((vector unsigned char)__a, - (vector unsigned char)__b); -} - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai int -vec_test_mask(vector float __a, vector unsigned int __b) { - return __builtin_s390_vtm((vector unsigned char)__a, - (vector unsigned char)__b); -} -#endif - -static inline __ATTRS_o_ai int -vec_test_mask(vector double __a, vector unsigned long long __b) { - return __builtin_s390_vtm((vector unsigned char)__a, - (vector unsigned char)__b); -} - -/*-- vec_madd ---------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_madd(vector float __a, vector float __b, vector float __c) { - return __builtin_s390_vfmasb(__a, __b, __c); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_madd(vector double __a, vector double __b, vector double __c) { - return __builtin_s390_vfmadb(__a, __b, __c); -} - -/*-- vec_msub ---------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_msub(vector float __a, vector float __b, vector float __c) { - return __builtin_s390_vfmssb(__a, __b, __c); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_msub(vector double __a, vector double __b, vector double __c) { - return __builtin_s390_vfmsdb(__a, __b, __c); -} - -/*-- vec_nmadd ---------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_nmadd(vector float __a, vector float __b, vector float __c) { - return __builtin_s390_vfnmasb(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector double -vec_nmadd(vector double __a, vector double __b, vector double __c) { - return __builtin_s390_vfnmadb(__a, __b, __c); -} -#endif - -/*-- vec_nmsub ---------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_nmsub(vector float __a, vector float __b, vector float __c) { - return __builtin_s390_vfnmssb(__a, __b, __c); -} - -static inline __ATTRS_o_ai vector double -vec_nmsub(vector double __a, vector double __b, vector double __c) { - return __builtin_s390_vfnmsdb(__a, __b, __c); -} -#endif - -/*-- vec_sqrt ---------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_sqrt(vector float __a) { - return __builtin_s390_vfsqsb(__a); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_sqrt(vector double __a) { - return __builtin_s390_vfsqdb(__a); -} - -/*-- vec_ld2f ---------------------------------------------------------------*/ - -// This prototype is deprecated. -static inline __ATTRS_ai vector double -vec_ld2f(const float *__ptr) { - typedef float __v2f32 __attribute__((__vector_size__(8))); - return __builtin_convertvector(*(const __v2f32 *)__ptr, vector double); -} - -/*-- vec_st2f ---------------------------------------------------------------*/ - -// This prototype is deprecated. -static inline __ATTRS_ai void -vec_st2f(vector double __a, float *__ptr) { - typedef float __v2f32 __attribute__((__vector_size__(8))); - *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32); -} - -/*-- vec_ctd ----------------------------------------------------------------*/ - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector double -vec_ctd(vector signed long long __a, int __b) - __constant_range(__b, 0, 31) { - vector double __conv = __builtin_convertvector(__a, vector double); - __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52); - return __conv; -} - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector double -vec_ctd(vector unsigned long long __a, int __b) - __constant_range(__b, 0, 31) { - vector double __conv = __builtin_convertvector(__a, vector double); - __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52); - return __conv; -} - -/*-- vec_ctsl ---------------------------------------------------------------*/ - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector signed long long -vec_ctsl(vector double __a, int __b) - __constant_range(__b, 0, 31) { - __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52); - return __builtin_convertvector(__a, vector signed long long); -} - -/*-- vec_ctul ---------------------------------------------------------------*/ - -// This prototype is deprecated. -static inline __ATTRS_o_ai vector unsigned long long -vec_ctul(vector double __a, int __b) - __constant_range(__b, 0, 31) { - __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52); - return __builtin_convertvector(__a, vector unsigned long long); -} - -/*-- vec_doublee ------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_ai vector double -vec_doublee(vector float __a) { - typedef float __v2f32 __attribute__((__vector_size__(8))); - __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2); - return __builtin_convertvector(__pack, vector double); -} -#endif - -/*-- vec_floate -------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_ai vector float -vec_floate(vector double __a) { - typedef float __v2f32 __attribute__((__vector_size__(8))); - __v2f32 __pack = __builtin_convertvector(__a, __v2f32); - return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1); -} -#endif - -/*-- vec_double -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector double -vec_double(vector signed long long __a) { - return __builtin_convertvector(__a, vector double); -} - -static inline __ATTRS_o_ai vector double -vec_double(vector unsigned long long __a) { - return __builtin_convertvector(__a, vector double); -} - -/*-- vec_float --------------------------------------------------------------*/ - -#if __ARCH__ >= 13 - -static inline __ATTRS_o_ai vector float -vec_float(vector signed int __a) { - return __builtin_convertvector(__a, vector float); -} - -static inline __ATTRS_o_ai vector float -vec_float(vector unsigned int __a) { - return __builtin_convertvector(__a, vector float); -} - -#endif - -/*-- vec_signed -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed long long -vec_signed(vector double __a) { - return __builtin_convertvector(__a, vector signed long long); -} - -#if __ARCH__ >= 13 -static inline __ATTRS_o_ai vector signed int -vec_signed(vector float __a) { - return __builtin_convertvector(__a, vector signed int); -} -#endif - -/*-- vec_unsigned -----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned long long -vec_unsigned(vector double __a) { - return __builtin_convertvector(__a, vector unsigned long long); -} - -#if __ARCH__ >= 13 -static inline __ATTRS_o_ai vector unsigned int -vec_unsigned(vector float __a) { - return __builtin_convertvector(__a, vector unsigned int); -} -#endif - -/*-- vec_roundp -------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_roundp(vector float __a) { - return __builtin_s390_vfisb(__a, 4, 6); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_roundp(vector double __a) { - return __builtin_s390_vfidb(__a, 4, 6); -} - -/*-- vec_ceil ---------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_ceil(vector float __a) { - // On this platform, vec_ceil never triggers the IEEE-inexact exception. - return __builtin_s390_vfisb(__a, 4, 6); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_ceil(vector double __a) { - // On this platform, vec_ceil never triggers the IEEE-inexact exception. - return __builtin_s390_vfidb(__a, 4, 6); -} - -/*-- vec_roundm -------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_roundm(vector float __a) { - return __builtin_s390_vfisb(__a, 4, 7); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_roundm(vector double __a) { - return __builtin_s390_vfidb(__a, 4, 7); -} - -/*-- vec_floor --------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_floor(vector float __a) { - // On this platform, vec_floor never triggers the IEEE-inexact exception. - return __builtin_s390_vfisb(__a, 4, 7); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_floor(vector double __a) { - // On this platform, vec_floor never triggers the IEEE-inexact exception. - return __builtin_s390_vfidb(__a, 4, 7); -} - -/*-- vec_roundz -------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_roundz(vector float __a) { - return __builtin_s390_vfisb(__a, 4, 5); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_roundz(vector double __a) { - return __builtin_s390_vfidb(__a, 4, 5); -} - -/*-- vec_trunc --------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_trunc(vector float __a) { - // On this platform, vec_trunc never triggers the IEEE-inexact exception. - return __builtin_s390_vfisb(__a, 4, 5); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_trunc(vector double __a) { - // On this platform, vec_trunc never triggers the IEEE-inexact exception. - return __builtin_s390_vfidb(__a, 4, 5); -} - -/*-- vec_roundc -------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_roundc(vector float __a) { - return __builtin_s390_vfisb(__a, 4, 0); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_roundc(vector double __a) { - return __builtin_s390_vfidb(__a, 4, 0); -} - -/*-- vec_rint ---------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_rint(vector float __a) { - // vec_rint may trigger the IEEE-inexact exception. - return __builtin_s390_vfisb(__a, 0, 0); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_rint(vector double __a) { - // vec_rint may trigger the IEEE-inexact exception. - return __builtin_s390_vfidb(__a, 0, 0); -} - -/*-- vec_round --------------------------------------------------------------*/ - -#if __ARCH__ >= 12 -static inline __ATTRS_o_ai vector float -vec_round(vector float __a) { - return __builtin_s390_vfisb(__a, 4, 4); -} -#endif - -static inline __ATTRS_o_ai vector double -vec_round(vector double __a) { - return __builtin_s390_vfidb(__a, 4, 4); -} - -/*-- vec_fp_test_data_class -------------------------------------------------*/ - -#if __ARCH__ >= 12 -extern __ATTRS_o vector bool int -vec_fp_test_data_class(vector float __a, int __b, int *__c) - __constant_range(__b, 0, 4095); - -extern __ATTRS_o vector bool long long -vec_fp_test_data_class(vector double __a, int __b, int *__c) - __constant_range(__b, 0, 4095); - -#define vec_fp_test_data_class(X, Y, Z) \ - ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \ - __extension__ ({ \ - vector unsigned char __res; \ - vector unsigned char __x = (vector unsigned char)(X); \ - int *__z = (Z); \ - switch (sizeof ((X)[0])) { \ - case 4: __res = (vector unsigned char) \ - __builtin_s390_vftcisb((vector float)__x, (Y), __z); \ - break; \ - default: __res = (vector unsigned char) \ - __builtin_s390_vftcidb((vector double)__x, (Y), __z); \ - break; \ - } __res; })) -#else -#define vec_fp_test_data_class(X, Y, Z) \ - ((vector bool long long)__builtin_s390_vftcidb((X), (Y), (Z))) -#endif - -#define __VEC_CLASS_FP_ZERO_P (1 << 11) -#define __VEC_CLASS_FP_ZERO_N (1 << 10) -#define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N) -#define __VEC_CLASS_FP_NORMAL_P (1 << 9) -#define __VEC_CLASS_FP_NORMAL_N (1 << 8) -#define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \ - __VEC_CLASS_FP_NORMAL_N) -#define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7) -#define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6) -#define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \ - __VEC_CLASS_FP_SUBNORMAL_N) -#define __VEC_CLASS_FP_INFINITY_P (1 << 5) -#define __VEC_CLASS_FP_INFINITY_N (1 << 4) -#define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \ - __VEC_CLASS_FP_INFINITY_N) -#define __VEC_CLASS_FP_QNAN_P (1 << 3) -#define __VEC_CLASS_FP_QNAN_N (1 << 2) -#define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N) -#define __VEC_CLASS_FP_SNAN_P (1 << 1) -#define __VEC_CLASS_FP_SNAN_N (1 << 0) -#define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N) -#define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN) -#define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \ - __VEC_CLASS_FP_SUBNORMAL | \ - __VEC_CLASS_FP_ZERO | \ - __VEC_CLASS_FP_INFINITY) - -/*-- vec_cp_until_zero ------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_cp_until_zero(vector signed char __a) { - return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a); -} - -static inline __ATTRS_o_ai vector bool char -vec_cp_until_zero(vector bool char __a) { - return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cp_until_zero(vector unsigned char __a) { - return __builtin_s390_vistrb(__a); -} - -static inline __ATTRS_o_ai vector signed short -vec_cp_until_zero(vector signed short __a) { - return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a); -} - -static inline __ATTRS_o_ai vector bool short -vec_cp_until_zero(vector bool short __a) { - return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cp_until_zero(vector unsigned short __a) { - return __builtin_s390_vistrh(__a); -} - -static inline __ATTRS_o_ai vector signed int -vec_cp_until_zero(vector signed int __a) { - return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a); -} - -static inline __ATTRS_o_ai vector bool int -vec_cp_until_zero(vector bool int __a) { - return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cp_until_zero(vector unsigned int __a) { - return __builtin_s390_vistrf(__a); -} - -/*-- vec_cp_until_zero_cc ---------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_cp_until_zero_cc(vector signed char __a, int *__cc) { - return (vector signed char) - __builtin_s390_vistrbs((vector unsigned char)__a, __cc); -} - -static inline __ATTRS_o_ai vector bool char -vec_cp_until_zero_cc(vector bool char __a, int *__cc) { - return (vector bool char) - __builtin_s390_vistrbs((vector unsigned char)__a, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) { - return __builtin_s390_vistrbs(__a, __cc); -} - -static inline __ATTRS_o_ai vector signed short -vec_cp_until_zero_cc(vector signed short __a, int *__cc) { - return (vector signed short) - __builtin_s390_vistrhs((vector unsigned short)__a, __cc); -} - -static inline __ATTRS_o_ai vector bool short -vec_cp_until_zero_cc(vector bool short __a, int *__cc) { - return (vector bool short) - __builtin_s390_vistrhs((vector unsigned short)__a, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) { - return __builtin_s390_vistrhs(__a, __cc); -} - -static inline __ATTRS_o_ai vector signed int -vec_cp_until_zero_cc(vector signed int __a, int *__cc) { - return (vector signed int) - __builtin_s390_vistrfs((vector unsigned int)__a, __cc); -} - -static inline __ATTRS_o_ai vector bool int -vec_cp_until_zero_cc(vector bool int __a, int *__cc) { - return (vector bool int)__builtin_s390_vistrfs((vector unsigned int)__a, - __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) { - return __builtin_s390_vistrfs(__a, __cc); -} - -/*-- vec_cmpeq_idx ----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_cmpeq_idx(vector signed char __a, vector signed char __b) { - return (vector signed char) - __builtin_s390_vfeeb((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpeq_idx(vector bool char __a, vector bool char __b) { - return __builtin_s390_vfeeb((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vfeeb(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_cmpeq_idx(vector signed short __a, vector signed short __b) { - return (vector signed short) - __builtin_s390_vfeeh((vector unsigned short)__a, - (vector unsigned short)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpeq_idx(vector bool short __a, vector bool short __b) { - return __builtin_s390_vfeeh((vector unsigned short)__a, - (vector unsigned short)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vfeeh(__a, __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_cmpeq_idx(vector signed int __a, vector signed int __b) { - return (vector signed int) - __builtin_s390_vfeef((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpeq_idx(vector bool int __a, vector bool int __b) { - return __builtin_s390_vfeef((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpeq_idx(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vfeef(__a, __b); -} - -/*-- vec_cmpeq_idx_cc -------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_cmpeq_idx_cc(vector signed char __a, vector signed char __b, int *__cc) { - return (vector signed char) - __builtin_s390_vfeebs((vector unsigned char)__a, - (vector unsigned char)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpeq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { - return __builtin_s390_vfeebs((vector unsigned char)__a, - (vector unsigned char)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b, - int *__cc) { - return __builtin_s390_vfeebs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector signed short -vec_cmpeq_idx_cc(vector signed short __a, vector signed short __b, int *__cc) { - return (vector signed short) - __builtin_s390_vfeehs((vector unsigned short)__a, - (vector unsigned short)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpeq_idx_cc(vector bool short __a, vector bool short __b, int *__cc) { - return __builtin_s390_vfeehs((vector unsigned short)__a, - (vector unsigned short)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b, - int *__cc) { - return __builtin_s390_vfeehs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector signed int -vec_cmpeq_idx_cc(vector signed int __a, vector signed int __b, int *__cc) { - return (vector signed int) - __builtin_s390_vfeefs((vector unsigned int)__a, - (vector unsigned int)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpeq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { - return __builtin_s390_vfeefs((vector unsigned int)__a, - (vector unsigned int)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpeq_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) { - return __builtin_s390_vfeefs(__a, __b, __cc); -} - -/*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_cmpeq_or_0_idx(vector signed char __a, vector signed char __b) { - return (vector signed char) - __builtin_s390_vfeezb((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpeq_or_0_idx(vector bool char __a, vector bool char __b) { - return __builtin_s390_vfeezb((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vfeezb(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_cmpeq_or_0_idx(vector signed short __a, vector signed short __b) { - return (vector signed short) - __builtin_s390_vfeezh((vector unsigned short)__a, - (vector unsigned short)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpeq_or_0_idx(vector bool short __a, vector bool short __b) { - return __builtin_s390_vfeezh((vector unsigned short)__a, - (vector unsigned short)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vfeezh(__a, __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_cmpeq_or_0_idx(vector signed int __a, vector signed int __b) { - return (vector signed int) - __builtin_s390_vfeezf((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpeq_or_0_idx(vector bool int __a, vector bool int __b) { - return __builtin_s390_vfeezf((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpeq_or_0_idx(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vfeezf(__a, __b); -} - -/*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_cmpeq_or_0_idx_cc(vector signed char __a, vector signed char __b, - int *__cc) { - return (vector signed char) - __builtin_s390_vfeezbs((vector unsigned char)__a, - (vector unsigned char)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpeq_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { - return __builtin_s390_vfeezbs((vector unsigned char)__a, - (vector unsigned char)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpeq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, - int *__cc) { - return __builtin_s390_vfeezbs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector signed short -vec_cmpeq_or_0_idx_cc(vector signed short __a, vector signed short __b, - int *__cc) { - return (vector signed short) - __builtin_s390_vfeezhs((vector unsigned short)__a, - (vector unsigned short)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpeq_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) { - return __builtin_s390_vfeezhs((vector unsigned short)__a, - (vector unsigned short)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpeq_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b, - int *__cc) { - return __builtin_s390_vfeezhs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector signed int -vec_cmpeq_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) { - return (vector signed int) - __builtin_s390_vfeezfs((vector unsigned int)__a, - (vector unsigned int)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpeq_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { - return __builtin_s390_vfeezfs((vector unsigned int)__a, - (vector unsigned int)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpeq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, - int *__cc) { - return __builtin_s390_vfeezfs(__a, __b, __cc); -} - -/*-- vec_cmpne_idx ----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_cmpne_idx(vector signed char __a, vector signed char __b) { - return (vector signed char) - __builtin_s390_vfeneb((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpne_idx(vector bool char __a, vector bool char __b) { - return __builtin_s390_vfeneb((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vfeneb(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_cmpne_idx(vector signed short __a, vector signed short __b) { - return (vector signed short) - __builtin_s390_vfeneh((vector unsigned short)__a, - (vector unsigned short)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpne_idx(vector bool short __a, vector bool short __b) { - return __builtin_s390_vfeneh((vector unsigned short)__a, - (vector unsigned short)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vfeneh(__a, __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_cmpne_idx(vector signed int __a, vector signed int __b) { - return (vector signed int) - __builtin_s390_vfenef((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpne_idx(vector bool int __a, vector bool int __b) { - return __builtin_s390_vfenef((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpne_idx(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vfenef(__a, __b); -} - -/*-- vec_cmpne_idx_cc -------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_cmpne_idx_cc(vector signed char __a, vector signed char __b, int *__cc) { - return (vector signed char) - __builtin_s390_vfenebs((vector unsigned char)__a, - (vector unsigned char)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { - return __builtin_s390_vfenebs((vector unsigned char)__a, - (vector unsigned char)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b, - int *__cc) { - return __builtin_s390_vfenebs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector signed short -vec_cmpne_idx_cc(vector signed short __a, vector signed short __b, int *__cc) { - return (vector signed short) - __builtin_s390_vfenehs((vector unsigned short)__a, - (vector unsigned short)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpne_idx_cc(vector bool short __a, vector bool short __b, int *__cc) { - return __builtin_s390_vfenehs((vector unsigned short)__a, - (vector unsigned short)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b, - int *__cc) { - return __builtin_s390_vfenehs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector signed int -vec_cmpne_idx_cc(vector signed int __a, vector signed int __b, int *__cc) { - return (vector signed int) - __builtin_s390_vfenefs((vector unsigned int)__a, - (vector unsigned int)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { - return __builtin_s390_vfenefs((vector unsigned int)__a, - (vector unsigned int)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpne_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) { - return __builtin_s390_vfenefs(__a, __b, __cc); -} - -/*-- vec_cmpne_or_0_idx -----------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_cmpne_or_0_idx(vector signed char __a, vector signed char __b) { - return (vector signed char) - __builtin_s390_vfenezb((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpne_or_0_idx(vector bool char __a, vector bool char __b) { - return __builtin_s390_vfenezb((vector unsigned char)__a, - (vector unsigned char)__b); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vfenezb(__a, __b); -} - -static inline __ATTRS_o_ai vector signed short -vec_cmpne_or_0_idx(vector signed short __a, vector signed short __b) { - return (vector signed short) - __builtin_s390_vfenezh((vector unsigned short)__a, - (vector unsigned short)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpne_or_0_idx(vector bool short __a, vector bool short __b) { - return __builtin_s390_vfenezh((vector unsigned short)__a, - (vector unsigned short)__b); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vfenezh(__a, __b); -} - -static inline __ATTRS_o_ai vector signed int -vec_cmpne_or_0_idx(vector signed int __a, vector signed int __b) { - return (vector signed int) - __builtin_s390_vfenezf((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpne_or_0_idx(vector bool int __a, vector bool int __b) { - return __builtin_s390_vfenezf((vector unsigned int)__a, - (vector unsigned int)__b); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpne_or_0_idx(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vfenezf(__a, __b); -} - -/*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_cmpne_or_0_idx_cc(vector signed char __a, vector signed char __b, - int *__cc) { - return (vector signed char) - __builtin_s390_vfenezbs((vector unsigned char)__a, - (vector unsigned char)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpne_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { - return __builtin_s390_vfenezbs((vector unsigned char)__a, - (vector unsigned char)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, - int *__cc) { - return __builtin_s390_vfenezbs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector signed short -vec_cmpne_or_0_idx_cc(vector signed short __a, vector signed short __b, - int *__cc) { - return (vector signed short) - __builtin_s390_vfenezhs((vector unsigned short)__a, - (vector unsigned short)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpne_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) { - return __builtin_s390_vfenezhs((vector unsigned short)__a, - (vector unsigned short)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpne_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b, - int *__cc) { - return __builtin_s390_vfenezhs(__a, __b, __cc); -} - -static inline __ATTRS_o_ai vector signed int -vec_cmpne_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) { - return (vector signed int) - __builtin_s390_vfenezfs((vector unsigned int)__a, - (vector unsigned int)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpne_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { - return __builtin_s390_vfenezfs((vector unsigned int)__a, - (vector unsigned int)__b, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, - int *__cc) { - return __builtin_s390_vfenezfs(__a, __b, __cc); -} - -/*-- vec_cmprg --------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_cmprg(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 4); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmprg(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 4); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmprg(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 4); -} - -/*-- vec_cmprg_cc -----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_cmprg_cc(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c, int *__cc) { - return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmprg_cc(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c, int *__cc) { - return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmprg_cc(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c, int *__cc) { - return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc); -} - -/*-- vec_cmprg_idx ----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_cmprg_idx(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_s390_vstrcb(__a, __b, __c, 0); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmprg_idx(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return __builtin_s390_vstrch(__a, __b, __c, 0); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmprg_idx(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return __builtin_s390_vstrcf(__a, __b, __c, 0); -} - -/*-- vec_cmprg_idx_cc -------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_cmprg_idx_cc(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmprg_idx_cc(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c, int *__cc) { - return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmprg_idx_cc(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c, int *__cc) { - return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc); -} - -/*-- vec_cmprg_or_0_idx -----------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_cmprg_or_0_idx(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_s390_vstrczb(__a, __b, __c, 0); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmprg_or_0_idx(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return __builtin_s390_vstrczh(__a, __b, __c, 0); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmprg_or_0_idx(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return __builtin_s390_vstrczf(__a, __b, __c, 0); -} - -/*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_cmprg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmprg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c, int *__cc) { - return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmprg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c, int *__cc) { - return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc); -} - -/*-- vec_cmpnrg -------------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_cmpnrg(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 12); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmpnrg(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 12); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmpnrg(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 12); -} - -/*-- vec_cmpnrg_cc ----------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_cmpnrg_cc(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c, int *__cc) { - return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 12, __cc); -} - -static inline __ATTRS_o_ai vector bool short -vec_cmpnrg_cc(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c, int *__cc) { - return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 12, __cc); -} - -static inline __ATTRS_o_ai vector bool int -vec_cmpnrg_cc(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c, int *__cc) { - return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 12, __cc); -} - -/*-- vec_cmpnrg_idx ---------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpnrg_idx(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_s390_vstrcb(__a, __b, __c, 8); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpnrg_idx(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return __builtin_s390_vstrch(__a, __b, __c, 8); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpnrg_idx(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return __builtin_s390_vstrcf(__a, __b, __c, 8); -} - -/*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpnrg_idx_cc(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpnrg_idx_cc(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c, int *__cc) { - return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpnrg_idx_cc(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c, int *__cc) { - return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc); -} - -/*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpnrg_or_0_idx(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c) { - return __builtin_s390_vstrczb(__a, __b, __c, 8); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpnrg_or_0_idx(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c) { - return __builtin_s390_vstrczh(__a, __b, __c, 8); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpnrg_or_0_idx(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c) { - return __builtin_s390_vstrczf(__a, __b, __c, 8); -} - -/*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/ - -static inline __ATTRS_o_ai vector unsigned char -vec_cmpnrg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_cmpnrg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b, - vector unsigned short __c, int *__cc) { - return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_cmpnrg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, - vector unsigned int __c, int *__cc) { - return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc); -} - -/*-- vec_find_any_eq --------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_find_any_eq(vector signed char __a, vector signed char __b) { - return (vector bool char) - __builtin_s390_vfaeb((vector unsigned char)__a, - (vector unsigned char)__b, 4); -} - -static inline __ATTRS_o_ai vector bool char -vec_find_any_eq(vector bool char __a, vector bool char __b) { - return (vector bool char) - __builtin_s390_vfaeb((vector unsigned char)__a, - (vector unsigned char)__b, 4); -} - -static inline __ATTRS_o_ai vector bool char -vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_eq(vector signed short __a, vector signed short __b) { - return (vector bool short) - __builtin_s390_vfaeh((vector unsigned short)__a, - (vector unsigned short)__b, 4); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_eq(vector bool short __a, vector bool short __b) { - return (vector bool short) - __builtin_s390_vfaeh((vector unsigned short)__a, - (vector unsigned short)__b, 4); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_eq(vector signed int __a, vector signed int __b) { - return (vector bool int) - __builtin_s390_vfaef((vector unsigned int)__a, - (vector unsigned int)__b, 4); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_eq(vector bool int __a, vector bool int __b) { - return (vector bool int) - __builtin_s390_vfaef((vector unsigned int)__a, - (vector unsigned int)__b, 4); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_eq(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)__builtin_s390_vfaef(__a, __b, 4); -} - -/*-- vec_find_any_eq_cc -----------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_find_any_eq_cc(vector signed char __a, vector signed char __b, int *__cc) { - return (vector bool char) - __builtin_s390_vfaebs((vector unsigned char)__a, - (vector unsigned char)__b, 4, __cc); -} - -static inline __ATTRS_o_ai vector bool char -vec_find_any_eq_cc(vector bool char __a, vector bool char __b, int *__cc) { - return (vector bool char) - __builtin_s390_vfaebs((vector unsigned char)__a, - (vector unsigned char)__b, 4, __cc); -} - -static inline __ATTRS_o_ai vector bool char -vec_find_any_eq_cc(vector unsigned char __a, vector unsigned char __b, - int *__cc) { - return (vector bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_eq_cc(vector signed short __a, vector signed short __b, - int *__cc) { - return (vector bool short) - __builtin_s390_vfaehs((vector unsigned short)__a, - (vector unsigned short)__b, 4, __cc); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_eq_cc(vector bool short __a, vector bool short __b, int *__cc) { - return (vector bool short) - __builtin_s390_vfaehs((vector unsigned short)__a, - (vector unsigned short)__b, 4, __cc); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_eq_cc(vector unsigned short __a, vector unsigned short __b, - int *__cc) { - return (vector bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_eq_cc(vector signed int __a, vector signed int __b, int *__cc) { - return (vector bool int) - __builtin_s390_vfaefs((vector unsigned int)__a, - (vector unsigned int)__b, 4, __cc); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_eq_cc(vector bool int __a, vector bool int __b, int *__cc) { - return (vector bool int) - __builtin_s390_vfaefs((vector unsigned int)__a, - (vector unsigned int)__b, 4, __cc); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_eq_cc(vector unsigned int __a, vector unsigned int __b, - int *__cc) { - return (vector bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc); -} - -/*-- vec_find_any_eq_idx ----------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_find_any_eq_idx(vector signed char __a, vector signed char __b) { - return (vector signed char) - __builtin_s390_vfaeb((vector unsigned char)__a, - (vector unsigned char)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_eq_idx(vector bool char __a, vector bool char __b) { - return __builtin_s390_vfaeb((vector unsigned char)__a, - (vector unsigned char)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vfaeb(__a, __b, 0); -} - -static inline __ATTRS_o_ai vector signed short -vec_find_any_eq_idx(vector signed short __a, vector signed short __b) { - return (vector signed short) - __builtin_s390_vfaeh((vector unsigned short)__a, - (vector unsigned short)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_eq_idx(vector bool short __a, vector bool short __b) { - return __builtin_s390_vfaeh((vector unsigned short)__a, - (vector unsigned short)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vfaeh(__a, __b, 0); -} - -static inline __ATTRS_o_ai vector signed int -vec_find_any_eq_idx(vector signed int __a, vector signed int __b) { - return (vector signed int) - __builtin_s390_vfaef((vector unsigned int)__a, - (vector unsigned int)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_eq_idx(vector bool int __a, vector bool int __b) { - return __builtin_s390_vfaef((vector unsigned int)__a, - (vector unsigned int)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_eq_idx(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vfaef(__a, __b, 0); -} - -/*-- vec_find_any_eq_idx_cc -------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_find_any_eq_idx_cc(vector signed char __a, vector signed char __b, - int *__cc) { - return (vector signed char) - __builtin_s390_vfaebs((vector unsigned char)__a, - (vector unsigned char)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_eq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { - return __builtin_s390_vfaebs((vector unsigned char)__a, - (vector unsigned char)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_eq_idx_cc(vector unsigned char __a, vector unsigned char __b, - int *__cc) { - return __builtin_s390_vfaebs(__a, __b, 0, __cc); -} - -static inline __ATTRS_o_ai vector signed short -vec_find_any_eq_idx_cc(vector signed short __a, vector signed short __b, - int *__cc) { - return (vector signed short) - __builtin_s390_vfaehs((vector unsigned short)__a, - (vector unsigned short)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_eq_idx_cc(vector bool short __a, vector bool short __b, - int *__cc) { - return __builtin_s390_vfaehs((vector unsigned short)__a, - (vector unsigned short)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_eq_idx_cc(vector unsigned short __a, vector unsigned short __b, - int *__cc) { - return __builtin_s390_vfaehs(__a, __b, 0, __cc); -} - -static inline __ATTRS_o_ai vector signed int -vec_find_any_eq_idx_cc(vector signed int __a, vector signed int __b, - int *__cc) { - return (vector signed int) - __builtin_s390_vfaefs((vector unsigned int)__a, - (vector unsigned int)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_eq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { - return __builtin_s390_vfaefs((vector unsigned int)__a, - (vector unsigned int)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_eq_idx_cc(vector unsigned int __a, vector unsigned int __b, - int *__cc) { - return __builtin_s390_vfaefs(__a, __b, 0, __cc); -} - -/*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_find_any_eq_or_0_idx(vector signed char __a, vector signed char __b) { - return (vector signed char) - __builtin_s390_vfaezb((vector unsigned char)__a, - (vector unsigned char)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_eq_or_0_idx(vector bool char __a, vector bool char __b) { - return __builtin_s390_vfaezb((vector unsigned char)__a, - (vector unsigned char)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vfaezb(__a, __b, 0); -} - -static inline __ATTRS_o_ai vector signed short -vec_find_any_eq_or_0_idx(vector signed short __a, vector signed short __b) { - return (vector signed short) - __builtin_s390_vfaezh((vector unsigned short)__a, - (vector unsigned short)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_eq_or_0_idx(vector bool short __a, vector bool short __b) { - return __builtin_s390_vfaezh((vector unsigned short)__a, - (vector unsigned short)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vfaezh(__a, __b, 0); -} - -static inline __ATTRS_o_ai vector signed int -vec_find_any_eq_or_0_idx(vector signed int __a, vector signed int __b) { - return (vector signed int) - __builtin_s390_vfaezf((vector unsigned int)__a, - (vector unsigned int)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_eq_or_0_idx(vector bool int __a, vector bool int __b) { - return __builtin_s390_vfaezf((vector unsigned int)__a, - (vector unsigned int)__b, 0); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_eq_or_0_idx(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vfaezf(__a, __b, 0); -} - -/*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_find_any_eq_or_0_idx_cc(vector signed char __a, vector signed char __b, - int *__cc) { - return (vector signed char) - __builtin_s390_vfaezbs((vector unsigned char)__a, - (vector unsigned char)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_eq_or_0_idx_cc(vector bool char __a, vector bool char __b, - int *__cc) { - return __builtin_s390_vfaezbs((vector unsigned char)__a, - (vector unsigned char)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_eq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, - int *__cc) { - return __builtin_s390_vfaezbs(__a, __b, 0, __cc); -} - -static inline __ATTRS_o_ai vector signed short -vec_find_any_eq_or_0_idx_cc(vector signed short __a, vector signed short __b, - int *__cc) { - return (vector signed short) - __builtin_s390_vfaezhs((vector unsigned short)__a, - (vector unsigned short)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_eq_or_0_idx_cc(vector bool short __a, vector bool short __b, - int *__cc) { - return __builtin_s390_vfaezhs((vector unsigned short)__a, - (vector unsigned short)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_eq_or_0_idx_cc(vector unsigned short __a, - vector unsigned short __b, int *__cc) { - return __builtin_s390_vfaezhs(__a, __b, 0, __cc); -} - -static inline __ATTRS_o_ai vector signed int -vec_find_any_eq_or_0_idx_cc(vector signed int __a, vector signed int __b, - int *__cc) { - return (vector signed int) - __builtin_s390_vfaezfs((vector unsigned int)__a, - (vector unsigned int)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_eq_or_0_idx_cc(vector bool int __a, vector bool int __b, - int *__cc) { - return __builtin_s390_vfaezfs((vector unsigned int)__a, - (vector unsigned int)__b, 0, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_eq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, - int *__cc) { - return __builtin_s390_vfaezfs(__a, __b, 0, __cc); -} - -/*-- vec_find_any_ne --------------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_find_any_ne(vector signed char __a, vector signed char __b) { - return (vector bool char) - __builtin_s390_vfaeb((vector unsigned char)__a, - (vector unsigned char)__b, 12); -} - -static inline __ATTRS_o_ai vector bool char -vec_find_any_ne(vector bool char __a, vector bool char __b) { - return (vector bool char) - __builtin_s390_vfaeb((vector unsigned char)__a, - (vector unsigned char)__b, 12); -} - -static inline __ATTRS_o_ai vector bool char -vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) { - return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_ne(vector signed short __a, vector signed short __b) { - return (vector bool short) - __builtin_s390_vfaeh((vector unsigned short)__a, - (vector unsigned short)__b, 12); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_ne(vector bool short __a, vector bool short __b) { - return (vector bool short) - __builtin_s390_vfaeh((vector unsigned short)__a, - (vector unsigned short)__b, 12); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) { - return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_ne(vector signed int __a, vector signed int __b) { - return (vector bool int) - __builtin_s390_vfaef((vector unsigned int)__a, - (vector unsigned int)__b, 12); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_ne(vector bool int __a, vector bool int __b) { - return (vector bool int) - __builtin_s390_vfaef((vector unsigned int)__a, - (vector unsigned int)__b, 12); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_ne(vector unsigned int __a, vector unsigned int __b) { - return (vector bool int)__builtin_s390_vfaef(__a, __b, 12); -} - -/*-- vec_find_any_ne_cc -----------------------------------------------------*/ - -static inline __ATTRS_o_ai vector bool char -vec_find_any_ne_cc(vector signed char __a, vector signed char __b, int *__cc) { - return (vector bool char) - __builtin_s390_vfaebs((vector unsigned char)__a, - (vector unsigned char)__b, 12, __cc); -} - -static inline __ATTRS_o_ai vector bool char -vec_find_any_ne_cc(vector bool char __a, vector bool char __b, int *__cc) { - return (vector bool char) - __builtin_s390_vfaebs((vector unsigned char)__a, - (vector unsigned char)__b, 12, __cc); -} - -static inline __ATTRS_o_ai vector bool char -vec_find_any_ne_cc(vector unsigned char __a, vector unsigned char __b, - int *__cc) { - return (vector bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_ne_cc(vector signed short __a, vector signed short __b, - int *__cc) { - return (vector bool short) - __builtin_s390_vfaehs((vector unsigned short)__a, - (vector unsigned short)__b, 12, __cc); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_ne_cc(vector bool short __a, vector bool short __b, int *__cc) { - return (vector bool short) - __builtin_s390_vfaehs((vector unsigned short)__a, - (vector unsigned short)__b, 12, __cc); -} - -static inline __ATTRS_o_ai vector bool short -vec_find_any_ne_cc(vector unsigned short __a, vector unsigned short __b, - int *__cc) { - return (vector bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_ne_cc(vector signed int __a, vector signed int __b, int *__cc) { - return (vector bool int) - __builtin_s390_vfaefs((vector unsigned int)__a, - (vector unsigned int)__b, 12, __cc); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_ne_cc(vector bool int __a, vector bool int __b, int *__cc) { - return (vector bool int) - __builtin_s390_vfaefs((vector unsigned int)__a, - (vector unsigned int)__b, 12, __cc); -} - -static inline __ATTRS_o_ai vector bool int -vec_find_any_ne_cc(vector unsigned int __a, vector unsigned int __b, - int *__cc) { - return (vector bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc); -} - -/*-- vec_find_any_ne_idx ----------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_find_any_ne_idx(vector signed char __a, vector signed char __b) { - return (vector signed char) - __builtin_s390_vfaeb((vector unsigned char)__a, - (vector unsigned char)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_ne_idx(vector bool char __a, vector bool char __b) { - return __builtin_s390_vfaeb((vector unsigned char)__a, - (vector unsigned char)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vfaeb(__a, __b, 8); -} - -static inline __ATTRS_o_ai vector signed short -vec_find_any_ne_idx(vector signed short __a, vector signed short __b) { - return (vector signed short) - __builtin_s390_vfaeh((vector unsigned short)__a, - (vector unsigned short)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_ne_idx(vector bool short __a, vector bool short __b) { - return __builtin_s390_vfaeh((vector unsigned short)__a, - (vector unsigned short)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vfaeh(__a, __b, 8); -} - -static inline __ATTRS_o_ai vector signed int -vec_find_any_ne_idx(vector signed int __a, vector signed int __b) { - return (vector signed int) - __builtin_s390_vfaef((vector unsigned int)__a, - (vector unsigned int)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_ne_idx(vector bool int __a, vector bool int __b) { - return __builtin_s390_vfaef((vector unsigned int)__a, - (vector unsigned int)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_ne_idx(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vfaef(__a, __b, 8); -} - -/*-- vec_find_any_ne_idx_cc -------------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_find_any_ne_idx_cc(vector signed char __a, vector signed char __b, - int *__cc) { - return (vector signed char) - __builtin_s390_vfaebs((vector unsigned char)__a, - (vector unsigned char)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_ne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { - return __builtin_s390_vfaebs((vector unsigned char)__a, - (vector unsigned char)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_ne_idx_cc(vector unsigned char __a, vector unsigned char __b, - int *__cc) { - return __builtin_s390_vfaebs(__a, __b, 8, __cc); -} - -static inline __ATTRS_o_ai vector signed short -vec_find_any_ne_idx_cc(vector signed short __a, vector signed short __b, - int *__cc) { - return (vector signed short) - __builtin_s390_vfaehs((vector unsigned short)__a, - (vector unsigned short)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_ne_idx_cc(vector bool short __a, vector bool short __b, - int *__cc) { - return __builtin_s390_vfaehs((vector unsigned short)__a, - (vector unsigned short)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_ne_idx_cc(vector unsigned short __a, vector unsigned short __b, - int *__cc) { - return __builtin_s390_vfaehs(__a, __b, 8, __cc); -} - -static inline __ATTRS_o_ai vector signed int -vec_find_any_ne_idx_cc(vector signed int __a, vector signed int __b, - int *__cc) { - return (vector signed int) - __builtin_s390_vfaefs((vector unsigned int)__a, - (vector unsigned int)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_ne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { - return __builtin_s390_vfaefs((vector unsigned int)__a, - (vector unsigned int)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_ne_idx_cc(vector unsigned int __a, vector unsigned int __b, - int *__cc) { - return __builtin_s390_vfaefs(__a, __b, 8, __cc); -} - -/*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_find_any_ne_or_0_idx(vector signed char __a, vector signed char __b) { - return (vector signed char) - __builtin_s390_vfaezb((vector unsigned char)__a, - (vector unsigned char)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_ne_or_0_idx(vector bool char __a, vector bool char __b) { - return __builtin_s390_vfaezb((vector unsigned char)__a, - (vector unsigned char)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) { - return __builtin_s390_vfaezb(__a, __b, 8); -} - -static inline __ATTRS_o_ai vector signed short -vec_find_any_ne_or_0_idx(vector signed short __a, vector signed short __b) { - return (vector signed short) - __builtin_s390_vfaezh((vector unsigned short)__a, - (vector unsigned short)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_ne_or_0_idx(vector bool short __a, vector bool short __b) { - return __builtin_s390_vfaezh((vector unsigned short)__a, - (vector unsigned short)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) { - return __builtin_s390_vfaezh(__a, __b, 8); -} - -static inline __ATTRS_o_ai vector signed int -vec_find_any_ne_or_0_idx(vector signed int __a, vector signed int __b) { - return (vector signed int) - __builtin_s390_vfaezf((vector unsigned int)__a, - (vector unsigned int)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_ne_or_0_idx(vector bool int __a, vector bool int __b) { - return __builtin_s390_vfaezf((vector unsigned int)__a, - (vector unsigned int)__b, 8); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_ne_or_0_idx(vector unsigned int __a, vector unsigned int __b) { - return __builtin_s390_vfaezf(__a, __b, 8); -} - -/*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/ - -static inline __ATTRS_o_ai vector signed char -vec_find_any_ne_or_0_idx_cc(vector signed char __a, vector signed char __b, - int *__cc) { - return (vector signed char) - __builtin_s390_vfaezbs((vector unsigned char)__a, - (vector unsigned char)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_ne_or_0_idx_cc(vector bool char __a, vector bool char __b, - int *__cc) { - return __builtin_s390_vfaezbs((vector unsigned char)__a, - (vector unsigned char)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_find_any_ne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, - int *__cc) { - return __builtin_s390_vfaezbs(__a, __b, 8, __cc); -} - -static inline __ATTRS_o_ai vector signed short -vec_find_any_ne_or_0_idx_cc(vector signed short __a, vector signed short __b, - int *__cc) { - return (vector signed short) - __builtin_s390_vfaezhs((vector unsigned short)__a, - (vector unsigned short)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_ne_or_0_idx_cc(vector bool short __a, vector bool short __b, - int *__cc) { - return __builtin_s390_vfaezhs((vector unsigned short)__a, - (vector unsigned short)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned short -vec_find_any_ne_or_0_idx_cc(vector unsigned short __a, - vector unsigned short __b, int *__cc) { - return __builtin_s390_vfaezhs(__a, __b, 8, __cc); -} - -static inline __ATTRS_o_ai vector signed int -vec_find_any_ne_or_0_idx_cc(vector signed int __a, vector signed int __b, - int *__cc) { - return (vector signed int) - __builtin_s390_vfaezfs((vector unsigned int)__a, - (vector unsigned int)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_ne_or_0_idx_cc(vector bool int __a, vector bool int __b, - int *__cc) { - return __builtin_s390_vfaezfs((vector unsigned int)__a, - (vector unsigned int)__b, 8, __cc); -} - -static inline __ATTRS_o_ai vector unsigned int -vec_find_any_ne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, - int *__cc) { - return __builtin_s390_vfaezfs(__a, __b, 8, __cc); -} - -/*-- vec_search_string_cc ---------------------------------------------------*/ - -#if __ARCH__ >= 13 - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_cc(vector signed char __a, vector signed char __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrsb((vector unsigned char)__a, - (vector unsigned char)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_cc(vector bool char __a, vector bool char __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrsb((vector unsigned char)__a, - (vector unsigned char)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_cc(vector unsigned char __a, vector unsigned char __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrsb(__a, __b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_cc(vector signed short __a, vector signed short __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrsh((vector unsigned short)__a, - (vector unsigned short)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_cc(vector bool short __a, vector bool short __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrsh((vector unsigned short)__a, - (vector unsigned short)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_cc(vector unsigned short __a, vector unsigned short __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrsh(__a, __b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_cc(vector signed int __a, vector signed int __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrsf((vector unsigned int)__a, - (vector unsigned int)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_cc(vector bool int __a, vector bool int __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrsf((vector unsigned int)__a, - (vector unsigned int)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_cc(vector unsigned int __a, vector unsigned int __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrsf(__a, __b, __c, __cc); -} - -#endif - -/*-- vec_search_string_until_zero_cc ----------------------------------------*/ - -#if __ARCH__ >= 13 - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_until_zero_cc(vector signed char __a, - vector signed char __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrszb((vector unsigned char)__a, - (vector unsigned char)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_until_zero_cc(vector bool char __a, - vector bool char __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrszb((vector unsigned char)__a, - (vector unsigned char)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_until_zero_cc(vector unsigned char __a, - vector unsigned char __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrszb(__a, __b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_until_zero_cc(vector signed short __a, - vector signed short __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrszh((vector unsigned short)__a, - (vector unsigned short)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_until_zero_cc(vector bool short __a, - vector bool short __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrszh((vector unsigned short)__a, - (vector unsigned short)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_until_zero_cc(vector unsigned short __a, - vector unsigned short __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrszh(__a, __b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_until_zero_cc(vector signed int __a, - vector signed int __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrszf((vector unsigned int)__a, - (vector unsigned int)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_until_zero_cc(vector bool int __a, - vector bool int __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrszf((vector unsigned int)__a, - (vector unsigned int)__b, __c, __cc); -} - -static inline __ATTRS_o_ai vector unsigned char -vec_search_string_until_zero_cc(vector unsigned int __a, - vector unsigned int __b, - vector unsigned char __c, int *__cc) { - return __builtin_s390_vstrszf(__a, __b, __c, __cc); -} - -#endif - -#undef __constant_pow2_range -#undef __constant_range -#undef __constant -#undef __ATTRS_o -#undef __ATTRS_o_ai -#undef __ATTRS_ai - -#else - -#error "Use -fzvector to enable vector extensions" - -#endif diff --git a/bin/app/data/cxx/include/vpclmulqdqintrin.h b/bin/app/data/cxx/include/vpclmulqdqintrin.h deleted file mode 100644 index 470d8325..00000000 --- a/bin/app/data/cxx/include/vpclmulqdqintrin.h +++ /dev/null @@ -1,28 +0,0 @@ -/*===------------ vpclmulqdqintrin.h - VPCLMULQDQ intrinsics ---------------=== - * - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __VPCLMULQDQINTRIN_H -#define __VPCLMULQDQINTRIN_H - -#define _mm256_clmulepi64_epi128(A, B, I) \ - (__m256i)__builtin_ia32_pclmulqdq256((__v4di)(__m256i)(A), \ - (__v4di)(__m256i)(B), \ - (char)(I)) - -#define _mm512_clmulepi64_epi128(A, B, I) \ - (__m512i)__builtin_ia32_pclmulqdq512((__v8di)(__m512i)(A), \ - (__v8di)(__m512i)(B), \ - (char)(I)) - -#endif /* __VPCLMULQDQINTRIN_H */ - diff --git a/bin/app/data/cxx/include/waitpkgintrin.h b/bin/app/data/cxx/include/waitpkgintrin.h deleted file mode 100644 index 7ecada4c..00000000 --- a/bin/app/data/cxx/include/waitpkgintrin.h +++ /dev/null @@ -1,42 +0,0 @@ -/*===----------------------- waitpkgintrin.h - WAITPKG --------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __WAITPKGINTRIN_H -#define __WAITPKGINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS \ - __attribute__((__always_inline__, __nodebug__, __target__("waitpkg"))) - -static __inline__ void __DEFAULT_FN_ATTRS -_umonitor (void * __address) -{ - __builtin_ia32_umonitor (__address); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_umwait (unsigned int __control, unsigned long long __counter) -{ - return __builtin_ia32_umwait (__control, - (unsigned int)(__counter >> 32), (unsigned int)__counter); -} - -static __inline__ unsigned char __DEFAULT_FN_ATTRS -_tpause (unsigned int __control, unsigned long long __counter) -{ - return __builtin_ia32_tpause (__control, - (unsigned int)(__counter >> 32), (unsigned int)__counter); -} - -#undef __DEFAULT_FN_ATTRS - -#endif /* __WAITPKGINTRIN_H */ diff --git a/bin/app/data/cxx/include/wbnoinvdintrin.h b/bin/app/data/cxx/include/wbnoinvdintrin.h deleted file mode 100644 index cac0347e..00000000 --- a/bin/app/data/cxx/include/wbnoinvdintrin.h +++ /dev/null @@ -1,24 +0,0 @@ -/*===-------------- wbnoinvdintrin.h - wbnoinvd intrinsic-------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __WBNOINVDINTRIN_H -#define __WBNOINVDINTRIN_H - -static __inline__ void - __attribute__((__always_inline__, __nodebug__, __target__("wbnoinvd"))) -_wbnoinvd (void) -{ - __builtin_ia32_wbnoinvd (); -} - -#endif /* __WBNOINVDINTRIN_H */ diff --git a/bin/app/data/cxx/include/wmmintrin.h b/bin/app/data/cxx/include/wmmintrin.h deleted file mode 100644 index f932ca81..00000000 --- a/bin/app/data/cxx/include/wmmintrin.h +++ /dev/null @@ -1,19 +0,0 @@ -/*===---- wmmintrin.h - AES intrinsics ------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __WMMINTRIN_H -#define __WMMINTRIN_H - -#include - -#include <__wmmintrin_aes.h> - -#include <__wmmintrin_pclmul.h> - -#endif /* __WMMINTRIN_H */ diff --git a/bin/app/data/cxx/include/x86intrin.h b/bin/app/data/cxx/include/x86intrin.h deleted file mode 100644 index a8b36622..00000000 --- a/bin/app/data/cxx/include/x86intrin.h +++ /dev/null @@ -1,54 +0,0 @@ -/*===---- x86intrin.h - X86 intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __X86INTRIN_H -#define __X86INTRIN_H - -#include - -#include - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__3dNOW__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PRFCHW__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SSE4A__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__FMA4__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XOP__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__TBM__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__LWP__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__MWAITX__) -#include -#endif - -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLZERO__) -#include -#endif - - -#endif /* __X86INTRIN_H */ diff --git a/bin/app/data/cxx/include/xmmintrin.h b/bin/app/data/cxx/include/xmmintrin.h deleted file mode 100644 index 75ff3765..00000000 --- a/bin/app/data/cxx/include/xmmintrin.h +++ /dev/null @@ -1,3008 +0,0 @@ -/*===---- xmmintrin.h - SSE intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __XMMINTRIN_H -#define __XMMINTRIN_H - -#include - -typedef int __v4si __attribute__((__vector_size__(16))); -typedef float __v4sf __attribute__((__vector_size__(16))); -typedef float __m128 __attribute__((__vector_size__(16), __aligned__(16))); - -typedef float __m128_u __attribute__((__vector_size__(16), __aligned__(1))); - -/* Unsigned types */ -typedef unsigned int __v4su __attribute__((__vector_size__(16))); - -/* This header should only be included in a hosted environment as it depends on - * a standard library to provide allocation routines. */ -#if __STDC_HOSTED__ -#include -#endif - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS_MMX __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) - -/// Adds the 32-bit float values in the low-order bits of the operands. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VADDSS / ADDSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// The lower 32 bits of this operand are used in the calculation. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// The lower 32 bits of this operand are used in the calculation. -/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the sum -/// of the lower 32 bits of both operands. The upper 96 bits are copied from -/// the upper 96 bits of the first source operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_add_ss(__m128 __a, __m128 __b) -{ - __a[0] += __b[0]; - return __a; -} - -/// Adds two 128-bit vectors of [4 x float], and returns the results of -/// the addition. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VADDPS / ADDPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// \returns A 128-bit vector of [4 x float] containing the sums of both -/// operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_add_ps(__m128 __a, __m128 __b) -{ - return (__m128)((__v4sf)__a + (__v4sf)__b); -} - -/// Subtracts the 32-bit float value in the low-order bits of the second -/// operand from the corresponding value in the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSUBSS / SUBSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing the minuend. The lower 32 bits -/// of this operand are used in the calculation. -/// \param __b -/// A 128-bit vector of [4 x float] containing the subtrahend. The lower 32 -/// bits of this operand are used in the calculation. -/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the -/// difference of the lower 32 bits of both operands. The upper 96 bits are -/// copied from the upper 96 bits of the first source operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_sub_ss(__m128 __a, __m128 __b) -{ - __a[0] -= __b[0]; - return __a; -} - -/// Subtracts each of the values of the second operand from the first -/// operand, both of which are 128-bit vectors of [4 x float] and returns -/// the results of the subtraction. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSUBPS / SUBPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing the minuend. -/// \param __b -/// A 128-bit vector of [4 x float] containing the subtrahend. -/// \returns A 128-bit vector of [4 x float] containing the differences between -/// both operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_sub_ps(__m128 __a, __m128 __b) -{ - return (__m128)((__v4sf)__a - (__v4sf)__b); -} - -/// Multiplies two 32-bit float values in the low-order bits of the -/// operands. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMULSS / MULSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// The lower 32 bits of this operand are used in the calculation. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// The lower 32 bits of this operand are used in the calculation. -/// \returns A 128-bit vector of [4 x float] containing the product of the lower -/// 32 bits of both operands. The upper 96 bits are copied from the upper 96 -/// bits of the first source operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_mul_ss(__m128 __a, __m128 __b) -{ - __a[0] *= __b[0]; - return __a; -} - -/// Multiplies two 128-bit vectors of [4 x float] and returns the -/// results of the multiplication. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMULPS / MULPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// \returns A 128-bit vector of [4 x float] containing the products of both -/// operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_mul_ps(__m128 __a, __m128 __b) -{ - return (__m128)((__v4sf)__a * (__v4sf)__b); -} - -/// Divides the value in the low-order 32 bits of the first operand by -/// the corresponding value in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDIVSS / DIVSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing the dividend. The lower 32 -/// bits of this operand are used in the calculation. -/// \param __b -/// A 128-bit vector of [4 x float] containing the divisor. The lower 32 bits -/// of this operand are used in the calculation. -/// \returns A 128-bit vector of [4 x float] containing the quotients of the -/// lower 32 bits of both operands. The upper 96 bits are copied from the -/// upper 96 bits of the first source operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_div_ss(__m128 __a, __m128 __b) -{ - __a[0] /= __b[0]; - return __a; -} - -/// Divides two 128-bit vectors of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VDIVPS / DIVPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing the dividend. -/// \param __b -/// A 128-bit vector of [4 x float] containing the divisor. -/// \returns A 128-bit vector of [4 x float] containing the quotients of both -/// operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_div_ps(__m128 __a, __m128 __b) -{ - return (__m128)((__v4sf)__a / (__v4sf)__b); -} - -/// Calculates the square root of the value stored in the low-order bits -/// of a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSQRTSS / SQRTSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the calculation. -/// \returns A 128-bit vector of [4 x float] containing the square root of the -/// value in the low-order bits of the operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_sqrt_ss(__m128 __a) -{ - return (__m128)__builtin_ia32_sqrtss((__v4sf)__a); -} - -/// Calculates the square roots of the values stored in a 128-bit vector -/// of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSQRTPS / SQRTPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the square roots of the -/// values in the operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_sqrt_ps(__m128 __a) -{ - return __builtin_ia32_sqrtps((__v4sf)__a); -} - -/// Calculates the approximate reciprocal of the value stored in the -/// low-order bits of a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VRCPSS / RCPSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the calculation. -/// \returns A 128-bit vector of [4 x float] containing the approximate -/// reciprocal of the value in the low-order bits of the operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_rcp_ss(__m128 __a) -{ - return (__m128)__builtin_ia32_rcpss((__v4sf)__a); -} - -/// Calculates the approximate reciprocals of the values stored in a -/// 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VRCPPS / RCPPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the approximate -/// reciprocals of the values in the operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_rcp_ps(__m128 __a) -{ - return (__m128)__builtin_ia32_rcpps((__v4sf)__a); -} - -/// Calculates the approximate reciprocal of the square root of the value -/// stored in the low-order bits of a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VRSQRTSS / RSQRTSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the calculation. -/// \returns A 128-bit vector of [4 x float] containing the approximate -/// reciprocal of the square root of the value in the low-order bits of the -/// operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_rsqrt_ss(__m128 __a) -{ - return __builtin_ia32_rsqrtss((__v4sf)__a); -} - -/// Calculates the approximate reciprocals of the square roots of the -/// values stored in a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VRSQRTPS / RSQRTPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the approximate -/// reciprocals of the square roots of the values in the operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_rsqrt_ps(__m128 __a) -{ - return __builtin_ia32_rsqrtps((__v4sf)__a); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands and returns the lesser value in the low-order bits of the -/// vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMINSS / MINSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the -/// minimum value between both operands. The upper 96 bits are copied from -/// the upper 96 bits of the first source operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_min_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_minss((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 128-bit vectors of [4 x float] and returns the lesser -/// of each pair of values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMINPS / MINPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. -/// \returns A 128-bit vector of [4 x float] containing the minimum values -/// between both operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_min_ps(__m128 __a, __m128 __b) -{ - return __builtin_ia32_minps((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands and returns the greater value in the low-order bits of a 128-bit -/// vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMAXSS / MAXSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the -/// maximum value between both operands. The upper 96 bits are copied from -/// the upper 96 bits of the first source operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_max_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_maxss((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 128-bit vectors of [4 x float] and returns the greater -/// of each pair of values. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMAXPS / MAXPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. -/// \returns A 128-bit vector of [4 x float] containing the maximum values -/// between both operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_max_ps(__m128 __a, __m128 __b) -{ - return __builtin_ia32_maxps((__v4sf)__a, (__v4sf)__b); -} - -/// Performs a bitwise AND of two 128-bit vectors of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VANDPS / ANDPS instructions. -/// -/// \param __a -/// A 128-bit vector containing one of the source operands. -/// \param __b -/// A 128-bit vector containing one of the source operands. -/// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the -/// values between both operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_and_ps(__m128 __a, __m128 __b) -{ - return (__m128)((__v4su)__a & (__v4su)__b); -} - -/// Performs a bitwise AND of two 128-bit vectors of [4 x float], using -/// the one's complement of the values contained in the first source -/// operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VANDNPS / ANDNPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing the first source operand. The -/// one's complement of this value is used in the bitwise AND. -/// \param __b -/// A 128-bit vector of [4 x float] containing the second source operand. -/// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the -/// one's complement of the first operand and the values in the second -/// operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_andnot_ps(__m128 __a, __m128 __b) -{ - return (__m128)(~(__v4su)__a & (__v4su)__b); -} - -/// Performs a bitwise OR of two 128-bit vectors of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VORPS / ORPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// \returns A 128-bit vector of [4 x float] containing the bitwise OR of the -/// values between both operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_or_ps(__m128 __a, __m128 __b) -{ - return (__m128)((__v4su)__a | (__v4su)__b); -} - -/// Performs a bitwise exclusive OR of two 128-bit vectors of -/// [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VXORPS / XORPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the source operands. -/// \returns A 128-bit vector of [4 x float] containing the bitwise exclusive OR -/// of the values between both operands. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_xor_ps(__m128 __a, __m128 __b) -{ - return (__m128)((__v4su)__a ^ (__v4su)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands for equality and returns the result of the comparison in the -/// low-order bits of a vector [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPEQSS / CMPEQSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpeq_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpeqss((__v4sf)__a, (__v4sf)__b); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] for equality. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPEQPS / CMPEQPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpeq_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpeqps((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the value in the first operand is less than the -/// corresponding value in the second operand and returns the result of the -/// comparison in the low-order bits of a vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLTSS / CMPLTSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmplt_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpltss((__v4sf)__a, (__v4sf)__b); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] to determine if the values in the first -/// operand are less than those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLTPS / CMPLTPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmplt_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpltps((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the value in the first operand is less than or -/// equal to the corresponding value in the second operand and returns the -/// result of the comparison in the low-order bits of a vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLESS / CMPLESS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmple_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpless((__v4sf)__a, (__v4sf)__b); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] to determine if the values in the first -/// operand are less than or equal to those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLEPS / CMPLEPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmple_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpleps((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the value in the first operand is greater than -/// the corresponding value in the second operand and returns the result of -/// the comparison in the low-order bits of a vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLTSS / CMPLTSS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpgt_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_shufflevector((__v4sf)__a, - (__v4sf)__builtin_ia32_cmpltss((__v4sf)__b, (__v4sf)__a), - 4, 1, 2, 3); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] to determine if the values in the first -/// operand are greater than those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLTPS / CMPLTPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpgt_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpltps((__v4sf)__b, (__v4sf)__a); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the value in the first operand is greater than -/// or equal to the corresponding value in the second operand and returns -/// the result of the comparison in the low-order bits of a vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLESS / CMPLESS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpge_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_shufflevector((__v4sf)__a, - (__v4sf)__builtin_ia32_cmpless((__v4sf)__b, (__v4sf)__a), - 4, 1, 2, 3); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] to determine if the values in the first -/// operand are greater than or equal to those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPLEPS / CMPLEPS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpge_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpleps((__v4sf)__b, (__v4sf)__a); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands for inequality and returns the result of the comparison in the -/// low-order bits of a vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNEQSS / CMPNEQSS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpneq_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpneqss((__v4sf)__a, (__v4sf)__b); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] for inequality. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNEQPS / CMPNEQPS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpneq_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpneqps((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the value in the first operand is not less than -/// the corresponding value in the second operand and returns the result of -/// the comparison in the low-order bits of a vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLTSS / CMPNLTSS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpnlt_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpnltss((__v4sf)__a, (__v4sf)__b); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] to determine if the values in the first -/// operand are not less than those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLTPS / CMPNLTPS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpnlt_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpnltps((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the value in the first operand is not less than -/// or equal to the corresponding value in the second operand and returns -/// the result of the comparison in the low-order bits of a vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLESS / CMPNLESS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpnle_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpnless((__v4sf)__a, (__v4sf)__b); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] to determine if the values in the first -/// operand are not less than or equal to those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLEPS / CMPNLEPS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpnle_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpnleps((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the value in the first operand is not greater -/// than the corresponding value in the second operand and returns the -/// result of the comparison in the low-order bits of a vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLTSS / CMPNLTSS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpngt_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_shufflevector((__v4sf)__a, - (__v4sf)__builtin_ia32_cmpnltss((__v4sf)__b, (__v4sf)__a), - 4, 1, 2, 3); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] to determine if the values in the first -/// operand are not greater than those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLTPS / CMPNLTPS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpngt_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpnltps((__v4sf)__b, (__v4sf)__a); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the value in the first operand is not greater -/// than or equal to the corresponding value in the second operand and -/// returns the result of the comparison in the low-order bits of a vector -/// of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLESS / CMPNLESS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpnge_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_shufflevector((__v4sf)__a, - (__v4sf)__builtin_ia32_cmpnless((__v4sf)__b, (__v4sf)__a), - 4, 1, 2, 3); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] to determine if the values in the first -/// operand are not greater than or equal to those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPNLEPS / CMPNLEPS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpnge_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpnleps((__v4sf)__b, (__v4sf)__a); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the value in the first operand is ordered with -/// respect to the corresponding value in the second operand and returns the -/// result of the comparison in the low-order bits of a vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPORDSS / CMPORDSS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpord_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpordss((__v4sf)__a, (__v4sf)__b); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] to determine if the values in the first -/// operand are ordered with respect to those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPORDPS / CMPORDPS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpord_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpordps((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the value in the first operand is unordered -/// with respect to the corresponding value in the second operand and -/// returns the result of the comparison in the low-order bits of a vector -/// of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPUNORDSS / CMPUNORDSS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float] containing one of the operands. The lower -/// 32 bits of this operand are used in the comparison. -/// \returns A 128-bit vector of [4 x float] containing the comparison results -/// in the low-order bits. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpunord_ss(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpunordss((__v4sf)__a, (__v4sf)__b); -} - -/// Compares each of the corresponding 32-bit float values of the -/// 128-bit vectors of [4 x float] to determine if the values in the first -/// operand are unordered with respect to those in the second operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCMPUNORDPS / CMPUNORDPS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// \returns A 128-bit vector of [4 x float] containing the comparison results. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cmpunord_ps(__m128 __a, __m128 __b) -{ - return (__m128)__builtin_ia32_cmpunordps((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands for equality and returns the result of the comparison. -/// -/// If either of the two lower 32-bit values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISS / COMISS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the -/// two lower 32-bit values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comieq_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_comieq((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the first operand is less than the second -/// operand and returns the result of the comparison. -/// -/// If either of the two lower 32-bit values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISS / COMISS -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the two -/// lower 32-bit values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comilt_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_comilt((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the first operand is less than or equal to the -/// second operand and returns the result of the comparison. -/// -/// If either of the two lower 32-bit values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISS / COMISS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the two -/// lower 32-bit values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comile_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_comile((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the first operand is greater than the second -/// operand and returns the result of the comparison. -/// -/// If either of the two lower 32-bit values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISS / COMISS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the -/// two lower 32-bit values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comigt_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_comigt((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the first operand is greater than or equal to -/// the second operand and returns the result of the comparison. -/// -/// If either of the two lower 32-bit values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISS / COMISS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the two -/// lower 32-bit values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comige_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_comige((__v4sf)__a, (__v4sf)__b); -} - -/// Compares two 32-bit float values in the low-order bits of both -/// operands to determine if the first operand is not equal to the second -/// operand and returns the result of the comparison. -/// -/// If either of the two lower 32-bit values is NaN, 1 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCOMISS / COMISS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the -/// two lower 32-bit values is NaN, 1 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_comineq_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_comineq((__v4sf)__a, (__v4sf)__b); -} - -/// Performs an unordered comparison of two 32-bit float values using -/// the low-order bits of both operands to determine equality and returns -/// the result of the comparison. -/// -/// If either of the two lower 32-bit values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the two -/// lower 32-bit values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomieq_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_ucomieq((__v4sf)__a, (__v4sf)__b); -} - -/// Performs an unordered comparison of two 32-bit float values using -/// the low-order bits of both operands to determine if the first operand is -/// less than the second operand and returns the result of the comparison. -/// -/// If either of the two lower 32-bit values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the two -/// lower 32-bit values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomilt_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_ucomilt((__v4sf)__a, (__v4sf)__b); -} - -/// Performs an unordered comparison of two 32-bit float values using -/// the low-order bits of both operands to determine if the first operand is -/// less than or equal to the second operand and returns the result of the -/// comparison. -/// -/// If either of the two lower 32-bit values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the two -/// lower 32-bit values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomile_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_ucomile((__v4sf)__a, (__v4sf)__b); -} - -/// Performs an unordered comparison of two 32-bit float values using -/// the low-order bits of both operands to determine if the first operand is -/// greater than the second operand and returns the result of the -/// comparison. -/// -/// If either of the two lower 32-bit values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the two -/// lower 32-bit values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomigt_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_ucomigt((__v4sf)__a, (__v4sf)__b); -} - -/// Performs an unordered comparison of two 32-bit float values using -/// the low-order bits of both operands to determine if the first operand is -/// greater than or equal to the second operand and returns the result of -/// the comparison. -/// -/// If either of the two lower 32-bit values is NaN, 0 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the two -/// lower 32-bit values is NaN, 0 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomige_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_ucomige((__v4sf)__a, (__v4sf)__b); -} - -/// Performs an unordered comparison of two 32-bit float values using -/// the low-order bits of both operands to determine inequality and returns -/// the result of the comparison. -/// -/// If either of the two lower 32-bit values is NaN, 1 is returned. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \param __b -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the comparison. -/// \returns An integer containing the comparison results. If either of the two -/// lower 32-bit values is NaN, 1 is returned. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_ucomineq_ss(__m128 __a, __m128 __b) -{ - return __builtin_ia32_ucomineq((__v4sf)__a, (__v4sf)__b); -} - -/// Converts a float value contained in the lower 32 bits of a vector of -/// [4 x float] into a 32-bit integer. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the conversion. -/// \returns A 32-bit integer containing the converted value. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_cvtss_si32(__m128 __a) -{ - return __builtin_ia32_cvtss2si((__v4sf)__a); -} - -/// Converts a float value contained in the lower 32 bits of a vector of -/// [4 x float] into a 32-bit integer. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the conversion. -/// \returns A 32-bit integer containing the converted value. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_cvt_ss2si(__m128 __a) -{ - return _mm_cvtss_si32(__a); -} - -#ifdef __x86_64__ - -/// Converts a float value contained in the lower 32 bits of a vector of -/// [4 x float] into a 64-bit integer. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the conversion. -/// \returns A 64-bit integer containing the converted value. -static __inline__ long long __DEFAULT_FN_ATTRS -_mm_cvtss_si64(__m128 __a) -{ - return __builtin_ia32_cvtss2si64((__v4sf)__a); -} - -#endif - -/// Converts two low-order float values in a 128-bit vector of -/// [4 x float] into a 64-bit vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPS2PI instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 64-bit integer vector containing the converted values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_cvtps_pi32(__m128 __a) -{ - return (__m64)__builtin_ia32_cvtps2pi((__v4sf)__a); -} - -/// Converts two low-order float values in a 128-bit vector of -/// [4 x float] into a 64-bit vector of [2 x i32]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPS2PI instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 64-bit integer vector containing the converted values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_cvt_ps2pi(__m128 __a) -{ - return _mm_cvtps_pi32(__a); -} - -/// Converts a float value contained in the lower 32 bits of a vector of -/// [4 x float] into a 32-bit integer, truncating the result when it is -/// inexact. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the conversion. -/// \returns A 32-bit integer containing the converted value. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_cvttss_si32(__m128 __a) -{ - return __builtin_ia32_cvttss2si((__v4sf)__a); -} - -/// Converts a float value contained in the lower 32 bits of a vector of -/// [4 x float] into a 32-bit integer, truncating the result when it is -/// inexact. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the conversion. -/// \returns A 32-bit integer containing the converted value. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_cvtt_ss2si(__m128 __a) -{ - return _mm_cvttss_si32(__a); -} - -#ifdef __x86_64__ -/// Converts a float value contained in the lower 32 bits of a vector of -/// [4 x float] into a 64-bit integer, truncating the result when it is -/// inexact. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the conversion. -/// \returns A 64-bit integer containing the converted value. -static __inline__ long long __DEFAULT_FN_ATTRS -_mm_cvttss_si64(__m128 __a) -{ - return __builtin_ia32_cvttss2si64((__v4sf)__a); -} -#endif - -/// Converts two low-order float values in a 128-bit vector of -/// [4 x float] into a 64-bit vector of [2 x i32], truncating the result -/// when it is inexact. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTTPS2PI / VTTPS2PI -/// instructions. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 64-bit integer vector containing the converted values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_cvttps_pi32(__m128 __a) -{ - return (__m64)__builtin_ia32_cvttps2pi((__v4sf)__a); -} - -/// Converts two low-order float values in a 128-bit vector of [4 x -/// float] into a 64-bit vector of [2 x i32], truncating the result when it -/// is inexact. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTTPS2PI instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \returns A 64-bit integer vector containing the converted values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_cvtt_ps2pi(__m128 __a) -{ - return _mm_cvttps_pi32(__a); -} - -/// Converts a 32-bit signed integer value into a floating point value -/// and writes it to the lower 32 bits of the destination. The remaining -/// higher order elements of the destination vector are copied from the -/// corresponding elements in the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 32-bit signed integer operand containing the value to be converted. -/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the -/// converted value of the second operand. The upper 96 bits are copied from -/// the upper 96 bits of the first operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cvtsi32_ss(__m128 __a, int __b) -{ - __a[0] = __b; - return __a; -} - -/// Converts a 32-bit signed integer value into a floating point value -/// and writes it to the lower 32 bits of the destination. The remaining -/// higher order elements of the destination are copied from the -/// corresponding elements in the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 32-bit signed integer operand containing the value to be converted. -/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the -/// converted value of the second operand. The upper 96 bits are copied from -/// the upper 96 bits of the first operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cvt_si2ss(__m128 __a, int __b) -{ - return _mm_cvtsi32_ss(__a, __b); -} - -#ifdef __x86_64__ - -/// Converts a 64-bit signed integer value into a floating point value -/// and writes it to the lower 32 bits of the destination. The remaining -/// higher order elements of the destination are copied from the -/// corresponding elements in the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 64-bit signed integer operand containing the value to be converted. -/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the -/// converted value of the second operand. The upper 96 bits are copied from -/// the upper 96 bits of the first operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_cvtsi64_ss(__m128 __a, long long __b) -{ - __a[0] = __b; - return __a; -} - -#endif - -/// Converts two elements of a 64-bit vector of [2 x i32] into two -/// floating point values and writes them to the lower 64-bits of the -/// destination. The remaining higher order elements of the destination are -/// copied from the corresponding elements in the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPI2PS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 64-bit vector of [2 x i32]. The elements in this vector are converted -/// and written to the corresponding low-order elements in the destination. -/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the -/// converted value of the second operand. The upper 64 bits are copied from -/// the upper 64 bits of the first operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX -_mm_cvtpi32_ps(__m128 __a, __m64 __b) -{ - return __builtin_ia32_cvtpi2ps((__v4sf)__a, (__v2si)__b); -} - -/// Converts two elements of a 64-bit vector of [2 x i32] into two -/// floating point values and writes them to the lower 64-bits of the -/// destination. The remaining higher order elements of the destination are -/// copied from the corresponding elements in the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPI2PS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. -/// \param __b -/// A 64-bit vector of [2 x i32]. The elements in this vector are converted -/// and written to the corresponding low-order elements in the destination. -/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the -/// converted value from the second operand. The upper 64 bits are copied -/// from the upper 64 bits of the first operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX -_mm_cvt_pi2ps(__m128 __a, __m64 __b) -{ - return _mm_cvtpi32_ps(__a, __b); -} - -/// Extracts a float value contained in the lower 32 bits of a vector of -/// [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are -/// used in the extraction. -/// \returns A 32-bit float containing the extracted value. -static __inline__ float __DEFAULT_FN_ATTRS -_mm_cvtss_f32(__m128 __a) -{ - return __a[0]; -} - -/// Loads two packed float values from the address \a __p into the -/// high-order bits of a 128-bit vector of [4 x float]. The low-order bits -/// are copied from the low-order bits of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVHPD / MOVHPD instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. Bits [63:0] are written to bits [63:0] -/// of the destination. -/// \param __p -/// A pointer to two packed float values. Bits [63:0] are written to bits -/// [127:64] of the destination. -/// \returns A 128-bit vector of [4 x float] containing the moved values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_loadh_pi(__m128 __a, const __m64 *__p) -{ - typedef float __mm_loadh_pi_v2f32 __attribute__((__vector_size__(8))); - struct __mm_loadh_pi_struct { - __mm_loadh_pi_v2f32 __u; - } __attribute__((__packed__, __may_alias__)); - __mm_loadh_pi_v2f32 __b = ((struct __mm_loadh_pi_struct*)__p)->__u; - __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1); - return __builtin_shufflevector(__a, __bb, 0, 1, 4, 5); -} - -/// Loads two packed float values from the address \a __p into the -/// low-order bits of a 128-bit vector of [4 x float]. The high-order bits -/// are copied from the high-order bits of the first operand. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVLPD / MOVLPD instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. Bits [127:64] are written to bits -/// [127:64] of the destination. -/// \param __p -/// A pointer to two packed float values. Bits [63:0] are written to bits -/// [63:0] of the destination. -/// \returns A 128-bit vector of [4 x float] containing the moved values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_loadl_pi(__m128 __a, const __m64 *__p) -{ - typedef float __mm_loadl_pi_v2f32 __attribute__((__vector_size__(8))); - struct __mm_loadl_pi_struct { - __mm_loadl_pi_v2f32 __u; - } __attribute__((__packed__, __may_alias__)); - __mm_loadl_pi_v2f32 __b = ((struct __mm_loadl_pi_struct*)__p)->__u; - __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1); - return __builtin_shufflevector(__a, __bb, 4, 5, 2, 3); -} - -/// Constructs a 128-bit floating-point vector of [4 x float]. The lower -/// 32 bits of the vector are initialized with the single-precision -/// floating-point value loaded from a specified memory location. The upper -/// 96 bits are set to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVSS / MOVSS instruction. -/// -/// \param __p -/// A pointer to a 32-bit memory location containing a single-precision -/// floating-point value. -/// \returns An initialized 128-bit floating-point vector of [4 x float]. The -/// lower 32 bits contain the value loaded from the memory location. The -/// upper 96 bits are set to zero. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_load_ss(const float *__p) -{ - struct __mm_load_ss_struct { - float __u; - } __attribute__((__packed__, __may_alias__)); - float __u = ((struct __mm_load_ss_struct*)__p)->__u; - return __extension__ (__m128){ __u, 0, 0, 0 }; -} - -/// Loads a 32-bit float value and duplicates it to all four vector -/// elements of a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBROADCASTSS / MOVSS + shuffling -/// instruction. -/// -/// \param __p -/// A pointer to a float value to be loaded and duplicated. -/// \returns A 128-bit vector of [4 x float] containing the loaded and -/// duplicated values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_load1_ps(const float *__p) -{ - struct __mm_load1_ps_struct { - float __u; - } __attribute__((__packed__, __may_alias__)); - float __u = ((struct __mm_load1_ps_struct*)__p)->__u; - return __extension__ (__m128){ __u, __u, __u, __u }; -} - -#define _mm_load_ps1(p) _mm_load1_ps(p) - -/// Loads a 128-bit floating-point vector of [4 x float] from an aligned -/// memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPS / MOVAPS instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. The address of the memory -/// location has to be 128-bit aligned. -/// \returns A 128-bit vector of [4 x float] containing the loaded values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_load_ps(const float *__p) -{ - return *(__m128*)__p; -} - -/// Loads a 128-bit floating-point vector of [4 x float] from an -/// unaligned memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVUPS / MOVUPS instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \returns A 128-bit vector of [4 x float] containing the loaded values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_loadu_ps(const float *__p) -{ - struct __loadu_ps { - __m128_u __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_ps*)__p)->__v; -} - -/// Loads four packed float values, in reverse order, from an aligned -/// memory location to 32-bit elements in a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPS / MOVAPS + shuffling -/// instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. The address of the memory -/// location has to be 128-bit aligned. -/// \returns A 128-bit vector of [4 x float] containing the moved values, loaded -/// in reverse order. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_loadr_ps(const float *__p) -{ - __m128 __a = _mm_load_ps(__p); - return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0); -} - -/// Create a 128-bit vector of [4 x float] with undefined values. -/// -/// \headerfile -/// -/// This intrinsic has no corresponding instruction. -/// -/// \returns A 128-bit vector of [4 x float] containing undefined values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_undefined_ps(void) -{ - return (__m128)__builtin_ia32_undef128(); -} - -/// Constructs a 128-bit floating-point vector of [4 x float]. The lower -/// 32 bits of the vector are initialized with the specified single-precision -/// floating-point value. The upper 96 bits are set to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVSS / MOVSS instruction. -/// -/// \param __w -/// A single-precision floating-point value used to initialize the lower 32 -/// bits of the result. -/// \returns An initialized 128-bit floating-point vector of [4 x float]. The -/// lower 32 bits contain the value provided in the source operand. The -/// upper 96 bits are set to zero. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_set_ss(float __w) -{ - return __extension__ (__m128){ __w, 0, 0, 0 }; -} - -/// Constructs a 128-bit floating-point vector of [4 x float], with each -/// of the four single-precision floating-point vector elements set to the -/// specified single-precision floating-point value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPERMILPS / PERMILPS instruction. -/// -/// \param __w -/// A single-precision floating-point value used to initialize each vector -/// element of the result. -/// \returns An initialized 128-bit floating-point vector of [4 x float]. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_set1_ps(float __w) -{ - return __extension__ (__m128){ __w, __w, __w, __w }; -} - -/* Microsoft specific. */ -/// Constructs a 128-bit floating-point vector of [4 x float], with each -/// of the four single-precision floating-point vector elements set to the -/// specified single-precision floating-point value. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPERMILPS / PERMILPS instruction. -/// -/// \param __w -/// A single-precision floating-point value used to initialize each vector -/// element of the result. -/// \returns An initialized 128-bit floating-point vector of [4 x float]. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_set_ps1(float __w) -{ - return _mm_set1_ps(__w); -} - -/// Constructs a 128-bit floating-point vector of [4 x float] -/// initialized with the specified single-precision floating-point values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __z -/// A single-precision floating-point value used to initialize bits [127:96] -/// of the result. -/// \param __y -/// A single-precision floating-point value used to initialize bits [95:64] -/// of the result. -/// \param __x -/// A single-precision floating-point value used to initialize bits [63:32] -/// of the result. -/// \param __w -/// A single-precision floating-point value used to initialize bits [31:0] -/// of the result. -/// \returns An initialized 128-bit floating-point vector of [4 x float]. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_set_ps(float __z, float __y, float __x, float __w) -{ - return __extension__ (__m128){ __w, __x, __y, __z }; -} - -/// Constructs a 128-bit floating-point vector of [4 x float], -/// initialized in reverse order with the specified 32-bit single-precision -/// float-point values. -/// -/// \headerfile -/// -/// This intrinsic is a utility function and does not correspond to a specific -/// instruction. -/// -/// \param __z -/// A single-precision floating-point value used to initialize bits [31:0] -/// of the result. -/// \param __y -/// A single-precision floating-point value used to initialize bits [63:32] -/// of the result. -/// \param __x -/// A single-precision floating-point value used to initialize bits [95:64] -/// of the result. -/// \param __w -/// A single-precision floating-point value used to initialize bits [127:96] -/// of the result. -/// \returns An initialized 128-bit floating-point vector of [4 x float]. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_setr_ps(float __z, float __y, float __x, float __w) -{ - return __extension__ (__m128){ __z, __y, __x, __w }; -} - -/// Constructs a 128-bit floating-point vector of [4 x float] initialized -/// to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VXORPS / XORPS instruction. -/// -/// \returns An initialized 128-bit floating-point vector of [4 x float] with -/// all elements set to zero. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_setzero_ps(void) -{ - return __extension__ (__m128){ 0, 0, 0, 0 }; -} - -/// Stores the upper 64 bits of a 128-bit vector of [4 x float] to a -/// memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VPEXTRQ / PEXTRQ instruction. -/// -/// \param __p -/// A pointer to a 64-bit memory location. -/// \param __a -/// A 128-bit vector of [4 x float] containing the values to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storeh_pi(__m64 *__p, __m128 __a) -{ - typedef float __mm_storeh_pi_v2f32 __attribute__((__vector_size__(8))); - struct __mm_storeh_pi_struct { - __mm_storeh_pi_v2f32 __u; - } __attribute__((__packed__, __may_alias__)); - ((struct __mm_storeh_pi_struct*)__p)->__u = __builtin_shufflevector(__a, __a, 2, 3); -} - -/// Stores the lower 64 bits of a 128-bit vector of [4 x float] to a -/// memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVLPS / MOVLPS instruction. -/// -/// \param __p -/// A pointer to a memory location that will receive the float values. -/// \param __a -/// A 128-bit vector of [4 x float] containing the values to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storel_pi(__m64 *__p, __m128 __a) -{ - typedef float __mm_storeh_pi_v2f32 __attribute__((__vector_size__(8))); - struct __mm_storeh_pi_struct { - __mm_storeh_pi_v2f32 __u; - } __attribute__((__packed__, __may_alias__)); - ((struct __mm_storeh_pi_struct*)__p)->__u = __builtin_shufflevector(__a, __a, 0, 1); -} - -/// Stores the lower 32 bits of a 128-bit vector of [4 x float] to a -/// memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVSS / MOVSS instruction. -/// -/// \param __p -/// A pointer to a 32-bit memory location. -/// \param __a -/// A 128-bit vector of [4 x float] containing the value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_store_ss(float *__p, __m128 __a) -{ - struct __mm_store_ss_struct { - float __u; - } __attribute__((__packed__, __may_alias__)); - ((struct __mm_store_ss_struct*)__p)->__u = __a[0]; -} - -/// Stores a 128-bit vector of [4 x float] to an unaligned memory -/// location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVUPS / MOVUPS instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \param __a -/// A 128-bit vector of [4 x float] containing the values to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storeu_ps(float *__p, __m128 __a) -{ - struct __storeu_ps { - __m128_u __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_ps*)__p)->__v = __a; -} - -/// Stores a 128-bit vector of [4 x float] into an aligned memory -/// location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPS / MOVAPS instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. The address of the memory -/// location has to be 16-byte aligned. -/// \param __a -/// A 128-bit vector of [4 x float] containing the values to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_store_ps(float *__p, __m128 __a) -{ - *(__m128*)__p = __a; -} - -/// Stores the lower 32 bits of a 128-bit vector of [4 x float] into -/// four contiguous elements in an aligned memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to VMOVAPS / MOVAPS + shuffling -/// instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. -/// \param __a -/// A 128-bit vector of [4 x float] whose lower 32 bits are stored to each -/// of the four contiguous elements pointed by \a __p. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_store1_ps(float *__p, __m128 __a) -{ - __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 0, 0); - _mm_store_ps(__p, __a); -} - -/// Stores the lower 32 bits of a 128-bit vector of [4 x float] into -/// four contiguous elements in an aligned memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to VMOVAPS / MOVAPS + shuffling -/// instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. -/// \param __a -/// A 128-bit vector of [4 x float] whose lower 32 bits are stored to each -/// of the four contiguous elements pointed by \a __p. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_store_ps1(float *__p, __m128 __a) -{ - _mm_store1_ps(__p, __a); -} - -/// Stores float values from a 128-bit vector of [4 x float] to an -/// aligned memory location in reverse order. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVAPS / MOVAPS + shuffling -/// instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. The address of the memory -/// location has to be 128-bit aligned. -/// \param __a -/// A 128-bit vector of [4 x float] containing the values to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storer_ps(float *__p, __m128 __a) -{ - __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0); - _mm_store_ps(__p, __a); -} - -#define _MM_HINT_ET0 7 -#define _MM_HINT_ET1 6 -#define _MM_HINT_T0 3 -#define _MM_HINT_T1 2 -#define _MM_HINT_T2 1 -#define _MM_HINT_NTA 0 - -#ifndef _MSC_VER -/* FIXME: We have to #define this because "sel" must be a constant integer, and - Sema doesn't do any form of constant propagation yet. */ - -/// Loads one cache line of data from the specified address to a location -/// closer to the processor. -/// -/// \headerfile -/// -/// \code -/// void _mm_prefetch(const void * a, const int sel); -/// \endcode -/// -/// This intrinsic corresponds to the PREFETCHNTA instruction. -/// -/// \param a -/// A pointer to a memory location containing a cache line of data. -/// \param sel -/// A predefined integer constant specifying the type of prefetch -/// operation: \n -/// _MM_HINT_NTA: Move data using the non-temporal access (NTA) hint. The -/// PREFETCHNTA instruction will be generated. \n -/// _MM_HINT_T0: Move data using the T0 hint. The PREFETCHT0 instruction will -/// be generated. \n -/// _MM_HINT_T1: Move data using the T1 hint. The PREFETCHT1 instruction will -/// be generated. \n -/// _MM_HINT_T2: Move data using the T2 hint. The PREFETCHT2 instruction will -/// be generated. -#define _mm_prefetch(a, sel) (__builtin_prefetch((void *)(a), \ - ((sel) >> 2) & 1, (sel) & 0x3)) -#endif - -/// Stores a 64-bit integer in the specified aligned memory location. To -/// minimize caching, the data is flagged as non-temporal (unlikely to be -/// used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MOVNTQ instruction. -/// -/// \param __p -/// A pointer to an aligned memory location used to store the register value. -/// \param __a -/// A 64-bit integer containing the value to be stored. -static __inline__ void __DEFAULT_FN_ATTRS_MMX -_mm_stream_pi(__m64 *__p, __m64 __a) -{ - __builtin_ia32_movntq(__p, __a); -} - -/// Moves packed float values from a 128-bit vector of [4 x float] to a -/// 128-bit aligned memory location. To minimize caching, the data is flagged -/// as non-temporal (unlikely to be used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVNTPS / MOVNTPS instruction. -/// -/// \param __p -/// A pointer to a 128-bit aligned memory location that will receive the -/// single-precision floating-point values. -/// \param __a -/// A 128-bit vector of [4 x float] containing the values to be moved. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_stream_ps(float *__p, __m128 __a) -{ - __builtin_nontemporal_store((__v4sf)__a, (__v4sf*)__p); -} - -#if defined(__cplusplus) -extern "C" { -#endif - -/// Forces strong memory ordering (serialization) between store -/// instructions preceding this instruction and store instructions following -/// this instruction, ensuring the system completes all previous stores -/// before executing subsequent stores. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the SFENCE instruction. -/// -void _mm_sfence(void); - -#if defined(__cplusplus) -} // extern "C" -#endif - -/// Extracts 16-bit element from a 64-bit vector of [4 x i16] and -/// returns it, as specified by the immediate integer operand. -/// -/// \headerfile -/// -/// \code -/// int _mm_extract_pi16(__m64 a, int n); -/// \endcode -/// -/// This intrinsic corresponds to the VPEXTRW / PEXTRW instruction. -/// -/// \param a -/// A 64-bit vector of [4 x i16]. -/// \param n -/// An immediate integer operand that determines which bits are extracted: \n -/// 0: Bits [15:0] are copied to the destination. \n -/// 1: Bits [31:16] are copied to the destination. \n -/// 2: Bits [47:32] are copied to the destination. \n -/// 3: Bits [63:48] are copied to the destination. -/// \returns A 16-bit integer containing the extracted 16 bits of packed data. -#define _mm_extract_pi16(a, n) \ - (int)__builtin_ia32_vec_ext_v4hi((__m64)a, (int)n) - -/// Copies data from the 64-bit vector of [4 x i16] to the destination, -/// and inserts the lower 16-bits of an integer operand at the 16-bit offset -/// specified by the immediate operand \a n. -/// -/// \headerfile -/// -/// \code -/// __m64 _mm_insert_pi16(__m64 a, int d, int n); -/// \endcode -/// -/// This intrinsic corresponds to the PINSRW instruction. -/// -/// \param a -/// A 64-bit vector of [4 x i16]. -/// \param d -/// An integer. The lower 16-bit value from this operand is written to the -/// destination at the offset specified by operand \a n. -/// \param n -/// An immediate integer operant that determines which the bits to be used -/// in the destination. \n -/// 0: Bits [15:0] are copied to the destination. \n -/// 1: Bits [31:16] are copied to the destination. \n -/// 2: Bits [47:32] are copied to the destination. \n -/// 3: Bits [63:48] are copied to the destination. \n -/// The remaining bits in the destination are copied from the corresponding -/// bits in operand \a a. -/// \returns A 64-bit integer vector containing the copied packed data from the -/// operands. -#define _mm_insert_pi16(a, d, n) \ - (__m64)__builtin_ia32_vec_set_v4hi((__m64)a, (int)d, (int)n) - -/// Compares each of the corresponding packed 16-bit integer values of -/// the 64-bit integer vectors, and writes the greater value to the -/// corresponding bits in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PMAXSW instruction. -/// -/// \param __a -/// A 64-bit integer vector containing one of the source operands. -/// \param __b -/// A 64-bit integer vector containing one of the source operands. -/// \returns A 64-bit integer vector containing the comparison results. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_max_pi16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_pmaxsw((__v4hi)__a, (__v4hi)__b); -} - -/// Compares each of the corresponding packed 8-bit unsigned integer -/// values of the 64-bit integer vectors, and writes the greater value to the -/// corresponding bits in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PMAXUB instruction. -/// -/// \param __a -/// A 64-bit integer vector containing one of the source operands. -/// \param __b -/// A 64-bit integer vector containing one of the source operands. -/// \returns A 64-bit integer vector containing the comparison results. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_max_pu8(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_pmaxub((__v8qi)__a, (__v8qi)__b); -} - -/// Compares each of the corresponding packed 16-bit integer values of -/// the 64-bit integer vectors, and writes the lesser value to the -/// corresponding bits in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PMINSW instruction. -/// -/// \param __a -/// A 64-bit integer vector containing one of the source operands. -/// \param __b -/// A 64-bit integer vector containing one of the source operands. -/// \returns A 64-bit integer vector containing the comparison results. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_min_pi16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_pminsw((__v4hi)__a, (__v4hi)__b); -} - -/// Compares each of the corresponding packed 8-bit unsigned integer -/// values of the 64-bit integer vectors, and writes the lesser value to the -/// corresponding bits in the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PMINUB instruction. -/// -/// \param __a -/// A 64-bit integer vector containing one of the source operands. -/// \param __b -/// A 64-bit integer vector containing one of the source operands. -/// \returns A 64-bit integer vector containing the comparison results. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_min_pu8(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_pminub((__v8qi)__a, (__v8qi)__b); -} - -/// Takes the most significant bit from each 8-bit element in a 64-bit -/// integer vector to create an 8-bit mask value. Zero-extends the value to -/// 32-bit integer and writes it to the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PMOVMSKB instruction. -/// -/// \param __a -/// A 64-bit integer vector containing the values with bits to be extracted. -/// \returns The most significant bit from each 8-bit element in \a __a, -/// written to bits [7:0]. -static __inline__ int __DEFAULT_FN_ATTRS_MMX -_mm_movemask_pi8(__m64 __a) -{ - return __builtin_ia32_pmovmskb((__v8qi)__a); -} - -/// Multiplies packed 16-bit unsigned integer values and writes the -/// high-order 16 bits of each 32-bit product to the corresponding bits in -/// the destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PMULHUW instruction. -/// -/// \param __a -/// A 64-bit integer vector containing one of the source operands. -/// \param __b -/// A 64-bit integer vector containing one of the source operands. -/// \returns A 64-bit integer vector containing the products of both operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_mulhi_pu16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_pmulhuw((__v4hi)__a, (__v4hi)__b); -} - -/// Shuffles the 4 16-bit integers from a 64-bit integer vector to the -/// destination, as specified by the immediate value operand. -/// -/// \headerfile -/// -/// \code -/// __m64 _mm_shuffle_pi16(__m64 a, const int n); -/// \endcode -/// -/// This intrinsic corresponds to the PSHUFW instruction. -/// -/// \param a -/// A 64-bit integer vector containing the values to be shuffled. -/// \param n -/// An immediate value containing an 8-bit value specifying which elements to -/// copy from \a a. The destinations within the 64-bit destination are -/// assigned values as follows: \n -/// Bits [1:0] are used to assign values to bits [15:0] in the -/// destination. \n -/// Bits [3:2] are used to assign values to bits [31:16] in the -/// destination. \n -/// Bits [5:4] are used to assign values to bits [47:32] in the -/// destination. \n -/// Bits [7:6] are used to assign values to bits [63:48] in the -/// destination. \n -/// Bit value assignments: \n -/// 00: assigned from bits [15:0] of \a a. \n -/// 01: assigned from bits [31:16] of \a a. \n -/// 10: assigned from bits [47:32] of \a a. \n -/// 11: assigned from bits [63:48] of \a a. -/// \returns A 64-bit integer vector containing the shuffled values. -#define _mm_shuffle_pi16(a, n) \ - (__m64)__builtin_ia32_pshufw((__v4hi)(__m64)(a), (n)) - -/// Conditionally copies the values from each 8-bit element in the first -/// 64-bit integer vector operand to the specified memory location, as -/// specified by the most significant bit in the corresponding element in the -/// second 64-bit integer vector operand. -/// -/// To minimize caching, the data is flagged as non-temporal -/// (unlikely to be used again soon). -/// -/// \headerfile -/// -/// This intrinsic corresponds to the MASKMOVQ instruction. -/// -/// \param __d -/// A 64-bit integer vector containing the values with elements to be copied. -/// \param __n -/// A 64-bit integer vector operand. The most significant bit from each 8-bit -/// element determines whether the corresponding element in operand \a __d -/// is copied. If the most significant bit of a given element is 1, the -/// corresponding element in operand \a __d is copied. -/// \param __p -/// A pointer to a 64-bit memory location that will receive the conditionally -/// copied integer values. The address of the memory location does not have -/// to be aligned. -static __inline__ void __DEFAULT_FN_ATTRS_MMX -_mm_maskmove_si64(__m64 __d, __m64 __n, char *__p) -{ - __builtin_ia32_maskmovq((__v8qi)__d, (__v8qi)__n, __p); -} - -/// Computes the rounded averages of the packed unsigned 8-bit integer -/// values and writes the averages to the corresponding bits in the -/// destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PAVGB instruction. -/// -/// \param __a -/// A 64-bit integer vector containing one of the source operands. -/// \param __b -/// A 64-bit integer vector containing one of the source operands. -/// \returns A 64-bit integer vector containing the averages of both operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_avg_pu8(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_pavgb((__v8qi)__a, (__v8qi)__b); -} - -/// Computes the rounded averages of the packed unsigned 16-bit integer -/// values and writes the averages to the corresponding bits in the -/// destination. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PAVGW instruction. -/// -/// \param __a -/// A 64-bit integer vector containing one of the source operands. -/// \param __b -/// A 64-bit integer vector containing one of the source operands. -/// \returns A 64-bit integer vector containing the averages of both operands. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_avg_pu16(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_pavgw((__v4hi)__a, (__v4hi)__b); -} - -/// Subtracts the corresponding 8-bit unsigned integer values of the two -/// 64-bit vector operands and computes the absolute value for each of the -/// difference. Then sum of the 8 absolute differences is written to the -/// bits [15:0] of the destination; the remaining bits [63:16] are cleared. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the PSADBW instruction. -/// -/// \param __a -/// A 64-bit integer vector containing one of the source operands. -/// \param __b -/// A 64-bit integer vector containing one of the source operands. -/// \returns A 64-bit integer vector whose lower 16 bits contain the sums of the -/// sets of absolute differences between both operands. The upper bits are -/// cleared. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_sad_pu8(__m64 __a, __m64 __b) -{ - return (__m64)__builtin_ia32_psadbw((__v8qi)__a, (__v8qi)__b); -} - -#if defined(__cplusplus) -extern "C" { -#endif - -/// Returns the contents of the MXCSR register as a 32-bit unsigned -/// integer value. -/// -/// There are several groups of macros associated with this -/// intrinsic, including: -///
    -///
  • -/// For checking exception states: _MM_EXCEPT_INVALID, _MM_EXCEPT_DIV_ZERO, -/// _MM_EXCEPT_DENORM, _MM_EXCEPT_OVERFLOW, _MM_EXCEPT_UNDERFLOW, -/// _MM_EXCEPT_INEXACT. There is a convenience wrapper -/// _MM_GET_EXCEPTION_STATE(). -///
  • -///
  • -/// For checking exception masks: _MM_MASK_UNDERFLOW, _MM_MASK_OVERFLOW, -/// _MM_MASK_INVALID, _MM_MASK_DENORM, _MM_MASK_DIV_ZERO, _MM_MASK_INEXACT. -/// There is a convenience wrapper _MM_GET_EXCEPTION_MASK(). -///
  • -///
  • -/// For checking rounding modes: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, -/// _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO. There is a convenience wrapper -/// _MM_GET_ROUNDING_MODE(). -///
  • -///
  • -/// For checking flush-to-zero mode: _MM_FLUSH_ZERO_ON, _MM_FLUSH_ZERO_OFF. -/// There is a convenience wrapper _MM_GET_FLUSH_ZERO_MODE(). -///
  • -///
  • -/// For checking denormals-are-zero mode: _MM_DENORMALS_ZERO_ON, -/// _MM_DENORMALS_ZERO_OFF. There is a convenience wrapper -/// _MM_GET_DENORMALS_ZERO_MODE(). -///
  • -///
-/// -/// For example, the following expression checks if an overflow exception has -/// occurred: -/// \code -/// ( _mm_getcsr() & _MM_EXCEPT_OVERFLOW ) -/// \endcode -/// -/// The following expression gets the current rounding mode: -/// \code -/// _MM_GET_ROUNDING_MODE() -/// \endcode -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VSTMXCSR / STMXCSR instruction. -/// -/// \returns A 32-bit unsigned integer containing the contents of the MXCSR -/// register. -unsigned int _mm_getcsr(void); - -/// Sets the MXCSR register with the 32-bit unsigned integer value. -/// -/// There are several groups of macros associated with this intrinsic, -/// including: -///
    -///
  • -/// For setting exception states: _MM_EXCEPT_INVALID, _MM_EXCEPT_DIV_ZERO, -/// _MM_EXCEPT_DENORM, _MM_EXCEPT_OVERFLOW, _MM_EXCEPT_UNDERFLOW, -/// _MM_EXCEPT_INEXACT. There is a convenience wrapper -/// _MM_SET_EXCEPTION_STATE(x) where x is one of these macros. -///
  • -///
  • -/// For setting exception masks: _MM_MASK_UNDERFLOW, _MM_MASK_OVERFLOW, -/// _MM_MASK_INVALID, _MM_MASK_DENORM, _MM_MASK_DIV_ZERO, _MM_MASK_INEXACT. -/// There is a convenience wrapper _MM_SET_EXCEPTION_MASK(x) where x is one -/// of these macros. -///
  • -///
  • -/// For setting rounding modes: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, -/// _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO. There is a convenience wrapper -/// _MM_SET_ROUNDING_MODE(x) where x is one of these macros. -///
  • -///
  • -/// For setting flush-to-zero mode: _MM_FLUSH_ZERO_ON, _MM_FLUSH_ZERO_OFF. -/// There is a convenience wrapper _MM_SET_FLUSH_ZERO_MODE(x) where x is -/// one of these macros. -///
  • -///
  • -/// For setting denormals-are-zero mode: _MM_DENORMALS_ZERO_ON, -/// _MM_DENORMALS_ZERO_OFF. There is a convenience wrapper -/// _MM_SET_DENORMALS_ZERO_MODE(x) where x is one of these macros. -///
  • -///
-/// -/// For example, the following expression causes subsequent floating-point -/// operations to round up: -/// _mm_setcsr(_mm_getcsr() | _MM_ROUND_UP) -/// -/// The following example sets the DAZ and FTZ flags: -/// \code -/// void setFlags() { -/// _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); -/// _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON); -/// } -/// \endcode -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VLDMXCSR / LDMXCSR instruction. -/// -/// \param __i -/// A 32-bit unsigned integer value to be written to the MXCSR register. -void _mm_setcsr(unsigned int __i); - -#if defined(__cplusplus) -} // extern "C" -#endif - -/// Selects 4 float values from the 128-bit operands of [4 x float], as -/// specified by the immediate value operand. -/// -/// \headerfile -/// -/// \code -/// __m128 _mm_shuffle_ps(__m128 a, __m128 b, const int mask); -/// \endcode -/// -/// This intrinsic corresponds to the VSHUFPS / SHUFPS instruction. -/// -/// \param a -/// A 128-bit vector of [4 x float]. -/// \param b -/// A 128-bit vector of [4 x float]. -/// \param mask -/// An immediate value containing an 8-bit value specifying which elements to -/// copy from \a a and \a b. \n -/// Bits [3:0] specify the values copied from operand \a a. \n -/// Bits [7:4] specify the values copied from operand \a b. \n -/// The destinations within the 128-bit destination are assigned values as -/// follows: \n -/// Bits [1:0] are used to assign values to bits [31:0] in the -/// destination. \n -/// Bits [3:2] are used to assign values to bits [63:32] in the -/// destination. \n -/// Bits [5:4] are used to assign values to bits [95:64] in the -/// destination. \n -/// Bits [7:6] are used to assign values to bits [127:96] in the -/// destination. \n -/// Bit value assignments: \n -/// 00: Bits [31:0] copied from the specified operand. \n -/// 01: Bits [63:32] copied from the specified operand. \n -/// 10: Bits [95:64] copied from the specified operand. \n -/// 11: Bits [127:96] copied from the specified operand. -/// \returns A 128-bit vector of [4 x float] containing the shuffled values. -#define _mm_shuffle_ps(a, b, mask) \ - (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ - (int)(mask)) - -/// Unpacks the high-order (index 2,3) values from two 128-bit vectors of -/// [4 x float] and interleaves them into a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKHPS / UNPCKHPS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. \n -/// Bits [95:64] are written to bits [31:0] of the destination. \n -/// Bits [127:96] are written to bits [95:64] of the destination. -/// \param __b -/// A 128-bit vector of [4 x float]. -/// Bits [95:64] are written to bits [63:32] of the destination. \n -/// Bits [127:96] are written to bits [127:96] of the destination. -/// \returns A 128-bit vector of [4 x float] containing the interleaved values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_unpackhi_ps(__m128 __a, __m128 __b) -{ - return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 2, 6, 3, 7); -} - -/// Unpacks the low-order (index 0,1) values from two 128-bit vectors of -/// [4 x float] and interleaves them into a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKLPS / UNPCKLPS instruction. -/// -/// \param __a -/// A 128-bit vector of [4 x float]. \n -/// Bits [31:0] are written to bits [31:0] of the destination. \n -/// Bits [63:32] are written to bits [95:64] of the destination. -/// \param __b -/// A 128-bit vector of [4 x float]. \n -/// Bits [31:0] are written to bits [63:32] of the destination. \n -/// Bits [63:32] are written to bits [127:96] of the destination. -/// \returns A 128-bit vector of [4 x float] containing the interleaved values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_unpacklo_ps(__m128 __a, __m128 __b) -{ - return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 4, 1, 5); -} - -/// Constructs a 128-bit floating-point vector of [4 x float]. The lower -/// 32 bits are set to the lower 32 bits of the second parameter. The upper -/// 96 bits are set to the upper 96 bits of the first parameter. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VBLENDPS / BLENDPS / MOVSS -/// instruction. -/// -/// \param __a -/// A 128-bit floating-point vector of [4 x float]. The upper 96 bits are -/// written to the upper 96 bits of the result. -/// \param __b -/// A 128-bit floating-point vector of [4 x float]. The lower 32 bits are -/// written to the lower 32 bits of the result. -/// \returns A 128-bit floating-point vector of [4 x float]. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_move_ss(__m128 __a, __m128 __b) -{ - __a[0] = __b[0]; - return __a; -} - -/// Constructs a 128-bit floating-point vector of [4 x float]. The lower -/// 64 bits are set to the upper 64 bits of the second parameter. The upper -/// 64 bits are set to the upper 64 bits of the first parameter. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKHPD / UNPCKHPD instruction. -/// -/// \param __a -/// A 128-bit floating-point vector of [4 x float]. The upper 64 bits are -/// written to the upper 64 bits of the result. -/// \param __b -/// A 128-bit floating-point vector of [4 x float]. The upper 64 bits are -/// written to the lower 64 bits of the result. -/// \returns A 128-bit floating-point vector of [4 x float]. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_movehl_ps(__m128 __a, __m128 __b) -{ - return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 6, 7, 2, 3); -} - -/// Constructs a 128-bit floating-point vector of [4 x float]. The lower -/// 64 bits are set to the lower 64 bits of the first parameter. The upper -/// 64 bits are set to the lower 64 bits of the second parameter. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VUNPCKLPD / UNPCKLPD instruction. -/// -/// \param __a -/// A 128-bit floating-point vector of [4 x float]. The lower 64 bits are -/// written to the lower 64 bits of the result. -/// \param __b -/// A 128-bit floating-point vector of [4 x float]. The lower 64 bits are -/// written to the upper 64 bits of the result. -/// \returns A 128-bit floating-point vector of [4 x float]. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_movelh_ps(__m128 __a, __m128 __b) -{ - return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 1, 4, 5); -} - -/// Converts a 64-bit vector of [4 x i16] into a 128-bit vector of [4 x -/// float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. -/// -/// \param __a -/// A 64-bit vector of [4 x i16]. The elements of the destination are copied -/// from the corresponding elements in this operand. -/// \returns A 128-bit vector of [4 x float] containing the copied and converted -/// values from the operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX -_mm_cvtpi16_ps(__m64 __a) -{ - __m64 __b, __c; - __m128 __r; - - __b = _mm_setzero_si64(); - __b = _mm_cmpgt_pi16(__b, __a); - __c = _mm_unpackhi_pi16(__a, __b); - __r = _mm_setzero_ps(); - __r = _mm_cvtpi32_ps(__r, __c); - __r = _mm_movelh_ps(__r, __r); - __c = _mm_unpacklo_pi16(__a, __b); - __r = _mm_cvtpi32_ps(__r, __c); - - return __r; -} - -/// Converts a 64-bit vector of 16-bit unsigned integer values into a -/// 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. -/// -/// \param __a -/// A 64-bit vector of 16-bit unsigned integer values. The elements of the -/// destination are copied from the corresponding elements in this operand. -/// \returns A 128-bit vector of [4 x float] containing the copied and converted -/// values from the operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX -_mm_cvtpu16_ps(__m64 __a) -{ - __m64 __b, __c; - __m128 __r; - - __b = _mm_setzero_si64(); - __c = _mm_unpackhi_pi16(__a, __b); - __r = _mm_setzero_ps(); - __r = _mm_cvtpi32_ps(__r, __c); - __r = _mm_movelh_ps(__r, __r); - __c = _mm_unpacklo_pi16(__a, __b); - __r = _mm_cvtpi32_ps(__r, __c); - - return __r; -} - -/// Converts the lower four 8-bit values from a 64-bit vector of [8 x i8] -/// into a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. -/// -/// \param __a -/// A 64-bit vector of [8 x i8]. The elements of the destination are copied -/// from the corresponding lower 4 elements in this operand. -/// \returns A 128-bit vector of [4 x float] containing the copied and converted -/// values from the operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX -_mm_cvtpi8_ps(__m64 __a) -{ - __m64 __b; - - __b = _mm_setzero_si64(); - __b = _mm_cmpgt_pi8(__b, __a); - __b = _mm_unpacklo_pi8(__a, __b); - - return _mm_cvtpi16_ps(__b); -} - -/// Converts the lower four unsigned 8-bit integer values from a 64-bit -/// vector of [8 x u8] into a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. -/// -/// \param __a -/// A 64-bit vector of unsigned 8-bit integer values. The elements of the -/// destination are copied from the corresponding lower 4 elements in this -/// operand. -/// \returns A 128-bit vector of [4 x float] containing the copied and converted -/// values from the source operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX -_mm_cvtpu8_ps(__m64 __a) -{ - __m64 __b; - - __b = _mm_setzero_si64(); - __b = _mm_unpacklo_pi8(__a, __b); - - return _mm_cvtpi16_ps(__b); -} - -/// Converts the two 32-bit signed integer values from each 64-bit vector -/// operand of [2 x i32] into a 128-bit vector of [4 x float]. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. -/// -/// \param __a -/// A 64-bit vector of [2 x i32]. The lower elements of the destination are -/// copied from the elements in this operand. -/// \param __b -/// A 64-bit vector of [2 x i32]. The upper elements of the destination are -/// copied from the elements in this operand. -/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the -/// copied and converted values from the first operand. The upper 64 bits -/// contain the copied and converted values from the second operand. -static __inline__ __m128 __DEFAULT_FN_ATTRS_MMX -_mm_cvtpi32x2_ps(__m64 __a, __m64 __b) -{ - __m128 __c; - - __c = _mm_setzero_ps(); - __c = _mm_cvtpi32_ps(__c, __b); - __c = _mm_movelh_ps(__c, __c); - - return _mm_cvtpi32_ps(__c, __a); -} - -/// Converts each single-precision floating-point element of a 128-bit -/// floating-point vector of [4 x float] into a 16-bit signed integer, and -/// packs the results into a 64-bit integer vector of [4 x i16]. -/// -/// If the floating-point element is NaN or infinity, or if the -/// floating-point element is greater than 0x7FFFFFFF or less than -0x8000, -/// it is converted to 0x8000. Otherwise if the floating-point element is -/// greater than 0x7FFF, it is converted to 0x7FFF. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPS2PI + COMPOSITE instruction. -/// -/// \param __a -/// A 128-bit floating-point vector of [4 x float]. -/// \returns A 64-bit integer vector of [4 x i16] containing the converted -/// values. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_cvtps_pi16(__m128 __a) -{ - __m64 __b, __c; - - __b = _mm_cvtps_pi32(__a); - __a = _mm_movehl_ps(__a, __a); - __c = _mm_cvtps_pi32(__a); - - return _mm_packs_pi32(__b, __c); -} - -/// Converts each single-precision floating-point element of a 128-bit -/// floating-point vector of [4 x float] into an 8-bit signed integer, and -/// packs the results into the lower 32 bits of a 64-bit integer vector of -/// [8 x i8]. The upper 32 bits of the vector are set to 0. -/// -/// If the floating-point element is NaN or infinity, or if the -/// floating-point element is greater than 0x7FFFFFFF or less than -0x80, it -/// is converted to 0x80. Otherwise if the floating-point element is greater -/// than 0x7F, it is converted to 0x7F. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the CVTPS2PI + COMPOSITE instruction. -/// -/// \param __a -/// 128-bit floating-point vector of [4 x float]. -/// \returns A 64-bit integer vector of [8 x i8]. The lower 32 bits contain the -/// converted values and the uppper 32 bits are set to zero. -static __inline__ __m64 __DEFAULT_FN_ATTRS_MMX -_mm_cvtps_pi8(__m128 __a) -{ - __m64 __b, __c; - - __b = _mm_cvtps_pi16(__a); - __c = _mm_setzero_si64(); - - return _mm_packs_pi16(__b, __c); -} - -/// Extracts the sign bits from each single-precision floating-point -/// element of a 128-bit floating-point vector of [4 x float] and returns the -/// sign bits in bits [0:3] of the result. Bits [31:4] of the result are set -/// to zero. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the VMOVMSKPS / MOVMSKPS instruction. -/// -/// \param __a -/// A 128-bit floating-point vector of [4 x float]. -/// \returns A 32-bit integer value. Bits [3:0] contain the sign bits from each -/// single-precision floating-point element of the parameter. Bits [31:4] are -/// set to zero. -static __inline__ int __DEFAULT_FN_ATTRS -_mm_movemask_ps(__m128 __a) -{ - return __builtin_ia32_movmskps((__v4sf)__a); -} - - -#define _MM_ALIGN16 __attribute__((aligned(16))) - -#define _MM_SHUFFLE(z, y, x, w) (((z) << 6) | ((y) << 4) | ((x) << 2) | (w)) - -#define _MM_EXCEPT_INVALID (0x0001) -#define _MM_EXCEPT_DENORM (0x0002) -#define _MM_EXCEPT_DIV_ZERO (0x0004) -#define _MM_EXCEPT_OVERFLOW (0x0008) -#define _MM_EXCEPT_UNDERFLOW (0x0010) -#define _MM_EXCEPT_INEXACT (0x0020) -#define _MM_EXCEPT_MASK (0x003f) - -#define _MM_MASK_INVALID (0x0080) -#define _MM_MASK_DENORM (0x0100) -#define _MM_MASK_DIV_ZERO (0x0200) -#define _MM_MASK_OVERFLOW (0x0400) -#define _MM_MASK_UNDERFLOW (0x0800) -#define _MM_MASK_INEXACT (0x1000) -#define _MM_MASK_MASK (0x1f80) - -#define _MM_ROUND_NEAREST (0x0000) -#define _MM_ROUND_DOWN (0x2000) -#define _MM_ROUND_UP (0x4000) -#define _MM_ROUND_TOWARD_ZERO (0x6000) -#define _MM_ROUND_MASK (0x6000) - -#define _MM_FLUSH_ZERO_MASK (0x8000) -#define _MM_FLUSH_ZERO_ON (0x8000) -#define _MM_FLUSH_ZERO_OFF (0x0000) - -#define _MM_GET_EXCEPTION_MASK() (_mm_getcsr() & _MM_MASK_MASK) -#define _MM_GET_EXCEPTION_STATE() (_mm_getcsr() & _MM_EXCEPT_MASK) -#define _MM_GET_FLUSH_ZERO_MODE() (_mm_getcsr() & _MM_FLUSH_ZERO_MASK) -#define _MM_GET_ROUNDING_MODE() (_mm_getcsr() & _MM_ROUND_MASK) - -#define _MM_SET_EXCEPTION_MASK(x) (_mm_setcsr((_mm_getcsr() & ~_MM_MASK_MASK) | (x))) -#define _MM_SET_EXCEPTION_STATE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_EXCEPT_MASK) | (x))) -#define _MM_SET_FLUSH_ZERO_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (x))) -#define _MM_SET_ROUNDING_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_ROUND_MASK) | (x))) - -#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ -do { \ - __m128 tmp3, tmp2, tmp1, tmp0; \ - tmp0 = _mm_unpacklo_ps((row0), (row1)); \ - tmp2 = _mm_unpacklo_ps((row2), (row3)); \ - tmp1 = _mm_unpackhi_ps((row0), (row1)); \ - tmp3 = _mm_unpackhi_ps((row2), (row3)); \ - (row0) = _mm_movelh_ps(tmp0, tmp2); \ - (row1) = _mm_movehl_ps(tmp2, tmp0); \ - (row2) = _mm_movelh_ps(tmp1, tmp3); \ - (row3) = _mm_movehl_ps(tmp3, tmp1); \ -} while (0) - -/* Aliases for compatibility. */ -#define _m_pextrw _mm_extract_pi16 -#define _m_pinsrw _mm_insert_pi16 -#define _m_pmaxsw _mm_max_pi16 -#define _m_pmaxub _mm_max_pu8 -#define _m_pminsw _mm_min_pi16 -#define _m_pminub _mm_min_pu8 -#define _m_pmovmskb _mm_movemask_pi8 -#define _m_pmulhuw _mm_mulhi_pu16 -#define _m_pshufw _mm_shuffle_pi16 -#define _m_maskmovq _mm_maskmove_si64 -#define _m_pavgb _mm_avg_pu8 -#define _m_pavgw _mm_avg_pu16 -#define _m_psadbw _mm_sad_pu8 -#define _m_ _mm_ -#define _m_ _mm_ - -#undef __DEFAULT_FN_ATTRS -#undef __DEFAULT_FN_ATTRS_MMX - -/* Ugly hack for backwards-compatibility (compatible with gcc) */ -#if defined(__SSE2__) && !__building_module(_Builtin_intrinsics) -#include -#endif - -#endif /* __XMMINTRIN_H */ diff --git a/bin/app/data/cxx/include/xopintrin.h b/bin/app/data/cxx/include/xopintrin.h deleted file mode 100644 index 5cedde41..00000000 --- a/bin/app/data/cxx/include/xopintrin.h +++ /dev/null @@ -1,770 +0,0 @@ -/*===---- xopintrin.h - XOP intrinsics -------------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __X86INTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __XOPINTRIN_H -#define __XOPINTRIN_H - -#include - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("xop"), __min_vector_width__(128))) -#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("xop"), __min_vector_width__(256))) - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_maccs_epi16(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmacssww((__v8hi)__A, (__v8hi)__B, (__v8hi)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_macc_epi16(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmacsww((__v8hi)__A, (__v8hi)__B, (__v8hi)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_maccsd_epi16(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmacsswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_maccd_epi16(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmacswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_maccs_epi32(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmacssdd((__v4si)__A, (__v4si)__B, (__v4si)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_macc_epi32(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmacsdd((__v4si)__A, (__v4si)__B, (__v4si)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_maccslo_epi32(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmacssdql((__v4si)__A, (__v4si)__B, (__v2di)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_macclo_epi32(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmacsdql((__v4si)__A, (__v4si)__B, (__v2di)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_maccshi_epi32(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmacssdqh((__v4si)__A, (__v4si)__B, (__v2di)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_macchi_epi32(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmacsdqh((__v4si)__A, (__v4si)__B, (__v2di)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_maddsd_epi16(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmadcsswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_maddd_epi16(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpmadcswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddw_epi8(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphaddbw((__v16qi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddd_epi8(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphaddbd((__v16qi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddq_epi8(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphaddbq((__v16qi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddd_epi16(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphaddwd((__v8hi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddq_epi16(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphaddwq((__v8hi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddq_epi32(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphadddq((__v4si)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddw_epu8(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphaddubw((__v16qi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddd_epu8(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphaddubd((__v16qi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddq_epu8(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphaddubq((__v16qi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddd_epu16(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphadduwd((__v8hi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddq_epu16(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphadduwq((__v8hi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_haddq_epu32(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphaddudq((__v4si)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_hsubw_epi8(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphsubbw((__v16qi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_hsubd_epi16(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphsubwd((__v8hi)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_hsubq_epi32(__m128i __A) -{ - return (__m128i)__builtin_ia32_vphsubdq((__v4si)__A); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_cmov_si128(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)(((__v2du)__A & (__v2du)__C) | ((__v2du)__B & ~(__v2du)__C)); -} - -static __inline__ __m256i __DEFAULT_FN_ATTRS256 -_mm256_cmov_si256(__m256i __A, __m256i __B, __m256i __C) -{ - return (__m256i)(((__v4du)__A & (__v4du)__C) | ((__v4du)__B & ~(__v4du)__C)); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C) -{ - return (__m128i)__builtin_ia32_vpperm((__v16qi)__A, (__v16qi)__B, (__v16qi)__C); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_rot_epi8(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vprotb((__v16qi)__A, (__v16qi)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_rot_epi16(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vprotw((__v8hi)__A, (__v8hi)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_rot_epi32(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vprotd((__v4si)__A, (__v4si)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_rot_epi64(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vprotq((__v2di)__A, (__v2di)__B); -} - -#define _mm_roti_epi8(A, N) \ - (__m128i)__builtin_ia32_vprotbi((__v16qi)(__m128i)(A), (N)) - -#define _mm_roti_epi16(A, N) \ - (__m128i)__builtin_ia32_vprotwi((__v8hi)(__m128i)(A), (N)) - -#define _mm_roti_epi32(A, N) \ - (__m128i)__builtin_ia32_vprotdi((__v4si)(__m128i)(A), (N)) - -#define _mm_roti_epi64(A, N) \ - (__m128i)__builtin_ia32_vprotqi((__v2di)(__m128i)(A), (N)) - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_shl_epi8(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpshlb((__v16qi)__A, (__v16qi)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_shl_epi16(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpshlw((__v8hi)__A, (__v8hi)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_shl_epi32(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpshld((__v4si)__A, (__v4si)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_shl_epi64(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpshlq((__v2di)__A, (__v2di)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sha_epi8(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpshab((__v16qi)__A, (__v16qi)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sha_epi16(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpshaw((__v8hi)__A, (__v8hi)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sha_epi32(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpshad((__v4si)__A, (__v4si)__B); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_sha_epi64(__m128i __A, __m128i __B) -{ - return (__m128i)__builtin_ia32_vpshaq((__v2di)__A, (__v2di)__B); -} - -#define _mm_com_epu8(A, B, N) \ - (__m128i)__builtin_ia32_vpcomub((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (N)) - -#define _mm_com_epu16(A, B, N) \ - (__m128i)__builtin_ia32_vpcomuw((__v8hi)(__m128i)(A), \ - (__v8hi)(__m128i)(B), (N)) - -#define _mm_com_epu32(A, B, N) \ - (__m128i)__builtin_ia32_vpcomud((__v4si)(__m128i)(A), \ - (__v4si)(__m128i)(B), (N)) - -#define _mm_com_epu64(A, B, N) \ - (__m128i)__builtin_ia32_vpcomuq((__v2di)(__m128i)(A), \ - (__v2di)(__m128i)(B), (N)) - -#define _mm_com_epi8(A, B, N) \ - (__m128i)__builtin_ia32_vpcomb((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (N)) - -#define _mm_com_epi16(A, B, N) \ - (__m128i)__builtin_ia32_vpcomw((__v8hi)(__m128i)(A), \ - (__v8hi)(__m128i)(B), (N)) - -#define _mm_com_epi32(A, B, N) \ - (__m128i)__builtin_ia32_vpcomd((__v4si)(__m128i)(A), \ - (__v4si)(__m128i)(B), (N)) - -#define _mm_com_epi64(A, B, N) \ - (__m128i)__builtin_ia32_vpcomq((__v2di)(__m128i)(A), \ - (__v2di)(__m128i)(B), (N)) - -#define _MM_PCOMCTRL_LT 0 -#define _MM_PCOMCTRL_LE 1 -#define _MM_PCOMCTRL_GT 2 -#define _MM_PCOMCTRL_GE 3 -#define _MM_PCOMCTRL_EQ 4 -#define _MM_PCOMCTRL_NEQ 5 -#define _MM_PCOMCTRL_FALSE 6 -#define _MM_PCOMCTRL_TRUE 7 - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comlt_epu8(__m128i __A, __m128i __B) -{ - return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_LT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comle_epu8(__m128i __A, __m128i __B) -{ - return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_LE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comgt_epu8(__m128i __A, __m128i __B) -{ - return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_GT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comge_epu8(__m128i __A, __m128i __B) -{ - return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_GE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comeq_epu8(__m128i __A, __m128i __B) -{ - return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_EQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comneq_epu8(__m128i __A, __m128i __B) -{ - return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_NEQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comfalse_epu8(__m128i __A, __m128i __B) -{ - return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_FALSE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comtrue_epu8(__m128i __A, __m128i __B) -{ - return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_TRUE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comlt_epu16(__m128i __A, __m128i __B) -{ - return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_LT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comle_epu16(__m128i __A, __m128i __B) -{ - return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_LE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comgt_epu16(__m128i __A, __m128i __B) -{ - return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_GT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comge_epu16(__m128i __A, __m128i __B) -{ - return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_GE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comeq_epu16(__m128i __A, __m128i __B) -{ - return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_EQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comneq_epu16(__m128i __A, __m128i __B) -{ - return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_NEQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comfalse_epu16(__m128i __A, __m128i __B) -{ - return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_FALSE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comtrue_epu16(__m128i __A, __m128i __B) -{ - return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_TRUE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comlt_epu32(__m128i __A, __m128i __B) -{ - return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_LT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comle_epu32(__m128i __A, __m128i __B) -{ - return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_LE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comgt_epu32(__m128i __A, __m128i __B) -{ - return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_GT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comge_epu32(__m128i __A, __m128i __B) -{ - return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_GE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comeq_epu32(__m128i __A, __m128i __B) -{ - return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_EQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comneq_epu32(__m128i __A, __m128i __B) -{ - return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_NEQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comfalse_epu32(__m128i __A, __m128i __B) -{ - return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_FALSE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comtrue_epu32(__m128i __A, __m128i __B) -{ - return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_TRUE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comlt_epu64(__m128i __A, __m128i __B) -{ - return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_LT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comle_epu64(__m128i __A, __m128i __B) -{ - return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_LE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comgt_epu64(__m128i __A, __m128i __B) -{ - return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_GT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comge_epu64(__m128i __A, __m128i __B) -{ - return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_GE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comeq_epu64(__m128i __A, __m128i __B) -{ - return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_EQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comneq_epu64(__m128i __A, __m128i __B) -{ - return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_NEQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comfalse_epu64(__m128i __A, __m128i __B) -{ - return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_FALSE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comtrue_epu64(__m128i __A, __m128i __B) -{ - return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_TRUE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comlt_epi8(__m128i __A, __m128i __B) -{ - return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_LT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comle_epi8(__m128i __A, __m128i __B) -{ - return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_LE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comgt_epi8(__m128i __A, __m128i __B) -{ - return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_GT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comge_epi8(__m128i __A, __m128i __B) -{ - return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_GE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comeq_epi8(__m128i __A, __m128i __B) -{ - return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_EQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comneq_epi8(__m128i __A, __m128i __B) -{ - return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_NEQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comfalse_epi8(__m128i __A, __m128i __B) -{ - return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_FALSE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comtrue_epi8(__m128i __A, __m128i __B) -{ - return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_TRUE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comlt_epi16(__m128i __A, __m128i __B) -{ - return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_LT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comle_epi16(__m128i __A, __m128i __B) -{ - return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_LE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comgt_epi16(__m128i __A, __m128i __B) -{ - return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_GT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comge_epi16(__m128i __A, __m128i __B) -{ - return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_GE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comeq_epi16(__m128i __A, __m128i __B) -{ - return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_EQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comneq_epi16(__m128i __A, __m128i __B) -{ - return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_NEQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comfalse_epi16(__m128i __A, __m128i __B) -{ - return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_FALSE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comtrue_epi16(__m128i __A, __m128i __B) -{ - return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_TRUE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comlt_epi32(__m128i __A, __m128i __B) -{ - return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_LT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comle_epi32(__m128i __A, __m128i __B) -{ - return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_LE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comgt_epi32(__m128i __A, __m128i __B) -{ - return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_GT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comge_epi32(__m128i __A, __m128i __B) -{ - return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_GE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comeq_epi32(__m128i __A, __m128i __B) -{ - return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_EQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comneq_epi32(__m128i __A, __m128i __B) -{ - return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_NEQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comfalse_epi32(__m128i __A, __m128i __B) -{ - return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_FALSE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comtrue_epi32(__m128i __A, __m128i __B) -{ - return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_TRUE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comlt_epi64(__m128i __A, __m128i __B) -{ - return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_LT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comle_epi64(__m128i __A, __m128i __B) -{ - return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_LE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comgt_epi64(__m128i __A, __m128i __B) -{ - return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_GT); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comge_epi64(__m128i __A, __m128i __B) -{ - return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_GE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comeq_epi64(__m128i __A, __m128i __B) -{ - return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_EQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comneq_epi64(__m128i __A, __m128i __B) -{ - return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_NEQ); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comfalse_epi64(__m128i __A, __m128i __B) -{ - return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_FALSE); -} - -static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_comtrue_epi64(__m128i __A, __m128i __B) -{ - return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_TRUE); -} - -#define _mm_permute2_pd(X, Y, C, I) \ - (__m128d)__builtin_ia32_vpermil2pd((__v2df)(__m128d)(X), \ - (__v2df)(__m128d)(Y), \ - (__v2di)(__m128i)(C), (I)) - -#define _mm256_permute2_pd(X, Y, C, I) \ - (__m256d)__builtin_ia32_vpermil2pd256((__v4df)(__m256d)(X), \ - (__v4df)(__m256d)(Y), \ - (__v4di)(__m256i)(C), (I)) - -#define _mm_permute2_ps(X, Y, C, I) \ - (__m128)__builtin_ia32_vpermil2ps((__v4sf)(__m128)(X), (__v4sf)(__m128)(Y), \ - (__v4si)(__m128i)(C), (I)) - -#define _mm256_permute2_ps(X, Y, C, I) \ - (__m256)__builtin_ia32_vpermil2ps256((__v8sf)(__m256)(X), \ - (__v8sf)(__m256)(Y), \ - (__v8si)(__m256i)(C), (I)) - -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_frcz_ss(__m128 __A) -{ - return (__m128)__builtin_ia32_vfrczss((__v4sf)__A); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_frcz_sd(__m128d __A) -{ - return (__m128d)__builtin_ia32_vfrczsd((__v2df)__A); -} - -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_frcz_ps(__m128 __A) -{ - return (__m128)__builtin_ia32_vfrczps((__v4sf)__A); -} - -static __inline__ __m128d __DEFAULT_FN_ATTRS -_mm_frcz_pd(__m128d __A) -{ - return (__m128d)__builtin_ia32_vfrczpd((__v2df)__A); -} - -static __inline__ __m256 __DEFAULT_FN_ATTRS256 -_mm256_frcz_ps(__m256 __A) -{ - return (__m256)__builtin_ia32_vfrczps256((__v8sf)__A); -} - -static __inline__ __m256d __DEFAULT_FN_ATTRS256 -_mm256_frcz_pd(__m256d __A) -{ - return (__m256d)__builtin_ia32_vfrczpd256((__v4df)__A); -} - -#undef __DEFAULT_FN_ATTRS -#undef __DEFAULT_FN_ATTRS256 - -#endif /* __XOPINTRIN_H */ diff --git a/bin/app/data/cxx/include/xsavecintrin.h b/bin/app/data/cxx/include/xsavecintrin.h deleted file mode 100644 index 5524947f..00000000 --- a/bin/app/data/cxx/include/xsavecintrin.h +++ /dev/null @@ -1,34 +0,0 @@ -/*===---- xsavecintrin.h - XSAVEC intrinsic --------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __XSAVECINTRIN_H -#define __XSAVECINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("xsavec"))) - -static __inline__ void __DEFAULT_FN_ATTRS -_xsavec(void *__p, unsigned long long __m) { - __builtin_ia32_xsavec(__p, __m); -} - -#ifdef __x86_64__ -static __inline__ void __DEFAULT_FN_ATTRS -_xsavec64(void *__p, unsigned long long __m) { - __builtin_ia32_xsavec64(__p, __m); -} -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/xsaveintrin.h b/bin/app/data/cxx/include/xsaveintrin.h deleted file mode 100644 index 9429db6d..00000000 --- a/bin/app/data/cxx/include/xsaveintrin.h +++ /dev/null @@ -1,63 +0,0 @@ -/*===---- xsaveintrin.h - XSAVE intrinsic ----------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __XSAVEINTRIN_H -#define __XSAVEINTRIN_H - -#ifdef _MSC_VER -#define _XCR_XFEATURE_ENABLED_MASK 0 -#endif - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("xsave"))) - -static __inline__ void __DEFAULT_FN_ATTRS -_xsave(void *__p, unsigned long long __m) { - __builtin_ia32_xsave(__p, __m); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_xrstor(void *__p, unsigned long long __m) { - __builtin_ia32_xrstor(__p, __m); -} - -#ifndef _MSC_VER -#define _xgetbv(A) __builtin_ia32_xgetbv((long long)(A)) -#define _xsetbv(A, B) __builtin_ia32_xsetbv((unsigned int)(A), (unsigned long long)(B)) -#else -#ifdef __cplusplus -extern "C" { -#endif -unsigned __int64 __cdecl _xgetbv(unsigned int); -void __cdecl _xsetbv(unsigned int, unsigned __int64); -#ifdef __cplusplus -} -#endif -#endif /* _MSC_VER */ - -#ifdef __x86_64__ -static __inline__ void __DEFAULT_FN_ATTRS -_xsave64(void *__p, unsigned long long __m) { - __builtin_ia32_xsave64(__p, __m); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_xrstor64(void *__p, unsigned long long __m) { - __builtin_ia32_xrstor64(__p, __m); -} - -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/xsaveoptintrin.h b/bin/app/data/cxx/include/xsaveoptintrin.h deleted file mode 100644 index 89a4c44d..00000000 --- a/bin/app/data/cxx/include/xsaveoptintrin.h +++ /dev/null @@ -1,34 +0,0 @@ -/*===---- xsaveoptintrin.h - XSAVEOPT intrinsic ----------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __XSAVEOPTINTRIN_H -#define __XSAVEOPTINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("xsaveopt"))) - -static __inline__ void __DEFAULT_FN_ATTRS -_xsaveopt(void *__p, unsigned long long __m) { - __builtin_ia32_xsaveopt(__p, __m); -} - -#ifdef __x86_64__ -static __inline__ void __DEFAULT_FN_ATTRS -_xsaveopt64(void *__p, unsigned long long __m) { - __builtin_ia32_xsaveopt64(__p, __m); -} -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/xsavesintrin.h b/bin/app/data/cxx/include/xsavesintrin.h deleted file mode 100644 index 3f99219a..00000000 --- a/bin/app/data/cxx/include/xsavesintrin.h +++ /dev/null @@ -1,44 +0,0 @@ -/*===---- xsavesintrin.h - XSAVES intrinsic --------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __XSAVESINTRIN_H -#define __XSAVESINTRIN_H - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("xsaves"))) - -static __inline__ void __DEFAULT_FN_ATTRS -_xsaves(void *__p, unsigned long long __m) { - __builtin_ia32_xsaves(__p, __m); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_xrstors(void *__p, unsigned long long __m) { - __builtin_ia32_xrstors(__p, __m); -} - -#ifdef __x86_64__ -static __inline__ void __DEFAULT_FN_ATTRS -_xrstors64(void *__p, unsigned long long __m) { - __builtin_ia32_xrstors64(__p, __m); -} - -static __inline__ void __DEFAULT_FN_ATTRS -_xsaves64(void *__p, unsigned long long __m) { - __builtin_ia32_xsaves64(__p, __m); -} -#endif - -#undef __DEFAULT_FN_ATTRS - -#endif diff --git a/bin/app/data/cxx/include/xtestintrin.h b/bin/app/data/cxx/include/xtestintrin.h deleted file mode 100644 index 7d19e373..00000000 --- a/bin/app/data/cxx/include/xtestintrin.h +++ /dev/null @@ -1,27 +0,0 @@ -/*===---- xtestintrin.h - XTEST intrinsic ----------------------------------=== - * - * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. - * See https://llvm.org/LICENSE.txt for license information. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - * - *===-----------------------------------------------------------------------=== - */ - -#ifndef __IMMINTRIN_H -#error "Never use directly; include instead." -#endif - -#ifndef __XTESTINTRIN_H -#define __XTESTINTRIN_H - -/* xtest returns non-zero if the instruction is executed within an RTM or active - * HLE region. */ -/* FIXME: This can be an either or for RTM/HLE. Deal with this when HLE is - * supported. */ -static __inline__ int - __attribute__((__always_inline__, __nodebug__, __target__("rtm"))) - _xtest(void) { - return __builtin_ia32_xtest(); -} - -#endif