22#ifndef _MMINTRIN_H_INCLUDED
23#define _MMINTRIN_H_INCLUDED
32#define DECLSPEC_INTRINTYPE __declspec(intrin_type)
34#define DECLSPEC_INTRINTYPE
37#if defined(_MSC_VER) && !defined(__clang__)
59 typedef float __m64
__attribute__((__vector_size__(8), __aligned__(16)));
62#define __INTRIN_INLINE_MMX __INTRIN_INLINE __attribute__((__target__("mmx"),__min_vector_width__(64)))
64#define __INTRIN_INLINE_MMX __INTRIN_INLINE __attribute__((__target__("mmx")))
72__m64 _m_from_int(
int i);
73int _m_to_int(__m64
m);
74__m64 _m_packsswb(__m64
a, __m64
b);
75__m64 _m_packssdw(__m64
a, __m64
b);
76__m64 _m_packuswb(__m64
a, __m64
b);
77__m64 _m_punpckhbw(__m64
a, __m64
b);
78__m64 _m_punpckhwd(__m64
a, __m64
b);
79__m64 _m_punpckhdq(__m64
a, __m64
b);
80__m64 _m_punpcklbw(__m64
a, __m64
b);
81__m64 _m_punpcklwd(__m64
a, __m64
b);
82__m64 _m_punpckldq(__m64
a, __m64
b);
83__m64 _m_paddb(__m64
a, __m64
b);
84__m64 _m_paddw(__m64
a, __m64
b);
85__m64 _m_paddd(__m64
a, __m64
b);
86__m64 _m_paddsb(__m64
a, __m64
b);
87__m64 _m_paddsw(__m64
a, __m64
b);
88__m64 _m_paddusb(__m64
a, __m64
b);
89__m64 _m_paddusw(__m64
a, __m64
b);
90__m64 _m_psubb(__m64
a, __m64
b);
91__m64 _m_psubw(__m64
a, __m64
b);
92__m64 _m_psubd(__m64
a, __m64
b);
93__m64 _m_psubsb(__m64
a, __m64
b);
94__m64 _m_psubsw(__m64
a, __m64
b);
95__m64 _m_psubusb(__m64
a, __m64
b);
96__m64 _m_psubusw(__m64
a, __m64
b);
97__m64 _m_pmaddwd(__m64
a, __m64
b);
98__m64 _m_pmulhw(__m64
a, __m64
b);
99__m64 _m_pmullw(__m64
a, __m64
b);
100__m64 _m_psllw(__m64
a, __m64
count);
101__m64 _m_psllwi(__m64
a,
int imm8);
102__m64 _m_pslld(__m64
a, __m64
count);
103__m64 _m_pslldi(__m64
a,
int imm8);
104__m64 _m_psllq(__m64
a, __m64
count);
105__m64 _m_psllqi(__m64
a,
int imm8);
106__m64 _m_psraw(__m64
a, __m64
count);
107__m64 _m_psrawi(__m64
a,
int imm8);
108__m64 _m_psrad(__m64
a, __m64
count);
109__m64 _m_psradi(__m64
a,
int imm8);
110__m64 _m_psrlw(__m64
a, __m64
count);
111__m64 _m_psrlwi(__m64
a,
int imm8);
112__m64 _m_psrld(__m64
a, __m64
count);
113__m64 _m_psrldi(__m64
a,
int imm8);
114__m64 _m_psrlq(__m64
a, __m64
count);
115__m64 _m_psrlqi(__m64
a,
int imm8);
116__m64 _m_pand(__m64
a, __m64
b);
117__m64 _m_pandn(__m64
a, __m64
b);
118__m64 _m_por(__m64
a, __m64
b);
119__m64 _m_pxor(__m64
a, __m64
b);
120__m64 _m_pcmpeqb(__m64
a, __m64
b);
121__m64 _m_pcmpgtb(__m64
a, __m64
b);
122__m64 _m_pcmpeqw(__m64
a, __m64
b);
123__m64 _m_pcmpgtw(__m64
a, __m64
b);
124__m64 _m_pcmpeqd(__m64
a, __m64
b);
125__m64 _m_pcmpgtd(__m64
a, __m64
b);
126__m64 _mm_setzero_si64(
void);
127__m64 _mm_set_pi32(
int i1,
int i0);
128__m64 _mm_set_pi16(
short s3,
short s2,
short s1,
short s0);
129__m64 _mm_set_pi8(
char b7,
char b6,
char b5,
char b4,
130 char b3,
char b2,
char b1,
char b0);
131__m64 _mm_setr_pi32(
int i1,
int i0);
132__m64 _mm_setr_pi16(
short s3,
short s2,
short s1,
short s0);
133__m64 _mm_setr_pi8(
char b7,
char b6,
char b5,
char b4,
134 char b3,
char b2,
char b1,
char b0);
135__m64 _mm_set1_pi32(
int i);
136__m64 _mm_set1_pi16(
short s);
137__m64 _mm_set1_pi8(
char b);
140#define _mm_empty _m_empty
141#define _mm_cvtsi32_si64 _m_from_int
142#define _mm_cvtsi64_si32 _m_to_int
143#define _mm_packs_pi16 _m_packsswb
144#define _mm_packs_pi32 _m_packssdw
145#define _mm_packs_pu16 _m_packuswb
146#define _mm_unpackhi_pi8 _m_punpckhbw
147#define _mm_unpackhi_pi16 _m_punpckhwd
148#define _mm_unpackhi_pi32 _m_punpckhdq
149#define _mm_unpacklo_pi8 _m_punpcklbw
150#define _mm_unpacklo_pi16 _m_punpcklwd
151#define _mm_unpacklo_pi32 _m_punpckldq
152#define _mm_add_pi8 _m_paddb
153#define _mm_add_pi16 _m_paddw
154#define _mm_add_pi32 _m_paddd
155#define _mm_adds_pi8 _m_paddsb
156#define _mm_adds_pi16 _m_paddsw
157#define _mm_adds_pu8 _m_paddusb
158#define _mm_adds_pu16 _m_paddusw
159#define _mm_sub_pi8 _m_psubb
160#define _mm_sub_pi16 _m_psubw
161#define _mm_sub_pi32 _m_psubd
162#define _mm_subs_pi8 _m_psubsb
163#define _mm_subs_pi16 _m_psubsw
164#define _mm_subs_pu8 _m_psubusb
165#define _mm_subs_pu16 _m_psubusw
166#define _mm_madd_pi16 _m_pmaddwd
167#define _mm_mulhi_pi16 _m_pmulhw
168#define _mm_mullo_pi16 _m_pmullw
169#define _mm_sll_pi16 _m_psllw
170#define _mm_slli_pi16 _m_psllwi
171#define _mm_sll_pi32 _m_pslld
172#define _mm_slli_pi32 _m_pslldi
173#define _mm_sll_si64 _m_psllq
174#define _mm_slli_si64 _m_psllqi
175#define _mm_sra_pi16 _m_psraw
176#define _mm_srai_pi16 _m_psrawi
177#define _mm_sra_pi32 _m_psrad
178#define _mm_srai_pi32 _m_psradi
179#define _mm_srl_pi16 _m_psrlw
180#define _mm_srli_pi16 _m_psrlwi
181#define _mm_srl_pi32 _m_psrld
182#define _mm_srli_pi32 _m_psrldi
183#define _mm_srl_si64 _m_psrlq
184#define _mm_srli_si64 _m_psrlqi
185#define _mm_and_si64 _m_pand
186#define _mm_andnot_si64 _m_pandn
187#define _mm_or_si64 _m_por
188#define _mm_xor_si64 _m_pxor
189#define _mm_cmpeq_pi8 _m_pcmpeqb
190#define _mm_cmpgt_pi8 _m_pcmpgtb
191#define _mm_cmpeq_pi16 _m_pcmpeqw
192#define _mm_cmpgt_pi16 _m_pcmpgtw
193#define _mm_cmpeq_pi32 _m_pcmpeqd
194#define _mm_cmpgt_pi32 _m_pcmpgtd
197#if defined(_MSC_VER) && !defined(__clang__)
198#pragma intrinsic(_m_empty)
199#pragma intrinsic(_m_from_int)
200#pragma intrinsic(_m_to_int)
201#pragma intrinsic(_m_packsswb)
202#pragma intrinsic(_m_packssdw)
203#pragma intrinsic(_m_packuswb)
204#pragma intrinsic(_m_punpckhbw)
205#pragma intrinsic(_m_punpckhwd)
206#pragma intrinsic(_m_punpckhdq)
207#pragma intrinsic(_m_punpcklbw)
208#pragma intrinsic(_m_punpcklwd)
209#pragma intrinsic(_m_punpckldq)
210#pragma intrinsic(_m_paddb)
211#pragma intrinsic(_m_paddw)
212#pragma intrinsic(_m_paddd)
213#pragma intrinsic(_m_paddsb)
214#pragma intrinsic(_m_paddsw)
215#pragma intrinsic(_m_paddusb)
216#pragma intrinsic(_m_paddusw)
217#pragma intrinsic(_m_psubb)
218#pragma intrinsic(_m_psubw)
219#pragma intrinsic(_m_psubd)
220#pragma intrinsic(_m_psubsb)
221#pragma intrinsic(_m_psubsw)
222#pragma intrinsic(_m_psubusb)
223#pragma intrinsic(_m_psubusw)
224#pragma intrinsic(_m_pmaddwd)
225#pragma intrinsic(_m_pmulhw)
226#pragma intrinsic(_m_pmullw)
227#pragma intrinsic(_m_psllw)
228#pragma intrinsic(_m_psllwi)
229#pragma intrinsic(_m_pslld)
230#pragma intrinsic(_m_pslldi)
231#pragma intrinsic(_m_psllq)
232#pragma intrinsic(_m_psllqi)
233#pragma intrinsic(_m_psraw)
234#pragma intrinsic(_m_psrawi)
235#pragma intrinsic(_m_psrad)
236#pragma intrinsic(_m_psradi)
237#pragma intrinsic(_m_psrlw)
238#pragma intrinsic(_m_psrlwi)
239#pragma intrinsic(_m_psrld)
240#pragma intrinsic(_m_psrldi)
241#pragma intrinsic(_m_psrlq)
242#pragma intrinsic(_m_psrlqi)
243#pragma intrinsic(_m_pand)
244#pragma intrinsic(_m_pandn)
245#pragma intrinsic(_m_por)
246#pragma intrinsic(_m_pxor)
247#pragma intrinsic(_m_pcmpeqb)
248#pragma intrinsic(_m_pcmpgtb)
249#pragma intrinsic(_m_pcmpeqw)
250#pragma intrinsic(_m_pcmpgtw)
251#pragma intrinsic(_m_pcmpeqd)
252#pragma intrinsic(_m_pcmpgtd)
253#pragma intrinsic(_mm_setzero_si64)
254#pragma intrinsic(_mm_set_pi32)
255#pragma intrinsic(_mm_set_pi16)
256#pragma intrinsic(_mm_set_pi8)
257#pragma intrinsic(_mm_setr_pi32)
258#pragma intrinsic(_mm_setr_pi16)
259#pragma intrinsic(_mm_setr_pi8)
260#pragma intrinsic(_mm_set1_pi32)
261#pragma intrinsic(_mm_set1_pi16)
262#pragma intrinsic(_mm_set1_pi8)
275 __builtin_ia32_emms();
281 return (__m64)__builtin_ia32_vec_init_v2si(
i, 0);
287 return __builtin_ia32_vec_ext_v2si((__v2si)
m, 0);
293 return (__m64)__builtin_ia32_packsswb((__v4hi)
a, (__v4hi)
b);
299 return (__m64)__builtin_ia32_packssdw((__v2si)
a, (__v2si)
b);
305 return (__m64)__builtin_ia32_packuswb((__v4hi)
a, (__v4hi)
b);
311 return (__m64)__builtin_ia32_punpckhbw((__v8qi)
a, (__v8qi)
b);
317 return (__m64)__builtin_ia32_punpckhwd((__v4hi)
a, (__v4hi)
b);
323 return (__m64)__builtin_ia32_punpckhdq((__v2si)
a, (__v2si)
b);
329 return (__m64)__builtin_ia32_punpcklbw((__v8qi)
a, (__v8qi)
b);
335 return (__m64)__builtin_ia32_punpcklwd((__v4hi)
a, (__v4hi)
b);
341 return (__m64)__builtin_ia32_punpckldq((__v2si)
a, (__v2si)
b);
347 return (__m64)__builtin_ia32_paddb((__v8qi)
a, (__v8qi)
b);
353 return (__m64)__builtin_ia32_paddw((__v4hi)
a, (__v4hi)
b);
359 return (__m64)__builtin_ia32_paddd((__v2si)
a, (__v2si)
b);
365 return (__m64)__builtin_ia32_paddsb((__v8qi)
a, (__v8qi)
b);
371 return (__m64)__builtin_ia32_paddsw((__v4hi)
a, (__v4hi)
b);
377 return (__m64)__builtin_ia32_paddusb((__v8qi)
a, (__v8qi)
b);
383 return (__m64)__builtin_ia32_paddusw((__v4hi)
a, (__v4hi)
b);
389 return (__m64)__builtin_ia32_psubb((__v8qi)
a, (__v8qi)
b);
395 return (__m64)__builtin_ia32_psubw((__v4hi)
a, (__v4hi)
b);
401 return (__m64)__builtin_ia32_psubd((__v2si)
a, (__v2si)
b);
407 return (__m64)__builtin_ia32_psubsb((__v8qi)
a, (__v8qi)
b);
413 return (__m64)__builtin_ia32_psubsw((__v4hi)
a, (__v4hi)
b);
419 return (__m64)__builtin_ia32_psubusb((__v8qi)
a, (__v8qi)
b);
425 return (__m64)__builtin_ia32_psubusw((__v4hi)
a, (__v4hi)
b);
431 return (__m64)__builtin_ia32_pmaddwd((__v4hi)
a, (__v4hi)
b);
437 return (__m64)__builtin_ia32_pmulhw((__v4hi)
a, (__v4hi)
b);
443 return (__m64)__builtin_ia32_pmullw((__v4hi)
a, (__v4hi)
b);
449 return (__m64)__builtin_ia32_psllw((__v4hi)
a, (__v4hi)
count);
455 return (__m64)__builtin_ia32_psllwi((__v4hi)
a, imm8);
461 return (__m64)__builtin_ia32_pslld((__v2si)
a, (__v2si)
count);
467 return (__m64)__builtin_ia32_pslldi((__v2si)
a, imm8);
473 return (__m64)__builtin_ia32_psllq((__v1di)
a, (__v1di)
count);
479 return (__m64)__builtin_ia32_psllqi((__v1di)
a, imm8);
485 return (__m64)__builtin_ia32_psraw((__v4hi)
a, (__v4hi)
count);
491 return (__m64)__builtin_ia32_psrawi((__v4hi)
a, imm8);
497 return (__m64)__builtin_ia32_psrad((__v2si)
a, (__v2si)
count);
503 return (__m64)__builtin_ia32_psradi((__v2si)
a, imm8);
509 return (__m64)__builtin_ia32_psrlw((__v4hi)
a, (__v4hi)
count);
515 return (__m64)__builtin_ia32_psrlwi((__v4hi)
a, imm8);
521 return (__m64)__builtin_ia32_psrld((__v2si)
a, (__v2si)
count);
527 return (__m64)__builtin_ia32_psrldi((__v2si)
a, imm8);
533 return (__m64)__builtin_ia32_psrlq((__v1di)
a, (__v1di)
count);
539 return (__m64)__builtin_ia32_psrlqi((__v1di)
a, imm8);
545 return (__m64)__builtin_ia32_pand((__v2si)
a, (__v2si)
b);
551 return (__m64)__builtin_ia32_pandn((__v2si)
a, (__v2si)
b);
557 return (__m64)__builtin_ia32_por((__v2si)
a, (__v2si)
b);
563 return (__m64)__builtin_ia32_pxor((__v2si)
a, (__v2si)
b);
569 return (__m64)__builtin_ia32_pcmpeqb((__v8qi)
a, (__v8qi)
b);
575 return (__m64)__builtin_ia32_pcmpgtb((__v8qi)
a, (__v8qi)
b);
581 return (__m64)__builtin_ia32_pcmpeqw((__v4hi)
a, (__v4hi)
b);
587 return (__m64)__builtin_ia32_pcmpgtw((__v4hi)
a, (__v4hi)
b);
593 return (__m64)__builtin_ia32_pcmpeqd((__v2si)
a, (__v2si)
b);
599 return (__m64)__builtin_ia32_pcmpgtd((__v2si)
a, (__v2si)
b);
604 return (__m64) { 0 };
609 return (__m64)__builtin_ia32_vec_init_v2si(i0, i1);
614 return (__m64)__builtin_ia32_vec_init_v4hi(s0,
s1,
s2, s3);
618 char b3,
char b2,
char b1,
char b0)
620 return (__m64)__builtin_ia32_vec_init_v8qi(b0,
b1,
b2,
b3,
b4, b5, b6, b7);
625 return _mm_set_pi32(i0, i1);
630 return _mm_set_pi16(s0,
s1,
s2, s3);
634 char b3,
char b2,
char b1,
char b0)
636 return _mm_set_pi8(b7, b6, b5,
b4,
b3,
b2,
b1, b0);
641 return _mm_set_pi32(
i,
i);
646 return _mm_set_pi16(
s,
s,
s,
s);
651 return _mm_set_pi8(
b,
b,
b,
b,
b,
b,
b,
b);
GLuint GLuint GLsizei count
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define __INTRIN_INLINE_MMX
long long __v1di __attribute__((__vector_size__(8)))
#define DECLSPEC_INTRINTYPE
static CRYPT_DATA_BLOB b4
static CRYPT_DATA_BLOB b3[]
static CRYPT_DATA_BLOB b2[]
static CRYPT_DATA_BLOB b1[]