| author | |
| committer | |
| log | 94ec2190f8d8c41d19b668511bf31fae32bcd095 |
| tree | c5ab9b20fbaf8f017661f9a159082d1ecaf9f943 |
| parent | abff1b688420eb30d98145d8bc48e7d08f259885 |
30 files changed, 676 insertions(+), 553 deletions(-)
README.md+4-4| ... | @@ -141,7 +141,7 @@ These libraries must be installed on your system, with the development files | ... | @@ -141,7 +141,7 @@ These libraries must be installed on your system, with the development files |
| 141 | available. The Zig compiler links against them. You have to use the same | 141 | available. The Zig compiler links against them. You have to use the same |
| 142 | compiler for these libraries as you do to compile Zig. | 142 | compiler for these libraries as you do to compile Zig. |
| 143 | 143 | ||
| 144 | * LLVM, Clang, and LLD libraries == 5.x | 144 | * LLVM, Clang, and LLD libraries == 6.x |
| 145 | 145 | ||
| 146 | ### Debug / Development Build | 146 | ### Debug / Development Build |
| 147 | 147 | ||
| ... | @@ -163,11 +163,11 @@ make install | ... | @@ -163,11 +163,11 @@ make install |
| 163 | `ZIG_LIBC_LIB_DIR` and `ZIG_LIBC_STATIC_LIB_DIR` are unused. | 163 | `ZIG_LIBC_LIB_DIR` and `ZIG_LIBC_STATIC_LIB_DIR` are unused. |
| 164 | 164 | ||
| 165 | ``` | 165 | ``` |
| 166 | brew install llvm@5 | 166 | brew install llvm@6 |
| 167 | brew outdated llvm@5 || brew upgrade llvm@5 | 167 | brew outdated llvm@6 || brew upgrade llvm@6 |
| 168 | mkdir build | 168 | mkdir build |
| 169 | cd build | 169 | cd build |
| 170 | cmake .. -DCMAKE_PREFIX_PATH=/usr/local/opt/llvm@5/ -DCMAKE_INSTALL_PREFIX=$(pwd) | 170 | cmake .. -DCMAKE_PREFIX_PATH=/usr/local/opt/llvm@6/ -DCMAKE_INSTALL_PREFIX=$(pwd) |
| 171 | make install | 171 | make install |
| 172 | ./zig build --build-file ../build.zig test | 172 | ./zig build --build-file ../build.zig test |
| 173 | ``` | 173 | ``` |
c_headers/__clang_cuda_intrinsics.h+124| ... | @@ -92,6 +92,130 @@ __MAKE_SHUFFLES(__shfl_xor, __nvvm_shfl_bfly_i32, __nvvm_shfl_bfly_f32, 0x1f); | ... | @@ -92,6 +92,130 @@ __MAKE_SHUFFLES(__shfl_xor, __nvvm_shfl_bfly_i32, __nvvm_shfl_bfly_f32, 0x1f); |
| 92 | 92 | ||
| 93 | #endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300 | 93 | #endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300 |
| 94 | 94 | ||
| 95 | #if CUDA_VERSION >= 9000 | ||
| 96 | #if (!defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300) | ||
| 97 | // __shfl_sync_* variants available in CUDA-9 | ||
| 98 | #pragma push_macro("__MAKE_SYNC_SHUFFLES") | ||
| 99 | #define __MAKE_SYNC_SHUFFLES(__FnName, __IntIntrinsic, __FloatIntrinsic, \ | ||
| 100 | __Mask) \ | ||
| 101 | inline __device__ int __FnName(unsigned int __mask, int __val, int __offset, \ | ||
| 102 | int __width = warpSize) { \ | ||
| 103 | return __IntIntrinsic(__mask, __val, __offset, \ | ||
| 104 | ((warpSize - __width) << 8) | (__Mask)); \ | ||
| 105 | } \ | ||
| 106 | inline __device__ float __FnName(unsigned int __mask, float __val, \ | ||
| 107 | int __offset, int __width = warpSize) { \ | ||
| 108 | return __FloatIntrinsic(__mask, __val, __offset, \ | ||
| 109 | ((warpSize - __width) << 8) | (__Mask)); \ | ||
| 110 | } \ | ||
| 111 | inline __device__ unsigned int __FnName(unsigned int __mask, \ | ||
| 112 | unsigned int __val, int __offset, \ | ||
| 113 | int __width = warpSize) { \ | ||
| 114 | return static_cast<unsigned int>( \ | ||
| 115 | ::__FnName(__mask, static_cast<int>(__val), __offset, __width)); \ | ||
| 116 | } \ | ||
| 117 | inline __device__ long long __FnName(unsigned int __mask, long long __val, \ | ||
| 118 | int __offset, int __width = warpSize) { \ | ||
| 119 | struct __Bits { \ | ||
| 120 | int __a, __b; \ | ||
| 121 | }; \ | ||
| 122 | _Static_assert(sizeof(__val) == sizeof(__Bits)); \ | ||
| 123 | _Static_assert(sizeof(__Bits) == 2 * sizeof(int)); \ | ||
| 124 | __Bits __tmp; \ | ||
| 125 | memcpy(&__val, &__tmp, sizeof(__val)); \ | ||
| 126 | __tmp.__a = ::__FnName(__mask, __tmp.__a, __offset, __width); \ | ||
| 127 | __tmp.__b = ::__FnName(__mask, __tmp.__b, __offset, __width); \ | ||
| 128 | long long __ret; \ | ||
| 129 | memcpy(&__ret, &__tmp, sizeof(__tmp)); \ | ||
| 130 | return __ret; \ | ||
| 131 | } \ | ||
| 132 | inline __device__ unsigned long long __FnName( \ | ||
| 133 | unsigned int __mask, unsigned long long __val, int __offset, \ | ||
| 134 | int __width = warpSize) { \ | ||
| 135 | return static_cast<unsigned long long>(::__FnName( \ | ||
| 136 | __mask, static_cast<unsigned long long>(__val), __offset, __width)); \ | ||
| 137 | } \ | ||
| 138 | inline __device__ double __FnName(unsigned int __mask, double __val, \ | ||
| 139 | int __offset, int __width = warpSize) { \ | ||
| 140 | long long __tmp; \ | ||
| 141 | _Static_assert(sizeof(__tmp) == sizeof(__val)); \ | ||
| 142 | memcpy(&__tmp, &__val, sizeof(__val)); \ | ||
| 143 | __tmp = ::__FnName(__mask, __tmp, __offset, __width); \ | ||
| 144 | double __ret; \ | ||
| 145 | memcpy(&__ret, &__tmp, sizeof(__ret)); \ | ||
| 146 | return __ret; \ | ||
| 147 | } | ||
| 148 | __MAKE_SYNC_SHUFFLES(__shfl_sync, __nvvm_shfl_sync_idx_i32, | ||
| 149 | __nvvm_shfl_sync_idx_f32, 0x1f); | ||
| 150 | // We use 0 rather than 31 as our mask, because shfl.up applies to lanes >= | ||
| 151 | // maxLane. | ||
| 152 | __MAKE_SYNC_SHUFFLES(__shfl_up_sync, __nvvm_shfl_sync_up_i32, | ||
| 153 | __nvvm_shfl_sync_up_f32, 0); | ||
| 154 | __MAKE_SYNC_SHUFFLES(__shfl_down_sync, __nvvm_shfl_sync_down_i32, | ||
| 155 | __nvvm_shfl_sync_down_f32, 0x1f); | ||
| 156 | __MAKE_SYNC_SHUFFLES(__shfl_xor_sync, __nvvm_shfl_sync_bfly_i32, | ||
| 157 | __nvvm_shfl_sync_bfly_f32, 0x1f); | ||
| 158 | #pragma pop_macro("__MAKE_SYNC_SHUFFLES") | ||
| 159 | |||
| 160 | inline __device__ void __syncwarp(unsigned int mask = 0xffffffff) { | ||
| 161 | return __nvvm_bar_warp_sync(mask); | ||
| 162 | } | ||
| 163 | |||
| 164 | inline __device__ void __barrier_sync(unsigned int id) { | ||
| 165 | __nvvm_barrier_sync(id); | ||
| 166 | } | ||
| 167 | |||
| 168 | inline __device__ void __barrier_sync_count(unsigned int id, | ||
| 169 | unsigned int count) { | ||
| 170 | __nvvm_barrier_sync_cnt(id, count); | ||
| 171 | } | ||
| 172 | |||
| 173 | inline __device__ int __all_sync(unsigned int mask, int pred) { | ||
| 174 | return __nvvm_vote_all_sync(mask, pred); | ||
| 175 | } | ||
| 176 | |||
| 177 | inline __device__ int __any_sync(unsigned int mask, int pred) { | ||
| 178 | return __nvvm_vote_any_sync(mask, pred); | ||
| 179 | } | ||
| 180 | |||
| 181 | inline __device__ int __uni_sync(unsigned int mask, int pred) { | ||
| 182 | return __nvvm_vote_uni_sync(mask, pred); | ||
| 183 | } | ||
| 184 | |||
| 185 | inline __device__ unsigned int __ballot_sync(unsigned int mask, int pred) { | ||
| 186 | return __nvvm_vote_ballot_sync(mask, pred); | ||
| 187 | } | ||
| 188 | |||
| 189 | inline __device__ unsigned int __activemask() { return __nvvm_vote_ballot(1); } | ||
| 190 | |||
| 191 | #endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 300 | ||
| 192 | |||
| 193 | // Define __match* builtins CUDA-9 headers expect to see. | ||
| 194 | #if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 700 | ||
| 195 | inline __device__ unsigned int __match32_any_sync(unsigned int mask, | ||
| 196 | unsigned int value) { | ||
| 197 | return __nvvm_match_any_sync_i32(mask, value); | ||
| 198 | } | ||
| 199 | |||
| 200 | inline __device__ unsigned long long | ||
| 201 | __match64_any_sync(unsigned int mask, unsigned long long value) { | ||
| 202 | return __nvvm_match_any_sync_i64(mask, value); | ||
| 203 | } | ||
| 204 | |||
| 205 | inline __device__ unsigned int | ||
| 206 | __match32_all_sync(unsigned int mask, unsigned int value, int *pred) { | ||
| 207 | return __nvvm_match_all_sync_i32p(mask, value, pred); | ||
| 208 | } | ||
| 209 | |||
| 210 | inline __device__ unsigned long long | ||
| 211 | __match64_all_sync(unsigned int mask, unsigned long long value, int *pred) { | ||
| 212 | return __nvvm_match_all_sync_i64p(mask, value, pred); | ||
| 213 | } | ||
| 214 | #include "crt/sm_70_rt.hpp" | ||
| 215 | |||
| 216 | #endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 700 | ||
| 217 | #endif // __CUDA_VERSION >= 9000 | ||
| 218 | |||
| 95 | // sm_32 intrinsics: __ldg and __funnelshift_{l,lc,r,rc}. | 219 | // sm_32 intrinsics: __ldg and __funnelshift_{l,lc,r,rc}. |
| 96 | 220 | ||
| 97 | // Prevent the vanilla sm_32 intrinsics header from being included. | 221 | // Prevent the vanilla sm_32 intrinsics header from being included. |
c_headers/__clang_cuda_runtime_wrapper.h+29-1| ... | @@ -62,7 +62,7 @@ | ... | @@ -62,7 +62,7 @@ |
| 62 | #include "cuda.h" | 62 | #include "cuda.h" |
| 63 | #if !defined(CUDA_VERSION) | 63 | #if !defined(CUDA_VERSION) |
| 64 | #error "cuda.h did not define CUDA_VERSION" | 64 | #error "cuda.h did not define CUDA_VERSION" |
| 65 | #elif CUDA_VERSION < 7000 || CUDA_VERSION > 8000 | 65 | #elif CUDA_VERSION < 7000 || CUDA_VERSION > 9000 |
| 66 | #error "Unsupported CUDA version!" | 66 | #error "Unsupported CUDA version!" |
| 67 | #endif | 67 | #endif |
| 68 | 68 | ||
| ... | @@ -86,7 +86,11 @@ | ... | @@ -86,7 +86,11 @@ |
| 86 | #define __COMMON_FUNCTIONS_H__ | 86 | #define __COMMON_FUNCTIONS_H__ |
| 87 | 87 | ||
| 88 | #undef __CUDACC__ | 88 | #undef __CUDACC__ |
| 89 | #if CUDA_VERSION < 9000 | ||
| 89 | #define __CUDABE__ | 90 | #define __CUDABE__ |
| 91 | #else | ||
| 92 | #define __CUDA_LIBDEVICE__ | ||
| 93 | #endif | ||
| 90 | // Disables definitions of device-side runtime support stubs in | 94 | // Disables definitions of device-side runtime support stubs in |
| 91 | // cuda_device_runtime_api.h | 95 | // cuda_device_runtime_api.h |
| 92 | #include "driver_types.h" | 96 | #include "driver_types.h" |
| ... | @@ -94,6 +98,7 @@ | ... | @@ -94,6 +98,7 @@ |
| 94 | #include "host_defines.h" | 98 | #include "host_defines.h" |
| 95 | 99 | ||
| 96 | #undef __CUDABE__ | 100 | #undef __CUDABE__ |
| 101 | #undef __CUDA_LIBDEVICE__ | ||
| 97 | #define __CUDACC__ | 102 | #define __CUDACC__ |
| 98 | #include "cuda_runtime.h" | 103 | #include "cuda_runtime.h" |
| 99 | 104 | ||
| ... | @@ -105,7 +110,9 @@ | ... | @@ -105,7 +110,9 @@ |
| 105 | #define __nvvm_memcpy(s, d, n, a) __builtin_memcpy(s, d, n) | 110 | #define __nvvm_memcpy(s, d, n, a) __builtin_memcpy(s, d, n) |
| 106 | #define __nvvm_memset(d, c, n, a) __builtin_memset(d, c, n) | 111 | #define __nvvm_memset(d, c, n, a) __builtin_memset(d, c, n) |
| 107 | 112 | ||
| 113 | #if CUDA_VERSION < 9000 | ||
| 108 | #include "crt/device_runtime.h" | 114 | #include "crt/device_runtime.h" |
| 115 | #endif | ||
| 109 | #include "crt/host_runtime.h" | 116 | #include "crt/host_runtime.h" |
| 110 | // device_runtime.h defines __cxa_* macros that will conflict with | 117 | // device_runtime.h defines __cxa_* macros that will conflict with |
| 111 | // cxxabi.h. | 118 | // cxxabi.h. |
| ... | @@ -166,7 +173,18 @@ inline __host__ double __signbitd(double x) { | ... | @@ -166,7 +173,18 @@ inline __host__ double __signbitd(double x) { |
| 166 | // __device__. | 173 | // __device__. |
| 167 | #pragma push_macro("__forceinline__") | 174 | #pragma push_macro("__forceinline__") |
| 168 | #define __forceinline__ __device__ __inline__ __attribute__((always_inline)) | 175 | #define __forceinline__ __device__ __inline__ __attribute__((always_inline)) |
| 176 | |||
| 177 | #pragma push_macro("__float2half_rn") | ||
| 178 | #if CUDA_VERSION >= 9000 | ||
| 179 | // CUDA-9 has conflicting prototypes for __float2half_rn(float f) in | ||
| 180 | // cuda_fp16.h[pp] and device_functions.hpp. We need to get the one in | ||
| 181 | // device_functions.hpp out of the way. | ||
| 182 | #define __float2half_rn __float2half_rn_disabled | ||
| 183 | #endif | ||
| 184 | |||
| 169 | #include "device_functions.hpp" | 185 | #include "device_functions.hpp" |
| 186 | #pragma pop_macro("__float2half_rn") | ||
| 187 | |||
| 170 | 188 | ||
| 171 | // math_function.hpp uses the __USE_FAST_MATH__ macro to determine whether we | 189 | // math_function.hpp uses the __USE_FAST_MATH__ macro to determine whether we |
| 172 | // get the slow-but-accurate or fast-but-inaccurate versions of functions like | 190 | // get the slow-but-accurate or fast-but-inaccurate versions of functions like |
| ... | @@ -247,7 +265,17 @@ static inline __device__ void __brkpt(int __c) { __brkpt(); } | ... | @@ -247,7 +265,17 @@ static inline __device__ void __brkpt(int __c) { __brkpt(); } |
| 247 | #pragma push_macro("__GNUC__") | 265 | #pragma push_macro("__GNUC__") |
| 248 | #undef __GNUC__ | 266 | #undef __GNUC__ |
| 249 | #define signbit __ignored_cuda_signbit | 267 | #define signbit __ignored_cuda_signbit |
| 268 | |||
| 269 | // CUDA-9 omits device-side definitions of some math functions if it sees | ||
| 270 | // include guard from math.h wrapper from libstdc++. We have to undo the header | ||
| 271 | // guard temporarily to get the definitions we need. | ||
| 272 | #pragma push_macro("_GLIBCXX_MATH_H") | ||
| 273 | #if CUDA_VERSION >= 9000 | ||
| 274 | #undef _GLIBCXX_MATH_H | ||
| 275 | #endif | ||
| 276 | |||
| 250 | #include "math_functions.hpp" | 277 | #include "math_functions.hpp" |
| 278 | #pragma pop_macro("_GLIBCXX_MATH_H") | ||
| 251 | #pragma pop_macro("__GNUC__") | 279 | #pragma pop_macro("__GNUC__") |
| 252 | #pragma pop_macro("signbit") | 280 | #pragma pop_macro("signbit") |
| 253 | 281 |
c_headers/arm64intr.h created+49| ... | @@ -0,0 +1,49 @@ | ||
| 1 | /*===---- arm64intr.h - ARM64 Windows intrinsics -------------------------------=== | ||
| 2 | * | ||
| 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| 4 | * of this software and associated documentation files (the "Software"), to deal | ||
| 5 | * in the Software without restriction, including without limitation the rights | ||
| 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| 7 | * copies of the Software, and to permit persons to whom the Software is | ||
| 8 | * furnished to do so, subject to the following conditions: | ||
| 9 | * | ||
| 10 | * The above copyright notice and this permission notice shall be included in | ||
| 11 | * all copies or substantial portions of the Software. | ||
| 12 | * | ||
| 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
| 19 | * THE SOFTWARE. | ||
| 20 | * | ||
| 21 | *===-----------------------------------------------------------------------=== | ||
| 22 | */ | ||
| 23 | |||
| 24 | /* Only include this if we're compiling for the windows platform. */ | ||
| 25 | #ifndef _MSC_VER | ||
| 26 | #include_next <arm64intr.h> | ||
| 27 | #else | ||
| 28 | |||
| 29 | #ifndef __ARM64INTR_H | ||
| 30 | #define __ARM64INTR_H | ||
| 31 | |||
| 32 | typedef enum | ||
| 33 | { | ||
| 34 | _ARM64_BARRIER_SY = 0xF, | ||
| 35 | _ARM64_BARRIER_ST = 0xE, | ||
| 36 | _ARM64_BARRIER_LD = 0xD, | ||
| 37 | _ARM64_BARRIER_ISH = 0xB, | ||
| 38 | _ARM64_BARRIER_ISHST = 0xA, | ||
| 39 | _ARM64_BARRIER_ISHLD = 0x9, | ||
| 40 | _ARM64_BARRIER_NSH = 0x7, | ||
| 41 | _ARM64_BARRIER_NSHST = 0x6, | ||
| 42 | _ARM64_BARRIER_NSHLD = 0x5, | ||
| 43 | _ARM64_BARRIER_OSH = 0x3, | ||
| 44 | _ARM64_BARRIER_OSHST = 0x2, | ||
| 45 | _ARM64_BARRIER_OSHLD = 0x1 | ||
| 46 | } _ARM64INTR_BARRIER_TYPE; | ||
| 47 | |||
| 48 | #endif /* __ARM64INTR_H */ | ||
| 49 | #endif /* _MSC_VER */ | ||
c_headers/avx2intrin.h+10-2| ... | @@ -145,13 +145,21 @@ _mm256_andnot_si256(__m256i __a, __m256i __b) | ... | @@ -145,13 +145,21 @@ _mm256_andnot_si256(__m256i __a, __m256i __b) |
| 145 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 145 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 146 | _mm256_avg_epu8(__m256i __a, __m256i __b) | 146 | _mm256_avg_epu8(__m256i __a, __m256i __b) |
| 147 | { | 147 | { |
| 148 | return (__m256i)__builtin_ia32_pavgb256((__v32qi)__a, (__v32qi)__b); | 148 | typedef unsigned short __v32hu __attribute__((__vector_size__(64))); |
| 149 | return (__m256i)__builtin_convertvector( | ||
| 150 | ((__builtin_convertvector((__v32qu)__a, __v32hu) + | ||
| 151 | __builtin_convertvector((__v32qu)__b, __v32hu)) + 1) | ||
| 152 | >> 1, __v32qu); | ||
| 149 | } | 153 | } |
| 150 | 154 | ||
| 151 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 155 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 152 | _mm256_avg_epu16(__m256i __a, __m256i __b) | 156 | _mm256_avg_epu16(__m256i __a, __m256i __b) |
| 153 | { | 157 | { |
| 154 | return (__m256i)__builtin_ia32_pavgw256((__v16hi)__a, (__v16hi)__b); | 158 | typedef unsigned int __v16su __attribute__((__vector_size__(64))); |
| 159 | return (__m256i)__builtin_convertvector( | ||
| 160 | ((__builtin_convertvector((__v16hu)__a, __v16su) + | ||
| 161 | __builtin_convertvector((__v16hu)__b, __v16su)) + 1) | ||
| 162 | >> 1, __v16hu); | ||
| 155 | } | 163 | } |
| 156 | 164 | ||
| 157 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 165 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
c_headers/avx512bwintrin.h+34-37| ... | @@ -706,57 +706,55 @@ _mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B) | ... | @@ -706,57 +706,55 @@ _mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B) |
| 706 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 706 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 707 | _mm512_avg_epu8 (__m512i __A, __m512i __B) | 707 | _mm512_avg_epu8 (__m512i __A, __m512i __B) |
| 708 | { | 708 | { |
| 709 | return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, | 709 | typedef unsigned short __v64hu __attribute__((__vector_size__(128))); |
| 710 | (__v64qi) __B, | 710 | return (__m512i)__builtin_convertvector( |
| 711 | (__v64qi) _mm512_setzero_qi(), | 711 | ((__builtin_convertvector((__v64qu) __A, __v64hu) + |
| 712 | (__mmask64) -1); | 712 | __builtin_convertvector((__v64qu) __B, __v64hu)) + 1) |
| 713 | >> 1, __v64qu); | ||
| 713 | } | 714 | } |
| 714 | 715 | ||
| 715 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 716 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 716 | _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A, | 717 | _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A, |
| 717 | __m512i __B) | 718 | __m512i __B) |
| 718 | { | 719 | { |
| 719 | return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, | 720 | return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, |
| 720 | (__v64qi) __B, | 721 | (__v64qi)_mm512_avg_epu8(__A, __B), |
| 721 | (__v64qi) __W, | 722 | (__v64qi)__W); |
| 722 | (__mmask64) __U); | ||
| 723 | } | 723 | } |
| 724 | 724 | ||
| 725 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 725 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 726 | _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B) | 726 | _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B) |
| 727 | { | 727 | { |
| 728 | return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, | 728 | return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, |
| 729 | (__v64qi) __B, | 729 | (__v64qi)_mm512_avg_epu8(__A, __B), |
| 730 | (__v64qi) _mm512_setzero_qi(), | 730 | (__v64qi)_mm512_setzero_qi()); |
| 731 | (__mmask64) __U); | ||
| 732 | } | 731 | } |
| 733 | 732 | ||
| 734 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 733 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 735 | _mm512_avg_epu16 (__m512i __A, __m512i __B) | 734 | _mm512_avg_epu16 (__m512i __A, __m512i __B) |
| 736 | { | 735 | { |
| 737 | return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, | 736 | typedef unsigned int __v32su __attribute__((__vector_size__(128))); |
| 738 | (__v32hi) __B, | 737 | return (__m512i)__builtin_convertvector( |
| 739 | (__v32hi) _mm512_setzero_hi(), | 738 | ((__builtin_convertvector((__v32hu) __A, __v32su) + |
| 740 | (__mmask32) -1); | 739 | __builtin_convertvector((__v32hu) __B, __v32su)) + 1) |
| 740 | >> 1, __v32hu); | ||
| 741 | } | 741 | } |
| 742 | 742 | ||
| 743 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 743 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 744 | _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A, | 744 | _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A, |
| 745 | __m512i __B) | 745 | __m512i __B) |
| 746 | { | 746 | { |
| 747 | return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, | 747 | return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, |
| 748 | (__v32hi) __B, | 748 | (__v32hi)_mm512_avg_epu16(__A, __B), |
| 749 | (__v32hi) __W, | 749 | (__v32hi)__W); |
| 750 | (__mmask32) __U); | ||
| 751 | } | 750 | } |
| 752 | 751 | ||
| 753 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 752 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 754 | _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B) | 753 | _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B) |
| 755 | { | 754 | { |
| 756 | return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, | 755 | return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, |
| 757 | (__v32hi) __B, | 756 | (__v32hi)_mm512_avg_epu16(__A, __B), |
| 758 | (__v32hi) _mm512_setzero_hi(), | 757 | (__v32hi) _mm512_setzero_hi()); |
| 759 | (__mmask32) __U); | ||
| 760 | } | 758 | } |
| 761 | 759 | ||
| 762 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 760 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| ... | @@ -2028,18 +2026,17 @@ _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A) | ... | @@ -2028,18 +2026,17 @@ _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A) |
| 2028 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 2026 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 2029 | _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A) | 2027 | _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A) |
| 2030 | { | 2028 | { |
| 2031 | return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A, | 2029 | return (__m512i) __builtin_ia32_selectb_512(__M, |
| 2032 | (__v64qi) __O, | 2030 | (__v64qi)_mm512_set1_epi8(__A), |
| 2033 | __M); | 2031 | (__v64qi) __O); |
| 2034 | } | 2032 | } |
| 2035 | 2033 | ||
| 2036 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 2034 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 2037 | _mm512_maskz_set1_epi8 (__mmask64 __M, char __A) | 2035 | _mm512_maskz_set1_epi8 (__mmask64 __M, char __A) |
| 2038 | { | 2036 | { |
| 2039 | return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A, | 2037 | return (__m512i) __builtin_ia32_selectb_512(__M, |
| 2040 | (__v64qi) | 2038 | (__v64qi) _mm512_set1_epi8(__A), |
| 2041 | _mm512_setzero_qi(), | 2039 | (__v64qi) _mm512_setzero_si512()); |
| 2042 | __M); | ||
| 2043 | } | 2040 | } |
| 2044 | 2041 | ||
| 2045 | static __inline__ __mmask64 __DEFAULT_FN_ATTRS | 2042 | static __inline__ __mmask64 __DEFAULT_FN_ATTRS |
| ... | @@ -2219,17 +2216,17 @@ _mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A) | ... | @@ -2219,17 +2216,17 @@ _mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A) |
| 2219 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 2216 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 2220 | _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A) | 2217 | _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A) |
| 2221 | { | 2218 | { |
| 2222 | return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A, | 2219 | return (__m512i) __builtin_ia32_selectw_512(__M, |
| 2223 | (__v32hi) __O, | 2220 | (__v32hi) _mm512_set1_epi16(__A), |
| 2224 | __M); | 2221 | (__v32hi) __O); |
| 2225 | } | 2222 | } |
| 2226 | 2223 | ||
| 2227 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 2224 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 2228 | _mm512_maskz_set1_epi16 (__mmask32 __M, short __A) | 2225 | _mm512_maskz_set1_epi16 (__mmask32 __M, short __A) |
| 2229 | { | 2226 | { |
| 2230 | return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A, | 2227 | return (__m512i) __builtin_ia32_selectw_512(__M, |
| 2231 | (__v32hi) _mm512_setzero_hi(), | 2228 | (__v32hi) _mm512_set1_epi16(__A), |
| 2232 | __M); | 2229 | (__v32hi) _mm512_setzero_si512()); |
| 2233 | } | 2230 | } |
| 2234 | 2231 | ||
| 2235 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 2232 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
c_headers/avx512dqintrin.h+20-18| ... | @@ -973,25 +973,26 @@ _mm512_movepi64_mask (__m512i __A) | ... | @@ -973,25 +973,26 @@ _mm512_movepi64_mask (__m512i __A) |
| 973 | static __inline__ __m512 __DEFAULT_FN_ATTRS | 973 | static __inline__ __m512 __DEFAULT_FN_ATTRS |
| 974 | _mm512_broadcast_f32x2 (__m128 __A) | 974 | _mm512_broadcast_f32x2 (__m128 __A) |
| 975 | { | 975 | { |
| 976 | return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, | 976 | return (__m512)__builtin_shufflevector((__v4sf)__A, |
| 977 | (__v16sf)_mm512_undefined_ps(), | 977 | (__v4sf)_mm_undefined_ps(), |
| 978 | (__mmask16) -1); | 978 | 0, 1, 0, 1, 0, 1, 0, 1, |
| 979 | 0, 1, 0, 1, 0, 1, 0, 1); | ||
| 979 | } | 980 | } |
| 980 | 981 | ||
| 981 | static __inline__ __m512 __DEFAULT_FN_ATTRS | 982 | static __inline__ __m512 __DEFAULT_FN_ATTRS |
| 982 | _mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A) | 983 | _mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A) |
| 983 | { | 984 | { |
| 984 | return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, | 985 | return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, |
| 985 | (__v16sf) | 986 | (__v16sf)_mm512_broadcast_f32x2(__A), |
| 986 | __O, __M); | 987 | (__v16sf)__O); |
| 987 | } | 988 | } |
| 988 | 989 | ||
| 989 | static __inline__ __m512 __DEFAULT_FN_ATTRS | 990 | static __inline__ __m512 __DEFAULT_FN_ATTRS |
| 990 | _mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A) | 991 | _mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A) |
| 991 | { | 992 | { |
| 992 | return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A, | 993 | return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, |
| 993 | (__v16sf)_mm512_setzero_ps (), | 994 | (__v16sf)_mm512_broadcast_f32x2(__A), |
| 994 | __M); | 995 | (__v16sf)_mm512_setzero_ps()); |
| 995 | } | 996 | } |
| 996 | 997 | ||
| 997 | static __inline__ __m512 __DEFAULT_FN_ATTRS | 998 | static __inline__ __m512 __DEFAULT_FN_ATTRS |
| ... | @@ -1044,25 +1045,26 @@ _mm512_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) | ... | @@ -1044,25 +1045,26 @@ _mm512_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) |
| 1044 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 1045 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 1045 | _mm512_broadcast_i32x2 (__m128i __A) | 1046 | _mm512_broadcast_i32x2 (__m128i __A) |
| 1046 | { | 1047 | { |
| 1047 | return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A, | 1048 | return (__m512i)__builtin_shufflevector((__v4si)__A, |
| 1048 | (__v16si)_mm512_setzero_si512(), | 1049 | (__v4si)_mm_undefined_si128(), |
| 1049 | (__mmask16) -1); | 1050 | 0, 1, 0, 1, 0, 1, 0, 1, |
| 1051 | 0, 1, 0, 1, 0, 1, 0, 1); | ||
| 1050 | } | 1052 | } |
| 1051 | 1053 | ||
| 1052 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 1054 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 1053 | _mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A) | 1055 | _mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A) |
| 1054 | { | 1056 | { |
| 1055 | return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A, | 1057 | return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, |
| 1056 | (__v16si) | 1058 | (__v16si)_mm512_broadcast_i32x2(__A), |
| 1057 | __O, __M); | 1059 | (__v16si)__O); |
| 1058 | } | 1060 | } |
| 1059 | 1061 | ||
| 1060 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 1062 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 1061 | _mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A) | 1063 | _mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A) |
| 1062 | { | 1064 | { |
| 1063 | return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A, | 1065 | return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, |
| 1064 | (__v16si)_mm512_setzero_si512 (), | 1066 | (__v16si)_mm512_broadcast_i32x2(__A), |
| 1065 | __M); | 1067 | (__v16si)_mm512_setzero_si512()); |
| 1066 | } | 1068 | } |
| 1067 | 1069 | ||
| 1068 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 1070 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
c_headers/avx512fintrin.h+25-29| ... | @@ -258,30 +258,6 @@ _mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) | ... | @@ -258,30 +258,6 @@ _mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) |
| 258 | (__v8di) _mm512_setzero_si512()); | 258 | (__v8di) _mm512_setzero_si512()); |
| 259 | } | 259 | } |
| 260 | 260 | ||
| 261 | static __inline __m512i __DEFAULT_FN_ATTRS | ||
| 262 | _mm512_maskz_set1_epi32(__mmask16 __M, int __A) | ||
| 263 | { | ||
| 264 | return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A, | ||
| 265 | (__v16si) | ||
| 266 | _mm512_setzero_si512 (), | ||
| 267 | __M); | ||
| 268 | } | ||
| 269 | |||
| 270 | static __inline __m512i __DEFAULT_FN_ATTRS | ||
| 271 | _mm512_maskz_set1_epi64(__mmask8 __M, long long __A) | ||
| 272 | { | ||
| 273 | #ifdef __x86_64__ | ||
| 274 | return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A, | ||
| 275 | (__v8di) | ||
| 276 | _mm512_setzero_si512 (), | ||
| 277 | __M); | ||
| 278 | #else | ||
| 279 | return (__m512i) __builtin_ia32_pbroadcastq512_mem_mask (__A, | ||
| 280 | (__v8di) | ||
| 281 | _mm512_setzero_si512 (), | ||
| 282 | __M); | ||
| 283 | #endif | ||
| 284 | } | ||
| 285 | 261 | ||
| 286 | static __inline __m512 __DEFAULT_FN_ATTRS | 262 | static __inline __m512 __DEFAULT_FN_ATTRS |
| 287 | _mm512_setzero_ps(void) | 263 | _mm512_setzero_ps(void) |
| ... | @@ -340,12 +316,30 @@ _mm512_set1_epi32(int __s) | ... | @@ -340,12 +316,30 @@ _mm512_set1_epi32(int __s) |
| 340 | __s, __s, __s, __s, __s, __s, __s, __s }; | 316 | __s, __s, __s, __s, __s, __s, __s, __s }; |
| 341 | } | 317 | } |
| 342 | 318 | ||
| 319 | static __inline __m512i __DEFAULT_FN_ATTRS | ||
| 320 | _mm512_maskz_set1_epi32(__mmask16 __M, int __A) | ||
| 321 | { | ||
| 322 | return (__m512i)__builtin_ia32_selectd_512(__M, | ||
| 323 | (__v16si)_mm512_set1_epi32(__A), | ||
| 324 | (__v16si)_mm512_setzero_si512()); | ||
| 325 | } | ||
| 326 | |||
| 343 | static __inline __m512i __DEFAULT_FN_ATTRS | 327 | static __inline __m512i __DEFAULT_FN_ATTRS |
| 344 | _mm512_set1_epi64(long long __d) | 328 | _mm512_set1_epi64(long long __d) |
| 345 | { | 329 | { |
| 346 | return (__m512i)(__v8di){ __d, __d, __d, __d, __d, __d, __d, __d }; | 330 | return (__m512i)(__v8di){ __d, __d, __d, __d, __d, __d, __d, __d }; |
| 347 | } | 331 | } |
| 348 | 332 | ||
| 333 | #ifdef __x86_64__ | ||
| 334 | static __inline __m512i __DEFAULT_FN_ATTRS | ||
| 335 | _mm512_maskz_set1_epi64(__mmask8 __M, long long __A) | ||
| 336 | { | ||
| 337 | return (__m512i)__builtin_ia32_selectq_512(__M, | ||
| 338 | (__v8di)_mm512_set1_epi64(__A), | ||
| 339 | (__v8di)_mm512_setzero_si512()); | ||
| 340 | } | ||
| 341 | #endif | ||
| 342 | |||
| 349 | static __inline__ __m512 __DEFAULT_FN_ATTRS | 343 | static __inline__ __m512 __DEFAULT_FN_ATTRS |
| 350 | _mm512_broadcastss_ps(__m128 __A) | 344 | _mm512_broadcastss_ps(__m128 __A) |
| 351 | { | 345 | { |
| ... | @@ -9040,7 +9034,7 @@ _mm512_stream_si512 (__m512i * __P, __m512i __A) | ... | @@ -9040,7 +9034,7 @@ _mm512_stream_si512 (__m512i * __P, __m512i __A) |
| 9040 | } | 9034 | } |
| 9041 | 9035 | ||
| 9042 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 9036 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 9043 | _mm512_stream_load_si512 (void *__P) | 9037 | _mm512_stream_load_si512 (void const *__P) |
| 9044 | { | 9038 | { |
| 9045 | typedef __v8di __v8di_aligned __attribute__((aligned(64))); | 9039 | typedef __v8di __v8di_aligned __attribute__((aligned(64))); |
| 9046 | return (__m512i) __builtin_nontemporal_load((const __v8di_aligned *)__P); | 9040 | return (__m512i) __builtin_nontemporal_load((const __v8di_aligned *)__P); |
| ... | @@ -9742,16 +9736,18 @@ _mm_cvtu64_ss (__m128 __A, unsigned long long __B) | ... | @@ -9742,16 +9736,18 @@ _mm_cvtu64_ss (__m128 __A, unsigned long long __B) |
| 9742 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 9736 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 9743 | _mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A) | 9737 | _mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A) |
| 9744 | { | 9738 | { |
| 9745 | return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A, (__v16si) __O, | 9739 | return (__m512i) __builtin_ia32_selectd_512(__M, |
| 9746 | __M); | 9740 | (__v16si) _mm512_set1_epi32(__A), |
| 9741 | (__v16si) __O); | ||
| 9747 | } | 9742 | } |
| 9748 | 9743 | ||
| 9749 | #ifdef __x86_64__ | 9744 | #ifdef __x86_64__ |
| 9750 | static __inline__ __m512i __DEFAULT_FN_ATTRS | 9745 | static __inline__ __m512i __DEFAULT_FN_ATTRS |
| 9751 | _mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A) | 9746 | _mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A) |
| 9752 | { | 9747 | { |
| 9753 | return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A, (__v8di) __O, | 9748 | return (__m512i) __builtin_ia32_selectq_512(__M, |
| 9754 | __M); | 9749 | (__v8di) _mm512_set1_epi64(__A), |
| 9750 | (__v8di) __O); | ||
| 9755 | } | 9751 | } |
| 9756 | #endif | 9752 | #endif |
| 9757 | 9753 |
c_headers/avx512vlbwintrin.h+24-26| ... | @@ -2660,35 +2660,33 @@ _mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A) | ... | @@ -2660,35 +2660,33 @@ _mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A) |
| 2660 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 2660 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 2661 | _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A) | 2661 | _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A) |
| 2662 | { | 2662 | { |
| 2663 | return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A, | 2663 | return (__m128i) __builtin_ia32_selectb_128(__M, |
| 2664 | (__v16qi) __O, | 2664 | (__v16qi) _mm_set1_epi8(__A), |
| 2665 | __M); | 2665 | (__v16qi) __O); |
| 2666 | } | 2666 | } |
| 2667 | 2667 | ||
| 2668 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 2668 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 2669 | _mm_maskz_set1_epi8 (__mmask16 __M, char __A) | 2669 | _mm_maskz_set1_epi8 (__mmask16 __M, char __A) |
| 2670 | { | 2670 | { |
| 2671 | return (__m128i) __builtin_ia32_pbroadcastb128_gpr_mask (__A, | 2671 | return (__m128i) __builtin_ia32_selectb_128(__M, |
| 2672 | (__v16qi) | 2672 | (__v16qi) _mm_set1_epi8(__A), |
| 2673 | _mm_setzero_si128 (), | 2673 | (__v16qi) _mm_setzero_si128()); |
| 2674 | __M); | ||
| 2675 | } | 2674 | } |
| 2676 | 2675 | ||
| 2677 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 2676 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 2678 | _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A) | 2677 | _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A) |
| 2679 | { | 2678 | { |
| 2680 | return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A, | 2679 | return (__m256i) __builtin_ia32_selectb_256(__M, |
| 2681 | (__v32qi) __O, | 2680 | (__v32qi) _mm256_set1_epi8(__A), |
| 2682 | __M); | 2681 | (__v32qi) __O); |
| 2683 | } | 2682 | } |
| 2684 | 2683 | ||
| 2685 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 2684 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 2686 | _mm256_maskz_set1_epi8 (__mmask32 __M, char __A) | 2685 | _mm256_maskz_set1_epi8 (__mmask32 __M, char __A) |
| 2687 | { | 2686 | { |
| 2688 | return (__m256i) __builtin_ia32_pbroadcastb256_gpr_mask (__A, | 2687 | return (__m256i) __builtin_ia32_selectb_256(__M, |
| 2689 | (__v32qi) | 2688 | (__v32qi) _mm256_set1_epi8(__A), |
| 2690 | _mm256_setzero_si256 (), | 2689 | (__v32qi) _mm256_setzero_si256()); |
| 2691 | __M); | ||
| 2692 | } | 2690 | } |
| 2693 | 2691 | ||
| 2694 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 2692 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| ... | @@ -3025,33 +3023,33 @@ _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A) | ... | @@ -3025,33 +3023,33 @@ _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A) |
| 3025 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 3023 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 3026 | _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A) | 3024 | _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A) |
| 3027 | { | 3025 | { |
| 3028 | return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A, | 3026 | return (__m256i) __builtin_ia32_selectw_256 (__M, |
| 3029 | (__v16hi) __O, | 3027 | (__v16hi) _mm256_set1_epi16(__A), |
| 3030 | __M); | 3028 | (__v16hi) __O); |
| 3031 | } | 3029 | } |
| 3032 | 3030 | ||
| 3033 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 3031 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 3034 | _mm256_maskz_set1_epi16 (__mmask16 __M, short __A) | 3032 | _mm256_maskz_set1_epi16 (__mmask16 __M, short __A) |
| 3035 | { | 3033 | { |
| 3036 | return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A, | 3034 | return (__m256i) __builtin_ia32_selectw_256(__M, |
| 3037 | (__v16hi) _mm256_setzero_si256 (), | 3035 | (__v16hi)_mm256_set1_epi16(__A), |
| 3038 | __M); | 3036 | (__v16hi) _mm256_setzero_si256()); |
| 3039 | } | 3037 | } |
| 3040 | 3038 | ||
| 3041 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 3039 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 3042 | _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A) | 3040 | _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A) |
| 3043 | { | 3041 | { |
| 3044 | return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A, | 3042 | return (__m128i) __builtin_ia32_selectw_128(__M, |
| 3045 | (__v8hi) __O, | 3043 | (__v8hi) _mm_set1_epi16(__A), |
| 3046 | __M); | 3044 | (__v8hi) __O); |
| 3047 | } | 3045 | } |
| 3048 | 3046 | ||
| 3049 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 3047 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 3050 | _mm_maskz_set1_epi16 (__mmask8 __M, short __A) | 3048 | _mm_maskz_set1_epi16 (__mmask8 __M, short __A) |
| 3051 | { | 3049 | { |
| 3052 | return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A, | 3050 | return (__m128i) __builtin_ia32_selectw_128(__M, |
| 3053 | (__v8hi) _mm_setzero_si128 (), | 3051 | (__v8hi) _mm_set1_epi16(__A), |
| 3054 | __M); | 3052 | (__v8hi) _mm_setzero_si128()); |
| 3055 | } | 3053 | } |
| 3056 | 3054 | ||
| 3057 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 3055 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
c_headers/avx512vldqintrin.h+27-27| ... | @@ -978,25 +978,25 @@ _mm256_movepi64_mask (__m256i __A) | ... | @@ -978,25 +978,25 @@ _mm256_movepi64_mask (__m256i __A) |
| 978 | static __inline__ __m256 __DEFAULT_FN_ATTRS | 978 | static __inline__ __m256 __DEFAULT_FN_ATTRS |
| 979 | _mm256_broadcast_f32x2 (__m128 __A) | 979 | _mm256_broadcast_f32x2 (__m128 __A) |
| 980 | { | 980 | { |
| 981 | return (__m256) __builtin_ia32_broadcastf32x2_256_mask ((__v4sf) __A, | 981 | return (__m256)__builtin_shufflevector((__v4sf)__A, |
| 982 | (__v8sf)_mm256_undefined_ps(), | 982 | (__v4sf)_mm_undefined_ps(), |
| 983 | (__mmask8) -1); | 983 | 0, 1, 0, 1, 0, 1, 0, 1); |
| 984 | } | 984 | } |
| 985 | 985 | ||
| 986 | static __inline__ __m256 __DEFAULT_FN_ATTRS | 986 | static __inline__ __m256 __DEFAULT_FN_ATTRS |
| 987 | _mm256_mask_broadcast_f32x2 (__m256 __O, __mmask8 __M, __m128 __A) | 987 | _mm256_mask_broadcast_f32x2 (__m256 __O, __mmask8 __M, __m128 __A) |
| 988 | { | 988 | { |
| 989 | return (__m256) __builtin_ia32_broadcastf32x2_256_mask ((__v4sf) __A, | 989 | return (__m256)__builtin_ia32_selectps_256((__mmask8)__M, |
| 990 | (__v8sf) __O, | 990 | (__v8sf)_mm256_broadcast_f32x2(__A), |
| 991 | __M); | 991 | (__v8sf)__O); |
| 992 | } | 992 | } |
| 993 | 993 | ||
| 994 | static __inline__ __m256 __DEFAULT_FN_ATTRS | 994 | static __inline__ __m256 __DEFAULT_FN_ATTRS |
| 995 | _mm256_maskz_broadcast_f32x2 (__mmask8 __M, __m128 __A) | 995 | _mm256_maskz_broadcast_f32x2 (__mmask8 __M, __m128 __A) |
| 996 | { | 996 | { |
| 997 | return (__m256) __builtin_ia32_broadcastf32x2_256_mask ((__v4sf) __A, | 997 | return (__m256)__builtin_ia32_selectps_256((__mmask8)__M, |
| 998 | (__v8sf) _mm256_setzero_ps (), | 998 | (__v8sf)_mm256_broadcast_f32x2(__A), |
| 999 | __M); | 999 | (__v8sf)_mm256_setzero_ps()); |
| 1000 | } | 1000 | } |
| 1001 | 1001 | ||
| 1002 | static __inline__ __m256d __DEFAULT_FN_ATTRS | 1002 | static __inline__ __m256d __DEFAULT_FN_ATTRS |
| ... | @@ -1025,49 +1025,49 @@ _mm256_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A) | ... | @@ -1025,49 +1025,49 @@ _mm256_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A) |
| 1025 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 1025 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 1026 | _mm_broadcast_i32x2 (__m128i __A) | 1026 | _mm_broadcast_i32x2 (__m128i __A) |
| 1027 | { | 1027 | { |
| 1028 | return (__m128i) __builtin_ia32_broadcasti32x2_128_mask ((__v4si) __A, | 1028 | return (__m128i)__builtin_shufflevector((__v4si)__A, |
| 1029 | (__v4si)_mm_undefined_si128(), | 1029 | (__v4si)_mm_undefined_si128(), |
| 1030 | (__mmask8) -1); | 1030 | 0, 1, 0, 1); |
| 1031 | } | 1031 | } |
| 1032 | 1032 | ||
| 1033 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 1033 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 1034 | _mm_mask_broadcast_i32x2 (__m128i __O, __mmask8 __M, __m128i __A) | 1034 | _mm_mask_broadcast_i32x2 (__m128i __O, __mmask8 __M, __m128i __A) |
| 1035 | { | 1035 | { |
| 1036 | return (__m128i) __builtin_ia32_broadcasti32x2_128_mask ((__v4si) __A, | 1036 | return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, |
| 1037 | (__v4si) __O, | 1037 | (__v4si)_mm_broadcast_i32x2(__A), |
| 1038 | __M); | 1038 | (__v4si)__O); |
| 1039 | } | 1039 | } |
| 1040 | 1040 | ||
| 1041 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 1041 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 1042 | _mm_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A) | 1042 | _mm_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A) |
| 1043 | { | 1043 | { |
| 1044 | return (__m128i) __builtin_ia32_broadcasti32x2_128_mask ((__v4si) __A, | 1044 | return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, |
| 1045 | (__v4si) _mm_setzero_si128 (), | 1045 | (__v4si)_mm_broadcast_i32x2(__A), |
| 1046 | __M); | 1046 | (__v4si)_mm_setzero_si128()); |
| 1047 | } | 1047 | } |
| 1048 | 1048 | ||
| 1049 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 1049 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 1050 | _mm256_broadcast_i32x2 (__m128i __A) | 1050 | _mm256_broadcast_i32x2 (__m128i __A) |
| 1051 | { | 1051 | { |
| 1052 | return (__m256i) __builtin_ia32_broadcasti32x2_256_mask ((__v4si) __A, | 1052 | return (__m256i)__builtin_shufflevector((__v4si)__A, |
| 1053 | (__v8si)_mm256_undefined_si256(), | 1053 | (__v4si)_mm_undefined_si128(), |
| 1054 | (__mmask8) -1); | 1054 | 0, 1, 0, 1, 0, 1, 0, 1); |
| 1055 | } | 1055 | } |
| 1056 | 1056 | ||
| 1057 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 1057 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 1058 | _mm256_mask_broadcast_i32x2 (__m256i __O, __mmask8 __M, __m128i __A) | 1058 | _mm256_mask_broadcast_i32x2 (__m256i __O, __mmask8 __M, __m128i __A) |
| 1059 | { | 1059 | { |
| 1060 | return (__m256i) __builtin_ia32_broadcasti32x2_256_mask ((__v4si) __A, | 1060 | return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, |
| 1061 | (__v8si) __O, | 1061 | (__v8si)_mm256_broadcast_i32x2(__A), |
| 1062 | __M); | 1062 | (__v8si)__O); |
| 1063 | } | 1063 | } |
| 1064 | 1064 | ||
| 1065 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 1065 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 1066 | _mm256_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A) | 1066 | _mm256_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A) |
| 1067 | { | 1067 | { |
| 1068 | return (__m256i) __builtin_ia32_broadcasti32x2_256_mask ((__v4si) __A, | 1068 | return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, |
| 1069 | (__v8si) _mm256_setzero_si256 (), | 1069 | (__v8si)_mm256_broadcast_i32x2(__A), |
| 1070 | __M); | 1070 | (__v8si)_mm256_setzero_si256()); |
| 1071 | } | 1071 | } |
| 1072 | 1072 | ||
| 1073 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 1073 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
c_headers/avx512vlintrin.h+41-28| ... | @@ -5723,59 +5723,72 @@ _mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A) | ... | @@ -5723,59 +5723,72 @@ _mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A) |
| 5723 | (__v4df)_mm256_setzero_pd()); | 5723 | (__v4df)_mm256_setzero_pd()); |
| 5724 | } | 5724 | } |
| 5725 | 5725 | ||
| 5726 | static __inline__ __m128i __DEFAULT_FN_ATTRS | ||
| 5727 | _mm_mask_set1_epi32(__m128i __O, __mmask8 __M, int __A) | ||
| 5728 | { | ||
| 5729 | return (__m128i)__builtin_ia32_selectd_128(__M, | ||
| 5730 | (__v4si) _mm_set1_epi32(__A), | ||
| 5731 | (__v4si)__O); | ||
| 5732 | } | ||
| 5726 | 5733 | ||
| 5727 | #define _mm_mask_set1_epi32(O, M, A) __extension__ ({ \ | 5734 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 5728 | (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \ | 5735 | _mm_maskz_set1_epi32( __mmask8 __M, int __A) |
| 5729 | (__v4si)(__m128i)(O), \ | 5736 | { |
| 5730 | (__mmask8)(M)); }) | 5737 | return (__m128i)__builtin_ia32_selectd_128(__M, |
| 5738 | (__v4si) _mm_set1_epi32(__A), | ||
| 5739 | (__v4si)_mm_setzero_si128()); | ||
| 5740 | } | ||
| 5731 | 5741 | ||
| 5732 | #define _mm_maskz_set1_epi32(M, A) __extension__ ({ \ | 5742 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 5733 | (__m128i)__builtin_ia32_pbroadcastd128_gpr_mask((int)(A), \ | 5743 | _mm256_mask_set1_epi32(__m256i __O, __mmask8 __M, int __A) |
| 5734 | (__v4si)_mm_setzero_si128(), \ | 5744 | { |
| 5735 | (__mmask8)(M)); }) | 5745 | return (__m256i)__builtin_ia32_selectd_256(__M, |
| 5746 | (__v8si) _mm256_set1_epi32(__A), | ||
| 5747 | (__v8si)__O); | ||
| 5748 | } | ||
| 5736 | 5749 | ||
| 5737 | #define _mm256_mask_set1_epi32(O, M, A) __extension__ ({ \ | 5750 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 5738 | (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \ | 5751 | _mm256_maskz_set1_epi32( __mmask8 __M, int __A) |
| 5739 | (__v8si)(__m256i)(O), \ | 5752 | { |
| 5740 | (__mmask8)(M)); }) | 5753 | return (__m256i)__builtin_ia32_selectd_256(__M, |
| 5754 | (__v8si) _mm256_set1_epi32(__A), | ||
| 5755 | (__v8si)_mm256_setzero_si256()); | ||
| 5756 | } | ||
| 5741 | 5757 | ||
| 5742 | #define _mm256_maskz_set1_epi32(M, A) __extension__ ({ \ | ||
| 5743 | (__m256i)__builtin_ia32_pbroadcastd256_gpr_mask((int)(A), \ | ||
| 5744 | (__v8si)_mm256_setzero_si256(), \ | ||
| 5745 | (__mmask8)(M)); }) | ||
| 5746 | 5758 | ||
| 5747 | #ifdef __x86_64__ | 5759 | #ifdef __x86_64__ |
| 5748 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 5760 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 5749 | _mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A) | 5761 | _mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A) |
| 5750 | { | 5762 | { |
| 5751 | return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, (__v2di) __O, | 5763 | return (__m128i) __builtin_ia32_selectq_128(__M, |
| 5752 | __M); | 5764 | (__v2di) _mm_set1_epi64x(__A), |
| 5765 | (__v2di) __O); | ||
| 5753 | } | 5766 | } |
| 5754 | 5767 | ||
| 5755 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 5768 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 5756 | _mm_maskz_set1_epi64 (__mmask8 __M, long long __A) | 5769 | _mm_maskz_set1_epi64 (__mmask8 __M, long long __A) |
| 5757 | { | 5770 | { |
| 5758 | return (__m128i) __builtin_ia32_pbroadcastq128_gpr_mask (__A, | 5771 | return (__m128i) __builtin_ia32_selectq_128(__M, |
| 5759 | (__v2di) | 5772 | (__v2di) _mm_set1_epi64x(__A), |
| 5760 | _mm_setzero_si128 (), | 5773 | (__v2di) _mm_setzero_si128()); |
| 5761 | __M); | ||
| 5762 | } | 5774 | } |
| 5763 | 5775 | ||
| 5764 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 5776 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 5765 | _mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A) | 5777 | _mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A) |
| 5766 | { | 5778 | { |
| 5767 | return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, (__v4di) __O, | 5779 | return (__m256i) __builtin_ia32_selectq_256(__M, |
| 5768 | __M); | 5780 | (__v4di) _mm256_set1_epi64x(__A), |
| 5781 | (__v4di) __O) ; | ||
| 5769 | } | 5782 | } |
| 5770 | 5783 | ||
| 5771 | static __inline__ __m256i __DEFAULT_FN_ATTRS | 5784 | static __inline__ __m256i __DEFAULT_FN_ATTRS |
| 5772 | _mm256_maskz_set1_epi64 (__mmask8 __M, long long __A) | 5785 | _mm256_maskz_set1_epi64 (__mmask8 __M, long long __A) |
| 5773 | { | 5786 | { |
| 5774 | return (__m256i) __builtin_ia32_pbroadcastq256_gpr_mask (__A, | 5787 | return (__m256i) __builtin_ia32_selectq_256(__M, |
| 5775 | (__v4di) | 5788 | (__v4di) _mm256_set1_epi64x(__A), |
| 5776 | _mm256_setzero_si256 (), | 5789 | (__v4di) _mm256_setzero_si256()); |
| 5777 | __M); | ||
| 5778 | } | 5790 | } |
| 5791 | |||
| 5779 | #endif | 5792 | #endif |
| 5780 | 5793 | ||
| 5781 | #define _mm_fixupimm_pd(A, B, C, imm) __extension__ ({ \ | 5794 | #define _mm_fixupimm_pd(A, B, C, imm) __extension__ ({ \ |
c_headers/clflushoptintrin.h+1-1| ... | @@ -32,7 +32,7 @@ | ... | @@ -32,7 +32,7 @@ |
| 32 | #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("clflushopt"))) | 32 | #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("clflushopt"))) |
| 33 | 33 | ||
| 34 | static __inline__ void __DEFAULT_FN_ATTRS | 34 | static __inline__ void __DEFAULT_FN_ATTRS |
| 35 | _mm_clflushopt(char * __m) { | 35 | _mm_clflushopt(void const * __m) { |
| 36 | __builtin_ia32_clflushopt(__m); | 36 | __builtin_ia32_clflushopt(__m); |
| 37 | } | 37 | } |
| 38 | 38 |
c_headers/clwbintrin.h created+52| ... | @@ -0,0 +1,52 @@ | ||
| 1 | /*===---- clwbintrin.h - CLWB intrinsic ------------------------------------=== | ||
| 2 | * | ||
| 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| 4 | * of this software and associated documentation files (the "Software"), to deal | ||
| 5 | * in the Software without restriction, including without limitation the rights | ||
| 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| 7 | * copies of the Software, and to permit persons to whom the Software is | ||
| 8 | * furnished to do so, subject to the following conditions: | ||
| 9 | * | ||
| 10 | * The above copyright notice and this permission notice shall be included in | ||
| 11 | * all copies or substantial portions of the Software. | ||
| 12 | * | ||
| 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
| 19 | * THE SOFTWARE. | ||
| 20 | * | ||
| 21 | *===-----------------------------------------------------------------------=== | ||
| 22 | */ | ||
| 23 | |||
| 24 | #ifndef __IMMINTRIN_H | ||
| 25 | #error "Never use <clwbintrin.h> directly; include <immintrin.h> instead." | ||
| 26 | #endif | ||
| 27 | |||
| 28 | #ifndef __CLWBINTRIN_H | ||
| 29 | #define __CLWBINTRIN_H | ||
| 30 | |||
| 31 | /* Define the default attributes for the functions in this file. */ | ||
| 32 | #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("clwb"))) | ||
| 33 | |||
| 34 | /// \brief Writes back to memory the cache line (if modified) that contains the | ||
| 35 | /// linear address specified in \a __p from any level of the cache hierarchy in | ||
| 36 | /// the cache coherence domain | ||
| 37 | /// | ||
| 38 | /// \headerfile <immintrin.h> | ||
| 39 | /// | ||
| 40 | /// This intrinsic corresponds to the <c> CLWB </c> instruction. | ||
| 41 | /// | ||
| 42 | /// \param __p | ||
| 43 | /// A pointer to the memory location used to identify the cache line to be | ||
| 44 | /// written back. | ||
| 45 | static __inline__ void __DEFAULT_FN_ATTRS | ||
| 46 | _mm_clwb(void const *__p) { | ||
| 47 | __builtin_ia32_clwb(__p); | ||
| 48 | } | ||
| 49 | |||
| 50 | #undef __DEFAULT_FN_ATTRS | ||
| 51 | |||
| 52 | #endif | ||
c_headers/cuda_wrappers/new+50-1| ... | @@ -26,7 +26,6 @@ | ... | @@ -26,7 +26,6 @@ |
| 26 | 26 | ||
| 27 | #include_next <new> | 27 | #include_next <new> |
| 28 | 28 | ||
| 29 | // Device overrides for placement new and delete. | ||
| 30 | #pragma push_macro("CUDA_NOEXCEPT") | 29 | #pragma push_macro("CUDA_NOEXCEPT") |
| 31 | #if __cplusplus >= 201103L | 30 | #if __cplusplus >= 201103L |
| 32 | #define CUDA_NOEXCEPT noexcept | 31 | #define CUDA_NOEXCEPT noexcept |
| ... | @@ -34,6 +33,55 @@ | ... | @@ -34,6 +33,55 @@ |
| 34 | #define CUDA_NOEXCEPT | 33 | #define CUDA_NOEXCEPT |
| 35 | #endif | 34 | #endif |
| 36 | 35 | ||
| 36 | // Device overrides for non-placement new and delete. | ||
| 37 | __device__ inline void *operator new(__SIZE_TYPE__ size) { | ||
| 38 | if (size == 0) { | ||
| 39 | size = 1; | ||
| 40 | } | ||
| 41 | return ::malloc(size); | ||
| 42 | } | ||
| 43 | __device__ inline void *operator new(__SIZE_TYPE__ size, | ||
| 44 | const std::nothrow_t &) CUDA_NOEXCEPT { | ||
| 45 | return ::operator new(size); | ||
| 46 | } | ||
| 47 | |||
| 48 | __device__ inline void *operator new[](__SIZE_TYPE__ size) { | ||
| 49 | return ::operator new(size); | ||
| 50 | } | ||
| 51 | __device__ inline void *operator new[](__SIZE_TYPE__ size, | ||
| 52 | const std::nothrow_t &) { | ||
| 53 | return ::operator new(size); | ||
| 54 | } | ||
| 55 | |||
| 56 | __device__ inline void operator delete(void* ptr) CUDA_NOEXCEPT { | ||
| 57 | if (ptr) { | ||
| 58 | ::free(ptr); | ||
| 59 | } | ||
| 60 | } | ||
| 61 | __device__ inline void operator delete(void *ptr, | ||
| 62 | const std::nothrow_t &) CUDA_NOEXCEPT { | ||
| 63 | ::operator delete(ptr); | ||
| 64 | } | ||
| 65 | |||
| 66 | __device__ inline void operator delete[](void* ptr) CUDA_NOEXCEPT { | ||
| 67 | ::operator delete(ptr); | ||
| 68 | } | ||
| 69 | __device__ inline void operator delete[](void *ptr, | ||
| 70 | const std::nothrow_t &) CUDA_NOEXCEPT { | ||
| 71 | ::operator delete(ptr); | ||
| 72 | } | ||
| 73 | |||
| 74 | // Sized delete, C++14 only. | ||
| 75 | #if __cplusplus >= 201402L | ||
| 76 | __device__ void operator delete(void *ptr, __SIZE_TYPE__ size) CUDA_NOEXCEPT { | ||
| 77 | ::operator delete(ptr); | ||
| 78 | } | ||
| 79 | __device__ void operator delete[](void *ptr, __SIZE_TYPE__ size) CUDA_NOEXCEPT { | ||
| 80 | ::operator delete(ptr); | ||
| 81 | } | ||
| 82 | #endif | ||
| 83 | |||
| 84 | // Device overrides for placement new and delete. | ||
| 37 | __device__ inline void *operator new(__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT { | 85 | __device__ inline void *operator new(__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT { |
| 38 | return __ptr; | 86 | return __ptr; |
| 39 | } | 87 | } |
| ... | @@ -42,6 +90,7 @@ __device__ inline void *operator new[](__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT | ... | @@ -42,6 +90,7 @@ __device__ inline void *operator new[](__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT |
| 42 | } | 90 | } |
| 43 | __device__ inline void operator delete(void *, void *) CUDA_NOEXCEPT {} | 91 | __device__ inline void operator delete(void *, void *) CUDA_NOEXCEPT {} |
| 44 | __device__ inline void operator delete[](void *, void *) CUDA_NOEXCEPT {} | 92 | __device__ inline void operator delete[](void *, void *) CUDA_NOEXCEPT {} |
| 93 | |||
| 45 | #pragma pop_macro("CUDA_NOEXCEPT") | 94 | #pragma pop_macro("CUDA_NOEXCEPT") |
| 46 | 95 | ||
| 47 | #endif // include guard | 96 | #endif // include guard |
c_headers/emmintrin.h+10-2| ... | @@ -2258,7 +2258,11 @@ _mm_adds_epu16(__m128i __a, __m128i __b) | ... | @@ -2258,7 +2258,11 @@ _mm_adds_epu16(__m128i __a, __m128i __b) |
| 2258 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 2258 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 2259 | _mm_avg_epu8(__m128i __a, __m128i __b) | 2259 | _mm_avg_epu8(__m128i __a, __m128i __b) |
| 2260 | { | 2260 | { |
| 2261 | return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b); | 2261 | typedef unsigned short __v16hu __attribute__ ((__vector_size__ (32))); |
| 2262 | return (__m128i)__builtin_convertvector( | ||
| 2263 | ((__builtin_convertvector((__v16qu)__a, __v16hu) + | ||
| 2264 | __builtin_convertvector((__v16qu)__b, __v16hu)) + 1) | ||
| 2265 | >> 1, __v16qu); | ||
| 2262 | } | 2266 | } |
| 2263 | 2267 | ||
| 2264 | /// \brief Computes the rounded avarages of corresponding elements of two | 2268 | /// \brief Computes the rounded avarages of corresponding elements of two |
| ... | @@ -2278,7 +2282,11 @@ _mm_avg_epu8(__m128i __a, __m128i __b) | ... | @@ -2278,7 +2282,11 @@ _mm_avg_epu8(__m128i __a, __m128i __b) |
| 2278 | static __inline__ __m128i __DEFAULT_FN_ATTRS | 2282 | static __inline__ __m128i __DEFAULT_FN_ATTRS |
| 2279 | _mm_avg_epu16(__m128i __a, __m128i __b) | 2283 | _mm_avg_epu16(__m128i __a, __m128i __b) |
| 2280 | { | 2284 | { |
| 2281 | return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b); | 2285 | typedef unsigned int __v8su __attribute__ ((__vector_size__ (32))); |
| 2286 | return (__m128i)__builtin_convertvector( | ||
| 2287 | ((__builtin_convertvector((__v8hu)__a, __v8su) + | ||
| 2288 | __builtin_convertvector((__v8hu)__b, __v8su)) + 1) | ||
| 2289 | >> 1, __v8hu); | ||
| 2282 | } | 2290 | } |
| 2283 | 2291 | ||
| 2284 | /// \brief Multiplies the corresponding elements of two 128-bit signed [8 x i16] | 2292 | /// \brief Multiplies the corresponding elements of two 128-bit signed [8 x i16] |
c_headers/float.h+14| ... | @@ -143,4 +143,18 @@ | ... | @@ -143,4 +143,18 @@ |
| 143 | # define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__ | 143 | # define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__ |
| 144 | #endif | 144 | #endif |
| 145 | 145 | ||
| 146 | #ifdef __STDC_WANT_IEC_60559_TYPES_EXT__ | ||
| 147 | # define FLT16_MANT_DIG __FLT16_MANT_DIG__ | ||
| 148 | # define FLT16_DECIMAL_DIG __FLT16_DECIMAL_DIG__ | ||
| 149 | # define FLT16_DIG __FLT16_DIG__ | ||
| 150 | # define FLT16_MIN_EXP __FLT16_MIN_EXP__ | ||
| 151 | # define FLT16_MIN_10_EXP __FLT16_MIN_10_EXP__ | ||
| 152 | # define FLT16_MAX_EXP __FLT16_MAX_EXP__ | ||
| 153 | # define FLT16_MAX_10_EXP __FLT16_MAX_10_EXP__ | ||
| 154 | # define FLT16_MAX __FLT16_MAX__ | ||
| 155 | # define FLT16_EPSILON __FLT16_EPSILON__ | ||
| 156 | # define FLT16_MIN __FLT16_MIN__ | ||
| 157 | # define FLT16_TRUE_MIN __FLT16_TRUE_MIN__ | ||
| 158 | #endif /* __STDC_WANT_IEC_60559_TYPES_EXT__ */ | ||
| 159 | |||
| 146 | #endif /* __FLOAT_H */ | 160 | #endif /* __FLOAT_H */ |
c_headers/immintrin.h+4| ... | @@ -58,6 +58,10 @@ | ... | @@ -58,6 +58,10 @@ |
| 58 | #include <clflushoptintrin.h> | 58 | #include <clflushoptintrin.h> |
| 59 | #endif | 59 | #endif |
| 60 | 60 | ||
| 61 | #if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLWB__) | ||
| 62 | #include <clwbintrin.h> | ||
| 63 | #endif | ||
| 64 | |||
| 61 | #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX__) | 65 | #if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX__) |
| 62 | #include <avxintrin.h> | 66 | #include <avxintrin.h> |
| 63 | #endif | 67 | #endif |
c_headers/intrin.h+5-1| ... | @@ -38,6 +38,10 @@ | ... | @@ -38,6 +38,10 @@ |
| 38 | #include <armintr.h> | 38 | #include <armintr.h> |
| 39 | #endif | 39 | #endif |
| 40 | 40 | ||
| 41 | #if defined(_M_ARM64) | ||
| 42 | #include <arm64intr.h> | ||
| 43 | #endif | ||
| 44 | |||
| 41 | /* For the definition of jmp_buf. */ | 45 | /* For the definition of jmp_buf. */ |
| 42 | #if __STDC_HOSTED__ | 46 | #if __STDC_HOSTED__ |
| 43 | #include <setjmp.h> | 47 | #include <setjmp.h> |
| ... | @@ -828,7 +832,7 @@ _InterlockedCompareExchange_nf(long volatile *_Destination, | ... | @@ -828,7 +832,7 @@ _InterlockedCompareExchange_nf(long volatile *_Destination, |
| 828 | __ATOMIC_SEQ_CST, __ATOMIC_RELAXED); | 832 | __ATOMIC_SEQ_CST, __ATOMIC_RELAXED); |
| 829 | return _Comparand; | 833 | return _Comparand; |
| 830 | } | 834 | } |
| 831 | static __inline__ short __DEFAULT_FN_ATTRS | 835 | static __inline__ long __DEFAULT_FN_ATTRS |
| 832 | _InterlockedCompareExchange_rel(long volatile *_Destination, | 836 | _InterlockedCompareExchange_rel(long volatile *_Destination, |
| 833 | long _Exchange, long _Comparand) { | 837 | long _Exchange, long _Comparand) { |
| 834 | __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0, | 838 | __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0, |
c_headers/opencl-c.h+23-336| ... | @@ -11381,6 +11381,8 @@ half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c); | ... | @@ -11381,6 +11381,8 @@ half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c); |
| 11381 | * For each component of a vector type, | 11381 | * For each component of a vector type, |
| 11382 | * result[i] = if MSB of c[i] is set ? b[i] : a[i]. | 11382 | * result[i] = if MSB of c[i] is set ? b[i] : a[i]. |
| 11383 | * For a scalar type, result = c ? b : a. | 11383 | * For a scalar type, result = c ? b : a. |
| 11384 | * b and a must have the same type. | ||
| 11385 | * c must have the same number of elements and bits as a. | ||
| 11384 | */ | 11386 | */ |
| 11385 | char __ovld __cnfn select(char a, char b, char c); | 11387 | char __ovld __cnfn select(char a, char b, char c); |
| 11386 | uchar __ovld __cnfn select(uchar a, uchar b, char c); | 11388 | uchar __ovld __cnfn select(uchar a, uchar b, char c); |
| ... | @@ -11394,60 +11396,7 @@ char8 __ovld __cnfn select(char8 a, char8 b, char8 c); | ... | @@ -11394,60 +11396,7 @@ char8 __ovld __cnfn select(char8 a, char8 b, char8 c); |
| 11394 | uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c); | 11396 | uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c); |
| 11395 | char16 __ovld __cnfn select(char16 a, char16 b, char16 c); | 11397 | char16 __ovld __cnfn select(char16 a, char16 b, char16 c); |
| 11396 | uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c); | 11398 | uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c); |
| 11397 | short __ovld __cnfn select(short a, short b, char c); | 11399 | |
| 11398 | ushort __ovld __cnfn select(ushort a, ushort b, char c); | ||
| 11399 | short2 __ovld __cnfn select(short2 a, short2 b, char2 c); | ||
| 11400 | ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, char2 c); | ||
| 11401 | short3 __ovld __cnfn select(short3 a, short3 b, char3 c); | ||
| 11402 | ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, char3 c); | ||
| 11403 | short4 __ovld __cnfn select(short4 a, short4 b, char4 c); | ||
| 11404 | ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, char4 c); | ||
| 11405 | short8 __ovld __cnfn select(short8 a, short8 b, char8 c); | ||
| 11406 | ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, char8 c); | ||
| 11407 | short16 __ovld __cnfn select(short16 a, short16 b, char16 c); | ||
| 11408 | ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, char16 c); | ||
| 11409 | int __ovld __cnfn select(int a, int b, char c); | ||
| 11410 | uint __ovld __cnfn select(uint a, uint b, char c); | ||
| 11411 | int2 __ovld __cnfn select(int2 a, int2 b, char2 c); | ||
| 11412 | uint2 __ovld __cnfn select(uint2 a, uint2 b, char2 c); | ||
| 11413 | int3 __ovld __cnfn select(int3 a, int3 b, char3 c); | ||
| 11414 | uint3 __ovld __cnfn select(uint3 a, uint3 b, char3 c); | ||
| 11415 | int4 __ovld __cnfn select(int4 a, int4 b, char4 c); | ||
| 11416 | uint4 __ovld __cnfn select(uint4 a, uint4 b, char4 c); | ||
| 11417 | int8 __ovld __cnfn select(int8 a, int8 b, char8 c); | ||
| 11418 | uint8 __ovld __cnfn select(uint8 a, uint8 b, char8 c); | ||
| 11419 | int16 __ovld __cnfn select(int16 a, int16 b, char16 c); | ||
| 11420 | uint16 __ovld __cnfn select(uint16 a, uint16 b, char16 c); | ||
| 11421 | long __ovld __cnfn select(long a, long b, char c); | ||
| 11422 | ulong __ovld __cnfn select(ulong a, ulong b, char c); | ||
| 11423 | long2 __ovld __cnfn select(long2 a, long2 b, char2 c); | ||
| 11424 | ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, char2 c); | ||
| 11425 | long3 __ovld __cnfn select(long3 a, long3 b, char3 c); | ||
| 11426 | ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, char3 c); | ||
| 11427 | long4 __ovld __cnfn select(long4 a, long4 b, char4 c); | ||
| 11428 | ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, char4 c); | ||
| 11429 | long8 __ovld __cnfn select(long8 a, long8 b, char8 c); | ||
| 11430 | ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, char8 c); | ||
| 11431 | long16 __ovld __cnfn select(long16 a, long16 b, char16 c); | ||
| 11432 | ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, char16 c); | ||
| 11433 | float __ovld __cnfn select(float a, float b, char c); | ||
| 11434 | float2 __ovld __cnfn select(float2 a, float2 b, char2 c); | ||
| 11435 | float3 __ovld __cnfn select(float3 a, float3 b, char3 c); | ||
| 11436 | float4 __ovld __cnfn select(float4 a, float4 b, char4 c); | ||
| 11437 | float8 __ovld __cnfn select(float8 a, float8 b, char8 c); | ||
| 11438 | float16 __ovld __cnfn select(float16 a, float16 b, char16 c); | ||
| 11439 | char __ovld __cnfn select(char a, char b, short c); | ||
| 11440 | uchar __ovld __cnfn select(uchar a, uchar b, short c); | ||
| 11441 | char2 __ovld __cnfn select(char2 a, char2 b, short2 c); | ||
| 11442 | uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, short2 c); | ||
| 11443 | char3 __ovld __cnfn select(char3 a, char3 b, short3 c); | ||
| 11444 | uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, short3 c); | ||
| 11445 | char4 __ovld __cnfn select(char4 a, char4 b, short4 c); | ||
| 11446 | uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, short4 c); | ||
| 11447 | char8 __ovld __cnfn select(char8 a, char8 b, short8 c); | ||
| 11448 | uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, short8 c); | ||
| 11449 | char16 __ovld __cnfn select(char16 a, char16 b, short16 c); | ||
| 11450 | uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, short16 c); | ||
| 11451 | short __ovld __cnfn select(short a, short b, short c); | 11400 | short __ovld __cnfn select(short a, short b, short c); |
| 11452 | ushort __ovld __cnfn select(ushort a, ushort b, short c); | 11401 | ushort __ovld __cnfn select(ushort a, ushort b, short c); |
| 11453 | short2 __ovld __cnfn select(short2 a, short2 b, short2 c); | 11402 | short2 __ovld __cnfn select(short2 a, short2 b, short2 c); |
| ... | @@ -11460,60 +11409,7 @@ short8 __ovld __cnfn select(short8 a, short8 b, short8 c); | ... | @@ -11460,60 +11409,7 @@ short8 __ovld __cnfn select(short8 a, short8 b, short8 c); |
| 11460 | ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c); | 11409 | ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c); |
| 11461 | short16 __ovld __cnfn select(short16 a, short16 b, short16 c); | 11410 | short16 __ovld __cnfn select(short16 a, short16 b, short16 c); |
| 11462 | ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c); | 11411 | ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c); |
| 11463 | int __ovld __cnfn select(int a, int b, short c); | 11412 | |
| 11464 | uint __ovld __cnfn select(uint a, uint b, short c); | ||
| 11465 | int2 __ovld __cnfn select(int2 a, int2 b, short2 c); | ||
| 11466 | uint2 __ovld __cnfn select(uint2 a, uint2 b, short2 c); | ||
| 11467 | int3 __ovld __cnfn select(int3 a, int3 b, short3 c); | ||
| 11468 | uint3 __ovld __cnfn select(uint3 a, uint3 b, short3 c); | ||
| 11469 | int4 __ovld __cnfn select(int4 a, int4 b, short4 c); | ||
| 11470 | uint4 __ovld __cnfn select(uint4 a, uint4 b, short4 c); | ||
| 11471 | int8 __ovld __cnfn select(int8 a, int8 b, short8 c); | ||
| 11472 | uint8 __ovld __cnfn select(uint8 a, uint8 b, short8 c); | ||
| 11473 | int16 __ovld __cnfn select(int16 a, int16 b, short16 c); | ||
| 11474 | uint16 __ovld __cnfn select(uint16 a, uint16 b, short16 c); | ||
| 11475 | long __ovld __cnfn select(long a, long b, short c); | ||
| 11476 | ulong __ovld __cnfn select(ulong a, ulong b, short c); | ||
| 11477 | long2 __ovld __cnfn select(long2 a, long2 b, short2 c); | ||
| 11478 | ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, short2 c); | ||
| 11479 | long3 __ovld __cnfn select(long3 a, long3 b, short3 c); | ||
| 11480 | ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, short3 c); | ||
| 11481 | long4 __ovld __cnfn select(long4 a, long4 b, short4 c); | ||
| 11482 | ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, short4 c); | ||
| 11483 | long8 __ovld __cnfn select(long8 a, long8 b, short8 c); | ||
| 11484 | ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, short8 c); | ||
| 11485 | long16 __ovld __cnfn select(long16 a, long16 b, short16 c); | ||
| 11486 | ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, short16 c); | ||
| 11487 | float __ovld __cnfn select(float a, float b, short c); | ||
| 11488 | float2 __ovld __cnfn select(float2 a, float2 b, short2 c); | ||
| 11489 | float3 __ovld __cnfn select(float3 a, float3 b, short3 c); | ||
| 11490 | float4 __ovld __cnfn select(float4 a, float4 b, short4 c); | ||
| 11491 | float8 __ovld __cnfn select(float8 a, float8 b, short8 c); | ||
| 11492 | float16 __ovld __cnfn select(float16 a, float16 b, short16 c); | ||
| 11493 | char __ovld __cnfn select(char a, char b, int c); | ||
| 11494 | uchar __ovld __cnfn select(uchar a, uchar b, int c); | ||
| 11495 | char2 __ovld __cnfn select(char2 a, char2 b, int2 c); | ||
| 11496 | uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, int2 c); | ||
| 11497 | char3 __ovld __cnfn select(char3 a, char3 b, int3 c); | ||
| 11498 | uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, int3 c); | ||
| 11499 | char4 __ovld __cnfn select(char4 a, char4 b, int4 c); | ||
| 11500 | uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, int4 c); | ||
| 11501 | char8 __ovld __cnfn select(char8 a, char8 b, int8 c); | ||
| 11502 | uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, int8 c); | ||
| 11503 | char16 __ovld __cnfn select(char16 a, char16 b, int16 c); | ||
| 11504 | uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, int16 c); | ||
| 11505 | short __ovld __cnfn select(short a, short b, int c); | ||
| 11506 | ushort __ovld __cnfn select(ushort a, ushort b, int c); | ||
| 11507 | short2 __ovld __cnfn select(short2 a, short2 b, int2 c); | ||
| 11508 | ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, int2 c); | ||
| 11509 | short3 __ovld __cnfn select(short3 a, short3 b, int3 c); | ||
| 11510 | ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, int3 c); | ||
| 11511 | short4 __ovld __cnfn select(short4 a, short4 b, int4 c); | ||
| 11512 | ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, int4 c); | ||
| 11513 | short8 __ovld __cnfn select(short8 a, short8 b, int8 c); | ||
| 11514 | ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, int8 c); | ||
| 11515 | short16 __ovld __cnfn select(short16 a, short16 b, int16 c); | ||
| 11516 | ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, int16 c); | ||
| 11517 | int __ovld __cnfn select(int a, int b, int c); | 11413 | int __ovld __cnfn select(int a, int b, int c); |
| 11518 | uint __ovld __cnfn select(uint a, uint b, int c); | 11414 | uint __ovld __cnfn select(uint a, uint b, int c); |
| 11519 | int2 __ovld __cnfn select(int2 a, int2 b, int2 c); | 11415 | int2 __ovld __cnfn select(int2 a, int2 b, int2 c); |
| ... | @@ -11526,60 +11422,13 @@ int8 __ovld __cnfn select(int8 a, int8 b, int8 c); | ... | @@ -11526,60 +11422,13 @@ int8 __ovld __cnfn select(int8 a, int8 b, int8 c); |
| 11526 | uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c); | 11422 | uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c); |
| 11527 | int16 __ovld __cnfn select(int16 a, int16 b, int16 c); | 11423 | int16 __ovld __cnfn select(int16 a, int16 b, int16 c); |
| 11528 | uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c); | 11424 | uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c); |
| 11529 | long __ovld __cnfn select(long a, long b, int c); | ||
| 11530 | ulong __ovld __cnfn select(ulong a, ulong b, int c); | ||
| 11531 | long2 __ovld __cnfn select(long2 a, long2 b, int2 c); | ||
| 11532 | ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, int2 c); | ||
| 11533 | long3 __ovld __cnfn select(long3 a, long3 b, int3 c); | ||
| 11534 | ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, int3 c); | ||
| 11535 | long4 __ovld __cnfn select(long4 a, long4 b, int4 c); | ||
| 11536 | ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, int4 c); | ||
| 11537 | long8 __ovld __cnfn select(long8 a, long8 b, int8 c); | ||
| 11538 | ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, int8 c); | ||
| 11539 | long16 __ovld __cnfn select(long16 a, long16 b, int16 c); | ||
| 11540 | ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, int16 c); | ||
| 11541 | float __ovld __cnfn select(float a, float b, int c); | 11425 | float __ovld __cnfn select(float a, float b, int c); |
| 11542 | float2 __ovld __cnfn select(float2 a, float2 b, int2 c); | 11426 | float2 __ovld __cnfn select(float2 a, float2 b, int2 c); |
| 11543 | float3 __ovld __cnfn select(float3 a, float3 b, int3 c); | 11427 | float3 __ovld __cnfn select(float3 a, float3 b, int3 c); |
| 11544 | float4 __ovld __cnfn select(float4 a, float4 b, int4 c); | 11428 | float4 __ovld __cnfn select(float4 a, float4 b, int4 c); |
| 11545 | float8 __ovld __cnfn select(float8 a, float8 b, int8 c); | 11429 | float8 __ovld __cnfn select(float8 a, float8 b, int8 c); |
| 11546 | float16 __ovld __cnfn select(float16 a, float16 b, int16 c); | 11430 | float16 __ovld __cnfn select(float16 a, float16 b, int16 c); |
| 11547 | char __ovld __cnfn select(char a, char b, long c); | 11431 | |
| 11548 | uchar __ovld __cnfn select(uchar a, uchar b, long c); | ||
| 11549 | char2 __ovld __cnfn select(char2 a, char2 b, long2 c); | ||
| 11550 | uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, long2 c); | ||
| 11551 | char3 __ovld __cnfn select(char3 a, char3 b, long3 c); | ||
| 11552 | uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, long3 c); | ||
| 11553 | char4 __ovld __cnfn select(char4 a, char4 b, long4 c); | ||
| 11554 | uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, long4 c); | ||
| 11555 | char8 __ovld __cnfn select(char8 a, char8 b, long8 c); | ||
| 11556 | uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, long8 c); | ||
| 11557 | char16 __ovld __cnfn select(char16 a, char16 b, long16 c); | ||
| 11558 | uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, long16 c); | ||
| 11559 | short __ovld __cnfn select(short a, short b, long c); | ||
| 11560 | ushort __ovld __cnfn select(ushort a, ushort b, long c); | ||
| 11561 | short2 __ovld __cnfn select(short2 a, short2 b, long2 c); | ||
| 11562 | ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, long2 c); | ||
| 11563 | short3 __ovld __cnfn select(short3 a, short3 b, long3 c); | ||
| 11564 | ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, long3 c); | ||
| 11565 | short4 __ovld __cnfn select(short4 a, short4 b, long4 c); | ||
| 11566 | ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, long4 c); | ||
| 11567 | short8 __ovld __cnfn select(short8 a, short8 b, long8 c); | ||
| 11568 | ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, long8 c); | ||
| 11569 | short16 __ovld __cnfn select(short16 a, short16 b, long16 c); | ||
| 11570 | ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, long16 c); | ||
| 11571 | int __ovld __cnfn select(int a, int b, long c); | ||
| 11572 | uint __ovld __cnfn select(uint a, uint b, long c); | ||
| 11573 | int2 __ovld __cnfn select(int2 a, int2 b, long2 c); | ||
| 11574 | uint2 __ovld __cnfn select(uint2 a, uint2 b, long2 c); | ||
| 11575 | int3 __ovld __cnfn select(int3 a, int3 b, long3 c); | ||
| 11576 | uint3 __ovld __cnfn select(uint3 a, uint3 b, long3 c); | ||
| 11577 | int4 __ovld __cnfn select(int4 a, int4 b, long4 c); | ||
| 11578 | uint4 __ovld __cnfn select(uint4 a, uint4 b, long4 c); | ||
| 11579 | int8 __ovld __cnfn select(int8 a, int8 b, long8 c); | ||
| 11580 | uint8 __ovld __cnfn select(uint8 a, uint8 b, long8 c); | ||
| 11581 | int16 __ovld __cnfn select(int16 a, int16 b, long16 c); | ||
| 11582 | uint16 __ovld __cnfn select(uint16 a, uint16 b, long16 c); | ||
| 11583 | long __ovld __cnfn select(long a, long b, long c); | 11432 | long __ovld __cnfn select(long a, long b, long c); |
| 11584 | ulong __ovld __cnfn select(ulong a, ulong b, long c); | 11433 | ulong __ovld __cnfn select(ulong a, ulong b, long c); |
| 11585 | long2 __ovld __cnfn select(long2 a, long2 b, long2 c); | 11434 | long2 __ovld __cnfn select(long2 a, long2 b, long2 c); |
| ... | @@ -11592,12 +11441,7 @@ long8 __ovld __cnfn select(long8 a, long8 b, long8 c); | ... | @@ -11592,12 +11441,7 @@ long8 __ovld __cnfn select(long8 a, long8 b, long8 c); |
| 11592 | ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c); | 11441 | ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c); |
| 11593 | long16 __ovld __cnfn select(long16 a, long16 b, long16 c); | 11442 | long16 __ovld __cnfn select(long16 a, long16 b, long16 c); |
| 11594 | ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c); | 11443 | ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c); |
| 11595 | float __ovld __cnfn select(float a, float b, long c); | 11444 | |
| 11596 | float2 __ovld __cnfn select(float2 a, float2 b, long2 c); | ||
| 11597 | float3 __ovld __cnfn select(float3 a, float3 b, long3 c); | ||
| 11598 | float4 __ovld __cnfn select(float4 a, float4 b, long4 c); | ||
| 11599 | float8 __ovld __cnfn select(float8 a, float8 b, long8 c); | ||
| 11600 | float16 __ovld __cnfn select(float16 a, float16 b, long16 c); | ||
| 11601 | char __ovld __cnfn select(char a, char b, uchar c); | 11445 | char __ovld __cnfn select(char a, char b, uchar c); |
| 11602 | uchar __ovld __cnfn select(uchar a, uchar b, uchar c); | 11446 | uchar __ovld __cnfn select(uchar a, uchar b, uchar c); |
| 11603 | char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c); | 11447 | char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c); |
| ... | @@ -11610,60 +11454,7 @@ char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c); | ... | @@ -11610,60 +11454,7 @@ char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c); |
| 11610 | uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c); | 11454 | uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c); |
| 11611 | char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c); | 11455 | char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c); |
| 11612 | uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c); | 11456 | uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c); |
| 11613 | short __ovld __cnfn select(short a, short b, uchar c); | 11457 | |
| 11614 | ushort __ovld __cnfn select(ushort a, ushort b, uchar c); | ||
| 11615 | short2 __ovld __cnfn select(short2 a, short2 b, uchar2 c); | ||
| 11616 | ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, uchar2 c); | ||
| 11617 | short3 __ovld __cnfn select(short3 a, short3 b, uchar3 c); | ||
| 11618 | ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, uchar3 c); | ||
| 11619 | short4 __ovld __cnfn select(short4 a, short4 b, uchar4 c); | ||
| 11620 | ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, uchar4 c); | ||
| 11621 | short8 __ovld __cnfn select(short8 a, short8 b, uchar8 c); | ||
| 11622 | ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, uchar8 c); | ||
| 11623 | short16 __ovld __cnfn select(short16 a, short16 b, uchar16 c); | ||
| 11624 | ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, uchar16 c); | ||
| 11625 | int __ovld __cnfn select(int a, int b, uchar c); | ||
| 11626 | uint __ovld __cnfn select(uint a, uint b, uchar c); | ||
| 11627 | int2 __ovld __cnfn select(int2 a, int2 b, uchar2 c); | ||
| 11628 | uint2 __ovld __cnfn select(uint2 a, uint2 b, uchar2 c); | ||
| 11629 | int3 __ovld __cnfn select(int3 a, int3 b, uchar3 c); | ||
| 11630 | uint3 __ovld __cnfn select(uint3 a, uint3 b, uchar3 c); | ||
| 11631 | int4 __ovld __cnfn select(int4 a, int4 b, uchar4 c); | ||
| 11632 | uint4 __ovld __cnfn select(uint4 a, uint4 b, uchar4 c); | ||
| 11633 | int8 __ovld __cnfn select(int8 a, int8 b, uchar8 c); | ||
| 11634 | uint8 __ovld __cnfn select(uint8 a, uint8 b, uchar8 c); | ||
| 11635 | int16 __ovld __cnfn select(int16 a, int16 b, uchar16 c); | ||
| 11636 | uint16 __ovld __cnfn select(uint16 a, uint16 b, uchar16 c); | ||
| 11637 | long __ovld __cnfn select(long a, long b, uchar c); | ||
| 11638 | ulong __ovld __cnfn select(ulong a, ulong b, uchar c); | ||
| 11639 | long2 __ovld __cnfn select(long2 a, long2 b, uchar2 c); | ||
| 11640 | ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, uchar2 c); | ||
| 11641 | long3 __ovld __cnfn select(long3 a, long3 b, uchar3 c); | ||
| 11642 | ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, uchar3 c); | ||
| 11643 | long4 __ovld __cnfn select(long4 a, long4 b, uchar4 c); | ||
| 11644 | ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, uchar4 c); | ||
| 11645 | long8 __ovld __cnfn select(long8 a, long8 b, uchar8 c); | ||
| 11646 | ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, uchar8 c); | ||
| 11647 | long16 __ovld __cnfn select(long16 a, long16 b, uchar16 c); | ||
| 11648 | ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, uchar16 c); | ||
| 11649 | float __ovld __cnfn select(float a, float b, uchar c); | ||
| 11650 | float2 __ovld __cnfn select(float2 a, float2 b, uchar2 c); | ||
| 11651 | float3 __ovld __cnfn select(float3 a, float3 b, uchar3 c); | ||
| 11652 | float4 __ovld __cnfn select(float4 a, float4 b, uchar4 c); | ||
| 11653 | float8 __ovld __cnfn select(float8 a, float8 b, uchar8 c); | ||
| 11654 | float16 __ovld __cnfn select(float16 a, float16 b, uchar16 c); | ||
| 11655 | char __ovld __cnfn select(char a, char b, ushort c); | ||
| 11656 | uchar __ovld __cnfn select(uchar a, uchar b, ushort c); | ||
| 11657 | char2 __ovld __cnfn select(char2 a, char2 b, ushort2 c); | ||
| 11658 | uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, ushort2 c); | ||
| 11659 | char3 __ovld __cnfn select(char3 a, char3 b, ushort3 c); | ||
| 11660 | uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, ushort3 c); | ||
| 11661 | char4 __ovld __cnfn select(char4 a, char4 b, ushort4 c); | ||
| 11662 | uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, ushort4 c); | ||
| 11663 | char8 __ovld __cnfn select(char8 a, char8 b, ushort8 c); | ||
| 11664 | uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, ushort8 c); | ||
| 11665 | char16 __ovld __cnfn select(char16 a, char16 b, ushort16 c); | ||
| 11666 | uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, ushort16 c); | ||
| 11667 | short __ovld __cnfn select(short a, short b, ushort c); | 11458 | short __ovld __cnfn select(short a, short b, ushort c); |
| 11668 | ushort __ovld __cnfn select(ushort a, ushort b, ushort c); | 11459 | ushort __ovld __cnfn select(ushort a, ushort b, ushort c); |
| 11669 | short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c); | 11460 | short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c); |
| ... | @@ -11676,60 +11467,7 @@ short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c); | ... | @@ -11676,60 +11467,7 @@ short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c); |
| 11676 | ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c); | 11467 | ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c); |
| 11677 | short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c); | 11468 | short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c); |
| 11678 | ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c); | 11469 | ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c); |
| 11679 | int __ovld __cnfn select(int a, int b, ushort c); | 11470 | |
| 11680 | uint __ovld __cnfn select(uint a, uint b, ushort c); | ||
| 11681 | int2 __ovld __cnfn select(int2 a, int2 b, ushort2 c); | ||
| 11682 | uint2 __ovld __cnfn select(uint2 a, uint2 b, ushort2 c); | ||
| 11683 | int3 __ovld __cnfn select(int3 a, int3 b, ushort3 c); | ||
| 11684 | uint3 __ovld __cnfn select(uint3 a, uint3 b, ushort3 c); | ||
| 11685 | int4 __ovld __cnfn select(int4 a, int4 b, ushort4 c); | ||
| 11686 | uint4 __ovld __cnfn select(uint4 a, uint4 b, ushort4 c); | ||
| 11687 | int8 __ovld __cnfn select(int8 a, int8 b, ushort8 c); | ||
| 11688 | uint8 __ovld __cnfn select(uint8 a, uint8 b, ushort8 c); | ||
| 11689 | int16 __ovld __cnfn select(int16 a, int16 b, ushort16 c); | ||
| 11690 | uint16 __ovld __cnfn select(uint16 a, uint16 b, ushort16 c); | ||
| 11691 | long __ovld __cnfn select(long a, long b, ushort c); | ||
| 11692 | ulong __ovld __cnfn select(ulong a, ulong b, ushort c); | ||
| 11693 | long2 __ovld __cnfn select(long2 a, long2 b, ushort2 c); | ||
| 11694 | ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ushort2 c); | ||
| 11695 | long3 __ovld __cnfn select(long3 a, long3 b, ushort3 c); | ||
| 11696 | ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ushort3 c); | ||
| 11697 | long4 __ovld __cnfn select(long4 a, long4 b, ushort4 c); | ||
| 11698 | ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ushort4 c); | ||
| 11699 | long8 __ovld __cnfn select(long8 a, long8 b, ushort8 c); | ||
| 11700 | ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ushort8 c); | ||
| 11701 | long16 __ovld __cnfn select(long16 a, long16 b, ushort16 c); | ||
| 11702 | ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ushort16 c); | ||
| 11703 | float __ovld __cnfn select(float a, float b, ushort c); | ||
| 11704 | float2 __ovld __cnfn select(float2 a, float2 b, ushort2 c); | ||
| 11705 | float3 __ovld __cnfn select(float3 a, float3 b, ushort3 c); | ||
| 11706 | float4 __ovld __cnfn select(float4 a, float4 b, ushort4 c); | ||
| 11707 | float8 __ovld __cnfn select(float8 a, float8 b, ushort8 c); | ||
| 11708 | float16 __ovld __cnfn select(float16 a, float16 b, ushort16 c); | ||
| 11709 | char __ovld __cnfn select(char a, char b, uint c); | ||
| 11710 | uchar __ovld __cnfn select(uchar a, uchar b, uint c); | ||
| 11711 | char2 __ovld __cnfn select(char2 a, char2 b, uint2 c); | ||
| 11712 | uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uint2 c); | ||
| 11713 | char3 __ovld __cnfn select(char3 a, char3 b, uint3 c); | ||
| 11714 | uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uint3 c); | ||
| 11715 | char4 __ovld __cnfn select(char4 a, char4 b, uint4 c); | ||
| 11716 | uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uint4 c); | ||
| 11717 | char8 __ovld __cnfn select(char8 a, char8 b, uint8 c); | ||
| 11718 | uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uint8 c); | ||
| 11719 | char16 __ovld __cnfn select(char16 a, char16 b, uint16 c); | ||
| 11720 | uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uint16 c); | ||
| 11721 | short __ovld __cnfn select(short a, short b, uint c); | ||
| 11722 | ushort __ovld __cnfn select(ushort a, ushort b, uint c); | ||
| 11723 | short2 __ovld __cnfn select(short2 a, short2 b, uint2 c); | ||
| 11724 | ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, uint2 c); | ||
| 11725 | short3 __ovld __cnfn select(short3 a, short3 b, uint3 c); | ||
| 11726 | ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, uint3 c); | ||
| 11727 | short4 __ovld __cnfn select(short4 a, short4 b, uint4 c); | ||
| 11728 | ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, uint4 c); | ||
| 11729 | short8 __ovld __cnfn select(short8 a, short8 b, uint8 c); | ||
| 11730 | ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, uint8 c); | ||
| 11731 | short16 __ovld __cnfn select(short16 a, short16 b, uint16 c); | ||
| 11732 | ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, uint16 c); | ||
| 11733 | int __ovld __cnfn select(int a, int b, uint c); | 11471 | int __ovld __cnfn select(int a, int b, uint c); |
| 11734 | uint __ovld __cnfn select(uint a, uint b, uint c); | 11472 | uint __ovld __cnfn select(uint a, uint b, uint c); |
| 11735 | int2 __ovld __cnfn select(int2 a, int2 b, uint2 c); | 11473 | int2 __ovld __cnfn select(int2 a, int2 b, uint2 c); |
| ... | @@ -11742,60 +11480,13 @@ int8 __ovld __cnfn select(int8 a, int8 b, uint8 c); | ... | @@ -11742,60 +11480,13 @@ int8 __ovld __cnfn select(int8 a, int8 b, uint8 c); |
| 11742 | uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c); | 11480 | uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c); |
| 11743 | int16 __ovld __cnfn select(int16 a, int16 b, uint16 c); | 11481 | int16 __ovld __cnfn select(int16 a, int16 b, uint16 c); |
| 11744 | uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c); | 11482 | uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c); |
| 11745 | long __ovld __cnfn select(long a, long b, uint c); | ||
| 11746 | ulong __ovld __cnfn select(ulong a, ulong b, uint c); | ||
| 11747 | long2 __ovld __cnfn select(long2 a, long2 b, uint2 c); | ||
| 11748 | ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, uint2 c); | ||
| 11749 | long3 __ovld __cnfn select(long3 a, long3 b, uint3 c); | ||
| 11750 | ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, uint3 c); | ||
| 11751 | long4 __ovld __cnfn select(long4 a, long4 b, uint4 c); | ||
| 11752 | ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, uint4 c); | ||
| 11753 | long8 __ovld __cnfn select(long8 a, long8 b, uint8 c); | ||
| 11754 | ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, uint8 c); | ||
| 11755 | long16 __ovld __cnfn select(long16 a, long16 b, uint16 c); | ||
| 11756 | ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, uint16 c); | ||
| 11757 | float __ovld __cnfn select(float a, float b, uint c); | 11483 | float __ovld __cnfn select(float a, float b, uint c); |
| 11758 | float2 __ovld __cnfn select(float2 a, float2 b, uint2 c); | 11484 | float2 __ovld __cnfn select(float2 a, float2 b, uint2 c); |
| 11759 | float3 __ovld __cnfn select(float3 a, float3 b, uint3 c); | 11485 | float3 __ovld __cnfn select(float3 a, float3 b, uint3 c); |
| 11760 | float4 __ovld __cnfn select(float4 a, float4 b, uint4 c); | 11486 | float4 __ovld __cnfn select(float4 a, float4 b, uint4 c); |
| 11761 | float8 __ovld __cnfn select(float8 a, float8 b, uint8 c); | 11487 | float8 __ovld __cnfn select(float8 a, float8 b, uint8 c); |
| 11762 | float16 __ovld __cnfn select(float16 a, float16 b, uint16 c); | 11488 | float16 __ovld __cnfn select(float16 a, float16 b, uint16 c); |
| 11763 | char __ovld __cnfn select(char a, char b, ulong c); | 11489 | |
| 11764 | uchar __ovld __cnfn select(uchar a, uchar b, ulong c); | ||
| 11765 | char2 __ovld __cnfn select(char2 a, char2 b, ulong2 c); | ||
| 11766 | uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, ulong2 c); | ||
| 11767 | char3 __ovld __cnfn select(char3 a, char3 b, ulong3 c); | ||
| 11768 | uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, ulong3 c); | ||
| 11769 | char4 __ovld __cnfn select(char4 a, char4 b, ulong4 c); | ||
| 11770 | uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, ulong4 c); | ||
| 11771 | char8 __ovld __cnfn select(char8 a, char8 b, ulong8 c); | ||
| 11772 | uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, ulong8 c); | ||
| 11773 | char16 __ovld __cnfn select(char16 a, char16 b, ulong16 c); | ||
| 11774 | uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, ulong16 c); | ||
| 11775 | short __ovld __cnfn select(short a, short b, ulong c); | ||
| 11776 | ushort __ovld __cnfn select(ushort a, ushort b, ulong c); | ||
| 11777 | short2 __ovld __cnfn select(short2 a, short2 b, ulong2 c); | ||
| 11778 | ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ulong2 c); | ||
| 11779 | short3 __ovld __cnfn select(short3 a, short3 b, ulong3 c); | ||
| 11780 | ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ulong3 c); | ||
| 11781 | short4 __ovld __cnfn select(short4 a, short4 b, ulong4 c); | ||
| 11782 | ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ulong4 c); | ||
| 11783 | short8 __ovld __cnfn select(short8 a, short8 b, ulong8 c); | ||
| 11784 | ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ulong8 c); | ||
| 11785 | short16 __ovld __cnfn select(short16 a, short16 b, ulong16 c); | ||
| 11786 | ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ulong16 c); | ||
| 11787 | int __ovld __cnfn select(int a, int b, ulong c); | ||
| 11788 | uint __ovld __cnfn select(uint a, uint b, ulong c); | ||
| 11789 | int2 __ovld __cnfn select(int2 a, int2 b, ulong2 c); | ||
| 11790 | uint2 __ovld __cnfn select(uint2 a, uint2 b, ulong2 c); | ||
| 11791 | int3 __ovld __cnfn select(int3 a, int3 b, ulong3 c); | ||
| 11792 | uint3 __ovld __cnfn select(uint3 a, uint3 b, ulong3 c); | ||
| 11793 | int4 __ovld __cnfn select(int4 a, int4 b, ulong4 c); | ||
| 11794 | uint4 __ovld __cnfn select(uint4 a, uint4 b, ulong4 c); | ||
| 11795 | int8 __ovld __cnfn select(int8 a, int8 b, ulong8 c); | ||
| 11796 | uint8 __ovld __cnfn select(uint8 a, uint8 b, ulong8 c); | ||
| 11797 | int16 __ovld __cnfn select(int16 a, int16 b, ulong16 c); | ||
| 11798 | uint16 __ovld __cnfn select(uint16 a, uint16 b, ulong16 c); | ||
| 11799 | long __ovld __cnfn select(long a, long b, ulong c); | 11490 | long __ovld __cnfn select(long a, long b, ulong c); |
| 11800 | ulong __ovld __cnfn select(ulong a, ulong b, ulong c); | 11491 | ulong __ovld __cnfn select(ulong a, ulong b, ulong c); |
| 11801 | long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c); | 11492 | long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c); |
| ... | @@ -11808,12 +11499,7 @@ long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c); | ... | @@ -11808,12 +11499,7 @@ long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c); |
| 11808 | ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c); | 11499 | ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c); |
| 11809 | long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c); | 11500 | long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c); |
| 11810 | ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c); | 11501 | ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c); |
| 11811 | float __ovld __cnfn select(float a, float b, ulong c); | 11502 | |
| 11812 | float2 __ovld __cnfn select(float2 a, float2 b, ulong2 c); | ||
| 11813 | float3 __ovld __cnfn select(float3 a, float3 b, ulong3 c); | ||
| 11814 | float4 __ovld __cnfn select(float4 a, float4 b, ulong4 c); | ||
| 11815 | float8 __ovld __cnfn select(float8 a, float8 b, ulong8 c); | ||
| 11816 | float16 __ovld __cnfn select(float16 a, float16 b, ulong16 c); | ||
| 11817 | #ifdef cl_khr_fp64 | 11503 | #ifdef cl_khr_fp64 |
| 11818 | double __ovld __cnfn select(double a, double b, long c); | 11504 | double __ovld __cnfn select(double a, double b, long c); |
| 11819 | double2 __ovld __cnfn select(double2 a, double2 b, long2 c); | 11505 | double2 __ovld __cnfn select(double2 a, double2 b, long2 c); |
| ... | @@ -13141,13 +12827,14 @@ void __ovld __conv barrier(cl_mem_fence_flags flags); | ... | @@ -13141,13 +12827,14 @@ void __ovld __conv barrier(cl_mem_fence_flags flags); |
| 13141 | 12827 | ||
| 13142 | #if __OPENCL_C_VERSION__ >= CL_VERSION_2_0 | 12828 | #if __OPENCL_C_VERSION__ >= CL_VERSION_2_0 |
| 13143 | 12829 | ||
| 13144 | typedef enum memory_scope | 12830 | typedef enum memory_scope { |
| 13145 | { | 12831 | memory_scope_work_item = __OPENCL_MEMORY_SCOPE_WORK_ITEM, |
| 13146 | memory_scope_work_item, | 12832 | memory_scope_work_group = __OPENCL_MEMORY_SCOPE_WORK_GROUP, |
| 13147 | memory_scope_work_group, | 12833 | memory_scope_device = __OPENCL_MEMORY_SCOPE_DEVICE, |
| 13148 | memory_scope_device, | 12834 | memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES, |
| 13149 | memory_scope_all_svm_devices, | 12835 | #if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) |
| 13150 | memory_scope_sub_group | 12836 | memory_scope_sub_group = __OPENCL_MEMORY_SCOPE_SUB_GROUP |
| 12837 | #endif | ||
| 13151 | } memory_scope; | 12838 | } memory_scope; |
| 13152 | 12839 | ||
| 13153 | void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope); | 12840 | void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope); |
| ... | @@ -13952,11 +13639,11 @@ unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long v | ... | @@ -13952,11 +13639,11 @@ unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long v |
| 13952 | // enum values aligned with what clang uses in EmitAtomicExpr() | 13639 | // enum values aligned with what clang uses in EmitAtomicExpr() |
| 13953 | typedef enum memory_order | 13640 | typedef enum memory_order |
| 13954 | { | 13641 | { |
| 13955 | memory_order_relaxed, | 13642 | memory_order_relaxed = __ATOMIC_RELAXED, |
| 13956 | memory_order_acquire, | 13643 | memory_order_acquire = __ATOMIC_ACQUIRE, |
| 13957 | memory_order_release, | 13644 | memory_order_release = __ATOMIC_RELEASE, |
| 13958 | memory_order_acq_rel, | 13645 | memory_order_acq_rel = __ATOMIC_ACQ_REL, |
| 13959 | memory_order_seq_cst | 13646 | memory_order_seq_cst = __ATOMIC_SEQ_CST |
| 13960 | } memory_order; | 13647 | } memory_order; |
| 13961 | 13648 | ||
| 13962 | // double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics | 13649 | // double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics |
c_headers/unwind.h+59-21| ... | @@ -76,7 +76,13 @@ typedef intptr_t _sleb128_t; | ... | @@ -76,7 +76,13 @@ typedef intptr_t _sleb128_t; |
| 76 | typedef uintptr_t _uleb128_t; | 76 | typedef uintptr_t _uleb128_t; |
| 77 | 77 | ||
| 78 | struct _Unwind_Context; | 78 | struct _Unwind_Context; |
| 79 | #if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) || defined(__ARM_DWARF_EH__)) | ||
| 80 | struct _Unwind_Control_Block; | ||
| 81 | typedef struct _Unwind_Control_Block _Unwind_Exception; /* Alias */ | ||
| 82 | #else | ||
| 79 | struct _Unwind_Exception; | 83 | struct _Unwind_Exception; |
| 84 | typedef struct _Unwind_Exception _Unwind_Exception; | ||
| 85 | #endif | ||
| 80 | typedef enum { | 86 | typedef enum { |
| 81 | _URC_NO_REASON = 0, | 87 | _URC_NO_REASON = 0, |
| 82 | #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \ | 88 | #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \ |
| ... | @@ -109,8 +115,42 @@ typedef enum { | ... | @@ -109,8 +115,42 @@ typedef enum { |
| 109 | } _Unwind_Action; | 115 | } _Unwind_Action; |
| 110 | 116 | ||
| 111 | typedef void (*_Unwind_Exception_Cleanup_Fn)(_Unwind_Reason_Code, | 117 | typedef void (*_Unwind_Exception_Cleanup_Fn)(_Unwind_Reason_Code, |
| 112 | struct _Unwind_Exception *); | 118 | _Unwind_Exception *); |
| 113 | 119 | ||
| 120 | #if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) || defined(__ARM_DWARF_EH__)) | ||
| 121 | typedef struct _Unwind_Control_Block _Unwind_Control_Block; | ||
| 122 | typedef uint32_t _Unwind_EHT_Header; | ||
| 123 | |||
| 124 | struct _Unwind_Control_Block { | ||
| 125 | uint64_t exception_class; | ||
| 126 | void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *); | ||
| 127 | /* unwinder cache (private fields for the unwinder's use) */ | ||
| 128 | struct { | ||
| 129 | uint32_t reserved1; /* forced unwind stop function, 0 if not forced */ | ||
| 130 | uint32_t reserved2; /* personality routine */ | ||
| 131 | uint32_t reserved3; /* callsite */ | ||
| 132 | uint32_t reserved4; /* forced unwind stop argument */ | ||
| 133 | uint32_t reserved5; | ||
| 134 | } unwinder_cache; | ||
| 135 | /* propagation barrier cache (valid after phase 1) */ | ||
| 136 | struct { | ||
| 137 | uint32_t sp; | ||
| 138 | uint32_t bitpattern[5]; | ||
| 139 | } barrier_cache; | ||
| 140 | /* cleanup cache (preserved over cleanup) */ | ||
| 141 | struct { | ||
| 142 | uint32_t bitpattern[4]; | ||
| 143 | } cleanup_cache; | ||
| 144 | /* personality cache (for personality's benefit) */ | ||
| 145 | struct { | ||
| 146 | uint32_t fnstart; /* function start address */ | ||
| 147 | _Unwind_EHT_Header *ehtp; /* pointer to EHT entry header word */ | ||
| 148 | uint32_t additional; /* additional data */ | ||
| 149 | uint32_t reserved1; | ||
| 150 | } pr_cache; | ||
| 151 | long long int : 0; /* force alignment of next item to 8-byte boundary */ | ||
| 152 | } __attribute__((__aligned__(8))); | ||
| 153 | #else | ||
| 114 | struct _Unwind_Exception { | 154 | struct _Unwind_Exception { |
| 115 | _Unwind_Exception_Class exception_class; | 155 | _Unwind_Exception_Class exception_class; |
| 116 | _Unwind_Exception_Cleanup_Fn exception_cleanup; | 156 | _Unwind_Exception_Cleanup_Fn exception_cleanup; |
| ... | @@ -120,23 +160,24 @@ struct _Unwind_Exception { | ... | @@ -120,23 +160,24 @@ struct _Unwind_Exception { |
| 120 | * aligned". GCC has interpreted this to mean "use the maximum useful | 160 | * aligned". GCC has interpreted this to mean "use the maximum useful |
| 121 | * alignment for the target"; so do we. */ | 161 | * alignment for the target"; so do we. */ |
| 122 | } __attribute__((__aligned__)); | 162 | } __attribute__((__aligned__)); |
| 163 | #endif | ||
| 123 | 164 | ||
| 124 | typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)(int, _Unwind_Action, | 165 | typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)(int, _Unwind_Action, |
| 125 | _Unwind_Exception_Class, | 166 | _Unwind_Exception_Class, |
| 126 | struct _Unwind_Exception *, | 167 | _Unwind_Exception *, |
| 127 | struct _Unwind_Context *, | 168 | struct _Unwind_Context *, |
| 128 | void *); | 169 | void *); |
| 129 | 170 | ||
| 130 | typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)( | 171 | typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)(int, _Unwind_Action, |
| 131 | int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *, | 172 | _Unwind_Exception_Class, |
| 132 | struct _Unwind_Context *); | 173 | _Unwind_Exception *, |
| 174 | struct _Unwind_Context *); | ||
| 133 | typedef _Unwind_Personality_Fn __personality_routine; | 175 | typedef _Unwind_Personality_Fn __personality_routine; |
| 134 | 176 | ||
| 135 | typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)(struct _Unwind_Context *, | 177 | typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)(struct _Unwind_Context *, |
| 136 | void *); | 178 | void *); |
| 137 | 179 | ||
| 138 | #if defined(__arm__) && !defined(__APPLE__) | 180 | #if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) || defined(__ARM_DWARF_EH__)) |
| 139 | |||
| 140 | typedef enum { | 181 | typedef enum { |
| 141 | _UVRSC_CORE = 0, /* integer register */ | 182 | _UVRSC_CORE = 0, /* integer register */ |
| 142 | _UVRSC_VFP = 1, /* vfp */ | 183 | _UVRSC_VFP = 1, /* vfp */ |
| ... | @@ -158,14 +199,12 @@ typedef enum { | ... | @@ -158,14 +199,12 @@ typedef enum { |
| 158 | _UVRSR_FAILED = 2 | 199 | _UVRSR_FAILED = 2 |
| 159 | } _Unwind_VRS_Result; | 200 | } _Unwind_VRS_Result; |
| 160 | 201 | ||
| 161 | #if !defined(__USING_SJLJ_EXCEPTIONS__) && !defined(__ARM_DWARF_EH__) | ||
| 162 | typedef uint32_t _Unwind_State; | 202 | typedef uint32_t _Unwind_State; |
| 163 | #define _US_VIRTUAL_UNWIND_FRAME ((_Unwind_State)0) | 203 | #define _US_VIRTUAL_UNWIND_FRAME ((_Unwind_State)0) |
| 164 | #define _US_UNWIND_FRAME_STARTING ((_Unwind_State)1) | 204 | #define _US_UNWIND_FRAME_STARTING ((_Unwind_State)1) |
| 165 | #define _US_UNWIND_FRAME_RESUME ((_Unwind_State)2) | 205 | #define _US_UNWIND_FRAME_RESUME ((_Unwind_State)2) |
| 166 | #define _US_ACTION_MASK ((_Unwind_State)3) | 206 | #define _US_ACTION_MASK ((_Unwind_State)3) |
| 167 | #define _US_FORCE_UNWIND ((_Unwind_State)8) | 207 | #define _US_FORCE_UNWIND ((_Unwind_State)8) |
| 168 | #endif | ||
| 169 | 208 | ||
| 170 | _Unwind_VRS_Result _Unwind_VRS_Get(struct _Unwind_Context *__context, | 209 | _Unwind_VRS_Result _Unwind_VRS_Get(struct _Unwind_Context *__context, |
| 171 | _Unwind_VRS_RegClass __regclass, | 210 | _Unwind_VRS_RegClass __regclass, |
| ... | @@ -224,13 +263,12 @@ _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); | ... | @@ -224,13 +263,12 @@ _Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *); |
| 224 | 263 | ||
| 225 | /* DWARF EH functions; currently not available on Darwin/ARM */ | 264 | /* DWARF EH functions; currently not available on Darwin/ARM */ |
| 226 | #if !defined(__APPLE__) || !defined(__arm__) | 265 | #if !defined(__APPLE__) || !defined(__arm__) |
| 227 | 266 | _Unwind_Reason_Code _Unwind_RaiseException(_Unwind_Exception *); | |
| 228 | _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception *); | 267 | _Unwind_Reason_Code _Unwind_ForcedUnwind(_Unwind_Exception *, _Unwind_Stop_Fn, |
| 229 | _Unwind_Reason_Code _Unwind_ForcedUnwind(struct _Unwind_Exception *, | 268 | void *); |
| 230 | _Unwind_Stop_Fn, void *); | 269 | void _Unwind_DeleteException(_Unwind_Exception *); |
| 231 | void _Unwind_DeleteException(struct _Unwind_Exception *); | 270 | void _Unwind_Resume(_Unwind_Exception *); |
| 232 | void _Unwind_Resume(struct _Unwind_Exception *); | 271 | _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(_Unwind_Exception *); |
| 233 | _Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct _Unwind_Exception *); | ||
| 234 | 272 | ||
| 235 | #endif | 273 | #endif |
| 236 | 274 | ||
| ... | @@ -241,11 +279,11 @@ typedef struct SjLj_Function_Context *_Unwind_FunctionContext_t; | ... | @@ -241,11 +279,11 @@ typedef struct SjLj_Function_Context *_Unwind_FunctionContext_t; |
| 241 | 279 | ||
| 242 | void _Unwind_SjLj_Register(_Unwind_FunctionContext_t); | 280 | void _Unwind_SjLj_Register(_Unwind_FunctionContext_t); |
| 243 | void _Unwind_SjLj_Unregister(_Unwind_FunctionContext_t); | 281 | void _Unwind_SjLj_Unregister(_Unwind_FunctionContext_t); |
| 244 | _Unwind_Reason_Code _Unwind_SjLj_RaiseException(struct _Unwind_Exception *); | 282 | _Unwind_Reason_Code _Unwind_SjLj_RaiseException(_Unwind_Exception *); |
| 245 | _Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind(struct _Unwind_Exception *, | 283 | _Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind(_Unwind_Exception *, |
| 246 | _Unwind_Stop_Fn, void *); | 284 | _Unwind_Stop_Fn, void *); |
| 247 | void _Unwind_SjLj_Resume(struct _Unwind_Exception *); | 285 | void _Unwind_SjLj_Resume(_Unwind_Exception *); |
| 248 | _Unwind_Reason_Code _Unwind_SjLj_Resume_or_Rethrow(struct _Unwind_Exception *); | 286 | _Unwind_Reason_Code _Unwind_SjLj_Resume_or_Rethrow(_Unwind_Exception *); |
| 249 | 287 | ||
| 250 | void *_Unwind_FindEnclosingFunction(void *); | 288 | void *_Unwind_FindEnclosingFunction(void *); |
| 251 | 289 |
ci/appveyor/build_script.bat+2-2| ... | @@ -7,13 +7,13 @@ SET "PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH%" | ... | @@ -7,13 +7,13 @@ SET "PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH%" |
| 7 | SET "MSYSTEM=MINGW64" | 7 | SET "MSYSTEM=MINGW64" |
| 8 | SET "APPVEYOR_CACHE_ENTRY_ZIP_ARGS=-m0=Copy" | 8 | SET "APPVEYOR_CACHE_ENTRY_ZIP_ARGS=-m0=Copy" |
| 9 | 9 | ||
| 10 | bash -lc "cd ${APPVEYOR_BUILD_FOLDER} && if [ -s ""llvm+clang-5.0.0-win64-msvc-release.tar.xz"" ]; then echo 'skipping LLVM download'; else wget 'https://s3.amazonaws.com/superjoe/temp/llvm%%2bclang-5.0.0-win64-msvc-release.tar.xz'; fi && tar xf llvm+clang-5.0.0-win64-msvc-release.tar.xz" || exit /b | 10 | bash -lc "cd ${APPVEYOR_BUILD_FOLDER} && if [ -s ""llvm+clang-6.0.0-win64-msvc-release.tar.xz"" ]; then echo 'skipping LLVM download'; else wget 'https://s3.amazonaws.com/superjoe/temp/llvm%%2bclang-6.0.0-win64-msvc-release.tar.xz'; fi && tar xf llvm+clang-6.0.0-win64-msvc-release.tar.xz" || exit /b |
| 11 | 11 | ||
| 12 | 12 | ||
| 13 | SET "PATH=%PREVPATH%" | 13 | SET "PATH=%PREVPATH%" |
| 14 | SET "MSYSTEM=%PREVMSYSTEM%" | 14 | SET "MSYSTEM=%PREVMSYSTEM%" |
| 15 | SET "ZIGBUILDDIR=%APPVEYOR_BUILD_FOLDER%\build-msvc-release" | 15 | SET "ZIGBUILDDIR=%APPVEYOR_BUILD_FOLDER%\build-msvc-release" |
| 16 | SET "ZIGPREFIXPATH=%APPVEYOR_BUILD_FOLDER%\llvm+clang-5.0.0-win64-msvc-release" | 16 | SET "ZIGPREFIXPATH=%APPVEYOR_BUILD_FOLDER%\llvm+clang-6.0.0-win64-msvc-release" |
| 17 | 17 | ||
| 18 | mkdir %ZIGBUILDDIR% | 18 | mkdir %ZIGBUILDDIR% |
| 19 | cd %ZIGBUILDDIR% | 19 | cd %ZIGBUILDDIR% |
ci/travis_linux_install+1-1| ... | @@ -4,4 +4,4 @@ set -x | ... | @@ -4,4 +4,4 @@ set -x |
| 4 | 4 | ||
| 5 | sudo apt-get remove -y llvm-* | 5 | sudo apt-get remove -y llvm-* |
| 6 | sudo rm -rf /usr/local/* | 6 | sudo rm -rf /usr/local/* |
| 7 | sudo apt-get install -y clang-5.0 libclang-5.0 libclang-5.0-dev llvm-5.0 llvm-5.0-dev liblld-5.0 liblld-5.0-dev cmake wine1.6-amd64 | 7 | sudo apt-get install -y clang-6.0 libclang-6.0 libclang-6.0-dev llvm-6.0 llvm-6.0-dev liblld-6.0 liblld-6.0-dev cmake wine1.6-amd64 |
cmake/Findclang.cmake+4-4| ... | @@ -26,16 +26,16 @@ if(MSVC) | ... | @@ -26,16 +26,16 @@ if(MSVC) |
| 26 | else() | 26 | else() |
| 27 | find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h | 27 | find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h |
| 28 | PATHS | 28 | PATHS |
| 29 | /usr/lib/llvm/5/include | 29 | /usr/lib/llvm/6/include |
| 30 | /usr/lib/llvm-5.0/include | 30 | /usr/lib/llvm-6.0/include |
| 31 | /mingw64/include) | 31 | /mingw64/include) |
| 32 | 32 | ||
| 33 | macro(FIND_AND_ADD_CLANG_LIB _libname_) | 33 | macro(FIND_AND_ADD_CLANG_LIB _libname_) |
| 34 | string(TOUPPER ${_libname_} _prettylibname_) | 34 | string(TOUPPER ${_libname_} _prettylibname_) |
| 35 | find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} | 35 | find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} |
| 36 | PATHS | 36 | PATHS |
| 37 | /usr/lib/llvm/5/lib | 37 | /usr/lib/llvm/6/lib |
| 38 | /usr/lib/llvm-5.0/lib | 38 | /usr/lib/llvm-6.0/lib |
| 39 | /mingw64/lib | 39 | /mingw64/lib |
| 40 | /c/msys64/mingw64/lib | 40 | /c/msys64/mingw64/lib |
| 41 | c:\\msys64\\mingw64\\lib) | 41 | c:\\msys64\\mingw64\\lib) |
cmake/Findlld.cmake+6-5| ... | @@ -6,12 +6,12 @@ | ... | @@ -6,12 +6,12 @@ |
| 6 | # LLD_INCLUDE_DIRS | 6 | # LLD_INCLUDE_DIRS |
| 7 | # LLD_LIBRARIES | 7 | # LLD_LIBRARIES |
| 8 | 8 | ||
| 9 | find_path(LLD_INCLUDE_DIRS NAMES lld/Driver/Driver.h | 9 | find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h |
| 10 | PATHS | 10 | PATHS |
| 11 | /usr/lib/llvm-5.0/include | 11 | /usr/lib/llvm-6.0/include |
| 12 | /mingw64/include) | 12 | /mingw64/include) |
| 13 | 13 | ||
| 14 | find_library(LLD_LIBRARY NAMES lld-5.0 lld PATHS /usr/lib/llvm-5.0/lib) | 14 | find_library(LLD_LIBRARY NAMES lld-6.0 lld PATHS /usr/lib/llvm-6.0/lib) |
| 15 | if(EXISTS ${LLD_LIBRARY}) | 15 | if(EXISTS ${LLD_LIBRARY}) |
| 16 | set(LLD_LIBRARIES ${LLD_LIBRARY}) | 16 | set(LLD_LIBRARIES ${LLD_LIBRARY}) |
| 17 | else() | 17 | else() |
| ... | @@ -19,7 +19,7 @@ else() | ... | @@ -19,7 +19,7 @@ else() |
| 19 | string(TOUPPER ${_libname_} _prettylibname_) | 19 | string(TOUPPER ${_libname_} _prettylibname_) |
| 20 | find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_} | 20 | find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_} |
| 21 | PATHS | 21 | PATHS |
| 22 | /usr/lib/llvm-5.0/lib | 22 | /usr/lib/llvm-6.0/lib |
| 23 | /mingw64/lib | 23 | /mingw64/lib |
| 24 | /c/msys64/mingw64/lib | 24 | /c/msys64/mingw64/lib |
| 25 | c:/msys64/mingw64/lib) | 25 | c:/msys64/mingw64/lib) |
| ... | @@ -29,13 +29,14 @@ else() | ... | @@ -29,13 +29,14 @@ else() |
| 29 | endmacro(FIND_AND_ADD_LLD_LIB) | 29 | endmacro(FIND_AND_ADD_LLD_LIB) |
| 30 | 30 | ||
| 31 | FIND_AND_ADD_LLD_LIB(lldDriver) | 31 | FIND_AND_ADD_LLD_LIB(lldDriver) |
| 32 | FIND_AND_ADD_LLD_LIB(lldMinGW) | ||
| 32 | FIND_AND_ADD_LLD_LIB(lldELF) | 33 | FIND_AND_ADD_LLD_LIB(lldELF) |
| 33 | FIND_AND_ADD_LLD_LIB(lldCOFF) | 34 | FIND_AND_ADD_LLD_LIB(lldCOFF) |
| 34 | FIND_AND_ADD_LLD_LIB(lldMachO) | 35 | FIND_AND_ADD_LLD_LIB(lldMachO) |
| 35 | FIND_AND_ADD_LLD_LIB(lldReaderWriter) | 36 | FIND_AND_ADD_LLD_LIB(lldReaderWriter) |
| 36 | FIND_AND_ADD_LLD_LIB(lldCore) | 37 | FIND_AND_ADD_LLD_LIB(lldCore) |
| 37 | FIND_AND_ADD_LLD_LIB(lldYAML) | 38 | FIND_AND_ADD_LLD_LIB(lldYAML) |
| 38 | FIND_AND_ADD_LLD_LIB(lldConfig) | 39 | FIND_AND_ADD_LLD_LIB(lldCommon) |
| 39 | endif() | 40 | endif() |
| 40 | 41 | ||
| 41 | include(FindPackageHandleStandardArgs) | 42 | include(FindPackageHandleStandardArgs) |
cmake/Findllvm.cmake+3-3| ... | @@ -8,12 +8,12 @@ | ... | @@ -8,12 +8,12 @@ |
| 8 | # LLVM_LIBDIRS | 8 | # LLVM_LIBDIRS |
| 9 | 9 | ||
| 10 | find_program(LLVM_CONFIG_EXE | 10 | find_program(LLVM_CONFIG_EXE |
| 11 | NAMES llvm-config-5.0 llvm-config | 11 | NAMES llvm-config-6.0 llvm-config |
| 12 | PATHS | 12 | PATHS |
| 13 | "/mingw64/bin" | 13 | "/mingw64/bin" |
| 14 | "/c/msys64/mingw64/bin" | 14 | "/c/msys64/mingw64/bin" |
| 15 | "c:/msys64/mingw64/bin" | 15 | "c:/msys64/mingw64/bin" |
| 16 | "C:/Libraries/llvm-5.0.0/bin") | 16 | "C:/Libraries/llvm-6.0.0/bin") |
| 17 | 17 | ||
| 18 | if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug")) | 18 | if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug")) |
| 19 | execute_process( | 19 | execute_process( |
| ... | @@ -62,7 +62,7 @@ execute_process( | ... | @@ -62,7 +62,7 @@ execute_process( |
| 62 | set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS}) | 62 | set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS}) |
| 63 | 63 | ||
| 64 | if(NOT LLVM_LIBRARIES) | 64 | if(NOT LLVM_LIBRARIES) |
| 65 | find_library(LLVM_LIBRARIES NAMES LLVM LLVM-5.0 LLVM-5) | 65 | find_library(LLVM_LIBRARIES NAMES LLVM LLVM-6.0 LLVM-6) |
| 66 | endif() | 66 | endif() |
| 67 | 67 | ||
| 68 | link_directories("${CMAKE_PREFIX_PATH}/lib") | 68 | link_directories("${CMAKE_PREFIX_PATH}/lib") |
src/parsec.cpp+3| ... | @@ -570,6 +570,8 @@ static AstNode *trans_type(Context *c, const Type *ty, const SourceLocation &sou | ... | @@ -570,6 +570,8 @@ static AstNode *trans_type(Context *c, const Type *ty, const SourceLocation &sou |
| 570 | return trans_create_node_symbol_str(c, "f64"); | 570 | return trans_create_node_symbol_str(c, "f64"); |
| 571 | case BuiltinType::Float128: | 571 | case BuiltinType::Float128: |
| 572 | return trans_create_node_symbol_str(c, "f128"); | 572 | return trans_create_node_symbol_str(c, "f128"); |
| 573 | case BuiltinType::Float16: | ||
| 574 | return trans_create_node_symbol_str(c, "f16"); | ||
| 573 | case BuiltinType::LongDouble: | 575 | case BuiltinType::LongDouble: |
| 574 | return trans_create_node_symbol_str(c, "c_longdouble"); | 576 | return trans_create_node_symbol_str(c, "c_longdouble"); |
| 575 | case BuiltinType::WChar_U: | 577 | case BuiltinType::WChar_U: |
| ... | @@ -856,6 +858,7 @@ static AstNode *trans_type(Context *c, const Type *ty, const SourceLocation &sou | ... | @@ -856,6 +858,7 @@ static AstNode *trans_type(Context *c, const Type *ty, const SourceLocation &sou |
| 856 | case Type::Pipe: | 858 | case Type::Pipe: |
| 857 | case Type::ObjCTypeParam: | 859 | case Type::ObjCTypeParam: |
| 858 | case Type::DeducedTemplateSpecialization: | 860 | case Type::DeducedTemplateSpecialization: |
| 861 | case Type::DependentAddressSpace: | ||
| 859 | emit_warning(c, source_loc, "unsupported type: '%s'", ty->getTypeClassName()); | 862 | emit_warning(c, source_loc, "unsupported type: '%s'", ty->getTypeClassName()); |
| 860 | return nullptr; | 863 | return nullptr; |
| 861 | } | 864 | } |
src/target.cpp+25-1| ... | @@ -13,6 +13,7 @@ | ... | @@ -13,6 +13,7 @@ |
| 13 | #include <stdio.h> | 13 | #include <stdio.h> |
| 14 | 14 | ||
| 15 | static const ArchType arch_list[] = { | 15 | static const ArchType arch_list[] = { |
| 16 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_3a}, | ||
| 16 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_2a}, | 17 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_2a}, |
| 17 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_1a}, | 18 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8_1a}, |
| 18 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8}, | 19 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v8}, |
| ... | @@ -33,9 +34,30 @@ static const ArchType arch_list[] = { | ... | @@ -33,9 +34,30 @@ static const ArchType arch_list[] = { |
| 33 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v5te}, | 34 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v5te}, |
| 34 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v4t}, | 35 | {ZigLLVM_arm, ZigLLVM_ARMSubArch_v4t}, |
| 35 | 36 | ||
| 36 | {ZigLLVM_armeb, ZigLLVM_NoSubArch}, | 37 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_3a}, |
| 38 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_2a}, | ||
| 39 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8_1a}, | ||
| 40 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8}, | ||
| 41 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8r}, | ||
| 42 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8m_baseline}, | ||
| 43 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v8m_mainline}, | ||
| 44 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v7}, | ||
| 45 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v7em}, | ||
| 46 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v7m}, | ||
| 47 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v7s}, | ||
| 48 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v7k}, | ||
| 49 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v7ve}, | ||
| 50 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v6}, | ||
| 51 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v6m}, | ||
| 52 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v6k}, | ||
| 53 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v6t2}, | ||
| 54 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v5}, | ||
| 55 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v5te}, | ||
| 56 | {ZigLLVM_armeb, ZigLLVM_ARMSubArch_v4t}, | ||
| 57 | |||
| 37 | {ZigLLVM_aarch64, ZigLLVM_NoSubArch}, | 58 | {ZigLLVM_aarch64, ZigLLVM_NoSubArch}, |
| 38 | {ZigLLVM_aarch64_be, ZigLLVM_NoSubArch}, | 59 | {ZigLLVM_aarch64_be, ZigLLVM_NoSubArch}, |
| 60 | {ZigLLVM_arc, ZigLLVM_NoSubArch}, | ||
| 39 | {ZigLLVM_avr, ZigLLVM_NoSubArch}, | 61 | {ZigLLVM_avr, ZigLLVM_NoSubArch}, |
| 40 | {ZigLLVM_bpfel, ZigLLVM_NoSubArch}, | 62 | {ZigLLVM_bpfel, ZigLLVM_NoSubArch}, |
| 41 | {ZigLLVM_bpfeb, ZigLLVM_NoSubArch}, | 63 | {ZigLLVM_bpfeb, ZigLLVM_NoSubArch}, |
| ... | @@ -345,6 +367,7 @@ void resolve_target_object_format(ZigTarget *target) { | ... | @@ -345,6 +367,7 @@ void resolve_target_object_format(ZigTarget *target) { |
| 345 | case ZigLLVM_amdil: | 367 | case ZigLLVM_amdil: |
| 346 | case ZigLLVM_amdil64: | 368 | case ZigLLVM_amdil64: |
| 347 | case ZigLLVM_armeb: | 369 | case ZigLLVM_armeb: |
| 370 | case ZigLLVM_arc: | ||
| 348 | case ZigLLVM_avr: | 371 | case ZigLLVM_avr: |
| 349 | case ZigLLVM_bpfeb: | 372 | case ZigLLVM_bpfeb: |
| 350 | case ZigLLVM_bpfel: | 373 | case ZigLLVM_bpfel: |
| ... | @@ -407,6 +430,7 @@ static int get_arch_pointer_bit_width(ZigLLVM_ArchType arch) { | ... | @@ -407,6 +430,7 @@ static int get_arch_pointer_bit_width(ZigLLVM_ArchType arch) { |
| 407 | case ZigLLVM_msp430: | 430 | case ZigLLVM_msp430: |
| 408 | return 16; | 431 | return 16; |
| 409 | 432 | ||
| 433 | case ZigLLVM_arc: | ||
| 410 | case ZigLLVM_arm: | 434 | case ZigLLVM_arm: |
| 411 | case ZigLLVM_armeb: | 435 | case ZigLLVM_armeb: |
| 412 | case ZigLLVM_hexagon: | 436 | case ZigLLVM_hexagon: |
src/zig_llvm.cpp+6-2| ... | @@ -37,7 +37,7 @@ | ... | @@ -37,7 +37,7 @@ |
| 37 | #include <llvm/Transforms/IPO/AlwaysInliner.h> | 37 | #include <llvm/Transforms/IPO/AlwaysInliner.h> |
| 38 | #include <llvm/Transforms/Scalar.h> | 38 | #include <llvm/Transforms/Scalar.h> |
| 39 | 39 | ||
| 40 | #include <lld/Driver/Driver.h> | 40 | #include <lld/Common/Driver.h> |
| 41 | 41 | ||
| 42 | using namespace llvm; | 42 | using namespace llvm; |
| 43 | 43 | ||
| ... | @@ -605,11 +605,13 @@ static_assert((Triple::ArchType)ZigLLVM_LastArchType == Triple::LastArchType, "" | ... | @@ -605,11 +605,13 @@ static_assert((Triple::ArchType)ZigLLVM_LastArchType == Triple::LastArchType, "" |
| 605 | static_assert((Triple::VendorType)ZigLLVM_LastVendorType == Triple::LastVendorType, ""); | 605 | static_assert((Triple::VendorType)ZigLLVM_LastVendorType == Triple::LastVendorType, ""); |
| 606 | static_assert((Triple::OSType)ZigLLVM_LastOSType == Triple::LastOSType, ""); | 606 | static_assert((Triple::OSType)ZigLLVM_LastOSType == Triple::LastOSType, ""); |
| 607 | static_assert((Triple::EnvironmentType)ZigLLVM_LastEnvironmentType == Triple::LastEnvironmentType, ""); | 607 | static_assert((Triple::EnvironmentType)ZigLLVM_LastEnvironmentType == Triple::LastEnvironmentType, ""); |
| 608 | static_assert((Triple::SubArchType)ZigLLVM_KalimbaSubArch_v5 == Triple::KalimbaSubArch_v5, ""); | ||
| 608 | 609 | ||
| 609 | static_assert((Triple::ObjectFormatType)ZigLLVM_UnknownObjectFormat == Triple::UnknownObjectFormat, ""); | 610 | static_assert((Triple::ObjectFormatType)ZigLLVM_UnknownObjectFormat == Triple::UnknownObjectFormat, ""); |
| 610 | static_assert((Triple::ObjectFormatType)ZigLLVM_COFF == Triple::COFF, ""); | 611 | static_assert((Triple::ObjectFormatType)ZigLLVM_COFF == Triple::COFF, ""); |
| 611 | static_assert((Triple::ObjectFormatType)ZigLLVM_ELF == Triple::ELF, ""); | 612 | static_assert((Triple::ObjectFormatType)ZigLLVM_ELF == Triple::ELF, ""); |
| 612 | static_assert((Triple::ObjectFormatType)ZigLLVM_MachO == Triple::MachO, ""); | 613 | static_assert((Triple::ObjectFormatType)ZigLLVM_MachO == Triple::MachO, ""); |
| 614 | static_assert((Triple::ObjectFormatType)ZigLLVM_Wasm == Triple::Wasm, ""); | ||
| 613 | 615 | ||
| 614 | const char *ZigLLVMGetArchTypeName(ZigLLVM_ArchType arch) { | 616 | const char *ZigLLVMGetArchTypeName(ZigLLVM_ArchType arch) { |
| 615 | return (const char*)Triple::getArchTypeName((Triple::ArchType)arch).bytes_begin(); | 617 | return (const char*)Triple::getArchTypeName((Triple::ArchType)arch).bytes_begin(); |
| ... | @@ -648,6 +650,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { | ... | @@ -648,6 +650,8 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { |
| 648 | switch (sub_arch) { | 650 | switch (sub_arch) { |
| 649 | case ZigLLVM_NoSubArch: | 651 | case ZigLLVM_NoSubArch: |
| 650 | return "(none)"; | 652 | return "(none)"; |
| 653 | case ZigLLVM_ARMSubArch_v8_3a: | ||
| 654 | return "v8_3a"; | ||
| 651 | case ZigLLVM_ARMSubArch_v8_2a: | 655 | case ZigLLVM_ARMSubArch_v8_2a: |
| 652 | return "v8_2a"; | 656 | return "v8_2a"; |
| 653 | case ZigLLVM_ARMSubArch_v8_1a: | 657 | case ZigLLVM_ARMSubArch_v8_1a: |
| ... | @@ -775,7 +779,7 @@ bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_ | ... | @@ -775,7 +779,7 @@ bool ZigLLDLink(ZigLLVM_ObjectFormatType oformat, const char **args, size_t arg_ |
| 775 | zig_unreachable(); | 779 | zig_unreachable(); |
| 776 | 780 | ||
| 777 | case ZigLLVM_COFF: | 781 | case ZigLLVM_COFF: |
| 778 | return lld::coff::link(array_ref_args); | 782 | return lld::coff::link(array_ref_args, false); |
| 779 | 783 | ||
| 780 | case ZigLLVM_ELF: | 784 | case ZigLLVM_ELF: |
| 781 | return lld::elf::link(array_ref_args, false, diag); | 785 | return lld::elf::link(array_ref_args, false, diag); |
src/zig_llvm.hpp+3| ... | @@ -177,6 +177,7 @@ enum ZigLLVM_ArchType { | ... | @@ -177,6 +177,7 @@ enum ZigLLVM_ArchType { |
| 177 | ZigLLVM_armeb, // ARM (big endian): armeb | 177 | ZigLLVM_armeb, // ARM (big endian): armeb |
| 178 | ZigLLVM_aarch64, // AArch64 (little endian): aarch64 | 178 | ZigLLVM_aarch64, // AArch64 (little endian): aarch64 |
| 179 | ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be | 179 | ZigLLVM_aarch64_be, // AArch64 (big endian): aarch64_be |
| 180 | ZigLLVM_arc, // ARC: Synopsys ARC | ||
| 180 | ZigLLVM_avr, // AVR: Atmel AVR microcontroller | 181 | ZigLLVM_avr, // AVR: Atmel AVR microcontroller |
| 181 | ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian) | 182 | ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian) |
| 182 | ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian) | 183 | ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian) |
| ... | @@ -229,6 +230,7 @@ enum ZigLLVM_ArchType { | ... | @@ -229,6 +230,7 @@ enum ZigLLVM_ArchType { |
| 229 | enum ZigLLVM_SubArchType { | 230 | enum ZigLLVM_SubArchType { |
| 230 | ZigLLVM_NoSubArch, | 231 | ZigLLVM_NoSubArch, |
| 231 | 232 | ||
| 233 | ZigLLVM_ARMSubArch_v8_3a, | ||
| 232 | ZigLLVM_ARMSubArch_v8_2a, | 234 | ZigLLVM_ARMSubArch_v8_2a, |
| 233 | ZigLLVM_ARMSubArch_v8_1a, | 235 | ZigLLVM_ARMSubArch_v8_1a, |
| 234 | ZigLLVM_ARMSubArch_v8, | 236 | ZigLLVM_ARMSubArch_v8, |
| ... | @@ -318,6 +320,7 @@ enum ZigLLVM_EnvironmentType { | ... | @@ -318,6 +320,7 @@ enum ZigLLVM_EnvironmentType { |
| 318 | ZigLLVM_UnknownEnvironment, | 320 | ZigLLVM_UnknownEnvironment, |
| 319 | 321 | ||
| 320 | ZigLLVM_GNU, | 322 | ZigLLVM_GNU, |
| 323 | ZigLLVM_GNUABIN32, | ||
| 321 | ZigLLVM_GNUABI64, | 324 | ZigLLVM_GNUABI64, |
| 322 | ZigLLVM_GNUEABI, | 325 | ZigLLVM_GNUEABI, |
| 323 | ZigLLVM_GNUEABIHF, | 326 | ZigLLVM_GNUEABIHF, |
std/special/compiler_rt/index.zig+18-1| ... | @@ -93,7 +93,24 @@ fn isArmArch() -> bool { | ... | @@ -93,7 +93,24 @@ fn isArmArch() -> bool { |
| 93 | builtin.Arch.armv5, | 93 | builtin.Arch.armv5, |
| 94 | builtin.Arch.armv5te, | 94 | builtin.Arch.armv5te, |
| 95 | builtin.Arch.armv4t, | 95 | builtin.Arch.armv4t, |
| 96 | builtin.Arch.armeb => true, | 96 | builtin.Arch.armebv8_2a, |
| 97 | builtin.Arch.armebv8_1a, | ||
| 98 | builtin.Arch.armebv8, | ||
| 99 | builtin.Arch.armebv8r, | ||
| 100 | builtin.Arch.armebv8m_baseline, | ||
| 101 | builtin.Arch.armebv8m_mainline, | ||
| 102 | builtin.Arch.armebv7, | ||
| 103 | builtin.Arch.armebv7em, | ||
| 104 | builtin.Arch.armebv7m, | ||
| 105 | builtin.Arch.armebv7s, | ||
| 106 | builtin.Arch.armebv7k, | ||
| 107 | builtin.Arch.armebv6, | ||
| 108 | builtin.Arch.armebv6m, | ||
| 109 | builtin.Arch.armebv6k, | ||
| 110 | builtin.Arch.armebv6t2, | ||
| 111 | builtin.Arch.armebv5, | ||
| 112 | builtin.Arch.armebv5te, | ||
| 113 | builtin.Arch.armebv4t => true, | ||
| 97 | else => false, | 114 | else => false, |
| 98 | }; | 115 | }; |
| 99 | } | 116 | } |