15#ifndef NO_WARN_X86_INTRINSICS
26 "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error."
32#if defined(__powerpc64__) && \
33 (defined(__linux__) || defined(__FreeBSD__) || defined(_AIX))
39#define _MM_FROUND_TO_NEAREST_INT 0x00
40#define _MM_FROUND_TO_ZERO 0x01
41#define _MM_FROUND_TO_POS_INF 0x02
42#define _MM_FROUND_TO_NEG_INF 0x03
43#define _MM_FROUND_CUR_DIRECTION 0x04
45#define _MM_FROUND_NINT (_MM_FROUND_TO_NEAREST_INT | _MM_FROUND_RAISE_EXC)
46#define _MM_FROUND_FLOOR (_MM_FROUND_TO_NEG_INF | _MM_FROUND_RAISE_EXC)
47#define _MM_FROUND_CEIL (_MM_FROUND_TO_POS_INF | _MM_FROUND_RAISE_EXC)
48#define _MM_FROUND_TRUNC (_MM_FROUND_TO_ZERO | _MM_FROUND_RAISE_EXC)
49#define _MM_FROUND_RINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_RAISE_EXC)
50#define _MM_FROUND_NEARBYINT (_MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC)
52#define _MM_FROUND_RAISE_EXC 0x00
53#define _MM_FROUND_NO_EXC 0x08
55extern __inline __m128d
56 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
62 } __enables_save, __fpscr_save;
68 __asm__(
"mffsce %0" :
"=f"(__fpscr_save.__fr));
69 __enables_save.__fpscr = __fpscr_save.__fpscr & 0xf8;
71 __fpscr_save.__fr = __builtin_ppc_mffs();
72 __enables_save.__fpscr = __fpscr_save.__fpscr & 0xf8;
73 __fpscr_save.__fpscr &= ~0xf8;
74 __builtin_ppc_mtfsf(0b00000011, __fpscr_save.__fr);
81 __asm__(
"" :
"+wa"(__A));
87 __fpscr_save.__fr = __builtin_ppc_mffsl();
89 __fpscr_save.__fr = __builtin_ppc_mffs();
90 __fpscr_save.__fpscr &= 0x70007f0ffL;
94 __builtin_ppc_set_fpscr_rn(0b00);
100 __asm__(
"" :
"+wa"(__A));
102 __r = vec_rint((__v2df)__A);
109 __asm__(
"" : :
"wa"(__r));
110 __builtin_ppc_set_fpscr_rn(__fpscr_save.__fpscr);
125 __r = vec_rint((__v2df)__A);
134 __asm__(
"" : :
"wa"(__r));
137 __fpscr_save.__fr = __builtin_ppc_mffsl();
139 __fpscr_save.__fr = __builtin_ppc_mffs();
140 __fpscr_save.__fpscr &= 0x70007f0ffL;
142 __fpscr_save.__fpscr |= __enables_save.__fpscr;
143 __builtin_ppc_mtfsf(0b00000011, __fpscr_save.__fr);
148extern __inline __m128d
149 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
150 _mm_round_sd(__m128d __A, __m128d __B,
int __rounding) {
152 __v2df __r = {((__v2df)__B)[0], ((__v2df)__A)[1]};
156extern __inline __m128
157 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
163 } __enables_save, __fpscr_save;
169 __asm__(
"mffsce %0" :
"=f"(__fpscr_save.__fr));
170 __enables_save.__fpscr = __fpscr_save.__fpscr & 0xf8;
172 __fpscr_save.__fr = __builtin_ppc_mffs();
173 __enables_save.__fpscr = __fpscr_save.__fpscr & 0xf8;
174 __fpscr_save.__fpscr &= ~0xf8;
175 __builtin_ppc_mtfsf(0b00000011, __fpscr_save.__fr);
182 __asm__(
"" :
"+wa"(__A));
185 switch (__rounding) {
188 __fpscr_save.__fr = __builtin_ppc_mffsl();
190 __fpscr_save.__fr = __builtin_ppc_mffs();
191 __fpscr_save.__fpscr &= 0x70007f0ffL;
195 __builtin_ppc_set_fpscr_rn(0b00);
201 __asm__(
"" :
"+wa"(__A));
203 __r = vec_rint((__v4sf)__A);
210 __asm__(
"" : :
"wa"(__r));
211 __builtin_ppc_set_fpscr_rn(__fpscr_save.__fpscr);
226 __r = vec_rint((__v4sf)__A);
235 __asm__(
"" : :
"wa"(__r));
238 __fpscr_save.__fr = __builtin_ppc_mffsl();
240 __fpscr_save.__fr = __builtin_ppc_mffs();
241 __fpscr_save.__fpscr &= 0x70007f0ffL;
243 __fpscr_save.__fpscr |= __enables_save.__fpscr;
244 __builtin_ppc_mtfsf(0b00000011, __fpscr_save.__fr);
249extern __inline __m128
250 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
253 __v4sf __r = (__v4sf)__A;
254 __r[0] = ((__v4sf)__B)[0];
258#define _mm_ceil_pd(V) _mm_round_pd((V), _MM_FROUND_CEIL)
259#define _mm_ceil_sd(D, V) _mm_round_sd((D), (V), _MM_FROUND_CEIL)
261#define _mm_floor_pd(V) _mm_round_pd((V), _MM_FROUND_FLOOR)
262#define _mm_floor_sd(D, V) _mm_round_sd((D), (V), _MM_FROUND_FLOOR)
264#define _mm_ceil_ps(V) _mm_round_ps((V), _MM_FROUND_CEIL)
265#define _mm_ceil_ss(D, V) _mm_round_ss((D), (V), _MM_FROUND_CEIL)
267#define _mm_floor_ps(V) _mm_round_ps((V), _MM_FROUND_FLOOR)
268#define _mm_floor_ss(D, V) _mm_round_ss((D), (V), _MM_FROUND_FLOOR)
270extern __inline __m128i
271 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
273 __v16qi __result = (__v16qi)__A;
275 __result[__N & 0xf] =
__D;
277 return (__m128i)__result;
280extern __inline __m128i
281 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
283 __v4si __result = (__v4si)__A;
285 __result[__N & 3] =
__D;
287 return (__m128i)__result;
290extern __inline __m128i
291 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
292 _mm_insert_epi64(__m128i
const __A,
long long const __D,
int const __N) {
293 __v2di __result = (__v2di)__A;
295 __result[__N & 1] =
__D;
297 return (__m128i)__result;
301 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
303 return (
unsigned char)((__v16qi)__X)[__N & 15];
307 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
309 return ((__v4si)__X)[__N & 3];
313 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
315 return ((__v2di)__X)[__N & 1];
319 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
321 return ((__v4si)__X)[__N & 3];
325extern __inline __m128i
326 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
328 __v16qu __charmask =
vec_splats((
unsigned char)__imm8);
329 __charmask = vec_gb(__charmask);
330 __v8hu __shortmask = (__v8hu)
vec_unpackh((__v16qi)__charmask);
332 __shortmask =
vec_reve(__shortmask);
334 return (__m128i)
vec_sel((__v8hu)__A, (__v8hu)__B, __shortmask);
338extern __inline __m128i
339 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
342 return (__m128i)vec_blendv((__v16qi)__A, (__v16qi)__B, (__v16qu)__mask);
344 const __v16qu __seven =
vec_splats((
unsigned char)0x07);
345 __v16qu __lmask =
vec_sra((__v16qu)__mask, __seven);
346 return (__m128i)
vec_sel((__v16qi)__A, (__v16qi)__B, __lmask);
350extern __inline __m128
351 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
352 _mm_blend_ps(__m128 __A, __m128 __B,
const int __imm8) {
354 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
355 {16, 17, 18, 19, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
356 {0, 1, 2, 3, 20, 21, 22, 23, 8, 9, 10, 11, 12, 13, 14, 15},
357 {16, 17, 18, 19, 20, 21, 22, 23, 8, 9, 10, 11, 12, 13, 14, 15},
358 {0, 1, 2, 3, 4, 5, 6, 7, 24, 25, 26, 27, 12, 13, 14, 15},
359 {16, 17, 18, 19, 4, 5, 6, 7, 24, 25, 26, 27, 12, 13, 14, 15},
360 {0, 1, 2, 3, 20, 21, 22, 23, 24, 25, 26, 27, 12, 13, 14, 15},
361 {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 12, 13, 14, 15},
362 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 28, 29, 30, 31},
363 {16, 17, 18, 19, 4, 5, 6, 7, 8, 9, 10, 11, 28, 29, 30, 31},
364 {0, 1, 2, 3, 20, 21, 22, 23, 8, 9, 10, 11, 28, 29, 30, 31},
365 {16, 17, 18, 19, 20, 21, 22, 23, 8, 9, 10, 11, 28, 29, 30, 31},
366 {0, 1, 2, 3, 4, 5, 6, 7, 24, 25, 26, 27, 28, 29, 30, 31},
367 {16, 17, 18, 19, 4, 5, 6, 7, 24, 25, 26, 27, 28, 29, 30, 31},
368 {0, 1, 2, 3, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31},
369 {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31},
371 __v16qu __r =
vec_perm((__v16qu)__A, (__v16qu)__B, __pcv[__imm8]);
375extern __inline __m128
376 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
379 return (__m128)vec_blendv((__v4sf)__A, (__v4sf)__B, (__v4su)__mask);
381 const __v4si __zero = {0};
382 const __vector __bool
int __boolmask =
vec_cmplt((__v4si)__mask, __zero);
383 return (__m128)
vec_sel((__v4su)__A, (__v4su)__B, (__v4su)__boolmask);
387extern __inline __m128d
388 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
389 _mm_blend_pd(__m128d __A, __m128d __B,
const int __imm8) {
391 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
392 {16, 17, 18, 19, 20, 21, 22, 23, 8, 9, 10, 11, 12, 13, 14, 15},
393 {0, 1, 2, 3, 4, 5, 6, 7, 24, 25, 26, 27, 28, 29, 30, 31},
394 {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}};
395 __v16qu __r =
vec_perm((__v16qu)__A, (__v16qu)__B, __pcv[__imm8]);
400extern __inline __m128d
401 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
404 return (__m128d)vec_blendv((__v2df)__A, (__v2df)__B, (__v2du)__mask);
406 const __v2di __zero = {0};
407 const __vector __bool
long long __boolmask =
409 return (__m128d)
vec_sel((__v2du)__A, (__v2du)__B, (__v2du)__boolmask);
415 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
418 const __v16qu __zero = {0};
423 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
426 const __v16qu __zero = {0};
427 const __v16qu __notA =
vec_nor((__v16qu)__A, (__v16qu)__A);
432 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
438#define _mm_test_all_zeros(M, V) _mm_testz_si128((M), (V))
440#define _mm_test_all_ones(V) _mm_testc_si128((V), _mm_cmpeq_epi32((V), (V)))
442#define _mm_test_mix_ones_zeros(M, V) _mm_testnzc_si128((M), (V))
445extern __inline __m128i
446 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
452extern __inline __m128i
453 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
455 return (__m128i)
vec_min((__v16qi)__X, (__v16qi)
__Y);
458extern __inline __m128i
459 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
461 return (__m128i)
vec_min((__v8hu)__X, (__v8hu)
__Y);
464extern __inline __m128i
465 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
467 return (__m128i)
vec_min((__v4si)__X, (__v4si)
__Y);
470extern __inline __m128i
471 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
473 return (__m128i)
vec_min((__v4su)__X, (__v4su)
__Y);
476extern __inline __m128i
477 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
479 return (__m128i)
vec_max((__v16qi)__X, (__v16qi)
__Y);
482extern __inline __m128i
483 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
485 return (__m128i)
vec_max((__v8hu)__X, (__v8hu)
__Y);
488extern __inline __m128i
489 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
491 return (__m128i)
vec_max((__v4si)__X, (__v4si)
__Y);
494extern __inline __m128i
495 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
497 return (__m128i)
vec_max((__v4su)__X, (__v4su)
__Y);
500extern __inline __m128i
501 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
503 return (__m128i)
vec_mul((__v4su)__X, (__v4su)
__Y);
507extern __inline __m128i
508 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
510 return (__m128i)
vec_mule((__v4si)__X, (__v4si)
__Y);
514extern __inline __m128i
515 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
520extern __inline __m128i
521 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
528extern __inline __m128i
529 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
537extern __inline __m128i
538 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
544extern __inline __m128i
545 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
553extern __inline __m128i
554 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
560extern __inline __m128i
561 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
563 const __v16qu __zero = {0};
564#ifdef __LITTLE_ENDIAN__
565 __A = (__m128i)
vec_mergeh((__v16qu)__A, __zero);
567 __A = (__m128i)
vec_mergeh(__zero, (__v16qu)__A);
572extern __inline __m128i
573 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
575 const __v16qu __zero = {0};
576#ifdef __LITTLE_ENDIAN__
577 __A = (__m128i)
vec_mergeh((__v16qu)__A, __zero);
578 __A = (__m128i)
vec_mergeh((__v8hu)__A, (__v8hu)__zero);
580 __A = (__m128i)
vec_mergeh(__zero, (__v16qu)__A);
581 __A = (__m128i)
vec_mergeh((__v8hu)__zero, (__v8hu)__A);
586extern __inline __m128i
587 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
589 const __v16qu __zero = {0};
590#ifdef __LITTLE_ENDIAN__
591 __A = (__m128i)
vec_mergeh((__v16qu)__A, __zero);
592 __A = (__m128i)
vec_mergeh((__v8hu)__A, (__v8hu)__zero);
593 __A = (__m128i)
vec_mergeh((__v4su)__A, (__v4su)__zero);
595 __A = (__m128i)
vec_mergeh(__zero, (__v16qu)__A);
596 __A = (__m128i)
vec_mergeh((__v8hu)__zero, (__v8hu)__A);
597 __A = (__m128i)
vec_mergeh((__v4su)__zero, (__v4su)__A);
602extern __inline __m128i
603 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
605 const __v8hu __zero = {0};
606#ifdef __LITTLE_ENDIAN__
607 __A = (__m128i)
vec_mergeh((__v8hu)__A, __zero);
609 __A = (__m128i)
vec_mergeh(__zero, (__v8hu)__A);
614extern __inline __m128i
615 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
617 const __v8hu __zero = {0};
618#ifdef __LITTLE_ENDIAN__
619 __A = (__m128i)
vec_mergeh((__v8hu)__A, __zero);
620 __A = (__m128i)
vec_mergeh((__v4su)__A, (__v4su)__zero);
622 __A = (__m128i)
vec_mergeh(__zero, (__v8hu)__A);
623 __A = (__m128i)
vec_mergeh((__v4su)__zero, (__v4su)__A);
628extern __inline __m128i
629 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
631 const __v4su __zero = {0};
632#ifdef __LITTLE_ENDIAN__
633 __A = (__m128i)
vec_mergeh((__v4su)__A, __zero);
635 __A = (__m128i)
vec_mergeh(__zero, (__v4su)__A);
642extern __inline __m128i
643 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
649 union __u __u = {.__m = __A}, __r = {.__m = {0}};
650 unsigned short __ridx = 0;
651 unsigned short __rmin = __u.__uh[__ridx];
653 for (__i = 1; __i < 8; __i++) {
654 if (__u.__uh[__i] < __rmin) {
655 __rmin = __u.__uh[__i];
659 __r.__uh[0] = __rmin;
660 __r.__uh[1] = __ridx;
664extern __inline __m128i
665 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
671extern __inline __m128i
672 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
679#include_next <smmintrin.h>
_Float16 __2f16 __attribute__((ext_vector_type(2)))
Zeroes the upper 128 bits (bits 255:128) of all YMM registers.
static __inline__ vector bool char __ATTRS_o_ai vec_cmpeq(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_sra(vector signed char __a, vector unsigned char __b)
static __inline__ vector float __ATTRS_o_ai vec_ceil(vector float __a)
static __inline__ vector short __ATTRS_o_ai vec_mule(vector signed char __a, vector signed char __b)
static __ATTRS_o_ai vector bool char vec_reve(vector bool char __a)
static __inline__ vector signed char __ATTRS_o_ai vec_splats(signed char __a)
static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_mul(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_and(vector signed char __a, vector signed char __b)
static __inline__ vector float __ATTRS_o_ai vec_floor(vector float __a)
static __inline__ vector signed char __ATTRS_o_ai vec_perm(vector signed char __a, vector signed char __b, vector unsigned char __c)
static __inline__ vector signed char __ATTRS_o_ai vec_sel(vector signed char __a, vector signed char __b, vector unsigned char __c)
static __inline__ vector signed char __ATTRS_o_ai vec_mergeh(vector signed char __a, vector signed char __b)
static __inline__ vector bool char __ATTRS_o_ai vec_cmplt(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_max(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_nor(vector signed char __a, vector signed char __b)
static __inline__ vector unsigned char __ATTRS_o_ai vec_packsu(vector short __a, vector short __b)
static __inline__ vector signed char __ATTRS_o_ai vec_min(vector signed char __a, vector signed char __b)
static __inline__ vector short __ATTRS_o_ai vec_unpackh(vector signed char __a)
static __inline__ vector float __ATTRS_o_ai vec_trunc(vector float __a)
static __inline__ vector bool char __ATTRS_o_ai vec_cmpgt(vector signed char __a, vector signed char __b)
#define _MM_FROUND_TO_POS_INF
#define _MM_FROUND_TO_NEG_INF
#define _MM_FROUND_TO_NEAREST_INT
#define _MM_FROUND_TO_ZERO
#define _MM_FROUND_CUR_DIRECTION
static __inline__ void short __D
__inline unsigned int unsigned int __Y
static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_blendv_pd(__m128d __V1, __m128d __V2, __m128d __M)
Returns a 128-bit vector of [2 x double] where the values are selected from either the first or secon...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epu16(__m128i __V1, __m128i __V2)
Compares the corresponding elements of two 128-bit vectors of [8 x u16] and returns a 128-bit vector ...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu8_epi32(__m128i __V)
Zero-extends each of the lower four 8-bit integer elements of a 128-bit vector of [16 x i8] to 32-bit...
#define _mm_round_ps(X, M)
Rounds each element of the 128-bit vector of [4 x float] to an integer value according to the roundin...
#define _mm_blend_epi16(V1, V2, M)
Returns a 128-bit vector of [8 x i16] where the values are selected from either of the first or secon...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu8_epi16(__m128i __V)
Zero-extends each of the lower eight 8-bit integer elements of a 128-bit vector of [16 x i8] to 16-bi...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mullo_epi32(__m128i __V1, __m128i __V2)
Multiples corresponding elements of two 128-bit vectors of [4 x i32] and returns the lower 32 bits of...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epi8(__m128i __V1, __m128i __V2)
Compares the corresponding elements of two 128-bit vectors of [16 x i8] and returns a 128-bit vector ...
#define _mm_blend_ps(V1, V2, M)
Returns a 128-bit vector of [4 x float] where the values are selected from either the first or second...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu32(__m128i __V1, __m128i __V2)
Compares the corresponding elements of two 128-bit vectors of [4 x u32] and returns a 128-bit vector ...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi8_epi32(__m128i __V)
Sign-extends each of the lower four 8-bit integer elements of a 128-bit vector of [16 x i8] to 32-bit...
static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_blendv_ps(__m128 __V1, __m128 __V2, __m128 __M)
Returns a 128-bit vector of [4 x float] where the values are selected from either the first or second...
#define _mm_extract_epi64(X, N)
Extracts a 64-bit element from the 128-bit integer vector of [2 x i64], using the immediate value par...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu32_epi64(__m128i __V)
Zero-extends each of the lower two 32-bit integer elements of a 128-bit integer vector of [4 x i32] t...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu16_epi64(__m128i __V)
Zero-extends each of the lower two 16-bit integer elements of a 128-bit integer vector of [8 x i16] t...
#define _mm_insert_epi32(X, I, N)
Constructs a 128-bit vector of [4 x i32] by first making a copy of the 128-bit integer vector paramet...
#define _mm_round_ss(X, Y, M)
Copies three upper elements of the first 128-bit vector operand to the corresponding three upper elem...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi64(__m128i __V1, __m128i __V2)
Compares each of the corresponding 64-bit values of the 128-bit integer vectors to determine if the v...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packus_epi32(__m128i __V1, __m128i __V2)
Converts, with saturation, 32-bit signed integers from both 128-bit integer vector operands into 16-b...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epi32(__m128i __V1, __m128i __V2)
Compares the corresponding elements of two 128-bit vectors of [4 x i32] and returns a 128-bit vector ...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi16_epi64(__m128i __V)
Sign-extends each of the lower two 16-bit integer elements of a 128-bit integer vector of [8 x i16] t...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi8_epi64(__m128i __V)
Sign-extends each of the lower two 8-bit integer elements of a 128-bit integer vector of [16 x i8] to...
#define _mm_round_pd(X, M)
Rounds each element of the 128-bit vector of [2 x double] to an integer value according to the roundi...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epi8(__m128i __V1, __m128i __V2)
Compares the corresponding elements of two 128-bit vectors of [16 x i8] and returns a 128-bit vector ...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu16(__m128i __V1, __m128i __V2)
Compares the corresponding elements of two 128-bit vectors of [8 x u16] and returns a 128-bit vector ...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi64(__m128i __V1, __m128i __V2)
Compares each of the corresponding 64-bit values of the 128-bit integer vectors for equality.
static __inline__ int __DEFAULT_FN_ATTRS _mm_testnzc_si128(__m128i __M, __m128i __V)
Tests whether the specified bits in a 128-bit integer vector are neither all zeros nor all ones.
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi16_epi32(__m128i __V)
Sign-extends each of the lower four 16-bit integer elements of a 128-bit integer vector of [8 x i16] ...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu16_epi32(__m128i __V)
Zero-extends each of the lower four 16-bit integer elements of a 128-bit integer vector of [8 x i16] ...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epi32(__m128i __V1, __m128i __V2)
Compares the corresponding elements of two 128-bit vectors of [4 x i32] and returns a 128-bit vector ...
static __inline__ int __DEFAULT_FN_ATTRS _mm_testc_si128(__m128i __M, __m128i __V)
Tests whether the specified bits in a 128-bit integer vector are all ones.
#define _mm_round_sd(X, Y, M)
Copies the upper element of the first 128-bit vector operand to the corresponding upper element of th...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu8_epi64(__m128i __V)
Zero-extends each of the lower two 8-bit integer elements of a 128-bit integer vector of [16 x i8] to...
#define _mm_extract_epi8(X, N)
Extracts an 8-bit element from the 128-bit integer vector of [16 x i8], using the immediate value par...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epu32(__m128i __V1, __m128i __V2)
Compares the corresponding elements of two 128-bit vectors of [4 x u32] and returns a 128-bit vector ...
#define _mm_blend_pd(V1, V2, M)
Returns a 128-bit vector of [2 x double] where the values are selected from either the first or secon...
#define _mm_extract_ps(X, N)
Extracts a 32-bit integer from a 128-bit vector of [4 x float] and returns it, using the immediate va...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi8_epi16(__m128i __V)
Sign-extends each of the lower eight 8-bit integer elements of a 128-bit vector of [16 x i8] to 16-bi...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mul_epi32(__m128i __V1, __m128i __V2)
Multiplies corresponding even-indexed elements of two 128-bit vectors of [4 x i32] and returns a 128-...
#define _mm_insert_epi8(X, I, N)
Constructs a 128-bit vector of [16 x i8] by first making a copy of the 128-bit integer vector paramet...
#define _mm_extract_epi32(X, N)
Extracts a 32-bit element from the 128-bit integer vector of [4 x i32], using the immediate value par...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_minpos_epu16(__m128i __V)
Finds the minimum unsigned 16-bit element in the input 128-bit vector of [8 x u16] and returns it and...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi32_epi64(__m128i __V)
Sign-extends each of the lower two 32-bit integer elements of a 128-bit integer vector of [4 x i32] t...
static __inline__ int __DEFAULT_FN_ATTRS _mm_testz_si128(__m128i __M, __m128i __V)
Tests whether the specified bits in a 128-bit integer vector are all zeros.
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_blendv_epi8(__m128i __V1, __m128i __V2, __m128i __M)
Returns a 128-bit vector of [16 x i8] where the values are selected from either of the first or secon...
#define _MM_FROUND_NO_EXC