| [1166] | 1 | /* Copyright (C) 2014-2021 Free Software Foundation, Inc. | 
|---|
|  | 2 |  | 
|---|
|  | 3 | This file is part of GCC. | 
|---|
|  | 4 |  | 
|---|
|  | 5 | GCC is free software; you can redistribute it and/or modify | 
|---|
|  | 6 | it under the terms of the GNU General Public License as published by | 
|---|
|  | 7 | the Free Software Foundation; either version 3, or (at your option) | 
|---|
|  | 8 | any later version. | 
|---|
|  | 9 |  | 
|---|
|  | 10 | GCC is distributed in the hope that it will be useful, | 
|---|
|  | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|---|
|  | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|---|
|  | 13 | GNU General Public License for more details. | 
|---|
|  | 14 |  | 
|---|
|  | 15 | Under Section 7 of GPL version 3, you are granted additional | 
|---|
|  | 16 | permissions described in the GCC Runtime Library Exception, version | 
|---|
|  | 17 | 3.1, as published by the Free Software Foundation. | 
|---|
|  | 18 |  | 
|---|
|  | 19 | You should have received a copy of the GNU General Public License and | 
|---|
|  | 20 | a copy of the GCC Runtime Library Exception along with this program; | 
|---|
|  | 21 | see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see | 
|---|
|  | 22 | <http://www.gnu.org/licenses/>.  */ | 
|---|
|  | 23 |  | 
|---|
|  | 24 | #ifndef _IMMINTRIN_H_INCLUDED | 
|---|
|  | 25 | #error "Never use <avx512bwintrin.h> directly; include <immintrin.h> instead." | 
|---|
|  | 26 | #endif | 
|---|
|  | 27 |  | 
|---|
|  | 28 | #ifndef _AVX512BWINTRIN_H_INCLUDED | 
|---|
|  | 29 | #define _AVX512BWINTRIN_H_INCLUDED | 
|---|
|  | 30 |  | 
|---|
|  | 31 | #ifndef __AVX512BW__ | 
|---|
|  | 32 | #pragma GCC push_options | 
|---|
|  | 33 | #pragma GCC target("avx512bw") | 
|---|
|  | 34 | #define __DISABLE_AVX512BW__ | 
|---|
|  | 35 | #endif /* __AVX512BW__ */ | 
|---|
|  | 36 |  | 
|---|
|  | 37 | /* Internal data types for implementing the intrinsics.  */ | 
|---|
|  | 38 | typedef short __v32hi __attribute__ ((__vector_size__ (64))); | 
|---|
|  | 39 | typedef short __v32hi_u __attribute__ ((__vector_size__ (64),   \ | 
|---|
|  | 40 | __may_alias__, __aligned__ (1))); | 
|---|
|  | 41 | typedef char __v64qi __attribute__ ((__vector_size__ (64))); | 
|---|
|  | 42 | typedef char __v64qi_u __attribute__ ((__vector_size__ (64),    \ | 
|---|
|  | 43 | __may_alias__, __aligned__ (1))); | 
|---|
|  | 44 |  | 
|---|
|  | 45 | typedef unsigned long long __mmask64; | 
|---|
|  | 46 |  | 
|---|
|  | 47 | extern __inline unsigned char | 
|---|
|  | 48 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 49 | _ktest_mask32_u8  (__mmask32 __A,  __mmask32 __B, unsigned char *__CF) | 
|---|
|  | 50 | { | 
|---|
|  | 51 | *__CF = (unsigned char) __builtin_ia32_ktestcsi (__A, __B); | 
|---|
|  | 52 | return (unsigned char) __builtin_ia32_ktestzsi (__A, __B); | 
|---|
|  | 53 | } | 
|---|
|  | 54 |  | 
|---|
|  | 55 | extern __inline unsigned char | 
|---|
|  | 56 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 57 | _ktest_mask64_u8  (__mmask64 __A,  __mmask64 __B, unsigned char *__CF) | 
|---|
|  | 58 | { | 
|---|
|  | 59 | *__CF = (unsigned char) __builtin_ia32_ktestcdi (__A, __B); | 
|---|
|  | 60 | return (unsigned char) __builtin_ia32_ktestzdi (__A, __B); | 
|---|
|  | 61 | } | 
|---|
|  | 62 |  | 
|---|
|  | 63 | extern __inline unsigned char | 
|---|
|  | 64 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 65 | _ktestz_mask32_u8 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 66 | { | 
|---|
|  | 67 | return (unsigned char) __builtin_ia32_ktestzsi (__A, __B); | 
|---|
|  | 68 | } | 
|---|
|  | 69 |  | 
|---|
|  | 70 | extern __inline unsigned char | 
|---|
|  | 71 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 72 | _ktestz_mask64_u8 (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 73 | { | 
|---|
|  | 74 | return (unsigned char) __builtin_ia32_ktestzdi (__A, __B); | 
|---|
|  | 75 | } | 
|---|
|  | 76 |  | 
|---|
|  | 77 | extern __inline unsigned char | 
|---|
|  | 78 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 79 | _ktestc_mask32_u8 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 80 | { | 
|---|
|  | 81 | return (unsigned char) __builtin_ia32_ktestcsi (__A, __B); | 
|---|
|  | 82 | } | 
|---|
|  | 83 |  | 
|---|
|  | 84 | extern __inline unsigned char | 
|---|
|  | 85 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 86 | _ktestc_mask64_u8 (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 87 | { | 
|---|
|  | 88 | return (unsigned char) __builtin_ia32_ktestcdi (__A, __B); | 
|---|
|  | 89 | } | 
|---|
|  | 90 |  | 
|---|
|  | 91 | extern __inline unsigned char | 
|---|
|  | 92 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 93 | _kortest_mask32_u8  (__mmask32 __A,  __mmask32 __B, unsigned char *__CF) | 
|---|
|  | 94 | { | 
|---|
|  | 95 | *__CF = (unsigned char) __builtin_ia32_kortestcsi (__A, __B); | 
|---|
|  | 96 | return (unsigned char) __builtin_ia32_kortestzsi (__A, __B); | 
|---|
|  | 97 | } | 
|---|
|  | 98 |  | 
|---|
|  | 99 | extern __inline unsigned char | 
|---|
|  | 100 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 101 | _kortest_mask64_u8  (__mmask64 __A,  __mmask64 __B, unsigned char *__CF) | 
|---|
|  | 102 | { | 
|---|
|  | 103 | *__CF = (unsigned char) __builtin_ia32_kortestcdi (__A, __B); | 
|---|
|  | 104 | return (unsigned char) __builtin_ia32_kortestzdi (__A, __B); | 
|---|
|  | 105 | } | 
|---|
|  | 106 |  | 
|---|
|  | 107 | extern __inline unsigned char | 
|---|
|  | 108 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 109 | _kortestz_mask32_u8 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 110 | { | 
|---|
|  | 111 | return (unsigned char) __builtin_ia32_kortestzsi (__A, __B); | 
|---|
|  | 112 | } | 
|---|
|  | 113 |  | 
|---|
|  | 114 | extern __inline unsigned char | 
|---|
|  | 115 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 116 | _kortestz_mask64_u8 (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 117 | { | 
|---|
|  | 118 | return (unsigned char) __builtin_ia32_kortestzdi (__A, __B); | 
|---|
|  | 119 | } | 
|---|
|  | 120 |  | 
|---|
|  | 121 | extern __inline unsigned char | 
|---|
|  | 122 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 123 | _kortestc_mask32_u8 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 124 | { | 
|---|
|  | 125 | return (unsigned char) __builtin_ia32_kortestcsi (__A, __B); | 
|---|
|  | 126 | } | 
|---|
|  | 127 |  | 
|---|
|  | 128 | extern __inline unsigned char | 
|---|
|  | 129 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 130 | _kortestc_mask64_u8 (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 131 | { | 
|---|
|  | 132 | return (unsigned char) __builtin_ia32_kortestcdi (__A, __B); | 
|---|
|  | 133 | } | 
|---|
|  | 134 |  | 
|---|
|  | 135 | extern __inline __mmask32 | 
|---|
|  | 136 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 137 | _kadd_mask32 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 138 | { | 
|---|
|  | 139 | return (__mmask32) __builtin_ia32_kaddsi ((__mmask32) __A, (__mmask32) __B); | 
|---|
|  | 140 | } | 
|---|
|  | 141 |  | 
|---|
|  | 142 | extern __inline __mmask64 | 
|---|
|  | 143 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 144 | _kadd_mask64 (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 145 | { | 
|---|
|  | 146 | return (__mmask64) __builtin_ia32_kadddi ((__mmask64) __A, (__mmask64) __B); | 
|---|
|  | 147 | } | 
|---|
|  | 148 |  | 
|---|
|  | 149 | extern __inline unsigned int | 
|---|
|  | 150 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 151 | _cvtmask32_u32 (__mmask32 __A) | 
|---|
|  | 152 | { | 
|---|
|  | 153 | return (unsigned int) __builtin_ia32_kmovd ((__mmask32) __A); | 
|---|
|  | 154 | } | 
|---|
|  | 155 |  | 
|---|
|  | 156 | extern __inline unsigned long long | 
|---|
|  | 157 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 158 | _cvtmask64_u64 (__mmask64 __A) | 
|---|
|  | 159 | { | 
|---|
|  | 160 | return (unsigned long long) __builtin_ia32_kmovq ((__mmask64) __A); | 
|---|
|  | 161 | } | 
|---|
|  | 162 |  | 
|---|
|  | 163 | extern __inline __mmask32 | 
|---|
|  | 164 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 165 | _cvtu32_mask32 (unsigned int __A) | 
|---|
|  | 166 | { | 
|---|
|  | 167 | return (__mmask32) __builtin_ia32_kmovd ((__mmask32) __A); | 
|---|
|  | 168 | } | 
|---|
|  | 169 |  | 
|---|
|  | 170 | extern __inline __mmask64 | 
|---|
|  | 171 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 172 | _cvtu64_mask64 (unsigned long long __A) | 
|---|
|  | 173 | { | 
|---|
|  | 174 | return (__mmask64) __builtin_ia32_kmovq ((__mmask64) __A); | 
|---|
|  | 175 | } | 
|---|
|  | 176 |  | 
|---|
|  | 177 | extern __inline __mmask32 | 
|---|
|  | 178 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 179 | _load_mask32 (__mmask32 *__A) | 
|---|
|  | 180 | { | 
|---|
|  | 181 | return (__mmask32) __builtin_ia32_kmovd (*__A); | 
|---|
|  | 182 | } | 
|---|
|  | 183 |  | 
|---|
|  | 184 | extern __inline __mmask64 | 
|---|
|  | 185 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 186 | _load_mask64 (__mmask64 *__A) | 
|---|
|  | 187 | { | 
|---|
|  | 188 | return (__mmask64) __builtin_ia32_kmovq (*(__mmask64 *) __A); | 
|---|
|  | 189 | } | 
|---|
|  | 190 |  | 
|---|
|  | 191 | extern __inline void | 
|---|
|  | 192 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 193 | _store_mask32 (__mmask32 *__A, __mmask32 __B) | 
|---|
|  | 194 | { | 
|---|
|  | 195 | *(__mmask32 *) __A = __builtin_ia32_kmovd (__B); | 
|---|
|  | 196 | } | 
|---|
|  | 197 |  | 
|---|
|  | 198 | extern __inline void | 
|---|
|  | 199 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 200 | _store_mask64 (__mmask64 *__A, __mmask64 __B) | 
|---|
|  | 201 | { | 
|---|
|  | 202 | *(__mmask64 *) __A = __builtin_ia32_kmovq (__B); | 
|---|
|  | 203 | } | 
|---|
|  | 204 |  | 
|---|
|  | 205 | extern __inline __mmask32 | 
|---|
|  | 206 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 207 | _knot_mask32 (__mmask32 __A) | 
|---|
|  | 208 | { | 
|---|
|  | 209 | return (__mmask32) __builtin_ia32_knotsi ((__mmask32) __A); | 
|---|
|  | 210 | } | 
|---|
|  | 211 |  | 
|---|
|  | 212 | extern __inline __mmask64 | 
|---|
|  | 213 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 214 | _knot_mask64 (__mmask64 __A) | 
|---|
|  | 215 | { | 
|---|
|  | 216 | return (__mmask64) __builtin_ia32_knotdi ((__mmask64) __A); | 
|---|
|  | 217 | } | 
|---|
|  | 218 |  | 
|---|
|  | 219 | extern __inline __mmask32 | 
|---|
|  | 220 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 221 | _kor_mask32 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 222 | { | 
|---|
|  | 223 | return (__mmask32) __builtin_ia32_korsi ((__mmask32) __A, (__mmask32) __B); | 
|---|
|  | 224 | } | 
|---|
|  | 225 |  | 
|---|
|  | 226 | extern __inline __mmask64 | 
|---|
|  | 227 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 228 | _kor_mask64 (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 229 | { | 
|---|
|  | 230 | return (__mmask64) __builtin_ia32_kordi ((__mmask64) __A, (__mmask64) __B); | 
|---|
|  | 231 | } | 
|---|
|  | 232 |  | 
|---|
|  | 233 | extern __inline __mmask32 | 
|---|
|  | 234 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 235 | _kxnor_mask32 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 236 | { | 
|---|
|  | 237 | return (__mmask32) __builtin_ia32_kxnorsi ((__mmask32) __A, (__mmask32) __B); | 
|---|
|  | 238 | } | 
|---|
|  | 239 |  | 
|---|
|  | 240 | extern __inline __mmask64 | 
|---|
|  | 241 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 242 | _kxnor_mask64 (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 243 | { | 
|---|
|  | 244 | return (__mmask64) __builtin_ia32_kxnordi ((__mmask64) __A, (__mmask64) __B); | 
|---|
|  | 245 | } | 
|---|
|  | 246 |  | 
|---|
|  | 247 | extern __inline __mmask32 | 
|---|
|  | 248 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 249 | _kxor_mask32 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 250 | { | 
|---|
|  | 251 | return (__mmask32) __builtin_ia32_kxorsi ((__mmask32) __A, (__mmask32) __B); | 
|---|
|  | 252 | } | 
|---|
|  | 253 |  | 
|---|
|  | 254 | extern __inline __mmask64 | 
|---|
|  | 255 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 256 | _kxor_mask64 (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 257 | { | 
|---|
|  | 258 | return (__mmask64) __builtin_ia32_kxordi ((__mmask64) __A, (__mmask64) __B); | 
|---|
|  | 259 | } | 
|---|
|  | 260 |  | 
|---|
|  | 261 | extern __inline __mmask32 | 
|---|
|  | 262 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 263 | _kand_mask32 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 264 | { | 
|---|
|  | 265 | return (__mmask32) __builtin_ia32_kandsi ((__mmask32) __A, (__mmask32) __B); | 
|---|
|  | 266 | } | 
|---|
|  | 267 |  | 
|---|
|  | 268 | extern __inline __mmask64 | 
|---|
|  | 269 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 270 | _kand_mask64 (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 271 | { | 
|---|
|  | 272 | return (__mmask64) __builtin_ia32_kanddi ((__mmask64) __A, (__mmask64) __B); | 
|---|
|  | 273 | } | 
|---|
|  | 274 |  | 
|---|
|  | 275 | extern __inline __mmask32 | 
|---|
|  | 276 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 277 | _kandn_mask32 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 278 | { | 
|---|
|  | 279 | return (__mmask32) __builtin_ia32_kandnsi ((__mmask32) __A, (__mmask32) __B); | 
|---|
|  | 280 | } | 
|---|
|  | 281 |  | 
|---|
|  | 282 | extern __inline __mmask64 | 
|---|
|  | 283 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 284 | _kandn_mask64 (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 285 | { | 
|---|
|  | 286 | return (__mmask64) __builtin_ia32_kandndi ((__mmask64) __A, (__mmask64) __B); | 
|---|
|  | 287 | } | 
|---|
|  | 288 |  | 
|---|
|  | 289 | extern __inline __m512i | 
|---|
|  | 290 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 291 | _mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A) | 
|---|
|  | 292 | { | 
|---|
|  | 293 | return (__m512i) __builtin_ia32_movdquhi512_mask ((__v32hi) __A, | 
|---|
|  | 294 | (__v32hi) __W, | 
|---|
|  | 295 | (__mmask32) __U); | 
|---|
|  | 296 | } | 
|---|
|  | 297 |  | 
|---|
|  | 298 | extern __inline __m512i | 
|---|
|  | 299 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 300 | _mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A) | 
|---|
|  | 301 | { | 
|---|
|  | 302 | return (__m512i) __builtin_ia32_movdquhi512_mask ((__v32hi) __A, | 
|---|
|  | 303 | (__v32hi) | 
|---|
|  | 304 | _mm512_setzero_si512 (), | 
|---|
|  | 305 | (__mmask32) __U); | 
|---|
|  | 306 | } | 
|---|
|  | 307 |  | 
|---|
|  | 308 | extern __inline __m512i | 
|---|
|  | 309 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 310 | _mm512_loadu_epi16 (void const *__P) | 
|---|
|  | 311 | { | 
|---|
|  | 312 | return (__m512i) (*(__v32hi_u *) __P); | 
|---|
|  | 313 | } | 
|---|
|  | 314 |  | 
|---|
|  | 315 | extern __inline __m512i | 
|---|
|  | 316 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 317 | _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P) | 
|---|
|  | 318 | { | 
|---|
|  | 319 | return (__m512i) __builtin_ia32_loaddquhi512_mask ((const short *) __P, | 
|---|
|  | 320 | (__v32hi) __W, | 
|---|
|  | 321 | (__mmask32) __U); | 
|---|
|  | 322 | } | 
|---|
|  | 323 |  | 
|---|
|  | 324 | extern __inline __m512i | 
|---|
|  | 325 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 326 | _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P) | 
|---|
|  | 327 | { | 
|---|
|  | 328 | return (__m512i) __builtin_ia32_loaddquhi512_mask ((const short *) __P, | 
|---|
|  | 329 | (__v32hi) | 
|---|
|  | 330 | _mm512_setzero_si512 (), | 
|---|
|  | 331 | (__mmask32) __U); | 
|---|
|  | 332 | } | 
|---|
|  | 333 |  | 
|---|
|  | 334 | extern __inline void | 
|---|
|  | 335 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 336 | _mm512_storeu_epi16 (void *__P, __m512i __A) | 
|---|
|  | 337 | { | 
|---|
|  | 338 | *(__v32hi_u *) __P = (__v32hi_u) __A; | 
|---|
|  | 339 | } | 
|---|
|  | 340 |  | 
|---|
|  | 341 | extern __inline void | 
|---|
|  | 342 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 343 | _mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A) | 
|---|
|  | 344 | { | 
|---|
|  | 345 | __builtin_ia32_storedquhi512_mask ((short *) __P, | 
|---|
|  | 346 | (__v32hi) __A, | 
|---|
|  | 347 | (__mmask32) __U); | 
|---|
|  | 348 | } | 
|---|
|  | 349 |  | 
|---|
|  | 350 | extern __inline __m512i | 
|---|
|  | 351 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 352 | _mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A) | 
|---|
|  | 353 | { | 
|---|
|  | 354 | return (__m512i) __builtin_ia32_movdquqi512_mask ((__v64qi) __A, | 
|---|
|  | 355 | (__v64qi) __W, | 
|---|
|  | 356 | (__mmask64) __U); | 
|---|
|  | 357 | } | 
|---|
|  | 358 |  | 
|---|
|  | 359 | extern __inline __m512i | 
|---|
|  | 360 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 361 | _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A) | 
|---|
|  | 362 | { | 
|---|
|  | 363 | return (__m512i) __builtin_ia32_movdquqi512_mask ((__v64qi) __A, | 
|---|
|  | 364 | (__v64qi) | 
|---|
|  | 365 | _mm512_setzero_si512 (), | 
|---|
|  | 366 | (__mmask64) __U); | 
|---|
|  | 367 | } | 
|---|
|  | 368 |  | 
|---|
|  | 369 | extern __inline __mmask32 | 
|---|
|  | 370 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 371 | _mm512_kunpackw (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 372 | { | 
|---|
|  | 373 | return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A, | 
|---|
|  | 374 | (__mmask32) __B); | 
|---|
|  | 375 | } | 
|---|
|  | 376 |  | 
|---|
|  | 377 | extern __inline __mmask32 | 
|---|
|  | 378 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 379 | _kunpackw_mask32 (__mmask16 __A, __mmask16 __B) | 
|---|
|  | 380 | { | 
|---|
|  | 381 | return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A, | 
|---|
|  | 382 | (__mmask32) __B); | 
|---|
|  | 383 | } | 
|---|
|  | 384 |  | 
|---|
|  | 385 | extern __inline __mmask64 | 
|---|
|  | 386 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 387 | _mm512_kunpackd (__mmask64 __A, __mmask64 __B) | 
|---|
|  | 388 | { | 
|---|
|  | 389 | return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A, | 
|---|
|  | 390 | (__mmask64) __B); | 
|---|
|  | 391 | } | 
|---|
|  | 392 |  | 
|---|
|  | 393 | extern __inline __mmask64 | 
|---|
|  | 394 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 395 | _kunpackd_mask64 (__mmask32 __A, __mmask32 __B) | 
|---|
|  | 396 | { | 
|---|
|  | 397 | return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A, | 
|---|
|  | 398 | (__mmask64) __B); | 
|---|
|  | 399 | } | 
|---|
|  | 400 |  | 
|---|
|  | 401 | extern __inline __m512i | 
|---|
|  | 402 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 403 | _mm512_loadu_epi8 (void const *__P) | 
|---|
|  | 404 | { | 
|---|
|  | 405 | return (__m512i) (*(__v64qi_u *) __P); | 
|---|
|  | 406 | } | 
|---|
|  | 407 |  | 
|---|
|  | 408 | extern __inline __m512i | 
|---|
|  | 409 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 410 | _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P) | 
|---|
|  | 411 | { | 
|---|
|  | 412 | return (__m512i) __builtin_ia32_loaddquqi512_mask ((const char *) __P, | 
|---|
|  | 413 | (__v64qi) __W, | 
|---|
|  | 414 | (__mmask64) __U); | 
|---|
|  | 415 | } | 
|---|
|  | 416 |  | 
|---|
|  | 417 | extern __inline __m512i | 
|---|
|  | 418 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 419 | _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P) | 
|---|
|  | 420 | { | 
|---|
|  | 421 | return (__m512i) __builtin_ia32_loaddquqi512_mask ((const char *) __P, | 
|---|
|  | 422 | (__v64qi) | 
|---|
|  | 423 | _mm512_setzero_si512 (), | 
|---|
|  | 424 | (__mmask64) __U); | 
|---|
|  | 425 | } | 
|---|
|  | 426 |  | 
|---|
|  | 427 | extern __inline void | 
|---|
|  | 428 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 429 | _mm512_storeu_epi8 (void *__P, __m512i __A) | 
|---|
|  | 430 | { | 
|---|
|  | 431 | *(__v64qi_u *) __P = (__v64qi_u) __A; | 
|---|
|  | 432 | } | 
|---|
|  | 433 |  | 
|---|
|  | 434 | extern __inline void | 
|---|
|  | 435 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 436 | _mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A) | 
|---|
|  | 437 | { | 
|---|
|  | 438 | __builtin_ia32_storedquqi512_mask ((char *) __P, | 
|---|
|  | 439 | (__v64qi) __A, | 
|---|
|  | 440 | (__mmask64) __U); | 
|---|
|  | 441 | } | 
|---|
|  | 442 |  | 
|---|
|  | 443 | extern __inline __m512i | 
|---|
|  | 444 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 445 | _mm512_sad_epu8 (__m512i __A, __m512i __B) | 
|---|
|  | 446 | { | 
|---|
|  | 447 | return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A, | 
|---|
|  | 448 | (__v64qi) __B); | 
|---|
|  | 449 | } | 
|---|
|  | 450 |  | 
|---|
|  | 451 | extern __inline __m256i | 
|---|
|  | 452 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 453 | _mm512_cvtepi16_epi8 (__m512i __A) | 
|---|
|  | 454 | { | 
|---|
|  | 455 | return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, | 
|---|
|  | 456 | (__v32qi) _mm256_undefined_si256(), | 
|---|
|  | 457 | (__mmask32) -1); | 
|---|
|  | 458 | } | 
|---|
|  | 459 |  | 
|---|
|  | 460 | extern __inline void | 
|---|
|  | 461 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 462 | _mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A) | 
|---|
|  | 463 | { | 
|---|
|  | 464 | __builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M); | 
|---|
|  | 465 | } | 
|---|
|  | 466 |  | 
|---|
|  | 467 | extern __inline __m256i | 
|---|
|  | 468 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 469 | _mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) | 
|---|
|  | 470 | { | 
|---|
|  | 471 | return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, | 
|---|
|  | 472 | (__v32qi) __O, __M); | 
|---|
|  | 473 | } | 
|---|
|  | 474 |  | 
|---|
|  | 475 | extern __inline __m256i | 
|---|
|  | 476 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 477 | _mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A) | 
|---|
|  | 478 | { | 
|---|
|  | 479 | return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, | 
|---|
|  | 480 | (__v32qi) | 
|---|
|  | 481 | _mm256_setzero_si256 (), | 
|---|
|  | 482 | __M); | 
|---|
|  | 483 | } | 
|---|
|  | 484 |  | 
|---|
|  | 485 | extern __inline __m256i | 
|---|
|  | 486 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 487 | _mm512_cvtsepi16_epi8 (__m512i __A) | 
|---|
|  | 488 | { | 
|---|
|  | 489 | return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, | 
|---|
|  | 490 | (__v32qi)_mm256_undefined_si256(), | 
|---|
|  | 491 | (__mmask32) -1); | 
|---|
|  | 492 | } | 
|---|
|  | 493 |  | 
|---|
|  | 494 | extern __inline void | 
|---|
|  | 495 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 496 | _mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A) | 
|---|
|  | 497 | { | 
|---|
|  | 498 | __builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M); | 
|---|
|  | 499 | } | 
|---|
|  | 500 |  | 
|---|
|  | 501 | extern __inline __m256i | 
|---|
|  | 502 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 503 | _mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) | 
|---|
|  | 504 | { | 
|---|
|  | 505 | return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, | 
|---|
|  | 506 | (__v32qi)__O, | 
|---|
|  | 507 | __M); | 
|---|
|  | 508 | } | 
|---|
|  | 509 |  | 
|---|
|  | 510 | extern __inline __m256i | 
|---|
|  | 511 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 512 | _mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A) | 
|---|
|  | 513 | { | 
|---|
|  | 514 | return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, | 
|---|
|  | 515 | (__v32qi) | 
|---|
|  | 516 | _mm256_setzero_si256 (), | 
|---|
|  | 517 | __M); | 
|---|
|  | 518 | } | 
|---|
|  | 519 |  | 
|---|
|  | 520 | extern __inline __m256i | 
|---|
|  | 521 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 522 | _mm512_cvtusepi16_epi8 (__m512i __A) | 
|---|
|  | 523 | { | 
|---|
|  | 524 | return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, | 
|---|
|  | 525 | (__v32qi)_mm256_undefined_si256(), | 
|---|
|  | 526 | (__mmask32) -1); | 
|---|
|  | 527 | } | 
|---|
|  | 528 |  | 
|---|
|  | 529 | extern __inline __m256i | 
|---|
|  | 530 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 531 | _mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) | 
|---|
|  | 532 | { | 
|---|
|  | 533 | return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, | 
|---|
|  | 534 | (__v32qi) __O, | 
|---|
|  | 535 | __M); | 
|---|
|  | 536 | } | 
|---|
|  | 537 |  | 
|---|
|  | 538 | extern __inline void | 
|---|
|  | 539 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 540 | _mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A) | 
|---|
|  | 541 | { | 
|---|
|  | 542 | __builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M); | 
|---|
|  | 543 | } | 
|---|
|  | 544 |  | 
|---|
|  | 545 | extern __inline __m256i | 
|---|
|  | 546 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 547 | _mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A) | 
|---|
|  | 548 | { | 
|---|
|  | 549 | return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, | 
|---|
|  | 550 | (__v32qi) | 
|---|
|  | 551 | _mm256_setzero_si256 (), | 
|---|
|  | 552 | __M); | 
|---|
|  | 553 | } | 
|---|
|  | 554 |  | 
|---|
|  | 555 | extern __inline __m512i | 
|---|
|  | 556 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 557 | _mm512_broadcastb_epi8 (__m128i __A) | 
|---|
|  | 558 | { | 
|---|
|  | 559 | return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A, | 
|---|
|  | 560 | (__v64qi)_mm512_undefined_epi32(), | 
|---|
|  | 561 | (__mmask64) -1); | 
|---|
|  | 562 | } | 
|---|
|  | 563 |  | 
|---|
|  | 564 | extern __inline __m512i | 
|---|
|  | 565 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 566 | _mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A) | 
|---|
|  | 567 | { | 
|---|
|  | 568 | return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A, | 
|---|
|  | 569 | (__v64qi) __O, | 
|---|
|  | 570 | __M); | 
|---|
|  | 571 | } | 
|---|
|  | 572 |  | 
|---|
|  | 573 | extern __inline __m512i | 
|---|
|  | 574 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 575 | _mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A) | 
|---|
|  | 576 | { | 
|---|
|  | 577 | return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A, | 
|---|
|  | 578 | (__v64qi) | 
|---|
|  | 579 | _mm512_setzero_si512 (), | 
|---|
|  | 580 | __M); | 
|---|
|  | 581 | } | 
|---|
|  | 582 |  | 
|---|
|  | 583 | extern __inline __m512i | 
|---|
|  | 584 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 585 | _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A) | 
|---|
|  | 586 | { | 
|---|
|  | 587 | return (__m512i) __builtin_ia32_pbroadcastb512_gpr_mask (__A, | 
|---|
|  | 588 | (__v64qi) __O, | 
|---|
|  | 589 | __M); | 
|---|
|  | 590 | } | 
|---|
|  | 591 |  | 
|---|
|  | 592 | extern __inline __m512i | 
|---|
|  | 593 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 594 | _mm512_maskz_set1_epi8 (__mmask64 __M, char __A) | 
|---|
|  | 595 | { | 
|---|
|  | 596 | return (__m512i) | 
|---|
|  | 597 | __builtin_ia32_pbroadcastb512_gpr_mask (__A, | 
|---|
|  | 598 | (__v64qi) | 
|---|
|  | 599 | _mm512_setzero_si512 (), | 
|---|
|  | 600 | __M); | 
|---|
|  | 601 | } | 
|---|
|  | 602 |  | 
|---|
|  | 603 | extern __inline __m512i | 
|---|
|  | 604 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 605 | _mm512_broadcastw_epi16 (__m128i __A) | 
|---|
|  | 606 | { | 
|---|
|  | 607 | return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A, | 
|---|
|  | 608 | (__v32hi)_mm512_undefined_epi32(), | 
|---|
|  | 609 | (__mmask32) -1); | 
|---|
|  | 610 | } | 
|---|
|  | 611 |  | 
|---|
|  | 612 | extern __inline __m512i | 
|---|
|  | 613 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 614 | _mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A) | 
|---|
|  | 615 | { | 
|---|
|  | 616 | return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A, | 
|---|
|  | 617 | (__v32hi) __O, | 
|---|
|  | 618 | __M); | 
|---|
|  | 619 | } | 
|---|
|  | 620 |  | 
|---|
|  | 621 | extern __inline __m512i | 
|---|
|  | 622 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 623 | _mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A) | 
|---|
|  | 624 | { | 
|---|
|  | 625 | return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A, | 
|---|
|  | 626 | (__v32hi) | 
|---|
|  | 627 | _mm512_setzero_si512 (), | 
|---|
|  | 628 | __M); | 
|---|
|  | 629 | } | 
|---|
|  | 630 |  | 
|---|
|  | 631 | extern __inline __m512i | 
|---|
|  | 632 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 633 | _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A) | 
|---|
|  | 634 | { | 
|---|
|  | 635 | return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A, | 
|---|
|  | 636 | (__v32hi) __O, | 
|---|
|  | 637 | __M); | 
|---|
|  | 638 | } | 
|---|
|  | 639 |  | 
|---|
|  | 640 | extern __inline __m512i | 
|---|
|  | 641 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 642 | _mm512_maskz_set1_epi16 (__mmask32 __M, short __A) | 
|---|
|  | 643 | { | 
|---|
|  | 644 | return (__m512i) | 
|---|
|  | 645 | __builtin_ia32_pbroadcastw512_gpr_mask (__A, | 
|---|
|  | 646 | (__v32hi) | 
|---|
|  | 647 | _mm512_setzero_si512 (), | 
|---|
|  | 648 | __M); | 
|---|
|  | 649 | } | 
|---|
|  | 650 |  | 
|---|
|  | 651 | extern __inline __m512i | 
|---|
|  | 652 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 653 | _mm512_mulhrs_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 654 | { | 
|---|
|  | 655 | return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A, | 
|---|
|  | 656 | (__v32hi) __B, | 
|---|
|  | 657 | (__v32hi) | 
|---|
|  | 658 | _mm512_setzero_si512 (), | 
|---|
|  | 659 | (__mmask32) -1); | 
|---|
|  | 660 | } | 
|---|
|  | 661 |  | 
|---|
|  | 662 | extern __inline __m512i | 
|---|
|  | 663 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 664 | _mm512_mask_mulhrs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 665 | __m512i __B) | 
|---|
|  | 666 | { | 
|---|
|  | 667 | return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A, | 
|---|
|  | 668 | (__v32hi) __B, | 
|---|
|  | 669 | (__v32hi) __W, | 
|---|
|  | 670 | (__mmask32) __U); | 
|---|
|  | 671 | } | 
|---|
|  | 672 |  | 
|---|
|  | 673 | extern __inline __m512i | 
|---|
|  | 674 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 675 | _mm512_maskz_mulhrs_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 676 | { | 
|---|
|  | 677 | return (__m512i) __builtin_ia32_pmulhrsw512_mask ((__v32hi) __A, | 
|---|
|  | 678 | (__v32hi) __B, | 
|---|
|  | 679 | (__v32hi) | 
|---|
|  | 680 | _mm512_setzero_si512 (), | 
|---|
|  | 681 | (__mmask32) __U); | 
|---|
|  | 682 | } | 
|---|
|  | 683 |  | 
|---|
|  | 684 | extern __inline __m512i | 
|---|
|  | 685 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 686 | _mm512_mulhi_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 687 | { | 
|---|
|  | 688 | return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A, | 
|---|
|  | 689 | (__v32hi) __B, | 
|---|
|  | 690 | (__v32hi) | 
|---|
|  | 691 | _mm512_setzero_si512 (), | 
|---|
|  | 692 | (__mmask32) -1); | 
|---|
|  | 693 | } | 
|---|
|  | 694 |  | 
|---|
|  | 695 | extern __inline __m512i | 
|---|
|  | 696 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 697 | _mm512_mask_mulhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 698 | __m512i __B) | 
|---|
|  | 699 | { | 
|---|
|  | 700 | return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A, | 
|---|
|  | 701 | (__v32hi) __B, | 
|---|
|  | 702 | (__v32hi) __W, | 
|---|
|  | 703 | (__mmask32) __U); | 
|---|
|  | 704 | } | 
|---|
|  | 705 |  | 
|---|
|  | 706 | extern __inline __m512i | 
|---|
|  | 707 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 708 | _mm512_maskz_mulhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 709 | { | 
|---|
|  | 710 | return (__m512i) __builtin_ia32_pmulhw512_mask ((__v32hi) __A, | 
|---|
|  | 711 | (__v32hi) __B, | 
|---|
|  | 712 | (__v32hi) | 
|---|
|  | 713 | _mm512_setzero_si512 (), | 
|---|
|  | 714 | (__mmask32) __U); | 
|---|
|  | 715 | } | 
|---|
|  | 716 |  | 
|---|
|  | 717 | extern __inline __m512i | 
|---|
|  | 718 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 719 | _mm512_mulhi_epu16 (__m512i __A, __m512i __B) | 
|---|
|  | 720 | { | 
|---|
|  | 721 | return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A, | 
|---|
|  | 722 | (__v32hi) __B, | 
|---|
|  | 723 | (__v32hi) | 
|---|
|  | 724 | _mm512_setzero_si512 (), | 
|---|
|  | 725 | (__mmask32) -1); | 
|---|
|  | 726 | } | 
|---|
|  | 727 |  | 
|---|
|  | 728 | extern __inline __m512i | 
|---|
|  | 729 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 730 | _mm512_mask_mulhi_epu16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 731 | __m512i __B) | 
|---|
|  | 732 | { | 
|---|
|  | 733 | return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A, | 
|---|
|  | 734 | (__v32hi) __B, | 
|---|
|  | 735 | (__v32hi) __W, | 
|---|
|  | 736 | (__mmask32) __U); | 
|---|
|  | 737 | } | 
|---|
|  | 738 |  | 
|---|
|  | 739 | extern __inline __m512i | 
|---|
|  | 740 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 741 | _mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 742 | { | 
|---|
|  | 743 | return (__m512i) __builtin_ia32_pmulhuw512_mask ((__v32hi) __A, | 
|---|
|  | 744 | (__v32hi) __B, | 
|---|
|  | 745 | (__v32hi) | 
|---|
|  | 746 | _mm512_setzero_si512 (), | 
|---|
|  | 747 | (__mmask32) __U); | 
|---|
|  | 748 | } | 
|---|
|  | 749 |  | 
|---|
|  | 750 | extern __inline __m512i | 
|---|
|  | 751 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 752 | _mm512_mullo_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 753 | { | 
|---|
|  | 754 | return (__m512i) ((__v32hu) __A * (__v32hu) __B); | 
|---|
|  | 755 | } | 
|---|
|  | 756 |  | 
|---|
|  | 757 | extern __inline __m512i | 
|---|
|  | 758 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 759 | _mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 760 | __m512i __B) | 
|---|
|  | 761 | { | 
|---|
|  | 762 | return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A, | 
|---|
|  | 763 | (__v32hi) __B, | 
|---|
|  | 764 | (__v32hi) __W, | 
|---|
|  | 765 | (__mmask32) __U); | 
|---|
|  | 766 | } | 
|---|
|  | 767 |  | 
|---|
|  | 768 | extern __inline __m512i | 
|---|
|  | 769 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 770 | _mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 771 | { | 
|---|
|  | 772 | return (__m512i) __builtin_ia32_pmullw512_mask ((__v32hi) __A, | 
|---|
|  | 773 | (__v32hi) __B, | 
|---|
|  | 774 | (__v32hi) | 
|---|
|  | 775 | _mm512_setzero_si512 (), | 
|---|
|  | 776 | (__mmask32) __U); | 
|---|
|  | 777 | } | 
|---|
|  | 778 |  | 
|---|
|  | 779 | extern __inline __m512i | 
|---|
|  | 780 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 781 | _mm512_cvtepi8_epi16 (__m256i __A) | 
|---|
|  | 782 | { | 
|---|
|  | 783 | return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A, | 
|---|
|  | 784 | (__v32hi) | 
|---|
|  | 785 | _mm512_setzero_si512 (), | 
|---|
|  | 786 | (__mmask32) -1); | 
|---|
|  | 787 | } | 
|---|
|  | 788 |  | 
|---|
|  | 789 | extern __inline __m512i | 
|---|
|  | 790 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 791 | _mm512_mask_cvtepi8_epi16 (__m512i __W, __mmask32 __U, __m256i __A) | 
|---|
|  | 792 | { | 
|---|
|  | 793 | return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A, | 
|---|
|  | 794 | (__v32hi) __W, | 
|---|
|  | 795 | (__mmask32) __U); | 
|---|
|  | 796 | } | 
|---|
|  | 797 |  | 
|---|
|  | 798 | extern __inline __m512i | 
|---|
|  | 799 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 800 | _mm512_maskz_cvtepi8_epi16 (__mmask32 __U, __m256i __A) | 
|---|
|  | 801 | { | 
|---|
|  | 802 | return (__m512i) __builtin_ia32_pmovsxbw512_mask ((__v32qi) __A, | 
|---|
|  | 803 | (__v32hi) | 
|---|
|  | 804 | _mm512_setzero_si512 (), | 
|---|
|  | 805 | (__mmask32) __U); | 
|---|
|  | 806 | } | 
|---|
|  | 807 |  | 
|---|
|  | 808 | extern __inline __m512i | 
|---|
|  | 809 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 810 | _mm512_cvtepu8_epi16 (__m256i __A) | 
|---|
|  | 811 | { | 
|---|
|  | 812 | return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A, | 
|---|
|  | 813 | (__v32hi) | 
|---|
|  | 814 | _mm512_setzero_si512 (), | 
|---|
|  | 815 | (__mmask32) -1); | 
|---|
|  | 816 | } | 
|---|
|  | 817 |  | 
|---|
|  | 818 | extern __inline __m512i | 
|---|
|  | 819 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 820 | _mm512_mask_cvtepu8_epi16 (__m512i __W, __mmask32 __U, __m256i __A) | 
|---|
|  | 821 | { | 
|---|
|  | 822 | return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A, | 
|---|
|  | 823 | (__v32hi) __W, | 
|---|
|  | 824 | (__mmask32) __U); | 
|---|
|  | 825 | } | 
|---|
|  | 826 |  | 
|---|
|  | 827 | extern __inline __m512i | 
|---|
|  | 828 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 829 | _mm512_maskz_cvtepu8_epi16 (__mmask32 __U, __m256i __A) | 
|---|
|  | 830 | { | 
|---|
|  | 831 | return (__m512i) __builtin_ia32_pmovzxbw512_mask ((__v32qi) __A, | 
|---|
|  | 832 | (__v32hi) | 
|---|
|  | 833 | _mm512_setzero_si512 (), | 
|---|
|  | 834 | (__mmask32) __U); | 
|---|
|  | 835 | } | 
|---|
|  | 836 |  | 
|---|
|  | 837 | extern __inline __m512i | 
|---|
|  | 838 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 839 | _mm512_permutexvar_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 840 | { | 
|---|
|  | 841 | return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B, | 
|---|
|  | 842 | (__v32hi) __A, | 
|---|
|  | 843 | (__v32hi) | 
|---|
|  | 844 | _mm512_setzero_si512 (), | 
|---|
|  | 845 | (__mmask32) -1); | 
|---|
|  | 846 | } | 
|---|
|  | 847 |  | 
|---|
|  | 848 | extern __inline __m512i | 
|---|
|  | 849 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 850 | _mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A, | 
|---|
|  | 851 | __m512i __B) | 
|---|
|  | 852 | { | 
|---|
|  | 853 | return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B, | 
|---|
|  | 854 | (__v32hi) __A, | 
|---|
|  | 855 | (__v32hi) | 
|---|
|  | 856 | _mm512_setzero_si512 (), | 
|---|
|  | 857 | (__mmask32) __M); | 
|---|
|  | 858 | } | 
|---|
|  | 859 |  | 
|---|
|  | 860 | extern __inline __m512i | 
|---|
|  | 861 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 862 | _mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A, | 
|---|
|  | 863 | __m512i __B) | 
|---|
|  | 864 | { | 
|---|
|  | 865 | return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B, | 
|---|
|  | 866 | (__v32hi) __A, | 
|---|
|  | 867 | (__v32hi) __W, | 
|---|
|  | 868 | (__mmask32) __M); | 
|---|
|  | 869 | } | 
|---|
|  | 870 |  | 
|---|
|  | 871 | extern __inline __m512i | 
|---|
|  | 872 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 873 | _mm512_permutex2var_epi16 (__m512i __A, __m512i __I, __m512i __B) | 
|---|
|  | 874 | { | 
|---|
|  | 875 | return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I | 
|---|
|  | 876 | /* idx */ , | 
|---|
|  | 877 | (__v32hi) __A, | 
|---|
|  | 878 | (__v32hi) __B, | 
|---|
|  | 879 | (__mmask32) -1); | 
|---|
|  | 880 | } | 
|---|
|  | 881 |  | 
|---|
|  | 882 | extern __inline __m512i | 
|---|
|  | 883 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 884 | _mm512_mask_permutex2var_epi16 (__m512i __A, __mmask32 __U, | 
|---|
|  | 885 | __m512i __I, __m512i __B) | 
|---|
|  | 886 | { | 
|---|
|  | 887 | return (__m512i) __builtin_ia32_vpermt2varhi512_mask ((__v32hi) __I | 
|---|
|  | 888 | /* idx */ , | 
|---|
|  | 889 | (__v32hi) __A, | 
|---|
|  | 890 | (__v32hi) __B, | 
|---|
|  | 891 | (__mmask32) | 
|---|
|  | 892 | __U); | 
|---|
|  | 893 | } | 
|---|
|  | 894 |  | 
|---|
|  | 895 | extern __inline __m512i | 
|---|
|  | 896 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 897 | _mm512_mask2_permutex2var_epi16 (__m512i __A, __m512i __I, | 
|---|
|  | 898 | __mmask32 __U, __m512i __B) | 
|---|
|  | 899 | { | 
|---|
|  | 900 | return (__m512i) __builtin_ia32_vpermi2varhi512_mask ((__v32hi) __A, | 
|---|
|  | 901 | (__v32hi) __I | 
|---|
|  | 902 | /* idx */ , | 
|---|
|  | 903 | (__v32hi) __B, | 
|---|
|  | 904 | (__mmask32) | 
|---|
|  | 905 | __U); | 
|---|
|  | 906 | } | 
|---|
|  | 907 |  | 
|---|
|  | 908 | extern __inline __m512i | 
|---|
|  | 909 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 910 | _mm512_maskz_permutex2var_epi16 (__mmask32 __U, __m512i __A, | 
|---|
|  | 911 | __m512i __I, __m512i __B) | 
|---|
|  | 912 | { | 
|---|
|  | 913 | return (__m512i) __builtin_ia32_vpermt2varhi512_maskz ((__v32hi) __I | 
|---|
|  | 914 | /* idx */ , | 
|---|
|  | 915 | (__v32hi) __A, | 
|---|
|  | 916 | (__v32hi) __B, | 
|---|
|  | 917 | (__mmask32) | 
|---|
|  | 918 | __U); | 
|---|
|  | 919 | } | 
|---|
|  | 920 |  | 
|---|
|  | 921 | extern __inline __m512i | 
|---|
|  | 922 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 923 | _mm512_avg_epu8 (__m512i __A, __m512i __B) | 
|---|
|  | 924 | { | 
|---|
|  | 925 | return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, | 
|---|
|  | 926 | (__v64qi) __B, | 
|---|
|  | 927 | (__v64qi) | 
|---|
|  | 928 | _mm512_setzero_si512 (), | 
|---|
|  | 929 | (__mmask64) -1); | 
|---|
|  | 930 | } | 
|---|
|  | 931 |  | 
|---|
|  | 932 | extern __inline __m512i | 
|---|
|  | 933 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 934 | _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 935 | __m512i __B) | 
|---|
|  | 936 | { | 
|---|
|  | 937 | return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, | 
|---|
|  | 938 | (__v64qi) __B, | 
|---|
|  | 939 | (__v64qi) __W, | 
|---|
|  | 940 | (__mmask64) __U); | 
|---|
|  | 941 | } | 
|---|
|  | 942 |  | 
|---|
|  | 943 | extern __inline __m512i | 
|---|
|  | 944 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 945 | _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 946 | { | 
|---|
|  | 947 | return (__m512i) __builtin_ia32_pavgb512_mask ((__v64qi) __A, | 
|---|
|  | 948 | (__v64qi) __B, | 
|---|
|  | 949 | (__v64qi) | 
|---|
|  | 950 | _mm512_setzero_si512 (), | 
|---|
|  | 951 | (__mmask64) __U); | 
|---|
|  | 952 | } | 
|---|
|  | 953 |  | 
|---|
|  | 954 | extern __inline __m512i | 
|---|
|  | 955 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 956 | _mm512_add_epi8 (__m512i __A, __m512i __B) | 
|---|
|  | 957 | { | 
|---|
|  | 958 | return (__m512i) ((__v64qu) __A + (__v64qu) __B); | 
|---|
|  | 959 | } | 
|---|
|  | 960 |  | 
|---|
|  | 961 | extern __inline __m512i | 
|---|
|  | 962 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 963 | _mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 964 | __m512i __B) | 
|---|
|  | 965 | { | 
|---|
|  | 966 | return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A, | 
|---|
|  | 967 | (__v64qi) __B, | 
|---|
|  | 968 | (__v64qi) __W, | 
|---|
|  | 969 | (__mmask64) __U); | 
|---|
|  | 970 | } | 
|---|
|  | 971 |  | 
|---|
|  | 972 | extern __inline __m512i | 
|---|
|  | 973 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 974 | _mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 975 | { | 
|---|
|  | 976 | return (__m512i) __builtin_ia32_paddb512_mask ((__v64qi) __A, | 
|---|
|  | 977 | (__v64qi) __B, | 
|---|
|  | 978 | (__v64qi) | 
|---|
|  | 979 | _mm512_setzero_si512 (), | 
|---|
|  | 980 | (__mmask64) __U); | 
|---|
|  | 981 | } | 
|---|
|  | 982 |  | 
|---|
|  | 983 | extern __inline __m512i | 
|---|
|  | 984 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 985 | _mm512_sub_epi8 (__m512i __A, __m512i __B) | 
|---|
|  | 986 | { | 
|---|
|  | 987 | return (__m512i) ((__v64qu) __A - (__v64qu) __B); | 
|---|
|  | 988 | } | 
|---|
|  | 989 |  | 
|---|
|  | 990 | extern __inline __m512i | 
|---|
|  | 991 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 992 | _mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 993 | __m512i __B) | 
|---|
|  | 994 | { | 
|---|
|  | 995 | return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A, | 
|---|
|  | 996 | (__v64qi) __B, | 
|---|
|  | 997 | (__v64qi) __W, | 
|---|
|  | 998 | (__mmask64) __U); | 
|---|
|  | 999 | } | 
|---|
|  | 1000 |  | 
|---|
|  | 1001 | extern __inline __m512i | 
|---|
|  | 1002 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1003 | _mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1004 | { | 
|---|
|  | 1005 | return (__m512i) __builtin_ia32_psubb512_mask ((__v64qi) __A, | 
|---|
|  | 1006 | (__v64qi) __B, | 
|---|
|  | 1007 | (__v64qi) | 
|---|
|  | 1008 | _mm512_setzero_si512 (), | 
|---|
|  | 1009 | (__mmask64) __U); | 
|---|
|  | 1010 | } | 
|---|
|  | 1011 |  | 
|---|
|  | 1012 | extern __inline __m512i | 
|---|
|  | 1013 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1014 | _mm512_avg_epu16 (__m512i __A, __m512i __B) | 
|---|
|  | 1015 | { | 
|---|
|  | 1016 | return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, | 
|---|
|  | 1017 | (__v32hi) __B, | 
|---|
|  | 1018 | (__v32hi) | 
|---|
|  | 1019 | _mm512_setzero_si512 (), | 
|---|
|  | 1020 | (__mmask32) -1); | 
|---|
|  | 1021 | } | 
|---|
|  | 1022 |  | 
|---|
|  | 1023 | extern __inline __m512i | 
|---|
|  | 1024 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1025 | _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1026 | __m512i __B) | 
|---|
|  | 1027 | { | 
|---|
|  | 1028 | return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, | 
|---|
|  | 1029 | (__v32hi) __B, | 
|---|
|  | 1030 | (__v32hi) __W, | 
|---|
|  | 1031 | (__mmask32) __U); | 
|---|
|  | 1032 | } | 
|---|
|  | 1033 |  | 
|---|
|  | 1034 | extern __inline __m512i | 
|---|
|  | 1035 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1036 | _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1037 | { | 
|---|
|  | 1038 | return (__m512i) __builtin_ia32_pavgw512_mask ((__v32hi) __A, | 
|---|
|  | 1039 | (__v32hi) __B, | 
|---|
|  | 1040 | (__v32hi) | 
|---|
|  | 1041 | _mm512_setzero_si512 (), | 
|---|
|  | 1042 | (__mmask32) __U); | 
|---|
|  | 1043 | } | 
|---|
|  | 1044 |  | 
|---|
|  | 1045 | extern __inline __m512i | 
|---|
|  | 1046 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1047 | _mm512_subs_epi8 (__m512i __A, __m512i __B) | 
|---|
|  | 1048 | { | 
|---|
|  | 1049 | return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A, | 
|---|
|  | 1050 | (__v64qi) __B, | 
|---|
|  | 1051 | (__v64qi) | 
|---|
|  | 1052 | _mm512_setzero_si512 (), | 
|---|
|  | 1053 | (__mmask64) -1); | 
|---|
|  | 1054 | } | 
|---|
|  | 1055 |  | 
|---|
|  | 1056 | extern __inline __m512i | 
|---|
|  | 1057 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1058 | _mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 1059 | __m512i __B) | 
|---|
|  | 1060 | { | 
|---|
|  | 1061 | return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A, | 
|---|
|  | 1062 | (__v64qi) __B, | 
|---|
|  | 1063 | (__v64qi) __W, | 
|---|
|  | 1064 | (__mmask64) __U); | 
|---|
|  | 1065 | } | 
|---|
|  | 1066 |  | 
|---|
|  | 1067 | extern __inline __m512i | 
|---|
|  | 1068 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1069 | _mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1070 | { | 
|---|
|  | 1071 | return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A, | 
|---|
|  | 1072 | (__v64qi) __B, | 
|---|
|  | 1073 | (__v64qi) | 
|---|
|  | 1074 | _mm512_setzero_si512 (), | 
|---|
|  | 1075 | (__mmask64) __U); | 
|---|
|  | 1076 | } | 
|---|
|  | 1077 |  | 
|---|
|  | 1078 | extern __inline __m512i | 
|---|
|  | 1079 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1080 | _mm512_subs_epu8 (__m512i __A, __m512i __B) | 
|---|
|  | 1081 | { | 
|---|
|  | 1082 | return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A, | 
|---|
|  | 1083 | (__v64qi) __B, | 
|---|
|  | 1084 | (__v64qi) | 
|---|
|  | 1085 | _mm512_setzero_si512 (), | 
|---|
|  | 1086 | (__mmask64) -1); | 
|---|
|  | 1087 | } | 
|---|
|  | 1088 |  | 
|---|
|  | 1089 | extern __inline __m512i | 
|---|
|  | 1090 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1091 | _mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 1092 | __m512i __B) | 
|---|
|  | 1093 | { | 
|---|
|  | 1094 | return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A, | 
|---|
|  | 1095 | (__v64qi) __B, | 
|---|
|  | 1096 | (__v64qi) __W, | 
|---|
|  | 1097 | (__mmask64) __U); | 
|---|
|  | 1098 | } | 
|---|
|  | 1099 |  | 
|---|
|  | 1100 | extern __inline __m512i | 
|---|
|  | 1101 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1102 | _mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1103 | { | 
|---|
|  | 1104 | return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A, | 
|---|
|  | 1105 | (__v64qi) __B, | 
|---|
|  | 1106 | (__v64qi) | 
|---|
|  | 1107 | _mm512_setzero_si512 (), | 
|---|
|  | 1108 | (__mmask64) __U); | 
|---|
|  | 1109 | } | 
|---|
|  | 1110 |  | 
|---|
|  | 1111 | extern __inline __m512i | 
|---|
|  | 1112 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1113 | _mm512_adds_epi8 (__m512i __A, __m512i __B) | 
|---|
|  | 1114 | { | 
|---|
|  | 1115 | return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A, | 
|---|
|  | 1116 | (__v64qi) __B, | 
|---|
|  | 1117 | (__v64qi) | 
|---|
|  | 1118 | _mm512_setzero_si512 (), | 
|---|
|  | 1119 | (__mmask64) -1); | 
|---|
|  | 1120 | } | 
|---|
|  | 1121 |  | 
|---|
|  | 1122 | extern __inline __m512i | 
|---|
|  | 1123 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1124 | _mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 1125 | __m512i __B) | 
|---|
|  | 1126 | { | 
|---|
|  | 1127 | return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A, | 
|---|
|  | 1128 | (__v64qi) __B, | 
|---|
|  | 1129 | (__v64qi) __W, | 
|---|
|  | 1130 | (__mmask64) __U); | 
|---|
|  | 1131 | } | 
|---|
|  | 1132 |  | 
|---|
|  | 1133 | extern __inline __m512i | 
|---|
|  | 1134 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1135 | _mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1136 | { | 
|---|
|  | 1137 | return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A, | 
|---|
|  | 1138 | (__v64qi) __B, | 
|---|
|  | 1139 | (__v64qi) | 
|---|
|  | 1140 | _mm512_setzero_si512 (), | 
|---|
|  | 1141 | (__mmask64) __U); | 
|---|
|  | 1142 | } | 
|---|
|  | 1143 |  | 
|---|
|  | 1144 | extern __inline __m512i | 
|---|
|  | 1145 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1146 | _mm512_adds_epu8 (__m512i __A, __m512i __B) | 
|---|
|  | 1147 | { | 
|---|
|  | 1148 | return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A, | 
|---|
|  | 1149 | (__v64qi) __B, | 
|---|
|  | 1150 | (__v64qi) | 
|---|
|  | 1151 | _mm512_setzero_si512 (), | 
|---|
|  | 1152 | (__mmask64) -1); | 
|---|
|  | 1153 | } | 
|---|
|  | 1154 |  | 
|---|
|  | 1155 | extern __inline __m512i | 
|---|
|  | 1156 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1157 | _mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 1158 | __m512i __B) | 
|---|
|  | 1159 | { | 
|---|
|  | 1160 | return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A, | 
|---|
|  | 1161 | (__v64qi) __B, | 
|---|
|  | 1162 | (__v64qi) __W, | 
|---|
|  | 1163 | (__mmask64) __U); | 
|---|
|  | 1164 | } | 
|---|
|  | 1165 |  | 
|---|
|  | 1166 | extern __inline __m512i | 
|---|
|  | 1167 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1168 | _mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1169 | { | 
|---|
|  | 1170 | return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A, | 
|---|
|  | 1171 | (__v64qi) __B, | 
|---|
|  | 1172 | (__v64qi) | 
|---|
|  | 1173 | _mm512_setzero_si512 (), | 
|---|
|  | 1174 | (__mmask64) __U); | 
|---|
|  | 1175 | } | 
|---|
|  | 1176 |  | 
|---|
|  | 1177 | extern __inline __m512i | 
|---|
|  | 1178 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1179 | _mm512_sub_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 1180 | { | 
|---|
|  | 1181 | return (__m512i) ((__v32hu) __A - (__v32hu) __B); | 
|---|
|  | 1182 | } | 
|---|
|  | 1183 |  | 
|---|
|  | 1184 | extern __inline __m512i | 
|---|
|  | 1185 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1186 | _mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1187 | __m512i __B) | 
|---|
|  | 1188 | { | 
|---|
|  | 1189 | return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A, | 
|---|
|  | 1190 | (__v32hi) __B, | 
|---|
|  | 1191 | (__v32hi) __W, | 
|---|
|  | 1192 | (__mmask32) __U); | 
|---|
|  | 1193 | } | 
|---|
|  | 1194 |  | 
|---|
|  | 1195 | extern __inline __m512i | 
|---|
|  | 1196 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1197 | _mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1198 | { | 
|---|
|  | 1199 | return (__m512i) __builtin_ia32_psubw512_mask ((__v32hi) __A, | 
|---|
|  | 1200 | (__v32hi) __B, | 
|---|
|  | 1201 | (__v32hi) | 
|---|
|  | 1202 | _mm512_setzero_si512 (), | 
|---|
|  | 1203 | (__mmask32) __U); | 
|---|
|  | 1204 | } | 
|---|
|  | 1205 |  | 
|---|
|  | 1206 | extern __inline __m512i | 
|---|
|  | 1207 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1208 | _mm512_subs_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 1209 | { | 
|---|
|  | 1210 | return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A, | 
|---|
|  | 1211 | (__v32hi) __B, | 
|---|
|  | 1212 | (__v32hi) | 
|---|
|  | 1213 | _mm512_setzero_si512 (), | 
|---|
|  | 1214 | (__mmask32) -1); | 
|---|
|  | 1215 | } | 
|---|
|  | 1216 |  | 
|---|
|  | 1217 | extern __inline __m512i | 
|---|
|  | 1218 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1219 | _mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1220 | __m512i __B) | 
|---|
|  | 1221 | { | 
|---|
|  | 1222 | return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A, | 
|---|
|  | 1223 | (__v32hi) __B, | 
|---|
|  | 1224 | (__v32hi) __W, | 
|---|
|  | 1225 | (__mmask32) __U); | 
|---|
|  | 1226 | } | 
|---|
|  | 1227 |  | 
|---|
|  | 1228 | extern __inline __m512i | 
|---|
|  | 1229 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1230 | _mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1231 | { | 
|---|
|  | 1232 | return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A, | 
|---|
|  | 1233 | (__v32hi) __B, | 
|---|
|  | 1234 | (__v32hi) | 
|---|
|  | 1235 | _mm512_setzero_si512 (), | 
|---|
|  | 1236 | (__mmask32) __U); | 
|---|
|  | 1237 | } | 
|---|
|  | 1238 |  | 
|---|
|  | 1239 | extern __inline __m512i | 
|---|
|  | 1240 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1241 | _mm512_subs_epu16 (__m512i __A, __m512i __B) | 
|---|
|  | 1242 | { | 
|---|
|  | 1243 | return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A, | 
|---|
|  | 1244 | (__v32hi) __B, | 
|---|
|  | 1245 | (__v32hi) | 
|---|
|  | 1246 | _mm512_setzero_si512 (), | 
|---|
|  | 1247 | (__mmask32) -1); | 
|---|
|  | 1248 | } | 
|---|
|  | 1249 |  | 
|---|
|  | 1250 | extern __inline __m512i | 
|---|
|  | 1251 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1252 | _mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1253 | __m512i __B) | 
|---|
|  | 1254 | { | 
|---|
|  | 1255 | return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A, | 
|---|
|  | 1256 | (__v32hi) __B, | 
|---|
|  | 1257 | (__v32hi) __W, | 
|---|
|  | 1258 | (__mmask32) __U); | 
|---|
|  | 1259 | } | 
|---|
|  | 1260 |  | 
|---|
|  | 1261 | extern __inline __m512i | 
|---|
|  | 1262 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1263 | _mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1264 | { | 
|---|
|  | 1265 | return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A, | 
|---|
|  | 1266 | (__v32hi) __B, | 
|---|
|  | 1267 | (__v32hi) | 
|---|
|  | 1268 | _mm512_setzero_si512 (), | 
|---|
|  | 1269 | (__mmask32) __U); | 
|---|
|  | 1270 | } | 
|---|
|  | 1271 |  | 
|---|
|  | 1272 | extern __inline __m512i | 
|---|
|  | 1273 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1274 | _mm512_add_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 1275 | { | 
|---|
|  | 1276 | return (__m512i) ((__v32hu) __A + (__v32hu) __B); | 
|---|
|  | 1277 | } | 
|---|
|  | 1278 |  | 
|---|
|  | 1279 | extern __inline __m512i | 
|---|
|  | 1280 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1281 | _mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1282 | __m512i __B) | 
|---|
|  | 1283 | { | 
|---|
|  | 1284 | return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A, | 
|---|
|  | 1285 | (__v32hi) __B, | 
|---|
|  | 1286 | (__v32hi) __W, | 
|---|
|  | 1287 | (__mmask32) __U); | 
|---|
|  | 1288 | } | 
|---|
|  | 1289 |  | 
|---|
|  | 1290 | extern __inline __m512i | 
|---|
|  | 1291 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1292 | _mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1293 | { | 
|---|
|  | 1294 | return (__m512i) __builtin_ia32_paddw512_mask ((__v32hi) __A, | 
|---|
|  | 1295 | (__v32hi) __B, | 
|---|
|  | 1296 | (__v32hi) | 
|---|
|  | 1297 | _mm512_setzero_si512 (), | 
|---|
|  | 1298 | (__mmask32) __U); | 
|---|
|  | 1299 | } | 
|---|
|  | 1300 |  | 
|---|
|  | 1301 | extern __inline __m512i | 
|---|
|  | 1302 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1303 | _mm512_adds_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 1304 | { | 
|---|
|  | 1305 | return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A, | 
|---|
|  | 1306 | (__v32hi) __B, | 
|---|
|  | 1307 | (__v32hi) | 
|---|
|  | 1308 | _mm512_setzero_si512 (), | 
|---|
|  | 1309 | (__mmask32) -1); | 
|---|
|  | 1310 | } | 
|---|
|  | 1311 |  | 
|---|
|  | 1312 | extern __inline __m512i | 
|---|
|  | 1313 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1314 | _mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1315 | __m512i __B) | 
|---|
|  | 1316 | { | 
|---|
|  | 1317 | return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A, | 
|---|
|  | 1318 | (__v32hi) __B, | 
|---|
|  | 1319 | (__v32hi) __W, | 
|---|
|  | 1320 | (__mmask32) __U); | 
|---|
|  | 1321 | } | 
|---|
|  | 1322 |  | 
|---|
|  | 1323 | extern __inline __m512i | 
|---|
|  | 1324 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1325 | _mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1326 | { | 
|---|
|  | 1327 | return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A, | 
|---|
|  | 1328 | (__v32hi) __B, | 
|---|
|  | 1329 | (__v32hi) | 
|---|
|  | 1330 | _mm512_setzero_si512 (), | 
|---|
|  | 1331 | (__mmask32) __U); | 
|---|
|  | 1332 | } | 
|---|
|  | 1333 |  | 
|---|
|  | 1334 | extern __inline __m512i | 
|---|
|  | 1335 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1336 | _mm512_adds_epu16 (__m512i __A, __m512i __B) | 
|---|
|  | 1337 | { | 
|---|
|  | 1338 | return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A, | 
|---|
|  | 1339 | (__v32hi) __B, | 
|---|
|  | 1340 | (__v32hi) | 
|---|
|  | 1341 | _mm512_setzero_si512 (), | 
|---|
|  | 1342 | (__mmask32) -1); | 
|---|
|  | 1343 | } | 
|---|
|  | 1344 |  | 
|---|
|  | 1345 | extern __inline __m512i | 
|---|
|  | 1346 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1347 | _mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1348 | __m512i __B) | 
|---|
|  | 1349 | { | 
|---|
|  | 1350 | return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A, | 
|---|
|  | 1351 | (__v32hi) __B, | 
|---|
|  | 1352 | (__v32hi) __W, | 
|---|
|  | 1353 | (__mmask32) __U); | 
|---|
|  | 1354 | } | 
|---|
|  | 1355 |  | 
|---|
|  | 1356 | extern __inline __m512i | 
|---|
|  | 1357 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1358 | _mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1359 | { | 
|---|
|  | 1360 | return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A, | 
|---|
|  | 1361 | (__v32hi) __B, | 
|---|
|  | 1362 | (__v32hi) | 
|---|
|  | 1363 | _mm512_setzero_si512 (), | 
|---|
|  | 1364 | (__mmask32) __U); | 
|---|
|  | 1365 | } | 
|---|
|  | 1366 |  | 
|---|
|  | 1367 | extern __inline __m512i | 
|---|
|  | 1368 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1369 | _mm512_srl_epi16 (__m512i __A, __m128i __B) | 
|---|
|  | 1370 | { | 
|---|
|  | 1371 | return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A, | 
|---|
|  | 1372 | (__v8hi) __B, | 
|---|
|  | 1373 | (__v32hi) | 
|---|
|  | 1374 | _mm512_setzero_si512 (), | 
|---|
|  | 1375 | (__mmask32) -1); | 
|---|
|  | 1376 | } | 
|---|
|  | 1377 |  | 
|---|
|  | 1378 | extern __inline __m512i | 
|---|
|  | 1379 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1380 | _mm512_mask_srl_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1381 | __m128i __B) | 
|---|
|  | 1382 | { | 
|---|
|  | 1383 | return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A, | 
|---|
|  | 1384 | (__v8hi) __B, | 
|---|
|  | 1385 | (__v32hi) __W, | 
|---|
|  | 1386 | (__mmask32) __U); | 
|---|
|  | 1387 | } | 
|---|
|  | 1388 |  | 
|---|
|  | 1389 | extern __inline __m512i | 
|---|
|  | 1390 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1391 | _mm512_maskz_srl_epi16 (__mmask32 __U, __m512i __A, __m128i __B) | 
|---|
|  | 1392 | { | 
|---|
|  | 1393 | return (__m512i) __builtin_ia32_psrlw512_mask ((__v32hi) __A, | 
|---|
|  | 1394 | (__v8hi) __B, | 
|---|
|  | 1395 | (__v32hi) | 
|---|
|  | 1396 | _mm512_setzero_si512 (), | 
|---|
|  | 1397 | (__mmask32) __U); | 
|---|
|  | 1398 | } | 
|---|
|  | 1399 |  | 
|---|
|  | 1400 | extern __inline __m512i | 
|---|
|  | 1401 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1402 | _mm512_packs_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 1403 | { | 
|---|
|  | 1404 | return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A, | 
|---|
|  | 1405 | (__v32hi) __B, | 
|---|
|  | 1406 | (__v64qi) | 
|---|
|  | 1407 | _mm512_setzero_si512 (), | 
|---|
|  | 1408 | (__mmask64) -1); | 
|---|
|  | 1409 | } | 
|---|
|  | 1410 |  | 
|---|
|  | 1411 | extern __inline __m512i | 
|---|
|  | 1412 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1413 | _mm512_sll_epi16 (__m512i __A, __m128i __B) | 
|---|
|  | 1414 | { | 
|---|
|  | 1415 | return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A, | 
|---|
|  | 1416 | (__v8hi) __B, | 
|---|
|  | 1417 | (__v32hi) | 
|---|
|  | 1418 | _mm512_setzero_si512 (), | 
|---|
|  | 1419 | (__mmask32) -1); | 
|---|
|  | 1420 | } | 
|---|
|  | 1421 |  | 
|---|
|  | 1422 | extern __inline __m512i | 
|---|
|  | 1423 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1424 | _mm512_mask_sll_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1425 | __m128i __B) | 
|---|
|  | 1426 | { | 
|---|
|  | 1427 | return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A, | 
|---|
|  | 1428 | (__v8hi) __B, | 
|---|
|  | 1429 | (__v32hi) __W, | 
|---|
|  | 1430 | (__mmask32) __U); | 
|---|
|  | 1431 | } | 
|---|
|  | 1432 |  | 
|---|
|  | 1433 | extern __inline __m512i | 
|---|
|  | 1434 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1435 | _mm512_maskz_sll_epi16 (__mmask32 __U, __m512i __A, __m128i __B) | 
|---|
|  | 1436 | { | 
|---|
|  | 1437 | return (__m512i) __builtin_ia32_psllw512_mask ((__v32hi) __A, | 
|---|
|  | 1438 | (__v8hi) __B, | 
|---|
|  | 1439 | (__v32hi) | 
|---|
|  | 1440 | _mm512_setzero_si512 (), | 
|---|
|  | 1441 | (__mmask32) __U); | 
|---|
|  | 1442 | } | 
|---|
|  | 1443 |  | 
|---|
|  | 1444 | extern __inline __m512i | 
|---|
|  | 1445 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1446 | _mm512_maddubs_epi16 (__m512i __X, __m512i __Y) | 
|---|
|  | 1447 | { | 
|---|
|  | 1448 | return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X, | 
|---|
|  | 1449 | (__v64qi) __Y, | 
|---|
|  | 1450 | (__v32hi) | 
|---|
|  | 1451 | _mm512_setzero_si512 (), | 
|---|
|  | 1452 | (__mmask32) -1); | 
|---|
|  | 1453 | } | 
|---|
|  | 1454 |  | 
|---|
|  | 1455 | extern __inline __m512i | 
|---|
|  | 1456 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1457 | _mm512_mask_maddubs_epi16 (__m512i __W, __mmask32 __U, __m512i __X, | 
|---|
|  | 1458 | __m512i __Y) | 
|---|
|  | 1459 | { | 
|---|
|  | 1460 | return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X, | 
|---|
|  | 1461 | (__v64qi) __Y, | 
|---|
|  | 1462 | (__v32hi) __W, | 
|---|
|  | 1463 | (__mmask32) __U); | 
|---|
|  | 1464 | } | 
|---|
|  | 1465 |  | 
|---|
|  | 1466 | extern __inline __m512i | 
|---|
|  | 1467 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1468 | _mm512_maskz_maddubs_epi16 (__mmask32 __U, __m512i __X, __m512i __Y) | 
|---|
|  | 1469 | { | 
|---|
|  | 1470 | return (__m512i) __builtin_ia32_pmaddubsw512_mask ((__v64qi) __X, | 
|---|
|  | 1471 | (__v64qi) __Y, | 
|---|
|  | 1472 | (__v32hi) | 
|---|
|  | 1473 | _mm512_setzero_si512 (), | 
|---|
|  | 1474 | (__mmask32) __U); | 
|---|
|  | 1475 | } | 
|---|
|  | 1476 |  | 
|---|
|  | 1477 | extern __inline __m512i | 
|---|
|  | 1478 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1479 | _mm512_madd_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 1480 | { | 
|---|
|  | 1481 | return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A, | 
|---|
|  | 1482 | (__v32hi) __B, | 
|---|
|  | 1483 | (__v16si) | 
|---|
|  | 1484 | _mm512_setzero_si512 (), | 
|---|
|  | 1485 | (__mmask16) -1); | 
|---|
|  | 1486 | } | 
|---|
|  | 1487 |  | 
|---|
|  | 1488 | extern __inline __m512i | 
|---|
|  | 1489 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1490 | _mm512_mask_madd_epi16 (__m512i __W, __mmask16 __U, __m512i __A, | 
|---|
|  | 1491 | __m512i __B) | 
|---|
|  | 1492 | { | 
|---|
|  | 1493 | return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A, | 
|---|
|  | 1494 | (__v32hi) __B, | 
|---|
|  | 1495 | (__v16si) __W, | 
|---|
|  | 1496 | (__mmask16) __U); | 
|---|
|  | 1497 | } | 
|---|
|  | 1498 |  | 
|---|
|  | 1499 | extern __inline __m512i | 
|---|
|  | 1500 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1501 | _mm512_maskz_madd_epi16 (__mmask16 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1502 | { | 
|---|
|  | 1503 | return (__m512i) __builtin_ia32_pmaddwd512_mask ((__v32hi) __A, | 
|---|
|  | 1504 | (__v32hi) __B, | 
|---|
|  | 1505 | (__v16si) | 
|---|
|  | 1506 | _mm512_setzero_si512 (), | 
|---|
|  | 1507 | (__mmask16) __U); | 
|---|
|  | 1508 | } | 
|---|
|  | 1509 |  | 
|---|
|  | 1510 | extern __inline __m512i | 
|---|
|  | 1511 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1512 | _mm512_unpackhi_epi8 (__m512i __A, __m512i __B) | 
|---|
|  | 1513 | { | 
|---|
|  | 1514 | return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A, | 
|---|
|  | 1515 | (__v64qi) __B, | 
|---|
|  | 1516 | (__v64qi) | 
|---|
|  | 1517 | _mm512_setzero_si512 (), | 
|---|
|  | 1518 | (__mmask64) -1); | 
|---|
|  | 1519 | } | 
|---|
|  | 1520 |  | 
|---|
|  | 1521 | extern __inline __m512i | 
|---|
|  | 1522 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1523 | _mm512_mask_unpackhi_epi8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 1524 | __m512i __B) | 
|---|
|  | 1525 | { | 
|---|
|  | 1526 | return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A, | 
|---|
|  | 1527 | (__v64qi) __B, | 
|---|
|  | 1528 | (__v64qi) __W, | 
|---|
|  | 1529 | (__mmask64) __U); | 
|---|
|  | 1530 | } | 
|---|
|  | 1531 |  | 
|---|
|  | 1532 | extern __inline __m512i | 
|---|
|  | 1533 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1534 | _mm512_maskz_unpackhi_epi8 (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1535 | { | 
|---|
|  | 1536 | return (__m512i) __builtin_ia32_punpckhbw512_mask ((__v64qi) __A, | 
|---|
|  | 1537 | (__v64qi) __B, | 
|---|
|  | 1538 | (__v64qi) | 
|---|
|  | 1539 | _mm512_setzero_si512 (), | 
|---|
|  | 1540 | (__mmask64) __U); | 
|---|
|  | 1541 | } | 
|---|
|  | 1542 |  | 
|---|
|  | 1543 | extern __inline __m512i | 
|---|
|  | 1544 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1545 | _mm512_unpackhi_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 1546 | { | 
|---|
|  | 1547 | return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A, | 
|---|
|  | 1548 | (__v32hi) __B, | 
|---|
|  | 1549 | (__v32hi) | 
|---|
|  | 1550 | _mm512_setzero_si512 (), | 
|---|
|  | 1551 | (__mmask32) -1); | 
|---|
|  | 1552 | } | 
|---|
|  | 1553 |  | 
|---|
|  | 1554 | extern __inline __m512i | 
|---|
|  | 1555 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1556 | _mm512_mask_unpackhi_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1557 | __m512i __B) | 
|---|
|  | 1558 | { | 
|---|
|  | 1559 | return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A, | 
|---|
|  | 1560 | (__v32hi) __B, | 
|---|
|  | 1561 | (__v32hi) __W, | 
|---|
|  | 1562 | (__mmask32) __U); | 
|---|
|  | 1563 | } | 
|---|
|  | 1564 |  | 
|---|
|  | 1565 | extern __inline __m512i | 
|---|
|  | 1566 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1567 | _mm512_maskz_unpackhi_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1568 | { | 
|---|
|  | 1569 | return (__m512i) __builtin_ia32_punpckhwd512_mask ((__v32hi) __A, | 
|---|
|  | 1570 | (__v32hi) __B, | 
|---|
|  | 1571 | (__v32hi) | 
|---|
|  | 1572 | _mm512_setzero_si512 (), | 
|---|
|  | 1573 | (__mmask32) __U); | 
|---|
|  | 1574 | } | 
|---|
|  | 1575 |  | 
|---|
|  | 1576 | extern __inline __m512i | 
|---|
|  | 1577 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1578 | _mm512_unpacklo_epi8 (__m512i __A, __m512i __B) | 
|---|
|  | 1579 | { | 
|---|
|  | 1580 | return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A, | 
|---|
|  | 1581 | (__v64qi) __B, | 
|---|
|  | 1582 | (__v64qi) | 
|---|
|  | 1583 | _mm512_setzero_si512 (), | 
|---|
|  | 1584 | (__mmask64) -1); | 
|---|
|  | 1585 | } | 
|---|
|  | 1586 |  | 
|---|
|  | 1587 | extern __inline __m512i | 
|---|
|  | 1588 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1589 | _mm512_mask_unpacklo_epi8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 1590 | __m512i __B) | 
|---|
|  | 1591 | { | 
|---|
|  | 1592 | return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A, | 
|---|
|  | 1593 | (__v64qi) __B, | 
|---|
|  | 1594 | (__v64qi) __W, | 
|---|
|  | 1595 | (__mmask64) __U); | 
|---|
|  | 1596 | } | 
|---|
|  | 1597 |  | 
|---|
|  | 1598 | extern __inline __m512i | 
|---|
|  | 1599 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1600 | _mm512_maskz_unpacklo_epi8 (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1601 | { | 
|---|
|  | 1602 | return (__m512i) __builtin_ia32_punpcklbw512_mask ((__v64qi) __A, | 
|---|
|  | 1603 | (__v64qi) __B, | 
|---|
|  | 1604 | (__v64qi) | 
|---|
|  | 1605 | _mm512_setzero_si512 (), | 
|---|
|  | 1606 | (__mmask64) __U); | 
|---|
|  | 1607 | } | 
|---|
|  | 1608 |  | 
|---|
|  | 1609 | extern __inline __m512i | 
|---|
|  | 1610 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1611 | _mm512_unpacklo_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 1612 | { | 
|---|
|  | 1613 | return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A, | 
|---|
|  | 1614 | (__v32hi) __B, | 
|---|
|  | 1615 | (__v32hi) | 
|---|
|  | 1616 | _mm512_setzero_si512 (), | 
|---|
|  | 1617 | (__mmask32) -1); | 
|---|
|  | 1618 | } | 
|---|
|  | 1619 |  | 
|---|
|  | 1620 | extern __inline __m512i | 
|---|
|  | 1621 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1622 | _mm512_mask_unpacklo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 1623 | __m512i __B) | 
|---|
|  | 1624 | { | 
|---|
|  | 1625 | return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A, | 
|---|
|  | 1626 | (__v32hi) __B, | 
|---|
|  | 1627 | (__v32hi) __W, | 
|---|
|  | 1628 | (__mmask32) __U); | 
|---|
|  | 1629 | } | 
|---|
|  | 1630 |  | 
|---|
|  | 1631 | extern __inline __m512i | 
|---|
|  | 1632 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1633 | _mm512_maskz_unpacklo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1634 | { | 
|---|
|  | 1635 | return (__m512i) __builtin_ia32_punpcklwd512_mask ((__v32hi) __A, | 
|---|
|  | 1636 | (__v32hi) __B, | 
|---|
|  | 1637 | (__v32hi) | 
|---|
|  | 1638 | _mm512_setzero_si512 (), | 
|---|
|  | 1639 | (__mmask32) __U); | 
|---|
|  | 1640 | } | 
|---|
|  | 1641 |  | 
|---|
|  | 1642 | extern __inline __mmask64 | 
|---|
|  | 1643 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1644 | _mm512_cmpeq_epu8_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1645 | { | 
|---|
|  | 1646 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A, | 
|---|
|  | 1647 | (__v64qi) __B, 0, | 
|---|
|  | 1648 | (__mmask64) -1); | 
|---|
|  | 1649 | } | 
|---|
|  | 1650 |  | 
|---|
|  | 1651 | extern __inline __mmask64 | 
|---|
|  | 1652 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1653 | _mm512_cmpeq_epi8_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1654 | { | 
|---|
|  | 1655 | return (__mmask64) __builtin_ia32_pcmpeqb512_mask ((__v64qi) __A, | 
|---|
|  | 1656 | (__v64qi) __B, | 
|---|
|  | 1657 | (__mmask64) -1); | 
|---|
|  | 1658 | } | 
|---|
|  | 1659 |  | 
|---|
|  | 1660 | extern __inline __mmask64 | 
|---|
|  | 1661 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1662 | _mm512_mask_cmpeq_epu8_mask (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1663 | { | 
|---|
|  | 1664 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A, | 
|---|
|  | 1665 | (__v64qi) __B, 0, | 
|---|
|  | 1666 | __U); | 
|---|
|  | 1667 | } | 
|---|
|  | 1668 |  | 
|---|
|  | 1669 | extern __inline __mmask64 | 
|---|
|  | 1670 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1671 | _mm512_mask_cmpeq_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1672 | { | 
|---|
|  | 1673 | return (__mmask64) __builtin_ia32_pcmpeqb512_mask ((__v64qi) __A, | 
|---|
|  | 1674 | (__v64qi) __B, | 
|---|
|  | 1675 | __U); | 
|---|
|  | 1676 | } | 
|---|
|  | 1677 |  | 
|---|
|  | 1678 | extern __inline __mmask32 | 
|---|
|  | 1679 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1680 | _mm512_cmpeq_epu16_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1681 | { | 
|---|
|  | 1682 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A, | 
|---|
|  | 1683 | (__v32hi) __B, 0, | 
|---|
|  | 1684 | (__mmask32) -1); | 
|---|
|  | 1685 | } | 
|---|
|  | 1686 |  | 
|---|
|  | 1687 | extern __inline __mmask32 | 
|---|
|  | 1688 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1689 | _mm512_cmpeq_epi16_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1690 | { | 
|---|
|  | 1691 | return (__mmask32) __builtin_ia32_pcmpeqw512_mask ((__v32hi) __A, | 
|---|
|  | 1692 | (__v32hi) __B, | 
|---|
|  | 1693 | (__mmask32) -1); | 
|---|
|  | 1694 | } | 
|---|
|  | 1695 |  | 
|---|
|  | 1696 | extern __inline __mmask32 | 
|---|
|  | 1697 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1698 | _mm512_mask_cmpeq_epu16_mask (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1699 | { | 
|---|
|  | 1700 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A, | 
|---|
|  | 1701 | (__v32hi) __B, 0, | 
|---|
|  | 1702 | __U); | 
|---|
|  | 1703 | } | 
|---|
|  | 1704 |  | 
|---|
|  | 1705 | extern __inline __mmask32 | 
|---|
|  | 1706 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1707 | _mm512_mask_cmpeq_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1708 | { | 
|---|
|  | 1709 | return (__mmask32) __builtin_ia32_pcmpeqw512_mask ((__v32hi) __A, | 
|---|
|  | 1710 | (__v32hi) __B, | 
|---|
|  | 1711 | __U); | 
|---|
|  | 1712 | } | 
|---|
|  | 1713 |  | 
|---|
|  | 1714 | extern __inline __mmask64 | 
|---|
|  | 1715 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1716 | _mm512_cmpgt_epu8_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1717 | { | 
|---|
|  | 1718 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A, | 
|---|
|  | 1719 | (__v64qi) __B, 6, | 
|---|
|  | 1720 | (__mmask64) -1); | 
|---|
|  | 1721 | } | 
|---|
|  | 1722 |  | 
|---|
|  | 1723 | extern __inline __mmask64 | 
|---|
|  | 1724 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1725 | _mm512_cmpgt_epi8_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1726 | { | 
|---|
|  | 1727 | return (__mmask64) __builtin_ia32_pcmpgtb512_mask ((__v64qi) __A, | 
|---|
|  | 1728 | (__v64qi) __B, | 
|---|
|  | 1729 | (__mmask64) -1); | 
|---|
|  | 1730 | } | 
|---|
|  | 1731 |  | 
|---|
|  | 1732 | extern __inline __mmask64 | 
|---|
|  | 1733 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1734 | _mm512_mask_cmpgt_epu8_mask (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1735 | { | 
|---|
|  | 1736 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __A, | 
|---|
|  | 1737 | (__v64qi) __B, 6, | 
|---|
|  | 1738 | __U); | 
|---|
|  | 1739 | } | 
|---|
|  | 1740 |  | 
|---|
|  | 1741 | extern __inline __mmask64 | 
|---|
|  | 1742 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1743 | _mm512_mask_cmpgt_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1744 | { | 
|---|
|  | 1745 | return (__mmask64) __builtin_ia32_pcmpgtb512_mask ((__v64qi) __A, | 
|---|
|  | 1746 | (__v64qi) __B, | 
|---|
|  | 1747 | __U); | 
|---|
|  | 1748 | } | 
|---|
|  | 1749 |  | 
|---|
|  | 1750 | extern __inline __mmask32 | 
|---|
|  | 1751 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1752 | _mm512_cmpgt_epu16_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1753 | { | 
|---|
|  | 1754 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A, | 
|---|
|  | 1755 | (__v32hi) __B, 6, | 
|---|
|  | 1756 | (__mmask32) -1); | 
|---|
|  | 1757 | } | 
|---|
|  | 1758 |  | 
|---|
|  | 1759 | extern __inline __mmask32 | 
|---|
|  | 1760 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1761 | _mm512_cmpgt_epi16_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1762 | { | 
|---|
|  | 1763 | return (__mmask32) __builtin_ia32_pcmpgtw512_mask ((__v32hi) __A, | 
|---|
|  | 1764 | (__v32hi) __B, | 
|---|
|  | 1765 | (__mmask32) -1); | 
|---|
|  | 1766 | } | 
|---|
|  | 1767 |  | 
|---|
|  | 1768 | extern __inline __mmask32 | 
|---|
|  | 1769 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1770 | _mm512_mask_cmpgt_epu16_mask (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1771 | { | 
|---|
|  | 1772 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __A, | 
|---|
|  | 1773 | (__v32hi) __B, 6, | 
|---|
|  | 1774 | __U); | 
|---|
|  | 1775 | } | 
|---|
|  | 1776 |  | 
|---|
|  | 1777 | extern __inline __mmask32 | 
|---|
|  | 1778 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1779 | _mm512_mask_cmpgt_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1780 | { | 
|---|
|  | 1781 | return (__mmask32) __builtin_ia32_pcmpgtw512_mask ((__v32hi) __A, | 
|---|
|  | 1782 | (__v32hi) __B, | 
|---|
|  | 1783 | __U); | 
|---|
|  | 1784 | } | 
|---|
|  | 1785 |  | 
|---|
|  | 1786 | extern __inline __mmask64 | 
|---|
|  | 1787 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1788 | _mm512_movepi8_mask (__m512i __A) | 
|---|
|  | 1789 | { | 
|---|
|  | 1790 | return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A); | 
|---|
|  | 1791 | } | 
|---|
|  | 1792 |  | 
|---|
|  | 1793 | extern __inline __mmask32 | 
|---|
|  | 1794 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1795 | _mm512_movepi16_mask (__m512i __A) | 
|---|
|  | 1796 | { | 
|---|
|  | 1797 | return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A); | 
|---|
|  | 1798 | } | 
|---|
|  | 1799 |  | 
|---|
|  | 1800 | extern __inline __m512i | 
|---|
|  | 1801 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1802 | _mm512_movm_epi8 (__mmask64 __A) | 
|---|
|  | 1803 | { | 
|---|
|  | 1804 | return (__m512i) __builtin_ia32_cvtmask2b512 (__A); | 
|---|
|  | 1805 | } | 
|---|
|  | 1806 |  | 
|---|
|  | 1807 | extern __inline __m512i | 
|---|
|  | 1808 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1809 | _mm512_movm_epi16 (__mmask32 __A) | 
|---|
|  | 1810 | { | 
|---|
|  | 1811 | return (__m512i) __builtin_ia32_cvtmask2w512 (__A); | 
|---|
|  | 1812 | } | 
|---|
|  | 1813 |  | 
|---|
|  | 1814 | extern __inline __mmask64 | 
|---|
|  | 1815 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1816 | _mm512_test_epi8_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1817 | { | 
|---|
|  | 1818 | return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A, | 
|---|
|  | 1819 | (__v64qi) __B, | 
|---|
|  | 1820 | (__mmask64) -1); | 
|---|
|  | 1821 | } | 
|---|
|  | 1822 |  | 
|---|
|  | 1823 | extern __inline __mmask64 | 
|---|
|  | 1824 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1825 | _mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1826 | { | 
|---|
|  | 1827 | return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A, | 
|---|
|  | 1828 | (__v64qi) __B, __U); | 
|---|
|  | 1829 | } | 
|---|
|  | 1830 |  | 
|---|
|  | 1831 | extern __inline __mmask32 | 
|---|
|  | 1832 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1833 | _mm512_test_epi16_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1834 | { | 
|---|
|  | 1835 | return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A, | 
|---|
|  | 1836 | (__v32hi) __B, | 
|---|
|  | 1837 | (__mmask32) -1); | 
|---|
|  | 1838 | } | 
|---|
|  | 1839 |  | 
|---|
|  | 1840 | extern __inline __mmask32 | 
|---|
|  | 1841 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1842 | _mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1843 | { | 
|---|
|  | 1844 | return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A, | 
|---|
|  | 1845 | (__v32hi) __B, __U); | 
|---|
|  | 1846 | } | 
|---|
|  | 1847 |  | 
|---|
|  | 1848 | extern __inline __mmask64 | 
|---|
|  | 1849 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1850 | _mm512_testn_epi8_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1851 | { | 
|---|
|  | 1852 | return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A, | 
|---|
|  | 1853 | (__v64qi) __B, | 
|---|
|  | 1854 | (__mmask64) -1); | 
|---|
|  | 1855 | } | 
|---|
|  | 1856 |  | 
|---|
|  | 1857 | extern __inline __mmask64 | 
|---|
|  | 1858 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1859 | _mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1860 | { | 
|---|
|  | 1861 | return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A, | 
|---|
|  | 1862 | (__v64qi) __B, __U); | 
|---|
|  | 1863 | } | 
|---|
|  | 1864 |  | 
|---|
|  | 1865 | extern __inline __mmask32 | 
|---|
|  | 1866 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1867 | _mm512_testn_epi16_mask (__m512i __A, __m512i __B) | 
|---|
|  | 1868 | { | 
|---|
|  | 1869 | return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A, | 
|---|
|  | 1870 | (__v32hi) __B, | 
|---|
|  | 1871 | (__mmask32) -1); | 
|---|
|  | 1872 | } | 
|---|
|  | 1873 |  | 
|---|
|  | 1874 | extern __inline __mmask32 | 
|---|
|  | 1875 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1876 | _mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1877 | { | 
|---|
|  | 1878 | return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A, | 
|---|
|  | 1879 | (__v32hi) __B, __U); | 
|---|
|  | 1880 | } | 
|---|
|  | 1881 |  | 
|---|
|  | 1882 | extern __inline __m512i | 
|---|
|  | 1883 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1884 | _mm512_shuffle_epi8 (__m512i __A, __m512i __B) | 
|---|
|  | 1885 | { | 
|---|
|  | 1886 | return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A, | 
|---|
|  | 1887 | (__v64qi) __B, | 
|---|
|  | 1888 | (__v64qi) | 
|---|
|  | 1889 | _mm512_setzero_si512 (), | 
|---|
|  | 1890 | (__mmask64) -1); | 
|---|
|  | 1891 | } | 
|---|
|  | 1892 |  | 
|---|
|  | 1893 | extern __inline __m512i | 
|---|
|  | 1894 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1895 | _mm512_mask_shuffle_epi8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 1896 | __m512i __B) | 
|---|
|  | 1897 | { | 
|---|
|  | 1898 | return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A, | 
|---|
|  | 1899 | (__v64qi) __B, | 
|---|
|  | 1900 | (__v64qi) __W, | 
|---|
|  | 1901 | (__mmask64) __U); | 
|---|
|  | 1902 | } | 
|---|
|  | 1903 |  | 
|---|
|  | 1904 | extern __inline __m512i | 
|---|
|  | 1905 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1906 | _mm512_maskz_shuffle_epi8 (__mmask64 __U, __m512i __A, __m512i __B) | 
|---|
|  | 1907 | { | 
|---|
|  | 1908 | return (__m512i) __builtin_ia32_pshufb512_mask ((__v64qi) __A, | 
|---|
|  | 1909 | (__v64qi) __B, | 
|---|
|  | 1910 | (__v64qi) | 
|---|
|  | 1911 | _mm512_setzero_si512 (), | 
|---|
|  | 1912 | (__mmask64) __U); | 
|---|
|  | 1913 | } | 
|---|
|  | 1914 |  | 
|---|
|  | 1915 | extern __inline __m512i | 
|---|
|  | 1916 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1917 | _mm512_min_epu16 (__m512i __A, __m512i __B) | 
|---|
|  | 1918 | { | 
|---|
|  | 1919 | return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A, | 
|---|
|  | 1920 | (__v32hi) __B, | 
|---|
|  | 1921 | (__v32hi) | 
|---|
|  | 1922 | _mm512_setzero_si512 (), | 
|---|
|  | 1923 | (__mmask32) -1); | 
|---|
|  | 1924 | } | 
|---|
|  | 1925 |  | 
|---|
|  | 1926 | extern __inline __m512i | 
|---|
|  | 1927 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1928 | _mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B) | 
|---|
|  | 1929 | { | 
|---|
|  | 1930 | return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A, | 
|---|
|  | 1931 | (__v32hi) __B, | 
|---|
|  | 1932 | (__v32hi) | 
|---|
|  | 1933 | _mm512_setzero_si512 (), | 
|---|
|  | 1934 | (__mmask32) __M); | 
|---|
|  | 1935 | } | 
|---|
|  | 1936 |  | 
|---|
|  | 1937 | extern __inline __m512i | 
|---|
|  | 1938 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1939 | _mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A, | 
|---|
|  | 1940 | __m512i __B) | 
|---|
|  | 1941 | { | 
|---|
|  | 1942 | return (__m512i) __builtin_ia32_pminuw512_mask ((__v32hi) __A, | 
|---|
|  | 1943 | (__v32hi) __B, | 
|---|
|  | 1944 | (__v32hi) __W, | 
|---|
|  | 1945 | (__mmask32) __M); | 
|---|
|  | 1946 | } | 
|---|
|  | 1947 |  | 
|---|
|  | 1948 | extern __inline __m512i | 
|---|
|  | 1949 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1950 | _mm512_min_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 1951 | { | 
|---|
|  | 1952 | return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A, | 
|---|
|  | 1953 | (__v32hi) __B, | 
|---|
|  | 1954 | (__v32hi) | 
|---|
|  | 1955 | _mm512_setzero_si512 (), | 
|---|
|  | 1956 | (__mmask32) -1); | 
|---|
|  | 1957 | } | 
|---|
|  | 1958 |  | 
|---|
|  | 1959 | extern __inline __m512i | 
|---|
|  | 1960 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1961 | _mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B) | 
|---|
|  | 1962 | { | 
|---|
|  | 1963 | return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A, | 
|---|
|  | 1964 | (__v32hi) __B, | 
|---|
|  | 1965 | (__v32hi) | 
|---|
|  | 1966 | _mm512_setzero_si512 (), | 
|---|
|  | 1967 | (__mmask32) __M); | 
|---|
|  | 1968 | } | 
|---|
|  | 1969 |  | 
|---|
|  | 1970 | extern __inline __m512i | 
|---|
|  | 1971 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1972 | _mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A, | 
|---|
|  | 1973 | __m512i __B) | 
|---|
|  | 1974 | { | 
|---|
|  | 1975 | return (__m512i) __builtin_ia32_pminsw512_mask ((__v32hi) __A, | 
|---|
|  | 1976 | (__v32hi) __B, | 
|---|
|  | 1977 | (__v32hi) __W, | 
|---|
|  | 1978 | (__mmask32) __M); | 
|---|
|  | 1979 | } | 
|---|
|  | 1980 |  | 
|---|
|  | 1981 | extern __inline __m512i | 
|---|
|  | 1982 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1983 | _mm512_max_epu8 (__m512i __A, __m512i __B) | 
|---|
|  | 1984 | { | 
|---|
|  | 1985 | return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A, | 
|---|
|  | 1986 | (__v64qi) __B, | 
|---|
|  | 1987 | (__v64qi) | 
|---|
|  | 1988 | _mm512_setzero_si512 (), | 
|---|
|  | 1989 | (__mmask64) -1); | 
|---|
|  | 1990 | } | 
|---|
|  | 1991 |  | 
|---|
|  | 1992 | extern __inline __m512i | 
|---|
|  | 1993 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 1994 | _mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B) | 
|---|
|  | 1995 | { | 
|---|
|  | 1996 | return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A, | 
|---|
|  | 1997 | (__v64qi) __B, | 
|---|
|  | 1998 | (__v64qi) | 
|---|
|  | 1999 | _mm512_setzero_si512 (), | 
|---|
|  | 2000 | (__mmask64) __M); | 
|---|
|  | 2001 | } | 
|---|
|  | 2002 |  | 
|---|
|  | 2003 | extern __inline __m512i | 
|---|
|  | 2004 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2005 | _mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A, | 
|---|
|  | 2006 | __m512i __B) | 
|---|
|  | 2007 | { | 
|---|
|  | 2008 | return (__m512i) __builtin_ia32_pmaxub512_mask ((__v64qi) __A, | 
|---|
|  | 2009 | (__v64qi) __B, | 
|---|
|  | 2010 | (__v64qi) __W, | 
|---|
|  | 2011 | (__mmask64) __M); | 
|---|
|  | 2012 | } | 
|---|
|  | 2013 |  | 
|---|
|  | 2014 | extern __inline __m512i | 
|---|
|  | 2015 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2016 | _mm512_max_epi8 (__m512i __A, __m512i __B) | 
|---|
|  | 2017 | { | 
|---|
|  | 2018 | return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A, | 
|---|
|  | 2019 | (__v64qi) __B, | 
|---|
|  | 2020 | (__v64qi) | 
|---|
|  | 2021 | _mm512_setzero_si512 (), | 
|---|
|  | 2022 | (__mmask64) -1); | 
|---|
|  | 2023 | } | 
|---|
|  | 2024 |  | 
|---|
|  | 2025 | extern __inline __m512i | 
|---|
|  | 2026 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2027 | _mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B) | 
|---|
|  | 2028 | { | 
|---|
|  | 2029 | return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A, | 
|---|
|  | 2030 | (__v64qi) __B, | 
|---|
|  | 2031 | (__v64qi) | 
|---|
|  | 2032 | _mm512_setzero_si512 (), | 
|---|
|  | 2033 | (__mmask64) __M); | 
|---|
|  | 2034 | } | 
|---|
|  | 2035 |  | 
|---|
|  | 2036 | extern __inline __m512i | 
|---|
|  | 2037 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2038 | _mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A, | 
|---|
|  | 2039 | __m512i __B) | 
|---|
|  | 2040 | { | 
|---|
|  | 2041 | return (__m512i) __builtin_ia32_pmaxsb512_mask ((__v64qi) __A, | 
|---|
|  | 2042 | (__v64qi) __B, | 
|---|
|  | 2043 | (__v64qi) __W, | 
|---|
|  | 2044 | (__mmask64) __M); | 
|---|
|  | 2045 | } | 
|---|
|  | 2046 |  | 
|---|
|  | 2047 | extern __inline __m512i | 
|---|
|  | 2048 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2049 | _mm512_min_epu8 (__m512i __A, __m512i __B) | 
|---|
|  | 2050 | { | 
|---|
|  | 2051 | return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A, | 
|---|
|  | 2052 | (__v64qi) __B, | 
|---|
|  | 2053 | (__v64qi) | 
|---|
|  | 2054 | _mm512_setzero_si512 (), | 
|---|
|  | 2055 | (__mmask64) -1); | 
|---|
|  | 2056 | } | 
|---|
|  | 2057 |  | 
|---|
|  | 2058 | extern __inline __m512i | 
|---|
|  | 2059 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2060 | _mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B) | 
|---|
|  | 2061 | { | 
|---|
|  | 2062 | return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A, | 
|---|
|  | 2063 | (__v64qi) __B, | 
|---|
|  | 2064 | (__v64qi) | 
|---|
|  | 2065 | _mm512_setzero_si512 (), | 
|---|
|  | 2066 | (__mmask64) __M); | 
|---|
|  | 2067 | } | 
|---|
|  | 2068 |  | 
|---|
|  | 2069 | extern __inline __m512i | 
|---|
|  | 2070 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2071 | _mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A, | 
|---|
|  | 2072 | __m512i __B) | 
|---|
|  | 2073 | { | 
|---|
|  | 2074 | return (__m512i) __builtin_ia32_pminub512_mask ((__v64qi) __A, | 
|---|
|  | 2075 | (__v64qi) __B, | 
|---|
|  | 2076 | (__v64qi) __W, | 
|---|
|  | 2077 | (__mmask64) __M); | 
|---|
|  | 2078 | } | 
|---|
|  | 2079 |  | 
|---|
|  | 2080 | extern __inline __m512i | 
|---|
|  | 2081 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2082 | _mm512_min_epi8 (__m512i __A, __m512i __B) | 
|---|
|  | 2083 | { | 
|---|
|  | 2084 | return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A, | 
|---|
|  | 2085 | (__v64qi) __B, | 
|---|
|  | 2086 | (__v64qi) | 
|---|
|  | 2087 | _mm512_setzero_si512 (), | 
|---|
|  | 2088 | (__mmask64) -1); | 
|---|
|  | 2089 | } | 
|---|
|  | 2090 |  | 
|---|
|  | 2091 | extern __inline __m512i | 
|---|
|  | 2092 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2093 | _mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B) | 
|---|
|  | 2094 | { | 
|---|
|  | 2095 | return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A, | 
|---|
|  | 2096 | (__v64qi) __B, | 
|---|
|  | 2097 | (__v64qi) | 
|---|
|  | 2098 | _mm512_setzero_si512 (), | 
|---|
|  | 2099 | (__mmask64) __M); | 
|---|
|  | 2100 | } | 
|---|
|  | 2101 |  | 
|---|
|  | 2102 | extern __inline __m512i | 
|---|
|  | 2103 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2104 | _mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A, | 
|---|
|  | 2105 | __m512i __B) | 
|---|
|  | 2106 | { | 
|---|
|  | 2107 | return (__m512i) __builtin_ia32_pminsb512_mask ((__v64qi) __A, | 
|---|
|  | 2108 | (__v64qi) __B, | 
|---|
|  | 2109 | (__v64qi) __W, | 
|---|
|  | 2110 | (__mmask64) __M); | 
|---|
|  | 2111 | } | 
|---|
|  | 2112 |  | 
|---|
|  | 2113 | extern __inline __m512i | 
|---|
|  | 2114 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2115 | _mm512_max_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 2116 | { | 
|---|
|  | 2117 | return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A, | 
|---|
|  | 2118 | (__v32hi) __B, | 
|---|
|  | 2119 | (__v32hi) | 
|---|
|  | 2120 | _mm512_setzero_si512 (), | 
|---|
|  | 2121 | (__mmask32) -1); | 
|---|
|  | 2122 | } | 
|---|
|  | 2123 |  | 
|---|
|  | 2124 | extern __inline __m512i | 
|---|
|  | 2125 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2126 | _mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B) | 
|---|
|  | 2127 | { | 
|---|
|  | 2128 | return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A, | 
|---|
|  | 2129 | (__v32hi) __B, | 
|---|
|  | 2130 | (__v32hi) | 
|---|
|  | 2131 | _mm512_setzero_si512 (), | 
|---|
|  | 2132 | (__mmask32) __M); | 
|---|
|  | 2133 | } | 
|---|
|  | 2134 |  | 
|---|
|  | 2135 | extern __inline __m512i | 
|---|
|  | 2136 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2137 | _mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A, | 
|---|
|  | 2138 | __m512i __B) | 
|---|
|  | 2139 | { | 
|---|
|  | 2140 | return (__m512i) __builtin_ia32_pmaxsw512_mask ((__v32hi) __A, | 
|---|
|  | 2141 | (__v32hi) __B, | 
|---|
|  | 2142 | (__v32hi) __W, | 
|---|
|  | 2143 | (__mmask32) __M); | 
|---|
|  | 2144 | } | 
|---|
|  | 2145 |  | 
|---|
|  | 2146 | extern __inline __m512i | 
|---|
|  | 2147 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2148 | _mm512_max_epu16 (__m512i __A, __m512i __B) | 
|---|
|  | 2149 | { | 
|---|
|  | 2150 | return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A, | 
|---|
|  | 2151 | (__v32hi) __B, | 
|---|
|  | 2152 | (__v32hi) | 
|---|
|  | 2153 | _mm512_setzero_si512 (), | 
|---|
|  | 2154 | (__mmask32) -1); | 
|---|
|  | 2155 | } | 
|---|
|  | 2156 |  | 
|---|
|  | 2157 | extern __inline __m512i | 
|---|
|  | 2158 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2159 | _mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B) | 
|---|
|  | 2160 | { | 
|---|
|  | 2161 | return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A, | 
|---|
|  | 2162 | (__v32hi) __B, | 
|---|
|  | 2163 | (__v32hi) | 
|---|
|  | 2164 | _mm512_setzero_si512 (), | 
|---|
|  | 2165 | (__mmask32) __M); | 
|---|
|  | 2166 | } | 
|---|
|  | 2167 |  | 
|---|
|  | 2168 | extern __inline __m512i | 
|---|
|  | 2169 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2170 | _mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A, | 
|---|
|  | 2171 | __m512i __B) | 
|---|
|  | 2172 | { | 
|---|
|  | 2173 | return (__m512i) __builtin_ia32_pmaxuw512_mask ((__v32hi) __A, | 
|---|
|  | 2174 | (__v32hi) __B, | 
|---|
|  | 2175 | (__v32hi) __W, | 
|---|
|  | 2176 | (__mmask32) __M); | 
|---|
|  | 2177 | } | 
|---|
|  | 2178 |  | 
|---|
|  | 2179 | extern __inline __m512i | 
|---|
|  | 2180 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2181 | _mm512_sra_epi16 (__m512i __A, __m128i __B) | 
|---|
|  | 2182 | { | 
|---|
|  | 2183 | return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A, | 
|---|
|  | 2184 | (__v8hi) __B, | 
|---|
|  | 2185 | (__v32hi) | 
|---|
|  | 2186 | _mm512_setzero_si512 (), | 
|---|
|  | 2187 | (__mmask32) -1); | 
|---|
|  | 2188 | } | 
|---|
|  | 2189 |  | 
|---|
|  | 2190 | extern __inline __m512i | 
|---|
|  | 2191 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2192 | _mm512_mask_sra_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 2193 | __m128i __B) | 
|---|
|  | 2194 | { | 
|---|
|  | 2195 | return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A, | 
|---|
|  | 2196 | (__v8hi) __B, | 
|---|
|  | 2197 | (__v32hi) __W, | 
|---|
|  | 2198 | (__mmask32) __U); | 
|---|
|  | 2199 | } | 
|---|
|  | 2200 |  | 
|---|
|  | 2201 | extern __inline __m512i | 
|---|
|  | 2202 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2203 | _mm512_maskz_sra_epi16 (__mmask32 __U, __m512i __A, __m128i __B) | 
|---|
|  | 2204 | { | 
|---|
|  | 2205 | return (__m512i) __builtin_ia32_psraw512_mask ((__v32hi) __A, | 
|---|
|  | 2206 | (__v8hi) __B, | 
|---|
|  | 2207 | (__v32hi) | 
|---|
|  | 2208 | _mm512_setzero_si512 (), | 
|---|
|  | 2209 | (__mmask32) __U); | 
|---|
|  | 2210 | } | 
|---|
|  | 2211 |  | 
|---|
|  | 2212 | extern __inline __m512i | 
|---|
|  | 2213 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2214 | _mm512_srav_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 2215 | { | 
|---|
|  | 2216 | return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A, | 
|---|
|  | 2217 | (__v32hi) __B, | 
|---|
|  | 2218 | (__v32hi) | 
|---|
|  | 2219 | _mm512_setzero_si512 (), | 
|---|
|  | 2220 | (__mmask32) -1); | 
|---|
|  | 2221 | } | 
|---|
|  | 2222 |  | 
|---|
|  | 2223 | extern __inline __m512i | 
|---|
|  | 2224 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2225 | _mm512_mask_srav_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 2226 | __m512i __B) | 
|---|
|  | 2227 | { | 
|---|
|  | 2228 | return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A, | 
|---|
|  | 2229 | (__v32hi) __B, | 
|---|
|  | 2230 | (__v32hi) __W, | 
|---|
|  | 2231 | (__mmask32) __U); | 
|---|
|  | 2232 | } | 
|---|
|  | 2233 |  | 
|---|
|  | 2234 | extern __inline __m512i | 
|---|
|  | 2235 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2236 | _mm512_maskz_srav_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 2237 | { | 
|---|
|  | 2238 | return (__m512i) __builtin_ia32_psrav32hi_mask ((__v32hi) __A, | 
|---|
|  | 2239 | (__v32hi) __B, | 
|---|
|  | 2240 | (__v32hi) | 
|---|
|  | 2241 | _mm512_setzero_si512 (), | 
|---|
|  | 2242 | (__mmask32) __U); | 
|---|
|  | 2243 | } | 
|---|
|  | 2244 |  | 
|---|
|  | 2245 | extern __inline __m512i | 
|---|
|  | 2246 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2247 | _mm512_srlv_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 2248 | { | 
|---|
|  | 2249 | return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A, | 
|---|
|  | 2250 | (__v32hi) __B, | 
|---|
|  | 2251 | (__v32hi) | 
|---|
|  | 2252 | _mm512_setzero_si512 (), | 
|---|
|  | 2253 | (__mmask32) -1); | 
|---|
|  | 2254 | } | 
|---|
|  | 2255 |  | 
|---|
|  | 2256 | extern __inline __m512i | 
|---|
|  | 2257 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2258 | _mm512_mask_srlv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 2259 | __m512i __B) | 
|---|
|  | 2260 | { | 
|---|
|  | 2261 | return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A, | 
|---|
|  | 2262 | (__v32hi) __B, | 
|---|
|  | 2263 | (__v32hi) __W, | 
|---|
|  | 2264 | (__mmask32) __U); | 
|---|
|  | 2265 | } | 
|---|
|  | 2266 |  | 
|---|
|  | 2267 | extern __inline __m512i | 
|---|
|  | 2268 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2269 | _mm512_maskz_srlv_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 2270 | { | 
|---|
|  | 2271 | return (__m512i) __builtin_ia32_psrlv32hi_mask ((__v32hi) __A, | 
|---|
|  | 2272 | (__v32hi) __B, | 
|---|
|  | 2273 | (__v32hi) | 
|---|
|  | 2274 | _mm512_setzero_si512 (), | 
|---|
|  | 2275 | (__mmask32) __U); | 
|---|
|  | 2276 | } | 
|---|
|  | 2277 |  | 
|---|
|  | 2278 | extern __inline __m512i | 
|---|
|  | 2279 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2280 | _mm512_sllv_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 2281 | { | 
|---|
|  | 2282 | return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A, | 
|---|
|  | 2283 | (__v32hi) __B, | 
|---|
|  | 2284 | (__v32hi) | 
|---|
|  | 2285 | _mm512_setzero_si512 (), | 
|---|
|  | 2286 | (__mmask32) -1); | 
|---|
|  | 2287 | } | 
|---|
|  | 2288 |  | 
|---|
|  | 2289 | extern __inline __m512i | 
|---|
|  | 2290 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2291 | _mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 2292 | __m512i __B) | 
|---|
|  | 2293 | { | 
|---|
|  | 2294 | return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A, | 
|---|
|  | 2295 | (__v32hi) __B, | 
|---|
|  | 2296 | (__v32hi) __W, | 
|---|
|  | 2297 | (__mmask32) __U); | 
|---|
|  | 2298 | } | 
|---|
|  | 2299 |  | 
|---|
|  | 2300 | extern __inline __m512i | 
|---|
|  | 2301 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2302 | _mm512_maskz_sllv_epi16 (__mmask32 __U, __m512i __A, __m512i __B) | 
|---|
|  | 2303 | { | 
|---|
|  | 2304 | return (__m512i) __builtin_ia32_psllv32hi_mask ((__v32hi) __A, | 
|---|
|  | 2305 | (__v32hi) __B, | 
|---|
|  | 2306 | (__v32hi) | 
|---|
|  | 2307 | _mm512_setzero_si512 (), | 
|---|
|  | 2308 | (__mmask32) __U); | 
|---|
|  | 2309 | } | 
|---|
|  | 2310 |  | 
|---|
|  | 2311 | extern __inline __m512i | 
|---|
|  | 2312 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2313 | _mm512_mask_packs_epi16 (__m512i __W, __mmask64 __M, __m512i __A, | 
|---|
|  | 2314 | __m512i __B) | 
|---|
|  | 2315 | { | 
|---|
|  | 2316 | return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A, | 
|---|
|  | 2317 | (__v32hi) __B, | 
|---|
|  | 2318 | (__v64qi) __W, | 
|---|
|  | 2319 | (__mmask64) __M); | 
|---|
|  | 2320 | } | 
|---|
|  | 2321 |  | 
|---|
|  | 2322 | extern __inline __m512i | 
|---|
|  | 2323 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2324 | _mm512_maskz_packs_epi16 (__mmask64 __M, __m512i __A, __m512i __B) | 
|---|
|  | 2325 | { | 
|---|
|  | 2326 | return (__m512i) __builtin_ia32_packsswb512_mask ((__v32hi) __A, | 
|---|
|  | 2327 | (__v32hi) __B, | 
|---|
|  | 2328 | (__v64qi) | 
|---|
|  | 2329 | _mm512_setzero_si512 (), | 
|---|
|  | 2330 | __M); | 
|---|
|  | 2331 | } | 
|---|
|  | 2332 |  | 
|---|
|  | 2333 | extern __inline __m512i | 
|---|
|  | 2334 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2335 | _mm512_packus_epi16 (__m512i __A, __m512i __B) | 
|---|
|  | 2336 | { | 
|---|
|  | 2337 | return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A, | 
|---|
|  | 2338 | (__v32hi) __B, | 
|---|
|  | 2339 | (__v64qi) | 
|---|
|  | 2340 | _mm512_setzero_si512 (), | 
|---|
|  | 2341 | (__mmask64) -1); | 
|---|
|  | 2342 | } | 
|---|
|  | 2343 |  | 
|---|
|  | 2344 | extern __inline __m512i | 
|---|
|  | 2345 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2346 | _mm512_mask_packus_epi16 (__m512i __W, __mmask64 __M, __m512i __A, | 
|---|
|  | 2347 | __m512i __B) | 
|---|
|  | 2348 | { | 
|---|
|  | 2349 | return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A, | 
|---|
|  | 2350 | (__v32hi) __B, | 
|---|
|  | 2351 | (__v64qi) __W, | 
|---|
|  | 2352 | (__mmask64) __M); | 
|---|
|  | 2353 | } | 
|---|
|  | 2354 |  | 
|---|
|  | 2355 | extern __inline __m512i | 
|---|
|  | 2356 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2357 | _mm512_maskz_packus_epi16 (__mmask64 __M, __m512i __A, __m512i __B) | 
|---|
|  | 2358 | { | 
|---|
|  | 2359 | return (__m512i) __builtin_ia32_packuswb512_mask ((__v32hi) __A, | 
|---|
|  | 2360 | (__v32hi) __B, | 
|---|
|  | 2361 | (__v64qi) | 
|---|
|  | 2362 | _mm512_setzero_si512 (), | 
|---|
|  | 2363 | (__mmask64) __M); | 
|---|
|  | 2364 | } | 
|---|
|  | 2365 |  | 
|---|
|  | 2366 | extern __inline __m512i | 
|---|
|  | 2367 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2368 | _mm512_abs_epi8 (__m512i __A) | 
|---|
|  | 2369 | { | 
|---|
|  | 2370 | return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A, | 
|---|
|  | 2371 | (__v64qi) | 
|---|
|  | 2372 | _mm512_setzero_si512 (), | 
|---|
|  | 2373 | (__mmask64) -1); | 
|---|
|  | 2374 | } | 
|---|
|  | 2375 |  | 
|---|
|  | 2376 | extern __inline __m512i | 
|---|
|  | 2377 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2378 | _mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A) | 
|---|
|  | 2379 | { | 
|---|
|  | 2380 | return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A, | 
|---|
|  | 2381 | (__v64qi) __W, | 
|---|
|  | 2382 | (__mmask64) __U); | 
|---|
|  | 2383 | } | 
|---|
|  | 2384 |  | 
|---|
|  | 2385 | extern __inline __m512i | 
|---|
|  | 2386 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2387 | _mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A) | 
|---|
|  | 2388 | { | 
|---|
|  | 2389 | return (__m512i) __builtin_ia32_pabsb512_mask ((__v64qi) __A, | 
|---|
|  | 2390 | (__v64qi) | 
|---|
|  | 2391 | _mm512_setzero_si512 (), | 
|---|
|  | 2392 | (__mmask64) __U); | 
|---|
|  | 2393 | } | 
|---|
|  | 2394 |  | 
|---|
|  | 2395 | extern __inline __m512i | 
|---|
|  | 2396 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2397 | _mm512_abs_epi16 (__m512i __A) | 
|---|
|  | 2398 | { | 
|---|
|  | 2399 | return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A, | 
|---|
|  | 2400 | (__v32hi) | 
|---|
|  | 2401 | _mm512_setzero_si512 (), | 
|---|
|  | 2402 | (__mmask32) -1); | 
|---|
|  | 2403 | } | 
|---|
|  | 2404 |  | 
|---|
|  | 2405 | extern __inline __m512i | 
|---|
|  | 2406 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2407 | _mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A) | 
|---|
|  | 2408 | { | 
|---|
|  | 2409 | return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A, | 
|---|
|  | 2410 | (__v32hi) __W, | 
|---|
|  | 2411 | (__mmask32) __U); | 
|---|
|  | 2412 | } | 
|---|
|  | 2413 |  | 
|---|
|  | 2414 | extern __inline __m512i | 
|---|
|  | 2415 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2416 | _mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A) | 
|---|
|  | 2417 | { | 
|---|
|  | 2418 | return (__m512i) __builtin_ia32_pabsw512_mask ((__v32hi) __A, | 
|---|
|  | 2419 | (__v32hi) | 
|---|
|  | 2420 | _mm512_setzero_si512 (), | 
|---|
|  | 2421 | (__mmask32) __U); | 
|---|
|  | 2422 | } | 
|---|
|  | 2423 |  | 
|---|
|  | 2424 | extern __inline __mmask64 | 
|---|
|  | 2425 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2426 | _mm512_mask_cmpneq_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2427 | { | 
|---|
|  | 2428 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2429 | (__v64qi) __Y, 4, | 
|---|
|  | 2430 | (__mmask64) __M); | 
|---|
|  | 2431 | } | 
|---|
|  | 2432 |  | 
|---|
|  | 2433 | extern __inline __mmask64 | 
|---|
|  | 2434 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2435 | _mm512_mask_cmplt_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2436 | { | 
|---|
|  | 2437 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2438 | (__v64qi) __Y, 1, | 
|---|
|  | 2439 | (__mmask64) __M); | 
|---|
|  | 2440 | } | 
|---|
|  | 2441 |  | 
|---|
|  | 2442 | extern __inline __mmask64 | 
|---|
|  | 2443 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2444 | _mm512_mask_cmpge_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2445 | { | 
|---|
|  | 2446 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2447 | (__v64qi) __Y, 5, | 
|---|
|  | 2448 | (__mmask64) __M); | 
|---|
|  | 2449 | } | 
|---|
|  | 2450 |  | 
|---|
|  | 2451 | extern __inline __mmask64 | 
|---|
|  | 2452 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2453 | _mm512_mask_cmple_epu8_mask (__mmask64 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2454 | { | 
|---|
|  | 2455 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2456 | (__v64qi) __Y, 2, | 
|---|
|  | 2457 | (__mmask64) __M); | 
|---|
|  | 2458 | } | 
|---|
|  | 2459 |  | 
|---|
|  | 2460 | extern __inline __mmask32 | 
|---|
|  | 2461 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2462 | _mm512_mask_cmpneq_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2463 | { | 
|---|
|  | 2464 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2465 | (__v32hi) __Y, 4, | 
|---|
|  | 2466 | (__mmask32) __M); | 
|---|
|  | 2467 | } | 
|---|
|  | 2468 |  | 
|---|
|  | 2469 | extern __inline __mmask32 | 
|---|
|  | 2470 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2471 | _mm512_mask_cmplt_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2472 | { | 
|---|
|  | 2473 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2474 | (__v32hi) __Y, 1, | 
|---|
|  | 2475 | (__mmask32) __M); | 
|---|
|  | 2476 | } | 
|---|
|  | 2477 |  | 
|---|
|  | 2478 | extern __inline __mmask32 | 
|---|
|  | 2479 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2480 | _mm512_mask_cmpge_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2481 | { | 
|---|
|  | 2482 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2483 | (__v32hi) __Y, 5, | 
|---|
|  | 2484 | (__mmask32) __M); | 
|---|
|  | 2485 | } | 
|---|
|  | 2486 |  | 
|---|
|  | 2487 | extern __inline __mmask32 | 
|---|
|  | 2488 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2489 | _mm512_mask_cmple_epu16_mask (__mmask32 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2490 | { | 
|---|
|  | 2491 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2492 | (__v32hi) __Y, 2, | 
|---|
|  | 2493 | (__mmask32) __M); | 
|---|
|  | 2494 | } | 
|---|
|  | 2495 |  | 
|---|
|  | 2496 | extern __inline __mmask64 | 
|---|
|  | 2497 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2498 | _mm512_mask_cmpneq_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2499 | { | 
|---|
|  | 2500 | return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2501 | (__v64qi) __Y, 4, | 
|---|
|  | 2502 | (__mmask64) __M); | 
|---|
|  | 2503 | } | 
|---|
|  | 2504 |  | 
|---|
|  | 2505 | extern __inline __mmask64 | 
|---|
|  | 2506 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2507 | _mm512_mask_cmplt_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2508 | { | 
|---|
|  | 2509 | return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2510 | (__v64qi) __Y, 1, | 
|---|
|  | 2511 | (__mmask64) __M); | 
|---|
|  | 2512 | } | 
|---|
|  | 2513 |  | 
|---|
|  | 2514 | extern __inline __mmask64 | 
|---|
|  | 2515 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2516 | _mm512_mask_cmpge_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2517 | { | 
|---|
|  | 2518 | return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2519 | (__v64qi) __Y, 5, | 
|---|
|  | 2520 | (__mmask64) __M); | 
|---|
|  | 2521 | } | 
|---|
|  | 2522 |  | 
|---|
|  | 2523 | extern __inline __mmask64 | 
|---|
|  | 2524 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2525 | _mm512_mask_cmple_epi8_mask (__mmask64 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2526 | { | 
|---|
|  | 2527 | return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2528 | (__v64qi) __Y, 2, | 
|---|
|  | 2529 | (__mmask64) __M); | 
|---|
|  | 2530 | } | 
|---|
|  | 2531 |  | 
|---|
|  | 2532 | extern __inline __mmask32 | 
|---|
|  | 2533 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2534 | _mm512_mask_cmpneq_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2535 | { | 
|---|
|  | 2536 | return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2537 | (__v32hi) __Y, 4, | 
|---|
|  | 2538 | (__mmask32) __M); | 
|---|
|  | 2539 | } | 
|---|
|  | 2540 |  | 
|---|
|  | 2541 | extern __inline __mmask32 | 
|---|
|  | 2542 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2543 | _mm512_mask_cmplt_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2544 | { | 
|---|
|  | 2545 | return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2546 | (__v32hi) __Y, 1, | 
|---|
|  | 2547 | (__mmask32) __M); | 
|---|
|  | 2548 | } | 
|---|
|  | 2549 |  | 
|---|
|  | 2550 | extern __inline __mmask32 | 
|---|
|  | 2551 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2552 | _mm512_mask_cmpge_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2553 | { | 
|---|
|  | 2554 | return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2555 | (__v32hi) __Y, 5, | 
|---|
|  | 2556 | (__mmask32) __M); | 
|---|
|  | 2557 | } | 
|---|
|  | 2558 |  | 
|---|
|  | 2559 | extern __inline __mmask32 | 
|---|
|  | 2560 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2561 | _mm512_mask_cmple_epi16_mask (__mmask32 __M, __m512i __X, __m512i __Y) | 
|---|
|  | 2562 | { | 
|---|
|  | 2563 | return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2564 | (__v32hi) __Y, 2, | 
|---|
|  | 2565 | (__mmask32) __M); | 
|---|
|  | 2566 | } | 
|---|
|  | 2567 |  | 
|---|
|  | 2568 | extern __inline __mmask64 | 
|---|
|  | 2569 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2570 | _mm512_cmpneq_epu8_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2571 | { | 
|---|
|  | 2572 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2573 | (__v64qi) __Y, 4, | 
|---|
|  | 2574 | (__mmask64) -1); | 
|---|
|  | 2575 | } | 
|---|
|  | 2576 |  | 
|---|
|  | 2577 | extern __inline __mmask64 | 
|---|
|  | 2578 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2579 | _mm512_cmplt_epu8_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2580 | { | 
|---|
|  | 2581 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2582 | (__v64qi) __Y, 1, | 
|---|
|  | 2583 | (__mmask64) -1); | 
|---|
|  | 2584 | } | 
|---|
|  | 2585 |  | 
|---|
|  | 2586 | extern __inline __mmask64 | 
|---|
|  | 2587 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2588 | _mm512_cmpge_epu8_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2589 | { | 
|---|
|  | 2590 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2591 | (__v64qi) __Y, 5, | 
|---|
|  | 2592 | (__mmask64) -1); | 
|---|
|  | 2593 | } | 
|---|
|  | 2594 |  | 
|---|
|  | 2595 | extern __inline __mmask64 | 
|---|
|  | 2596 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2597 | _mm512_cmple_epu8_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2598 | { | 
|---|
|  | 2599 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2600 | (__v64qi) __Y, 2, | 
|---|
|  | 2601 | (__mmask64) -1); | 
|---|
|  | 2602 | } | 
|---|
|  | 2603 |  | 
|---|
|  | 2604 | extern __inline __mmask32 | 
|---|
|  | 2605 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2606 | _mm512_cmpneq_epu16_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2607 | { | 
|---|
|  | 2608 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2609 | (__v32hi) __Y, 4, | 
|---|
|  | 2610 | (__mmask32) -1); | 
|---|
|  | 2611 | } | 
|---|
|  | 2612 |  | 
|---|
|  | 2613 | extern __inline __mmask32 | 
|---|
|  | 2614 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2615 | _mm512_cmplt_epu16_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2616 | { | 
|---|
|  | 2617 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2618 | (__v32hi) __Y, 1, | 
|---|
|  | 2619 | (__mmask32) -1); | 
|---|
|  | 2620 | } | 
|---|
|  | 2621 |  | 
|---|
|  | 2622 | extern __inline __mmask32 | 
|---|
|  | 2623 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2624 | _mm512_cmpge_epu16_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2625 | { | 
|---|
|  | 2626 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2627 | (__v32hi) __Y, 5, | 
|---|
|  | 2628 | (__mmask32) -1); | 
|---|
|  | 2629 | } | 
|---|
|  | 2630 |  | 
|---|
|  | 2631 | extern __inline __mmask32 | 
|---|
|  | 2632 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2633 | _mm512_cmple_epu16_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2634 | { | 
|---|
|  | 2635 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2636 | (__v32hi) __Y, 2, | 
|---|
|  | 2637 | (__mmask32) -1); | 
|---|
|  | 2638 | } | 
|---|
|  | 2639 |  | 
|---|
|  | 2640 | extern __inline __mmask64 | 
|---|
|  | 2641 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2642 | _mm512_cmpneq_epi8_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2643 | { | 
|---|
|  | 2644 | return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2645 | (__v64qi) __Y, 4, | 
|---|
|  | 2646 | (__mmask64) -1); | 
|---|
|  | 2647 | } | 
|---|
|  | 2648 |  | 
|---|
|  | 2649 | extern __inline __mmask64 | 
|---|
|  | 2650 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2651 | _mm512_cmplt_epi8_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2652 | { | 
|---|
|  | 2653 | return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2654 | (__v64qi) __Y, 1, | 
|---|
|  | 2655 | (__mmask64) -1); | 
|---|
|  | 2656 | } | 
|---|
|  | 2657 |  | 
|---|
|  | 2658 | extern __inline __mmask64 | 
|---|
|  | 2659 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2660 | _mm512_cmpge_epi8_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2661 | { | 
|---|
|  | 2662 | return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2663 | (__v64qi) __Y, 5, | 
|---|
|  | 2664 | (__mmask64) -1); | 
|---|
|  | 2665 | } | 
|---|
|  | 2666 |  | 
|---|
|  | 2667 | extern __inline __mmask64 | 
|---|
|  | 2668 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2669 | _mm512_cmple_epi8_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2670 | { | 
|---|
|  | 2671 | return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, | 
|---|
|  | 2672 | (__v64qi) __Y, 2, | 
|---|
|  | 2673 | (__mmask64) -1); | 
|---|
|  | 2674 | } | 
|---|
|  | 2675 |  | 
|---|
|  | 2676 | extern __inline __mmask32 | 
|---|
|  | 2677 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2678 | _mm512_cmpneq_epi16_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2679 | { | 
|---|
|  | 2680 | return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2681 | (__v32hi) __Y, 4, | 
|---|
|  | 2682 | (__mmask32) -1); | 
|---|
|  | 2683 | } | 
|---|
|  | 2684 |  | 
|---|
|  | 2685 | extern __inline __mmask32 | 
|---|
|  | 2686 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2687 | _mm512_cmplt_epi16_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2688 | { | 
|---|
|  | 2689 | return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2690 | (__v32hi) __Y, 1, | 
|---|
|  | 2691 | (__mmask32) -1); | 
|---|
|  | 2692 | } | 
|---|
|  | 2693 |  | 
|---|
|  | 2694 | extern __inline __mmask32 | 
|---|
|  | 2695 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2696 | _mm512_cmpge_epi16_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2697 | { | 
|---|
|  | 2698 | return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2699 | (__v32hi) __Y, 5, | 
|---|
|  | 2700 | (__mmask32) -1); | 
|---|
|  | 2701 | } | 
|---|
|  | 2702 |  | 
|---|
|  | 2703 | extern __inline __mmask32 | 
|---|
|  | 2704 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2705 | _mm512_cmple_epi16_mask (__m512i __X, __m512i __Y) | 
|---|
|  | 2706 | { | 
|---|
|  | 2707 | return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, | 
|---|
|  | 2708 | (__v32hi) __Y, 2, | 
|---|
|  | 2709 | (__mmask32) -1); | 
|---|
|  | 2710 | } | 
|---|
|  | 2711 |  | 
|---|
|  | 2712 | extern __inline __m512i | 
|---|
|  | 2713 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2714 | _mm512_packs_epi32 (__m512i __A, __m512i __B) | 
|---|
|  | 2715 | { | 
|---|
|  | 2716 | return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A, | 
|---|
|  | 2717 | (__v16si) __B, | 
|---|
|  | 2718 | (__v32hi) | 
|---|
|  | 2719 | _mm512_setzero_si512 (), | 
|---|
|  | 2720 | (__mmask32) -1); | 
|---|
|  | 2721 | } | 
|---|
|  | 2722 |  | 
|---|
|  | 2723 | extern __inline __m512i | 
|---|
|  | 2724 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2725 | _mm512_maskz_packs_epi32 (__mmask32 __M, __m512i __A, __m512i __B) | 
|---|
|  | 2726 | { | 
|---|
|  | 2727 | return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A, | 
|---|
|  | 2728 | (__v16si) __B, | 
|---|
|  | 2729 | (__v32hi) | 
|---|
|  | 2730 | _mm512_setzero_si512 (), | 
|---|
|  | 2731 | __M); | 
|---|
|  | 2732 | } | 
|---|
|  | 2733 |  | 
|---|
|  | 2734 | extern __inline __m512i | 
|---|
|  | 2735 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2736 | _mm512_mask_packs_epi32 (__m512i __W, __mmask32 __M, __m512i __A, | 
|---|
|  | 2737 | __m512i __B) | 
|---|
|  | 2738 | { | 
|---|
|  | 2739 | return (__m512i) __builtin_ia32_packssdw512_mask ((__v16si) __A, | 
|---|
|  | 2740 | (__v16si) __B, | 
|---|
|  | 2741 | (__v32hi) __W, | 
|---|
|  | 2742 | __M); | 
|---|
|  | 2743 | } | 
|---|
|  | 2744 |  | 
|---|
|  | 2745 | extern __inline __m512i | 
|---|
|  | 2746 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2747 | _mm512_packus_epi32 (__m512i __A, __m512i __B) | 
|---|
|  | 2748 | { | 
|---|
|  | 2749 | return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A, | 
|---|
|  | 2750 | (__v16si) __B, | 
|---|
|  | 2751 | (__v32hi) | 
|---|
|  | 2752 | _mm512_setzero_si512 (), | 
|---|
|  | 2753 | (__mmask32) -1); | 
|---|
|  | 2754 | } | 
|---|
|  | 2755 |  | 
|---|
|  | 2756 | extern __inline __m512i | 
|---|
|  | 2757 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2758 | _mm512_maskz_packus_epi32 (__mmask32 __M, __m512i __A, __m512i __B) | 
|---|
|  | 2759 | { | 
|---|
|  | 2760 | return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A, | 
|---|
|  | 2761 | (__v16si) __B, | 
|---|
|  | 2762 | (__v32hi) | 
|---|
|  | 2763 | _mm512_setzero_si512 (), | 
|---|
|  | 2764 | __M); | 
|---|
|  | 2765 | } | 
|---|
|  | 2766 |  | 
|---|
|  | 2767 | extern __inline __m512i | 
|---|
|  | 2768 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2769 | _mm512_mask_packus_epi32 (__m512i __W, __mmask32 __M, __m512i __A, | 
|---|
|  | 2770 | __m512i __B) | 
|---|
|  | 2771 | { | 
|---|
|  | 2772 | return (__m512i) __builtin_ia32_packusdw512_mask ((__v16si) __A, | 
|---|
|  | 2773 | (__v16si) __B, | 
|---|
|  | 2774 | (__v32hi) __W, | 
|---|
|  | 2775 | __M); | 
|---|
|  | 2776 | } | 
|---|
|  | 2777 |  | 
|---|
|  | 2778 | #ifdef __OPTIMIZE__ | 
|---|
|  | 2779 | extern __inline __mmask32 | 
|---|
|  | 2780 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2781 | _kshiftli_mask32 (__mmask32 __A, unsigned int __B) | 
|---|
|  | 2782 | { | 
|---|
|  | 2783 | return (__mmask32) __builtin_ia32_kshiftlisi ((__mmask32) __A, | 
|---|
|  | 2784 | (__mmask8) __B); | 
|---|
|  | 2785 | } | 
|---|
|  | 2786 |  | 
|---|
|  | 2787 | extern __inline __mmask64 | 
|---|
|  | 2788 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2789 | _kshiftli_mask64 (__mmask64 __A, unsigned int __B) | 
|---|
|  | 2790 | { | 
|---|
|  | 2791 | return (__mmask64) __builtin_ia32_kshiftlidi ((__mmask64) __A, | 
|---|
|  | 2792 | (__mmask8) __B); | 
|---|
|  | 2793 | } | 
|---|
|  | 2794 |  | 
|---|
|  | 2795 | extern __inline __mmask32 | 
|---|
|  | 2796 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2797 | _kshiftri_mask32 (__mmask32 __A, unsigned int __B) | 
|---|
|  | 2798 | { | 
|---|
|  | 2799 | return (__mmask32) __builtin_ia32_kshiftrisi ((__mmask32) __A, | 
|---|
|  | 2800 | (__mmask8) __B); | 
|---|
|  | 2801 | } | 
|---|
|  | 2802 |  | 
|---|
|  | 2803 | extern __inline __mmask64 | 
|---|
|  | 2804 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2805 | _kshiftri_mask64 (__mmask64 __A, unsigned int __B) | 
|---|
|  | 2806 | { | 
|---|
|  | 2807 | return (__mmask64) __builtin_ia32_kshiftridi ((__mmask64) __A, | 
|---|
|  | 2808 | (__mmask8) __B); | 
|---|
|  | 2809 | } | 
|---|
|  | 2810 |  | 
|---|
|  | 2811 | extern __inline __m512i | 
|---|
|  | 2812 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2813 | _mm512_alignr_epi8 (__m512i __A, __m512i __B, const int __N) | 
|---|
|  | 2814 | { | 
|---|
|  | 2815 | return (__m512i) __builtin_ia32_palignr512 ((__v8di) __A, | 
|---|
|  | 2816 | (__v8di) __B, __N * 8); | 
|---|
|  | 2817 | } | 
|---|
|  | 2818 |  | 
|---|
|  | 2819 | extern __inline __m512i | 
|---|
|  | 2820 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2821 | _mm512_mask_alignr_epi8 (__m512i __W, __mmask64 __U, __m512i __A, | 
|---|
|  | 2822 | __m512i __B, const int __N) | 
|---|
|  | 2823 | { | 
|---|
|  | 2824 | return (__m512i) __builtin_ia32_palignr512_mask ((__v8di) __A, | 
|---|
|  | 2825 | (__v8di) __B, | 
|---|
|  | 2826 | __N * 8, | 
|---|
|  | 2827 | (__v8di) __W, | 
|---|
|  | 2828 | (__mmask64) __U); | 
|---|
|  | 2829 | } | 
|---|
|  | 2830 |  | 
|---|
|  | 2831 | extern __inline __m512i | 
|---|
|  | 2832 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2833 | _mm512_maskz_alignr_epi8 (__mmask64 __U, __m512i __A, __m512i __B, | 
|---|
|  | 2834 | const int __N) | 
|---|
|  | 2835 | { | 
|---|
|  | 2836 | return (__m512i) __builtin_ia32_palignr512_mask ((__v8di) __A, | 
|---|
|  | 2837 | (__v8di) __B, | 
|---|
|  | 2838 | __N * 8, | 
|---|
|  | 2839 | (__v8di) | 
|---|
|  | 2840 | _mm512_setzero_si512 (), | 
|---|
|  | 2841 | (__mmask64) __U); | 
|---|
|  | 2842 | } | 
|---|
|  | 2843 |  | 
|---|
|  | 2844 | extern __inline __m512i | 
|---|
|  | 2845 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2846 | _mm512_dbsad_epu8 (__m512i __A, __m512i __B, const int __imm) | 
|---|
|  | 2847 | { | 
|---|
|  | 2848 | return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A, | 
|---|
|  | 2849 | (__v64qi) __B, | 
|---|
|  | 2850 | __imm, | 
|---|
|  | 2851 | (__v32hi) | 
|---|
|  | 2852 | _mm512_setzero_si512 (), | 
|---|
|  | 2853 | (__mmask32) -1); | 
|---|
|  | 2854 | } | 
|---|
|  | 2855 |  | 
|---|
|  | 2856 | extern __inline __m512i | 
|---|
|  | 2857 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2858 | _mm512_mask_dbsad_epu8 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 2859 | __m512i __B, const int __imm) | 
|---|
|  | 2860 | { | 
|---|
|  | 2861 | return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A, | 
|---|
|  | 2862 | (__v64qi) __B, | 
|---|
|  | 2863 | __imm, | 
|---|
|  | 2864 | (__v32hi) __W, | 
|---|
|  | 2865 | (__mmask32) __U); | 
|---|
|  | 2866 | } | 
|---|
|  | 2867 |  | 
|---|
|  | 2868 | extern __inline __m512i | 
|---|
|  | 2869 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2870 | _mm512_maskz_dbsad_epu8 (__mmask32 __U, __m512i __A, __m512i __B, | 
|---|
|  | 2871 | const int __imm) | 
|---|
|  | 2872 | { | 
|---|
|  | 2873 | return (__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi) __A, | 
|---|
|  | 2874 | (__v64qi) __B, | 
|---|
|  | 2875 | __imm, | 
|---|
|  | 2876 | (__v32hi) | 
|---|
|  | 2877 | _mm512_setzero_si512 (), | 
|---|
|  | 2878 | (__mmask32) __U); | 
|---|
|  | 2879 | } | 
|---|
|  | 2880 |  | 
|---|
|  | 2881 | extern __inline __m512i | 
|---|
|  | 2882 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2883 | _mm512_srli_epi16 (__m512i __A, const int __imm) | 
|---|
|  | 2884 | { | 
|---|
|  | 2885 | return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm, | 
|---|
|  | 2886 | (__v32hi) | 
|---|
|  | 2887 | _mm512_setzero_si512 (), | 
|---|
|  | 2888 | (__mmask32) -1); | 
|---|
|  | 2889 | } | 
|---|
|  | 2890 |  | 
|---|
|  | 2891 | extern __inline __m512i | 
|---|
|  | 2892 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2893 | _mm512_mask_srli_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 2894 | const int __imm) | 
|---|
|  | 2895 | { | 
|---|
|  | 2896 | return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm, | 
|---|
|  | 2897 | (__v32hi) __W, | 
|---|
|  | 2898 | (__mmask32) __U); | 
|---|
|  | 2899 | } | 
|---|
|  | 2900 |  | 
|---|
|  | 2901 | extern __inline __m512i | 
|---|
|  | 2902 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2903 | _mm512_maskz_srli_epi16 (__mmask32 __U, __m512i __A, const int __imm) | 
|---|
|  | 2904 | { | 
|---|
|  | 2905 | return (__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi) __A, __imm, | 
|---|
|  | 2906 | (__v32hi) | 
|---|
|  | 2907 | _mm512_setzero_si512 (), | 
|---|
|  | 2908 | (__mmask32) __U); | 
|---|
|  | 2909 | } | 
|---|
|  | 2910 |  | 
|---|
|  | 2911 | extern __inline __m512i | 
|---|
|  | 2912 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2913 | _mm512_slli_epi16 (__m512i __A, const int __B) | 
|---|
|  | 2914 | { | 
|---|
|  | 2915 | return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B, | 
|---|
|  | 2916 | (__v32hi) | 
|---|
|  | 2917 | _mm512_setzero_si512 (), | 
|---|
|  | 2918 | (__mmask32) -1); | 
|---|
|  | 2919 | } | 
|---|
|  | 2920 |  | 
|---|
|  | 2921 | extern __inline __m512i | 
|---|
|  | 2922 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2923 | _mm512_mask_slli_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 2924 | const int __B) | 
|---|
|  | 2925 | { | 
|---|
|  | 2926 | return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B, | 
|---|
|  | 2927 | (__v32hi) __W, | 
|---|
|  | 2928 | (__mmask32) __U); | 
|---|
|  | 2929 | } | 
|---|
|  | 2930 |  | 
|---|
|  | 2931 | extern __inline __m512i | 
|---|
|  | 2932 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2933 | _mm512_maskz_slli_epi16 (__mmask32 __U, __m512i __A, const int __B) | 
|---|
|  | 2934 | { | 
|---|
|  | 2935 | return (__m512i) __builtin_ia32_psllwi512_mask ((__v32hi) __A, __B, | 
|---|
|  | 2936 | (__v32hi) | 
|---|
|  | 2937 | _mm512_setzero_si512 (), | 
|---|
|  | 2938 | (__mmask32) __U); | 
|---|
|  | 2939 | } | 
|---|
|  | 2940 |  | 
|---|
|  | 2941 | extern __inline __m512i | 
|---|
|  | 2942 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2943 | _mm512_shufflehi_epi16 (__m512i __A, const int __imm) | 
|---|
|  | 2944 | { | 
|---|
|  | 2945 | return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A, | 
|---|
|  | 2946 | __imm, | 
|---|
|  | 2947 | (__v32hi) | 
|---|
|  | 2948 | _mm512_setzero_si512 (), | 
|---|
|  | 2949 | (__mmask32) -1); | 
|---|
|  | 2950 | } | 
|---|
|  | 2951 |  | 
|---|
|  | 2952 | extern __inline __m512i | 
|---|
|  | 2953 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2954 | _mm512_mask_shufflehi_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 2955 | const int __imm) | 
|---|
|  | 2956 | { | 
|---|
|  | 2957 | return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A, | 
|---|
|  | 2958 | __imm, | 
|---|
|  | 2959 | (__v32hi) __W, | 
|---|
|  | 2960 | (__mmask32) __U); | 
|---|
|  | 2961 | } | 
|---|
|  | 2962 |  | 
|---|
|  | 2963 | extern __inline __m512i | 
|---|
|  | 2964 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2965 | _mm512_maskz_shufflehi_epi16 (__mmask32 __U, __m512i __A, | 
|---|
|  | 2966 | const int __imm) | 
|---|
|  | 2967 | { | 
|---|
|  | 2968 | return (__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi) __A, | 
|---|
|  | 2969 | __imm, | 
|---|
|  | 2970 | (__v32hi) | 
|---|
|  | 2971 | _mm512_setzero_si512 (), | 
|---|
|  | 2972 | (__mmask32) __U); | 
|---|
|  | 2973 | } | 
|---|
|  | 2974 |  | 
|---|
|  | 2975 | extern __inline __m512i | 
|---|
|  | 2976 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2977 | _mm512_shufflelo_epi16 (__m512i __A, const int __imm) | 
|---|
|  | 2978 | { | 
|---|
|  | 2979 | return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A, | 
|---|
|  | 2980 | __imm, | 
|---|
|  | 2981 | (__v32hi) | 
|---|
|  | 2982 | _mm512_setzero_si512 (), | 
|---|
|  | 2983 | (__mmask32) -1); | 
|---|
|  | 2984 | } | 
|---|
|  | 2985 |  | 
|---|
|  | 2986 | extern __inline __m512i | 
|---|
|  | 2987 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2988 | _mm512_mask_shufflelo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 2989 | const int __imm) | 
|---|
|  | 2990 | { | 
|---|
|  | 2991 | return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A, | 
|---|
|  | 2992 | __imm, | 
|---|
|  | 2993 | (__v32hi) __W, | 
|---|
|  | 2994 | (__mmask32) __U); | 
|---|
|  | 2995 | } | 
|---|
|  | 2996 |  | 
|---|
|  | 2997 | extern __inline __m512i | 
|---|
|  | 2998 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 2999 | _mm512_maskz_shufflelo_epi16 (__mmask32 __U, __m512i __A, | 
|---|
|  | 3000 | const int __imm) | 
|---|
|  | 3001 | { | 
|---|
|  | 3002 | return (__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi) __A, | 
|---|
|  | 3003 | __imm, | 
|---|
|  | 3004 | (__v32hi) | 
|---|
|  | 3005 | _mm512_setzero_si512 (), | 
|---|
|  | 3006 | (__mmask32) __U); | 
|---|
|  | 3007 | } | 
|---|
|  | 3008 |  | 
|---|
|  | 3009 | extern __inline __m512i | 
|---|
|  | 3010 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3011 | _mm512_srai_epi16 (__m512i __A, const int __imm) | 
|---|
|  | 3012 | { | 
|---|
|  | 3013 | return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm, | 
|---|
|  | 3014 | (__v32hi) | 
|---|
|  | 3015 | _mm512_setzero_si512 (), | 
|---|
|  | 3016 | (__mmask32) -1); | 
|---|
|  | 3017 | } | 
|---|
|  | 3018 |  | 
|---|
|  | 3019 | extern __inline __m512i | 
|---|
|  | 3020 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3021 | _mm512_mask_srai_epi16 (__m512i __W, __mmask32 __U, __m512i __A, | 
|---|
|  | 3022 | const int __imm) | 
|---|
|  | 3023 | { | 
|---|
|  | 3024 | return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm, | 
|---|
|  | 3025 | (__v32hi) __W, | 
|---|
|  | 3026 | (__mmask32) __U); | 
|---|
|  | 3027 | } | 
|---|
|  | 3028 |  | 
|---|
|  | 3029 | extern __inline __m512i | 
|---|
|  | 3030 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3031 | _mm512_maskz_srai_epi16 (__mmask32 __U, __m512i __A, const int __imm) | 
|---|
|  | 3032 | { | 
|---|
|  | 3033 | return (__m512i) __builtin_ia32_psrawi512_mask ((__v32hi) __A, __imm, | 
|---|
|  | 3034 | (__v32hi) | 
|---|
|  | 3035 | _mm512_setzero_si512 (), | 
|---|
|  | 3036 | (__mmask32) __U); | 
|---|
|  | 3037 | } | 
|---|
|  | 3038 |  | 
|---|
|  | 3039 | extern __inline __m512i | 
|---|
|  | 3040 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3041 | _mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W) | 
|---|
|  | 3042 | { | 
|---|
|  | 3043 | return (__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) __A, | 
|---|
|  | 3044 | (__v32hi) __W, | 
|---|
|  | 3045 | (__mmask32) __U); | 
|---|
|  | 3046 | } | 
|---|
|  | 3047 |  | 
|---|
|  | 3048 | extern __inline __m512i | 
|---|
|  | 3049 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3050 | _mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W) | 
|---|
|  | 3051 | { | 
|---|
|  | 3052 | return (__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) __A, | 
|---|
|  | 3053 | (__v64qi) __W, | 
|---|
|  | 3054 | (__mmask64) __U); | 
|---|
|  | 3055 | } | 
|---|
|  | 3056 |  | 
|---|
|  | 3057 | extern __inline __mmask32 | 
|---|
|  | 3058 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3059 | _mm512_mask_cmp_epi16_mask (__mmask32 __U, __m512i __X, __m512i __Y, | 
|---|
|  | 3060 | const int __P) | 
|---|
|  | 3061 | { | 
|---|
|  | 3062 | return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, | 
|---|
|  | 3063 | (__v32hi) __Y, __P, | 
|---|
|  | 3064 | (__mmask32) __U); | 
|---|
|  | 3065 | } | 
|---|
|  | 3066 |  | 
|---|
|  | 3067 | extern __inline __mmask32 | 
|---|
|  | 3068 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3069 | _mm512_cmp_epi16_mask (__m512i __X, __m512i __Y, const int __P) | 
|---|
|  | 3070 | { | 
|---|
|  | 3071 | return (__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi) __X, | 
|---|
|  | 3072 | (__v32hi) __Y, __P, | 
|---|
|  | 3073 | (__mmask32) -1); | 
|---|
|  | 3074 | } | 
|---|
|  | 3075 |  | 
|---|
|  | 3076 | extern __inline __mmask64 | 
|---|
|  | 3077 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3078 | _mm512_mask_cmp_epi8_mask (__mmask64 __U, __m512i __X, __m512i __Y, | 
|---|
|  | 3079 | const int __P) | 
|---|
|  | 3080 | { | 
|---|
|  | 3081 | return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, | 
|---|
|  | 3082 | (__v64qi) __Y, __P, | 
|---|
|  | 3083 | (__mmask64) __U); | 
|---|
|  | 3084 | } | 
|---|
|  | 3085 |  | 
|---|
|  | 3086 | extern __inline __mmask64 | 
|---|
|  | 3087 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3088 | _mm512_cmp_epi8_mask (__m512i __X, __m512i __Y, const int __P) | 
|---|
|  | 3089 | { | 
|---|
|  | 3090 | return (__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi) __X, | 
|---|
|  | 3091 | (__v64qi) __Y, __P, | 
|---|
|  | 3092 | (__mmask64) -1); | 
|---|
|  | 3093 | } | 
|---|
|  | 3094 |  | 
|---|
|  | 3095 | extern __inline __mmask32 | 
|---|
|  | 3096 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3097 | _mm512_mask_cmp_epu16_mask (__mmask32 __U, __m512i __X, __m512i __Y, | 
|---|
|  | 3098 | const int __P) | 
|---|
|  | 3099 | { | 
|---|
|  | 3100 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, | 
|---|
|  | 3101 | (__v32hi) __Y, __P, | 
|---|
|  | 3102 | (__mmask32) __U); | 
|---|
|  | 3103 | } | 
|---|
|  | 3104 |  | 
|---|
|  | 3105 | extern __inline __mmask32 | 
|---|
|  | 3106 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3107 | _mm512_cmp_epu16_mask (__m512i __X, __m512i __Y, const int __P) | 
|---|
|  | 3108 | { | 
|---|
|  | 3109 | return (__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi) __X, | 
|---|
|  | 3110 | (__v32hi) __Y, __P, | 
|---|
|  | 3111 | (__mmask32) -1); | 
|---|
|  | 3112 | } | 
|---|
|  | 3113 |  | 
|---|
|  | 3114 | extern __inline __mmask64 | 
|---|
|  | 3115 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3116 | _mm512_mask_cmp_epu8_mask (__mmask64 __U, __m512i __X, __m512i __Y, | 
|---|
|  | 3117 | const int __P) | 
|---|
|  | 3118 | { | 
|---|
|  | 3119 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, | 
|---|
|  | 3120 | (__v64qi) __Y, __P, | 
|---|
|  | 3121 | (__mmask64) __U); | 
|---|
|  | 3122 | } | 
|---|
|  | 3123 |  | 
|---|
|  | 3124 | extern __inline __mmask64 | 
|---|
|  | 3125 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3126 | _mm512_cmp_epu8_mask (__m512i __X, __m512i __Y, const int __P) | 
|---|
|  | 3127 | { | 
|---|
|  | 3128 | return (__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi) __X, | 
|---|
|  | 3129 | (__v64qi) __Y, __P, | 
|---|
|  | 3130 | (__mmask64) -1); | 
|---|
|  | 3131 | } | 
|---|
|  | 3132 |  | 
|---|
|  | 3133 | extern __inline __m512i | 
|---|
|  | 3134 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3135 | _mm512_bslli_epi128 (__m512i __A, const int __N) | 
|---|
|  | 3136 | { | 
|---|
|  | 3137 | return (__m512i) __builtin_ia32_pslldq512 (__A, __N * 8); | 
|---|
|  | 3138 | } | 
|---|
|  | 3139 |  | 
|---|
|  | 3140 | extern __inline __m512i | 
|---|
|  | 3141 | __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 
|---|
|  | 3142 | _mm512_bsrli_epi128 (__m512i __A, const int __N) | 
|---|
|  | 3143 | { | 
|---|
|  | 3144 | return (__m512i) __builtin_ia32_psrldq512 (__A, __N * 8); | 
|---|
|  | 3145 | } | 
|---|
|  | 3146 |  | 
|---|
|  | 3147 | #else | 
|---|
|  | 3148 | #define _kshiftli_mask32(X, Y)                                                  \ | 
|---|
|  | 3149 | ((__mmask32) __builtin_ia32_kshiftlisi ((__mmask32)(X), (__mmask8)(Y))) | 
|---|
|  | 3150 |  | 
|---|
|  | 3151 | #define _kshiftli_mask64(X, Y)                                                  \ | 
|---|
|  | 3152 | ((__mmask64) __builtin_ia32_kshiftlidi ((__mmask64)(X), (__mmask8)(Y))) | 
|---|
|  | 3153 |  | 
|---|
|  | 3154 | #define _kshiftri_mask32(X, Y)                                                  \ | 
|---|
|  | 3155 | ((__mmask32) __builtin_ia32_kshiftrisi ((__mmask32)(X), (__mmask8)(Y))) | 
|---|
|  | 3156 |  | 
|---|
|  | 3157 | #define _kshiftri_mask64(X, Y)                                                  \ | 
|---|
|  | 3158 | ((__mmask64) __builtin_ia32_kshiftridi ((__mmask64)(X), (__mmask8)(Y))) | 
|---|
|  | 3159 |  | 
|---|
|  | 3160 | #define _mm512_alignr_epi8(X, Y, N)                                                 \ | 
|---|
|  | 3161 | ((__m512i) __builtin_ia32_palignr512 ((__v8di)(__m512i)(X),                       \ | 
|---|
|  | 3162 | (__v8di)(__m512i)(Y),                       \ | 
|---|
|  | 3163 | (int)((N) * 8))) | 
|---|
|  | 3164 |  | 
|---|
|  | 3165 | #define _mm512_mask_alignr_epi8(W, U, X, Y, N)                                      \ | 
|---|
|  | 3166 | ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X),                  \ | 
|---|
|  | 3167 | (__v8di)(__m512i)(Y), (int)((N) * 8),   \ | 
|---|
|  | 3168 | (__v8di)(__m512i)(W), (__mmask64)(U))) | 
|---|
|  | 3169 |  | 
|---|
|  | 3170 | #define _mm512_maskz_alignr_epi8(U, X, Y, N)                                        \ | 
|---|
|  | 3171 | ((__m512i) __builtin_ia32_palignr512_mask ((__v8di)(__m512i)(X),                  \ | 
|---|
|  | 3172 | (__v8di)(__m512i)(Y), (int)((N) * 8),  \ | 
|---|
|  | 3173 | (__v8di)(__m512i)                      \ | 
|---|
|  | 3174 | _mm512_setzero_si512 (),               \ | 
|---|
|  | 3175 | (__mmask64)(U))) | 
|---|
|  | 3176 |  | 
|---|
|  | 3177 | #define _mm512_dbsad_epu8(X, Y, C)                                                  \ | 
|---|
|  | 3178 | ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X),               \ | 
|---|
|  | 3179 | (__v64qi)(__m512i) (Y), (int) (C),    \ | 
|---|
|  | 3180 | (__v32hi)(__m512i)                    \ | 
|---|
|  | 3181 | _mm512_setzero_si512 (),              \ | 
|---|
|  | 3182 | (__mmask32)-1)) | 
|---|
|  | 3183 |  | 
|---|
|  | 3184 | #define _mm512_mask_dbsad_epu8(W, U, X, Y, C)                                       \ | 
|---|
|  | 3185 | ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X),               \ | 
|---|
|  | 3186 | (__v64qi)(__m512i) (Y), (int) (C),    \ | 
|---|
|  | 3187 | (__v32hi)(__m512i)(W),                \ | 
|---|
|  | 3188 | (__mmask32)(U))) | 
|---|
|  | 3189 |  | 
|---|
|  | 3190 | #define _mm512_maskz_dbsad_epu8(U, X, Y, C)                                         \ | 
|---|
|  | 3191 | ((__m512i) __builtin_ia32_dbpsadbw512_mask ((__v64qi)(__m512i) (X),               \ | 
|---|
|  | 3192 | (__v64qi)(__m512i) (Y), (int) (C),    \ | 
|---|
|  | 3193 | (__v32hi)(__m512i)                    \ | 
|---|
|  | 3194 | _mm512_setzero_si512 (),              \ | 
|---|
|  | 3195 | (__mmask32)(U))) | 
|---|
|  | 3196 |  | 
|---|
|  | 3197 | #define _mm512_srli_epi16(A, B)                                         \ | 
|---|
|  | 3198 | ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A),      \ | 
|---|
|  | 3199 | (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)-1)) | 
|---|
|  | 3200 |  | 
|---|
|  | 3201 | #define _mm512_mask_srli_epi16(W, U, A, B)                              \ | 
|---|
|  | 3202 | ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A),      \ | 
|---|
|  | 3203 | (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U))) | 
|---|
|  | 3204 |  | 
|---|
|  | 3205 | #define _mm512_maskz_srli_epi16(U, A, B)                                \ | 
|---|
|  | 3206 | ((__m512i) __builtin_ia32_psrlwi512_mask ((__v32hi)(__m512i)(A),      \ | 
|---|
|  | 3207 | (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)(U))) | 
|---|
|  | 3208 |  | 
|---|
|  | 3209 | #define _mm512_slli_epi16(X, C)                                            \ | 
|---|
|  | 3210 | ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\ | 
|---|
|  | 3211 | (__v32hi)(__m512i)_mm512_setzero_si512 (),                             \ | 
|---|
|  | 3212 | (__mmask32)-1)) | 
|---|
|  | 3213 |  | 
|---|
|  | 3214 | #define _mm512_mask_slli_epi16(W, U, X, C)                                 \ | 
|---|
|  | 3215 | ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\ | 
|---|
|  | 3216 | (__v32hi)(__m512i)(W),\ | 
|---|
|  | 3217 | (__mmask32)(U))) | 
|---|
|  | 3218 |  | 
|---|
|  | 3219 | #define _mm512_maskz_slli_epi16(U, X, C)                                   \ | 
|---|
|  | 3220 | ((__m512i)__builtin_ia32_psllwi512_mask ((__v32hi)(__m512i)(X), (int)(C),\ | 
|---|
|  | 3221 | (__v32hi)(__m512i)_mm512_setzero_si512 (),                             \ | 
|---|
|  | 3222 | (__mmask32)(U))) | 
|---|
|  | 3223 |  | 
|---|
|  | 3224 | #define _mm512_shufflehi_epi16(A, B)                                                \ | 
|---|
|  | 3225 | ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \ | 
|---|
|  | 3226 | (__v32hi)(__m512i)                     \ | 
|---|
|  | 3227 | _mm512_setzero_si512 (),               \ | 
|---|
|  | 3228 | (__mmask32)-1)) | 
|---|
|  | 3229 |  | 
|---|
|  | 3230 | #define _mm512_mask_shufflehi_epi16(W, U, A, B)                                     \ | 
|---|
|  | 3231 | ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \ | 
|---|
|  | 3232 | (__v32hi)(__m512i)(W),                 \ | 
|---|
|  | 3233 | (__mmask32)(U))) | 
|---|
|  | 3234 |  | 
|---|
|  | 3235 | #define _mm512_maskz_shufflehi_epi16(U, A, B)                                       \ | 
|---|
|  | 3236 | ((__m512i) __builtin_ia32_pshufhw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \ | 
|---|
|  | 3237 | (__v32hi)(__m512i)                     \ | 
|---|
|  | 3238 | _mm512_setzero_si512 (),               \ | 
|---|
|  | 3239 | (__mmask32)(U))) | 
|---|
|  | 3240 |  | 
|---|
|  | 3241 | #define _mm512_shufflelo_epi16(A, B)                                                \ | 
|---|
|  | 3242 | ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \ | 
|---|
|  | 3243 | (__v32hi)(__m512i)                     \ | 
|---|
|  | 3244 | _mm512_setzero_si512 (),               \ | 
|---|
|  | 3245 | (__mmask32)-1)) | 
|---|
|  | 3246 |  | 
|---|
|  | 3247 | #define _mm512_mask_shufflelo_epi16(W, U, A, B)                                     \ | 
|---|
|  | 3248 | ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \ | 
|---|
|  | 3249 | (__v32hi)(__m512i)(W),                 \ | 
|---|
|  | 3250 | (__mmask32)(U))) | 
|---|
|  | 3251 |  | 
|---|
|  | 3252 | #define _mm512_maskz_shufflelo_epi16(U, A, B)                                       \ | 
|---|
|  | 3253 | ((__m512i) __builtin_ia32_pshuflw512_mask ((__v32hi)(__m512i)(A), (int)(B),       \ | 
|---|
|  | 3254 | (__v32hi)(__m512i)                     \ | 
|---|
|  | 3255 | _mm512_setzero_si512 (),               \ | 
|---|
|  | 3256 | (__mmask32)(U))) | 
|---|
|  | 3257 |  | 
|---|
|  | 3258 | #define _mm512_srai_epi16(A, B)                                         \ | 
|---|
|  | 3259 | ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A),      \ | 
|---|
|  | 3260 | (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)-1)) | 
|---|
|  | 3261 |  | 
|---|
|  | 3262 | #define _mm512_mask_srai_epi16(W, U, A, B)                              \ | 
|---|
|  | 3263 | ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A),      \ | 
|---|
|  | 3264 | (int)(B), (__v32hi)(__m512i)(W), (__mmask32)(U))) | 
|---|
|  | 3265 |  | 
|---|
|  | 3266 | #define _mm512_maskz_srai_epi16(U, A, B)                                \ | 
|---|
|  | 3267 | ((__m512i) __builtin_ia32_psrawi512_mask ((__v32hi)(__m512i)(A),      \ | 
|---|
|  | 3268 | (int)(B), (__v32hi)_mm512_setzero_si512 (), (__mmask32)(U))) | 
|---|
|  | 3269 |  | 
|---|
|  | 3270 | #define _mm512_mask_blend_epi16(__U, __A, __W)                        \ | 
|---|
|  | 3271 | ((__m512i) __builtin_ia32_blendmw_512_mask ((__v32hi) (__A),        \ | 
|---|
|  | 3272 | (__v32hi) (__W),  \ | 
|---|
|  | 3273 | (__mmask32) (__U))) | 
|---|
|  | 3274 |  | 
|---|
|  | 3275 | #define _mm512_mask_blend_epi8(__U, __A, __W)                         \ | 
|---|
|  | 3276 | ((__m512i) __builtin_ia32_blendmb_512_mask ((__v64qi) (__A),        \ | 
|---|
|  | 3277 | (__v64qi) (__W),  \ | 
|---|
|  | 3278 | (__mmask64) (__U))) | 
|---|
|  | 3279 |  | 
|---|
|  | 3280 | #define _mm512_cmp_epi16_mask(X, Y, P)                          \ | 
|---|
|  | 3281 | ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X),      \ | 
|---|
|  | 3282 | (__v32hi)(__m512i)(Y), (int)(P),\ | 
|---|
|  | 3283 | (__mmask32)(-1))) | 
|---|
|  | 3284 |  | 
|---|
|  | 3285 | #define _mm512_cmp_epi8_mask(X, Y, P)                           \ | 
|---|
|  | 3286 | ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X),      \ | 
|---|
|  | 3287 | (__v64qi)(__m512i)(Y), (int)(P),\ | 
|---|
|  | 3288 | (__mmask64)(-1))) | 
|---|
|  | 3289 |  | 
|---|
|  | 3290 | #define _mm512_cmp_epu16_mask(X, Y, P)                          \ | 
|---|
|  | 3291 | ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X),     \ | 
|---|
|  | 3292 | (__v32hi)(__m512i)(Y), (int)(P),\ | 
|---|
|  | 3293 | (__mmask32)(-1))) | 
|---|
|  | 3294 |  | 
|---|
|  | 3295 | #define _mm512_cmp_epu8_mask(X, Y, P)                           \ | 
|---|
|  | 3296 | ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X),     \ | 
|---|
|  | 3297 | (__v64qi)(__m512i)(Y), (int)(P),\ | 
|---|
|  | 3298 | (__mmask64)(-1))) | 
|---|
|  | 3299 |  | 
|---|
|  | 3300 | #define _mm512_mask_cmp_epi16_mask(M, X, Y, P)                          \ | 
|---|
|  | 3301 | ((__mmask32) __builtin_ia32_cmpw512_mask ((__v32hi)(__m512i)(X),      \ | 
|---|
|  | 3302 | (__v32hi)(__m512i)(Y), (int)(P),\ | 
|---|
|  | 3303 | (__mmask32)(M))) | 
|---|
|  | 3304 |  | 
|---|
|  | 3305 | #define _mm512_mask_cmp_epi8_mask(M, X, Y, P)                           \ | 
|---|
|  | 3306 | ((__mmask64) __builtin_ia32_cmpb512_mask ((__v64qi)(__m512i)(X),      \ | 
|---|
|  | 3307 | (__v64qi)(__m512i)(Y), (int)(P),\ | 
|---|
|  | 3308 | (__mmask64)(M))) | 
|---|
|  | 3309 |  | 
|---|
|  | 3310 | #define _mm512_mask_cmp_epu16_mask(M, X, Y, P)                          \ | 
|---|
|  | 3311 | ((__mmask32) __builtin_ia32_ucmpw512_mask ((__v32hi)(__m512i)(X),     \ | 
|---|
|  | 3312 | (__v32hi)(__m512i)(Y), (int)(P),\ | 
|---|
|  | 3313 | (__mmask32)(M))) | 
|---|
|  | 3314 |  | 
|---|
|  | 3315 | #define _mm512_mask_cmp_epu8_mask(M, X, Y, P)                           \ | 
|---|
|  | 3316 | ((__mmask64) __builtin_ia32_ucmpb512_mask ((__v64qi)(__m512i)(X),     \ | 
|---|
|  | 3317 | (__v64qi)(__m512i)(Y), (int)(P),\ | 
|---|
|  | 3318 | (__mmask64)(M))) | 
|---|
|  | 3319 |  | 
|---|
|  | 3320 | #define _mm512_bslli_epi128(A, N)                                         \ | 
|---|
|  | 3321 | ((__m512i)__builtin_ia32_pslldq512 ((__m512i)(A), (int)(N) * 8)) | 
|---|
|  | 3322 |  | 
|---|
|  | 3323 | #define _mm512_bsrli_epi128(A, N)                                         \ | 
|---|
|  | 3324 | ((__m512i)__builtin_ia32_psrldq512 ((__m512i)(A), (int)(N) * 8)) | 
|---|
|  | 3325 |  | 
|---|
|  | 3326 | #endif | 
|---|
|  | 3327 |  | 
|---|
|  | 3328 | #ifdef __DISABLE_AVX512BW__ | 
|---|
|  | 3329 | #undef __DISABLE_AVX512BW__ | 
|---|
|  | 3330 | #pragma GCC pop_options | 
|---|
|  | 3331 | #endif /* __DISABLE_AVX512BW__ */ | 
|---|
|  | 3332 |  | 
|---|
|  | 3333 | #endif /* _AVX512BWINTRIN_H_INCLUDED */ | 
|---|