Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663/* * mmintrin.h * * This file is part of the ReactOS CRT package. * * Contributors: * Timo Kreuzer (timo.kreuzer@reactos.org) * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */
#pragma once#ifndef _MMINTRIN_H_INCLUDED#define _MMINTRIN_H_INCLUDED
#include <vcruntime.h>
#ifdef __cplusplusextern "C" {#endif
#ifdef _MSC_VER#define DECLSPEC_INTRINTYPE __declspec(intrin_type)#else#define DECLSPEC_INTRINTYPE#endif
#if defined(_MSC_VER) && !defined(__clang__)
typedef union DECLSPEC_INTRINTYPE _CRT_ALIGN(8) __m64 { unsigned __int64 m64_u64; float m64_f32[2]; __int8 m64_i8[8]; __int16 m64_i16[4]; __int32 m64_i32[2]; __int64 m64_i64; unsigned __int8 m64_u8[8]; unsigned __int16 m64_u16[4]; unsigned __int32 m64_u32[2]; } __m64;
#else /* _MSC_VER */
typedef long long __v1di __attribute__((__vector_size__(8))); typedef int __v2si __attribute__((__vector_size__(8))); typedef short __v4hi __attribute__((__vector_size__(8))); typedef char __v8qi __attribute__((__vector_size__(8)));
typedef float __m64 __attribute__((__vector_size__(8), __aligned__(16)));
#ifdef __clang__#define __INTRIN_INLINE_MMX __INTRIN_INLINE __attribute__((__target__("mmx"),__min_vector_width__(64)))#else#define __INTRIN_INLINE_MMX __INTRIN_INLINE __attribute__((__target__("mmx")))#endif
#endif /* _MSC_VER */
#ifdef _M_IX86
void _m_empty(void);__m64 _m_from_int(int i);int _m_to_int(__m64 m);__m64 _m_packsswb(__m64 a, __m64 b);__m64 _m_packssdw(__m64 a, __m64 b);__m64 _m_packuswb(__m64 a, __m64 b);__m64 _m_punpckhbw(__m64 a, __m64 b);__m64 _m_punpckhwd(__m64 a, __m64 b);__m64 _m_punpckhdq(__m64 a, __m64 b);__m64 _m_punpcklbw(__m64 a, __m64 b);__m64 _m_punpcklwd(__m64 a, __m64 b);__m64 _m_punpckldq(__m64 a, __m64 b);__m64 _m_paddb(__m64 a, __m64 b);__m64 _m_paddw(__m64 a, __m64 b);__m64 _m_paddd(__m64 a, __m64 b);__m64 _m_paddsb(__m64 a, __m64 b);__m64 _m_paddsw(__m64 a, __m64 b);__m64 _m_paddusb(__m64 a, __m64 b);__m64 _m_paddusw(__m64 a, __m64 b);__m64 _m_psubb(__m64 a, __m64 b);__m64 _m_psubw(__m64 a, __m64 b);__m64 _m_psubd(__m64 a, __m64 b);__m64 _m_psubsb(__m64 a, __m64 b);__m64 _m_psubsw(__m64 a, __m64 b);__m64 _m_psubusb(__m64 a, __m64 b);__m64 _m_psubusw(__m64 a, __m64 b);__m64 _m_pmaddwd(__m64 a, __m64 b);__m64 _m_pmulhw(__m64 a, __m64 b);__m64 _m_pmullw(__m64 a, __m64 b);__m64 _m_psllw(__m64 a, __m64 count);__m64 _m_psllwi(__m64 a, int imm8);__m64 _m_pslld(__m64 a, __m64 count);__m64 _m_pslldi(__m64 a, int imm8);__m64 _m_psllq(__m64 a, __m64 count);__m64 _m_psllqi(__m64 a, int imm8);__m64 _m_psraw(__m64 a, __m64 count);__m64 _m_psrawi(__m64 a, int imm8);__m64 _m_psrad(__m64 a, __m64 count);__m64 _m_psradi(__m64 a, int imm8);__m64 _m_psrlw(__m64 a, __m64 count);__m64 _m_psrlwi(__m64 a, int imm8);__m64 _m_psrld(__m64 a, __m64 count);__m64 _m_psrldi(__m64 a, int imm8);__m64 _m_psrlq(__m64 a, __m64 count);__m64 _m_psrlqi(__m64 a, int imm8);__m64 _m_pand(__m64 a, __m64 b);__m64 _m_pandn(__m64 a, __m64 b);__m64 _m_por(__m64 a, __m64 b);__m64 _m_pxor(__m64 a, __m64 b);__m64 _m_pcmpeqb(__m64 a, __m64 b);__m64 _m_pcmpgtb(__m64 a, __m64 b);__m64 _m_pcmpeqw(__m64 a, __m64 b);__m64 _m_pcmpgtw(__m64 a, __m64 b);__m64 _m_pcmpeqd(__m64 a, __m64 b);__m64 _m_pcmpgtd(__m64 a, __m64 b);__m64 _mm_setzero_si64(void);__m64 _mm_set_pi32(int i1, int i0);__m64 _mm_set_pi16(short s3, short s2, short s1, short s0);__m64 _mm_set_pi8(char b7, char b6, char b5, char b4, char b3, char b2, char b1, char b0);__m64 _mm_setr_pi32(int i1, int i0);__m64 _mm_setr_pi16(short s3, short s2, short s1, short s0);__m64 _mm_setr_pi8(char b7, char b6, char b5, char b4, char b3, char b2, char b1, char b0);__m64 _mm_set1_pi32(int i);__m64 _mm_set1_pi16(short s);__m64 _mm_set1_pi8(char b);
/* Alternate names */#define _mm_empty _m_empty#define _mm_cvtsi32_si64 _m_from_int#define _mm_cvtsi64_si32 _m_to_int#define _mm_packs_pi16 _m_packsswb#define _mm_packs_pi32 _m_packssdw#define _mm_packs_pu16 _m_packuswb#define _mm_unpackhi_pi8 _m_punpckhbw#define _mm_unpackhi_pi16 _m_punpckhwd#define _mm_unpackhi_pi32 _m_punpckhdq#define _mm_unpacklo_pi8 _m_punpcklbw#define _mm_unpacklo_pi16 _m_punpcklwd#define _mm_unpacklo_pi32 _m_punpckldq#define _mm_add_pi8 _m_paddb#define _mm_add_pi16 _m_paddw#define _mm_add_pi32 _m_paddd#define _mm_adds_pi8 _m_paddsb#define _mm_adds_pi16 _m_paddsw#define _mm_adds_pu8 _m_paddusb#define _mm_adds_pu16 _m_paddusw#define _mm_sub_pi8 _m_psubb#define _mm_sub_pi16 _m_psubw#define _mm_sub_pi32 _m_psubd#define _mm_subs_pi8 _m_psubsb#define _mm_subs_pi16 _m_psubsw#define _mm_subs_pu8 _m_psubusb#define _mm_subs_pu16 _m_psubusw#define _mm_madd_pi16 _m_pmaddwd#define _mm_mulhi_pi16 _m_pmulhw#define _mm_mullo_pi16 _m_pmullw#define _mm_sll_pi16 _m_psllw#define _mm_slli_pi16 _m_psllwi#define _mm_sll_pi32 _m_pslld#define _mm_slli_pi32 _m_pslldi#define _mm_sll_si64 _m_psllq#define _mm_slli_si64 _m_psllqi#define _mm_sra_pi16 _m_psraw#define _mm_srai_pi16 _m_psrawi#define _mm_sra_pi32 _m_psrad#define _mm_srai_pi32 _m_psradi#define _mm_srl_pi16 _m_psrlw#define _mm_srli_pi16 _m_psrlwi#define _mm_srl_pi32 _m_psrld#define _mm_srli_pi32 _m_psrldi#define _mm_srl_si64 _m_psrlq#define _mm_srli_si64 _m_psrlqi#define _mm_and_si64 _m_pand#define _mm_andnot_si64 _m_pandn#define _mm_or_si64 _m_por#define _mm_xor_si64 _m_pxor#define _mm_cmpeq_pi8 _m_pcmpeqb#define _mm_cmpgt_pi8 _m_pcmpgtb#define _mm_cmpeq_pi16 _m_pcmpeqw#define _mm_cmpgt_pi16 _m_pcmpgtw#define _mm_cmpeq_pi32 _m_pcmpeqd#define _mm_cmpgt_pi32 _m_pcmpgtd
/* Use intrinsics on MSVC */#if defined(_MSC_VER) && !defined(__clang__)#pragma intrinsic(_m_empty)#pragma intrinsic(_m_from_int)#pragma intrinsic(_m_to_int)#pragma intrinsic(_m_packsswb)#pragma intrinsic(_m_packssdw)#pragma intrinsic(_m_packuswb)#pragma intrinsic(_m_punpckhbw)#pragma intrinsic(_m_punpckhwd)#pragma intrinsic(_m_punpckhdq)#pragma intrinsic(_m_punpcklbw)#pragma intrinsic(_m_punpcklwd)#pragma intrinsic(_m_punpckldq)#pragma intrinsic(_m_paddb)#pragma intrinsic(_m_paddw)#pragma intrinsic(_m_paddd)#pragma intrinsic(_m_paddsb)#pragma intrinsic(_m_paddsw)#pragma intrinsic(_m_paddusb)#pragma intrinsic(_m_paddusw)#pragma intrinsic(_m_psubb)#pragma intrinsic(_m_psubw)#pragma intrinsic(_m_psubd)#pragma intrinsic(_m_psubsb)#pragma intrinsic(_m_psubsw)#pragma intrinsic(_m_psubusb)#pragma intrinsic(_m_psubusw)#pragma intrinsic(_m_pmaddwd)#pragma intrinsic(_m_pmulhw)#pragma intrinsic(_m_pmullw)#pragma intrinsic(_m_psllw)#pragma intrinsic(_m_psllwi)#pragma intrinsic(_m_pslld)#pragma intrinsic(_m_pslldi)#pragma intrinsic(_m_psllq)#pragma intrinsic(_m_psllqi)#pragma intrinsic(_m_psraw)#pragma intrinsic(_m_psrawi)#pragma intrinsic(_m_psrad)#pragma intrinsic(_m_psradi)#pragma intrinsic(_m_psrlw)#pragma intrinsic(_m_psrlwi)#pragma intrinsic(_m_psrld)#pragma intrinsic(_m_psrldi)#pragma intrinsic(_m_psrlq)#pragma intrinsic(_m_psrlqi)#pragma intrinsic(_m_pand)#pragma intrinsic(_m_pandn)#pragma intrinsic(_m_por)#pragma intrinsic(_m_pxor)#pragma intrinsic(_m_pcmpeqb)#pragma intrinsic(_m_pcmpgtb)#pragma intrinsic(_m_pcmpeqw)#pragma intrinsic(_m_pcmpgtw)#pragma intrinsic(_m_pcmpeqd)#pragma intrinsic(_m_pcmpgtd)#pragma intrinsic(_mm_setzero_si64)#pragma intrinsic(_mm_set_pi32)#pragma intrinsic(_mm_set_pi16)#pragma intrinsic(_mm_set_pi8)#pragma intrinsic(_mm_setr_pi32)#pragma intrinsic(_mm_setr_pi16)#pragma intrinsic(_mm_setr_pi8)#pragma intrinsic(_mm_set1_pi32)#pragma intrinsic(_mm_set1_pi16)#pragma intrinsic(_mm_set1_pi8)
/* Use inline functions on GCC/Clang */#else // GCC / Clang Clang-CL
/*- GCC: https://github.com/gcc-mirror/gcc/blob/master/gcc/config/i386/mmintrin.h- Clang: https://github.com/llvm/llvm-project/blob/main/clang/lib/Headers/mmintrin.h*/
// _m_empty__INTRIN_INLINE_MMX void _mm_empty(void){ __builtin_ia32_emms();}
// _m_from_int__INTRIN_INLINE_MMX __m64 _mm_cvtsi32_si64(int i){ return (__m64)__builtin_ia32_vec_init_v2si(i, 0);}
// _m_to_int__INTRIN_INLINE_MMX int _mm_cvtsi64_si32(__m64 m){ return __builtin_ia32_vec_ext_v2si((__v2si)m, 0);}
// _m_packsswb__INTRIN_INLINE_MMX __m64 _mm_packs_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_packsswb((__v4hi)a, (__v4hi)b);}
// _m_packssdw__INTRIN_INLINE_MMX __m64 _mm_packs_pi32(__m64 a, __m64 b){ return (__m64)__builtin_ia32_packssdw((__v2si)a, (__v2si)b);}
// _m_packuswb__INTRIN_INLINE_MMX __m64 _mm_packs_pu16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_packuswb((__v4hi)a, (__v4hi)b);}
// _m_punpckhbw__INTRIN_INLINE_MMX __m64 _mm_unpackhi_pi8(__m64 a, __m64 b){ return (__m64)__builtin_ia32_punpckhbw((__v8qi)a, (__v8qi)b);}
// _m_punpckhwd__INTRIN_INLINE_MMX __m64 _mm_unpackhi_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_punpckhwd((__v4hi)a, (__v4hi)b);}
// _m_punpckhdq__INTRIN_INLINE_MMX __m64 _mm_unpackhi_pi32(__m64 a, __m64 b){ return (__m64)__builtin_ia32_punpckhdq((__v2si)a, (__v2si)b);}
// _m_punpcklbw__INTRIN_INLINE_MMX __m64 _mm_unpacklo_pi8(__m64 a, __m64 b){ return (__m64)__builtin_ia32_punpcklbw((__v8qi)a, (__v8qi)b);}
// _m_punpcklwd__INTRIN_INLINE_MMX __m64 _mm_unpacklo_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_punpcklwd((__v4hi)a, (__v4hi)b);}
// _m_punpckldq__INTRIN_INLINE_MMX __m64 _mm_unpacklo_pi32(__m64 a, __m64 b){ return (__m64)__builtin_ia32_punpckldq((__v2si)a, (__v2si)b);}
// _m_paddb__INTRIN_INLINE_MMX __m64 _mm_add_pi8(__m64 a, __m64 b){ return (__m64)__builtin_ia32_paddb((__v8qi)a, (__v8qi)b);}
// _m_paddw__INTRIN_INLINE_MMX __m64 _mm_add_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_paddw((__v4hi)a, (__v4hi)b);}
// _m_paddd__INTRIN_INLINE_MMX __m64 _mm_add_pi32(__m64 a, __m64 b){ return (__m64)__builtin_ia32_paddd((__v2si)a, (__v2si)b);}
// _m_paddsb__INTRIN_INLINE_MMX __m64 _mm_adds_pi8(__m64 a, __m64 b){ return (__m64)__builtin_ia32_paddsb((__v8qi)a, (__v8qi)b);}
// _m_paddsw__INTRIN_INLINE_MMX __m64 _mm_adds_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_paddsw((__v4hi)a, (__v4hi)b);}
// _m_paddusb__INTRIN_INLINE_MMX __m64 _mm_adds_pu8(__m64 a, __m64 b){ return (__m64)__builtin_ia32_paddusb((__v8qi)a, (__v8qi)b);}
// _m_paddusw__INTRIN_INLINE_MMX __m64 _mm_adds_pu16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_paddusw((__v4hi)a, (__v4hi)b);}
// _m_psubb__INTRIN_INLINE_MMX __m64 _mm_sub_pi8(__m64 a, __m64 b){ return (__m64)__builtin_ia32_psubb((__v8qi)a, (__v8qi)b);}
// _m_psubw__INTRIN_INLINE_MMX __m64 _mm_sub_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_psubw((__v4hi)a, (__v4hi)b);}
// _m_psubd__INTRIN_INLINE_MMX __m64 _mm_sub_pi32(__m64 a, __m64 b){ return (__m64)__builtin_ia32_psubd((__v2si)a, (__v2si)b);}
// _m_psubsb__INTRIN_INLINE_MMX __m64 _mm_subs_pi8(__m64 a, __m64 b){ return (__m64)__builtin_ia32_psubsb((__v8qi)a, (__v8qi)b);}
// _m_psubsw__INTRIN_INLINE_MMX __m64 _mm_subs_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_psubsw((__v4hi)a, (__v4hi)b);}
// _m_psubusb__INTRIN_INLINE_MMX __m64 _mm_subs_pu8(__m64 a, __m64 b){ return (__m64)__builtin_ia32_psubusb((__v8qi)a, (__v8qi)b);}
// _m_psubusw__INTRIN_INLINE_MMX __m64 _mm_subs_pu16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_psubusw((__v4hi)a, (__v4hi)b);}
// _m_pmaddwd__INTRIN_INLINE_MMX __m64 _mm_madd_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pmaddwd((__v4hi)a, (__v4hi)b);}
// _m_pmulhw__INTRIN_INLINE_MMX __m64 _mm_mulhi_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pmulhw((__v4hi)a, (__v4hi)b);}
// _m_pmullw__INTRIN_INLINE_MMX __m64 _mm_mullo_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pmullw((__v4hi)a, (__v4hi)b);}
// _m_psllw__INTRIN_INLINE_MMX __m64 _mm_sll_pi16(__m64 a, __m64 count){ return (__m64)__builtin_ia32_psllw((__v4hi)a, (__v4hi)count);}
// _m_psllwi__INTRIN_INLINE_MMX __m64 _mm_slli_pi16(__m64 a, int imm8){ return (__m64)__builtin_ia32_psllwi((__v4hi)a, imm8);}
// _m_pslld__INTRIN_INLINE_MMX __m64 _mm_sll_pi32(__m64 a, __m64 count){ return (__m64)__builtin_ia32_pslld((__v2si)a, (__v2si)count);}
// _m_pslldi__INTRIN_INLINE_MMX __m64 _mm_slli_pi32(__m64 a, int imm8){ return (__m64)__builtin_ia32_pslldi((__v2si)a, imm8);}
// _m_psllq__INTRIN_INLINE_MMX __m64 _mm_sll_si64(__m64 a, __m64 count){ return (__m64)__builtin_ia32_psllq((__v1di)a, (__v1di)count);}
// _m_psllqi__INTRIN_INLINE_MMX __m64 _mm_slli_si64(__m64 a, int imm8){ return (__m64)__builtin_ia32_psllqi((__v1di)a, imm8);}
// _m_psraw__INTRIN_INLINE_MMX __m64 _mm_sra_pi16(__m64 a, __m64 count){ return (__m64)__builtin_ia32_psraw((__v4hi)a, (__v4hi)count);}
// _m_psrawi__INTRIN_INLINE_MMX __m64 _mm_srai_pi16(__m64 a, int imm8){ return (__m64)__builtin_ia32_psrawi((__v4hi)a, imm8);}
// _m_psrad__INTRIN_INLINE_MMX __m64 _mm_sra_pi32(__m64 a, __m64 count){ return (__m64)__builtin_ia32_psrad((__v2si)a, (__v2si)count);}
// _m_psradi__INTRIN_INLINE_MMX __m64 _mm_srai_pi32(__m64 a, int imm8){ return (__m64)__builtin_ia32_psradi((__v2si)a, imm8);}
// _m_psrlw__INTRIN_INLINE_MMX __m64 _mm_srl_pi16(__m64 a, __m64 count){ return (__m64)__builtin_ia32_psrlw((__v4hi)a, (__v4hi)count);}
// _m_psrlwi__INTRIN_INLINE_MMX __m64 _mm_srli_pi16(__m64 a, int imm8){ return (__m64)__builtin_ia32_psrlwi((__v4hi)a, imm8);}
// _m_psrld__INTRIN_INLINE_MMX __m64 _mm_srl_pi32(__m64 a, __m64 count){ return (__m64)__builtin_ia32_psrld((__v2si)a, (__v2si)count);}
// _m_psrldi__INTRIN_INLINE_MMX __m64 _mm_srli_pi32(__m64 a, int imm8){ return (__m64)__builtin_ia32_psrldi((__v2si)a, imm8);}
// _m_psrlq__INTRIN_INLINE_MMX __m64 _mm_srl_si64(__m64 a, __m64 count){ return (__m64)__builtin_ia32_psrlq((__v1di)a, (__v1di)count);}
// _m_psrlqi__INTRIN_INLINE_MMX __m64 _mm_srli_si64(__m64 a, int imm8){ return (__m64)__builtin_ia32_psrlqi((__v1di)a, imm8);}
// _m_pand__INTRIN_INLINE_MMX __m64 _mm_and_si64(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pand((__v2si)a, (__v2si)b);}
// _m_pandn__INTRIN_INLINE_MMX __m64 _mm_andnot_si64(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pandn((__v2si)a, (__v2si)b);}
// _m_por__INTRIN_INLINE_MMX __m64 _mm_or_si64(__m64 a, __m64 b){ return (__m64)__builtin_ia32_por((__v2si)a, (__v2si)b);}
// _m_pxor__INTRIN_INLINE_MMX __m64 _mm_xor_si64(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pxor((__v2si)a, (__v2si)b);}
// _m_pcmpeqb__INTRIN_INLINE_MMX __m64 _mm_cmpeq_pi8(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pcmpeqb((__v8qi)a, (__v8qi)b);}
// _m_pcmpgtb__INTRIN_INLINE_MMX __m64 _mm_cmpgt_pi8(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pcmpgtb((__v8qi)a, (__v8qi)b);}
// _m_pcmpeqw__INTRIN_INLINE_MMX __m64 _mm_cmpeq_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pcmpeqw((__v4hi)a, (__v4hi)b);}
// _m_pcmpgtw__INTRIN_INLINE_MMX __m64 _mm_cmpgt_pi16(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pcmpgtw((__v4hi)a, (__v4hi)b);}
// _m_pcmpeqd__INTRIN_INLINE_MMX __m64 _mm_cmpeq_pi32(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pcmpeqd((__v2si)a, (__v2si)b);}
// _m_pcmpgtd__INTRIN_INLINE_MMX __m64 _mm_cmpgt_pi32(__m64 a, __m64 b){ return (__m64)__builtin_ia32_pcmpgtd((__v2si)a, (__v2si)b);}
__INTRIN_INLINE_MMX __m64 _mm_setzero_si64(void){ return (__m64) { 0 };}
__INTRIN_INLINE_MMX __m64 _mm_set_pi32(int i1, int i0){ return (__m64)__builtin_ia32_vec_init_v2si(i0, i1);}
__INTRIN_INLINE_MMX __m64 _mm_set_pi16(short s3, short s2, short s1, short s0){ return (__m64)__builtin_ia32_vec_init_v4hi(s0, s1, s2, s3);}
__INTRIN_INLINE_MMX __m64 _mm_set_pi8(char b7, char b6, char b5, char b4, char b3, char b2, char b1, char b0){ return (__m64)__builtin_ia32_vec_init_v8qi(b0, b1, b2, b3, b4, b5, b6, b7);}
__INTRIN_INLINE_MMX __m64 _mm_setr_pi32(int i1, int i0){ return _mm_set_pi32(i0, i1);}
__INTRIN_INLINE_MMX __m64 _mm_setr_pi16(short s3, short s2, short s1, short s0){ return _mm_set_pi16(s0, s1, s2, s3);}
__INTRIN_INLINE_MMX __m64 _mm_setr_pi8(char b7, char b6, char b5, char b4, char b3, char b2, char b1, char b0){ return _mm_set_pi8(b7, b6, b5, b4, b3, b2, b1, b0);}
__INTRIN_INLINE_MMX __m64 _mm_set1_pi32(int i){ return _mm_set_pi32(i, i);}
__INTRIN_INLINE_MMX __m64 _mm_set1_pi16(short s){ return _mm_set_pi16(s, s, s, s);}
__INTRIN_INLINE_MMX __m64 _mm_set1_pi8(char b){ return _mm_set_pi8(b, b, b, b, b, b, b, b);}
#endif /* __GNUC__ */
#endif /* _M_IX86 */
#ifdef __cplusplus}#endif
#endif /* _MMINTRIN_H_INCLUDED */