root / lab4 / .minix-src / include / clang-3.6 / mmintrin.h @ 13
History | View | Annotate | Download (15.1 KB)
1 | 13 | up20180614 | /*===---- mmintrin.h - MMX intrinsics --------------------------------------===
|
---|---|---|---|
2 | *
|
||
3 | * Permission is hereby granted, free of charge, to any person obtaining a copy
|
||
4 | * of this software and associated documentation files (the "Software"), to deal
|
||
5 | * in the Software without restriction, including without limitation the rights
|
||
6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||
7 | * copies of the Software, and to permit persons to whom the Software is
|
||
8 | * furnished to do so, subject to the following conditions:
|
||
9 | *
|
||
10 | * The above copyright notice and this permission notice shall be included in
|
||
11 | * all copies or substantial portions of the Software.
|
||
12 | *
|
||
13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||
15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||
16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||
17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||
18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||
19 | * THE SOFTWARE.
|
||
20 | *
|
||
21 | *===-----------------------------------------------------------------------===
|
||
22 | */
|
||
23 | |||
24 | #ifndef __MMINTRIN_H
|
||
25 | #define __MMINTRIN_H
|
||
26 | |||
27 | #ifndef __MMX__
|
||
28 | #error "MMX instruction set not enabled" |
||
29 | #else
|
||
30 | |||
31 | typedef long long __m64 __attribute__((__vector_size__(8))); |
||
32 | |||
33 | typedef int __v2si __attribute__((__vector_size__(8))); |
||
34 | typedef short __v4hi __attribute__((__vector_size__(8))); |
||
35 | typedef char __v8qi __attribute__((__vector_size__(8))); |
||
36 | |||
37 | static __inline__ void __attribute__((__always_inline__, __nodebug__)) |
||
38 | _mm_empty(void)
|
||
39 | { |
||
40 | __builtin_ia32_emms(); |
||
41 | } |
||
42 | |||
43 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
44 | _mm_cvtsi32_si64(int __i)
|
||
45 | { |
||
46 | return (__m64)__builtin_ia32_vec_init_v2si(__i, 0); |
||
47 | } |
||
48 | |||
49 | static __inline__ int __attribute__((__always_inline__, __nodebug__)) |
||
50 | _mm_cvtsi64_si32(__m64 __m) |
||
51 | { |
||
52 | return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0); |
||
53 | } |
||
54 | |||
55 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
56 | _mm_cvtsi64_m64(long long __i) |
||
57 | { |
||
58 | return (__m64)__i;
|
||
59 | } |
||
60 | |||
61 | static __inline__ long long __attribute__((__always_inline__, __nodebug__)) |
||
62 | _mm_cvtm64_si64(__m64 __m) |
||
63 | { |
||
64 | return (long long)__m; |
||
65 | } |
||
66 | |||
67 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
68 | _mm_packs_pi16(__m64 __m1, __m64 __m2) |
||
69 | { |
||
70 | return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
|
||
71 | } |
||
72 | |||
73 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
74 | _mm_packs_pi32(__m64 __m1, __m64 __m2) |
||
75 | { |
||
76 | return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
|
||
77 | } |
||
78 | |||
79 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
80 | _mm_packs_pu16(__m64 __m1, __m64 __m2) |
||
81 | { |
||
82 | return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
|
||
83 | } |
||
84 | |||
85 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
86 | _mm_unpackhi_pi8(__m64 __m1, __m64 __m2) |
||
87 | { |
||
88 | return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
|
||
89 | } |
||
90 | |||
91 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
92 | _mm_unpackhi_pi16(__m64 __m1, __m64 __m2) |
||
93 | { |
||
94 | return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
|
||
95 | } |
||
96 | |||
97 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
98 | _mm_unpackhi_pi32(__m64 __m1, __m64 __m2) |
||
99 | { |
||
100 | return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
|
||
101 | } |
||
102 | |||
103 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
104 | _mm_unpacklo_pi8(__m64 __m1, __m64 __m2) |
||
105 | { |
||
106 | return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
|
||
107 | } |
||
108 | |||
109 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
110 | _mm_unpacklo_pi16(__m64 __m1, __m64 __m2) |
||
111 | { |
||
112 | return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2);
|
||
113 | } |
||
114 | |||
115 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
116 | _mm_unpacklo_pi32(__m64 __m1, __m64 __m2) |
||
117 | { |
||
118 | return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2);
|
||
119 | } |
||
120 | |||
121 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
122 | _mm_add_pi8(__m64 __m1, __m64 __m2) |
||
123 | { |
||
124 | return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
|
||
125 | } |
||
126 | |||
127 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
128 | _mm_add_pi16(__m64 __m1, __m64 __m2) |
||
129 | { |
||
130 | return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2);
|
||
131 | } |
||
132 | |||
133 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
134 | _mm_add_pi32(__m64 __m1, __m64 __m2) |
||
135 | { |
||
136 | return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2);
|
||
137 | } |
||
138 | |||
139 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
140 | _mm_adds_pi8(__m64 __m1, __m64 __m2) |
||
141 | { |
||
142 | return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2);
|
||
143 | } |
||
144 | |||
145 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
146 | _mm_adds_pi16(__m64 __m1, __m64 __m2) |
||
147 | { |
||
148 | return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2);
|
||
149 | } |
||
150 | |||
151 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
152 | _mm_adds_pu8(__m64 __m1, __m64 __m2) |
||
153 | { |
||
154 | return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2);
|
||
155 | } |
||
156 | |||
157 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
158 | _mm_adds_pu16(__m64 __m1, __m64 __m2) |
||
159 | { |
||
160 | return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2);
|
||
161 | } |
||
162 | |||
163 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
164 | _mm_sub_pi8(__m64 __m1, __m64 __m2) |
||
165 | { |
||
166 | return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2);
|
||
167 | } |
||
168 | |||
169 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
170 | _mm_sub_pi16(__m64 __m1, __m64 __m2) |
||
171 | { |
||
172 | return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2);
|
||
173 | } |
||
174 | |||
175 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
176 | _mm_sub_pi32(__m64 __m1, __m64 __m2) |
||
177 | { |
||
178 | return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2);
|
||
179 | } |
||
180 | |||
181 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
182 | _mm_subs_pi8(__m64 __m1, __m64 __m2) |
||
183 | { |
||
184 | return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2);
|
||
185 | } |
||
186 | |||
187 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
188 | _mm_subs_pi16(__m64 __m1, __m64 __m2) |
||
189 | { |
||
190 | return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2);
|
||
191 | } |
||
192 | |||
193 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
194 | _mm_subs_pu8(__m64 __m1, __m64 __m2) |
||
195 | { |
||
196 | return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2);
|
||
197 | } |
||
198 | |||
199 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
200 | _mm_subs_pu16(__m64 __m1, __m64 __m2) |
||
201 | { |
||
202 | return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2);
|
||
203 | } |
||
204 | |||
205 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
206 | _mm_madd_pi16(__m64 __m1, __m64 __m2) |
||
207 | { |
||
208 | return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2);
|
||
209 | } |
||
210 | |||
211 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
212 | _mm_mulhi_pi16(__m64 __m1, __m64 __m2) |
||
213 | { |
||
214 | return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2);
|
||
215 | } |
||
216 | |||
217 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
218 | _mm_mullo_pi16(__m64 __m1, __m64 __m2) |
||
219 | { |
||
220 | return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2);
|
||
221 | } |
||
222 | |||
223 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
224 | _mm_sll_pi16(__m64 __m, __m64 __count) |
||
225 | { |
||
226 | return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count);
|
||
227 | } |
||
228 | |||
229 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
230 | _mm_slli_pi16(__m64 __m, int __count)
|
||
231 | { |
||
232 | return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count);
|
||
233 | } |
||
234 | |||
235 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
236 | _mm_sll_pi32(__m64 __m, __m64 __count) |
||
237 | { |
||
238 | return (__m64)__builtin_ia32_pslld((__v2si)__m, __count);
|
||
239 | } |
||
240 | |||
241 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
242 | _mm_slli_pi32(__m64 __m, int __count)
|
||
243 | { |
||
244 | return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count);
|
||
245 | } |
||
246 | |||
247 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
248 | _mm_sll_si64(__m64 __m, __m64 __count) |
||
249 | { |
||
250 | return (__m64)__builtin_ia32_psllq(__m, __count);
|
||
251 | } |
||
252 | |||
253 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
254 | _mm_slli_si64(__m64 __m, int __count)
|
||
255 | { |
||
256 | return (__m64)__builtin_ia32_psllqi(__m, __count);
|
||
257 | } |
||
258 | |||
259 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
260 | _mm_sra_pi16(__m64 __m, __m64 __count) |
||
261 | { |
||
262 | return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count);
|
||
263 | } |
||
264 | |||
265 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
266 | _mm_srai_pi16(__m64 __m, int __count)
|
||
267 | { |
||
268 | return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count);
|
||
269 | } |
||
270 | |||
271 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
272 | _mm_sra_pi32(__m64 __m, __m64 __count) |
||
273 | { |
||
274 | return (__m64)__builtin_ia32_psrad((__v2si)__m, __count);
|
||
275 | } |
||
276 | |||
277 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
278 | _mm_srai_pi32(__m64 __m, int __count)
|
||
279 | { |
||
280 | return (__m64)__builtin_ia32_psradi((__v2si)__m, __count);
|
||
281 | } |
||
282 | |||
283 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
284 | _mm_srl_pi16(__m64 __m, __m64 __count) |
||
285 | { |
||
286 | return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count);
|
||
287 | } |
||
288 | |||
289 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
290 | _mm_srli_pi16(__m64 __m, int __count)
|
||
291 | { |
||
292 | return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count);
|
||
293 | } |
||
294 | |||
295 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
296 | _mm_srl_pi32(__m64 __m, __m64 __count) |
||
297 | { |
||
298 | return (__m64)__builtin_ia32_psrld((__v2si)__m, __count);
|
||
299 | } |
||
300 | |||
301 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
302 | _mm_srli_pi32(__m64 __m, int __count)
|
||
303 | { |
||
304 | return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count);
|
||
305 | } |
||
306 | |||
307 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
308 | _mm_srl_si64(__m64 __m, __m64 __count) |
||
309 | { |
||
310 | return (__m64)__builtin_ia32_psrlq(__m, __count);
|
||
311 | } |
||
312 | |||
313 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
314 | _mm_srli_si64(__m64 __m, int __count)
|
||
315 | { |
||
316 | return (__m64)__builtin_ia32_psrlqi(__m, __count);
|
||
317 | } |
||
318 | |||
319 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
320 | _mm_and_si64(__m64 __m1, __m64 __m2) |
||
321 | { |
||
322 | return __builtin_ia32_pand(__m1, __m2);
|
||
323 | } |
||
324 | |||
325 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
326 | _mm_andnot_si64(__m64 __m1, __m64 __m2) |
||
327 | { |
||
328 | return __builtin_ia32_pandn(__m1, __m2);
|
||
329 | } |
||
330 | |||
331 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
332 | _mm_or_si64(__m64 __m1, __m64 __m2) |
||
333 | { |
||
334 | return __builtin_ia32_por(__m1, __m2);
|
||
335 | } |
||
336 | |||
337 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
338 | _mm_xor_si64(__m64 __m1, __m64 __m2) |
||
339 | { |
||
340 | return __builtin_ia32_pxor(__m1, __m2);
|
||
341 | } |
||
342 | |||
343 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
344 | _mm_cmpeq_pi8(__m64 __m1, __m64 __m2) |
||
345 | { |
||
346 | return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2);
|
||
347 | } |
||
348 | |||
349 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
350 | _mm_cmpeq_pi16(__m64 __m1, __m64 __m2) |
||
351 | { |
||
352 | return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2);
|
||
353 | } |
||
354 | |||
355 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
356 | _mm_cmpeq_pi32(__m64 __m1, __m64 __m2) |
||
357 | { |
||
358 | return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2);
|
||
359 | } |
||
360 | |||
361 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
362 | _mm_cmpgt_pi8(__m64 __m1, __m64 __m2) |
||
363 | { |
||
364 | return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2);
|
||
365 | } |
||
366 | |||
367 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
368 | _mm_cmpgt_pi16(__m64 __m1, __m64 __m2) |
||
369 | { |
||
370 | return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2);
|
||
371 | } |
||
372 | |||
373 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
374 | _mm_cmpgt_pi32(__m64 __m1, __m64 __m2) |
||
375 | { |
||
376 | return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2);
|
||
377 | } |
||
378 | |||
379 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
380 | _mm_setzero_si64(void)
|
||
381 | { |
||
382 | return (__m64){ 0LL }; |
||
383 | } |
||
384 | |||
385 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
386 | _mm_set_pi32(int __i1, int __i0) |
||
387 | { |
||
388 | return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1);
|
||
389 | } |
||
390 | |||
391 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
392 | _mm_set_pi16(short __s3, short __s2, short __s1, short __s0) |
||
393 | { |
||
394 | return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3);
|
||
395 | } |
||
396 | |||
397 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
398 | _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, |
||
399 | char __b1, char __b0) |
||
400 | { |
||
401 | return (__m64)__builtin_ia32_vec_init_v8qi(__b0, __b1, __b2, __b3,
|
||
402 | __b4, __b5, __b6, __b7); |
||
403 | } |
||
404 | |||
405 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
406 | _mm_set1_pi32(int __i)
|
||
407 | { |
||
408 | return _mm_set_pi32(__i, __i);
|
||
409 | } |
||
410 | |||
411 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
412 | _mm_set1_pi16(short __w)
|
||
413 | { |
||
414 | return _mm_set_pi16(__w, __w, __w, __w);
|
||
415 | } |
||
416 | |||
417 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
418 | _mm_set1_pi8(char __b)
|
||
419 | { |
||
420 | return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b);
|
||
421 | } |
||
422 | |||
423 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
424 | _mm_setr_pi32(int __i0, int __i1) |
||
425 | { |
||
426 | return _mm_set_pi32(__i1, __i0);
|
||
427 | } |
||
428 | |||
429 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
430 | _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3) |
||
431 | { |
||
432 | return _mm_set_pi16(__w3, __w2, __w1, __w0);
|
||
433 | } |
||
434 | |||
435 | static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
|
||
436 | _mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, |
||
437 | char __b6, char __b7) |
||
438 | { |
||
439 | return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
|
||
440 | } |
||
441 | |||
442 | |||
443 | /* Aliases for compatibility. */
|
||
444 | #define _m_empty _mm_empty
|
||
445 | #define _m_from_int _mm_cvtsi32_si64
|
||
446 | #define _m_to_int _mm_cvtsi64_si32
|
||
447 | #define _m_packsswb _mm_packs_pi16
|
||
448 | #define _m_packssdw _mm_packs_pi32
|
||
449 | #define _m_packuswb _mm_packs_pu16
|
||
450 | #define _m_punpckhbw _mm_unpackhi_pi8
|
||
451 | #define _m_punpckhwd _mm_unpackhi_pi16
|
||
452 | #define _m_punpckhdq _mm_unpackhi_pi32
|
||
453 | #define _m_punpcklbw _mm_unpacklo_pi8
|
||
454 | #define _m_punpcklwd _mm_unpacklo_pi16
|
||
455 | #define _m_punpckldq _mm_unpacklo_pi32
|
||
456 | #define _m_paddb _mm_add_pi8
|
||
457 | #define _m_paddw _mm_add_pi16
|
||
458 | #define _m_paddd _mm_add_pi32
|
||
459 | #define _m_paddsb _mm_adds_pi8
|
||
460 | #define _m_paddsw _mm_adds_pi16
|
||
461 | #define _m_paddusb _mm_adds_pu8
|
||
462 | #define _m_paddusw _mm_adds_pu16
|
||
463 | #define _m_psubb _mm_sub_pi8
|
||
464 | #define _m_psubw _mm_sub_pi16
|
||
465 | #define _m_psubd _mm_sub_pi32
|
||
466 | #define _m_psubsb _mm_subs_pi8
|
||
467 | #define _m_psubsw _mm_subs_pi16
|
||
468 | #define _m_psubusb _mm_subs_pu8
|
||
469 | #define _m_psubusw _mm_subs_pu16
|
||
470 | #define _m_pmaddwd _mm_madd_pi16
|
||
471 | #define _m_pmulhw _mm_mulhi_pi16
|
||
472 | #define _m_pmullw _mm_mullo_pi16
|
||
473 | #define _m_psllw _mm_sll_pi16
|
||
474 | #define _m_psllwi _mm_slli_pi16
|
||
475 | #define _m_pslld _mm_sll_pi32
|
||
476 | #define _m_pslldi _mm_slli_pi32
|
||
477 | #define _m_psllq _mm_sll_si64
|
||
478 | #define _m_psllqi _mm_slli_si64
|
||
479 | #define _m_psraw _mm_sra_pi16
|
||
480 | #define _m_psrawi _mm_srai_pi16
|
||
481 | #define _m_psrad _mm_sra_pi32
|
||
482 | #define _m_psradi _mm_srai_pi32
|
||
483 | #define _m_psrlw _mm_srl_pi16
|
||
484 | #define _m_psrlwi _mm_srli_pi16
|
||
485 | #define _m_psrld _mm_srl_pi32
|
||
486 | #define _m_psrldi _mm_srli_pi32
|
||
487 | #define _m_psrlq _mm_srl_si64
|
||
488 | #define _m_psrlqi _mm_srli_si64
|
||
489 | #define _m_pand _mm_and_si64
|
||
490 | #define _m_pandn _mm_andnot_si64
|
||
491 | #define _m_por _mm_or_si64
|
||
492 | #define _m_pxor _mm_xor_si64
|
||
493 | #define _m_pcmpeqb _mm_cmpeq_pi8
|
||
494 | #define _m_pcmpeqw _mm_cmpeq_pi16
|
||
495 | #define _m_pcmpeqd _mm_cmpeq_pi32
|
||
496 | #define _m_pcmpgtb _mm_cmpgt_pi8
|
||
497 | #define _m_pcmpgtw _mm_cmpgt_pi16
|
||
498 | #define _m_pcmpgtd _mm_cmpgt_pi32
|
||
499 | |||
500 | #endif /* __MMX__ */ |
||
501 | |||
502 | #endif /* __MMINTRIN_H */ |