diff options
Diffstat (limited to 'lib/Headers/mmintrin.h')
-rw-r--r-- | lib/Headers/mmintrin.h | 144 |
1 files changed, 71 insertions, 73 deletions
diff --git a/lib/Headers/mmintrin.h b/lib/Headers/mmintrin.h index 986870a..d1d729f 100644 --- a/lib/Headers/mmintrin.h +++ b/lib/Headers/mmintrin.h @@ -24,377 +24,376 @@ #ifndef __MMINTRIN_H #define __MMINTRIN_H -#ifndef __MMX__ -#error "MMX instruction set not enabled" -#else - typedef long long __m64 __attribute__((__vector_size__(8))); typedef int __v2si __attribute__((__vector_size__(8))); typedef short __v4hi __attribute__((__vector_size__(8))); typedef char __v8qi __attribute__((__vector_size__(8))); -static __inline__ void __attribute__((__always_inline__, __nodebug__)) +/* Define the default attributes for the functions in this file. */ +#define DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("mmx"))) + +static __inline__ void DEFAULT_FN_ATTRS _mm_empty(void) { __builtin_ia32_emms(); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_cvtsi32_si64(int __i) { return (__m64)__builtin_ia32_vec_init_v2si(__i, 0); } -static __inline__ int __attribute__((__always_inline__, __nodebug__)) +static __inline__ int DEFAULT_FN_ATTRS _mm_cvtsi64_si32(__m64 __m) { return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_cvtsi64_m64(long long __i) { return (__m64)__i; } -static __inline__ long long __attribute__((__always_inline__, __nodebug__)) +static __inline__ long long DEFAULT_FN_ATTRS _mm_cvtm64_si64(__m64 __m) { return (long long)__m; } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_packs_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_packs_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_packs_pu16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_unpackhi_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_unpackhi_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_unpackhi_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_unpacklo_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_unpacklo_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_unpacklo_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_add_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_add_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_add_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_adds_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_adds_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_adds_pu8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_adds_pu16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_sub_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_sub_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_sub_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_subs_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_subs_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_subs_pu8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_subs_pu16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_madd_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_mulhi_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_mullo_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_sll_pi16(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_slli_pi16(__m64 __m, int __count) { return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_sll_pi32(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_pslld((__v2si)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_slli_pi32(__m64 __m, int __count) { return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_sll_si64(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psllq(__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_slli_si64(__m64 __m, int __count) { return (__m64)__builtin_ia32_psllqi(__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_sra_pi16(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_srai_pi16(__m64 __m, int __count) { return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_sra_pi32(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psrad((__v2si)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_srai_pi32(__m64 __m, int __count) { return (__m64)__builtin_ia32_psradi((__v2si)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_srl_pi16(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_srli_pi16(__m64 __m, int __count) { return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_srl_pi32(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psrld((__v2si)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_srli_pi32(__m64 __m, int __count) { return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_srl_si64(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psrlq(__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_srli_si64(__m64 __m, int __count) { return (__m64)__builtin_ia32_psrlqi(__m, __count); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_and_si64(__m64 __m1, __m64 __m2) { return __builtin_ia32_pand(__m1, __m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_andnot_si64(__m64 __m1, __m64 __m2) { return __builtin_ia32_pandn(__m1, __m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_or_si64(__m64 __m1, __m64 __m2) { return __builtin_ia32_por(__m1, __m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_xor_si64(__m64 __m1, __m64 __m2) { return __builtin_ia32_pxor(__m1, __m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_cmpeq_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_cmpeq_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_cmpeq_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_cmpgt_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_cmpgt_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_cmpgt_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_setzero_si64(void) { return (__m64){ 0LL }; } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_set_pi32(int __i1, int __i0) { return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_set_pi16(short __s3, short __s2, short __s1, short __s0) { return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0) { @@ -402,43 +401,44 @@ _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, __b4, __b5, __b6, __b7); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_set1_pi32(int __i) { return _mm_set_pi32(__i, __i); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_set1_pi16(short __w) { return _mm_set_pi16(__w, __w, __w, __w); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_set1_pi8(char __b) { return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_setr_pi32(int __i0, int __i1) { return _mm_set_pi32(__i1, __i0); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3) { return _mm_set_pi16(__w3, __w2, __w1, __w0); } -static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) +static __inline__ __m64 DEFAULT_FN_ATTRS _mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, char __b6, char __b7) { return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0); } +#undef DEFAULT_FN_ATTRS /* Aliases for compatibility. */ #define _m_empty _mm_empty @@ -497,7 +497,5 @@ _mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, #define _m_pcmpgtw _mm_cmpgt_pi16 #define _m_pcmpgtd _mm_cmpgt_pi32 -#endif /* __MMX__ */ - #endif /* __MMINTRIN_H */ |