1193326Sed/*===---- mmintrin.h - MMX intrinsics --------------------------------------=== 2193326Sed * 3193326Sed * Permission is hereby granted, free of charge, to any person obtaining a copy 4193326Sed * of this software and associated documentation files (the "Software"), to deal 5193326Sed * in the Software without restriction, including without limitation the rights 6193326Sed * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7193326Sed * copies of the Software, and to permit persons to whom the Software is 8193326Sed * furnished to do so, subject to the following conditions: 9193326Sed * 10193326Sed * The above copyright notice and this permission notice shall be included in 11193326Sed * all copies or substantial portions of the Software. 12193326Sed * 13193326Sed * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14193326Sed * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15193326Sed * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16193326Sed * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17193326Sed * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18193326Sed * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19193326Sed * THE SOFTWARE. 20193326Sed * 21193326Sed *===-----------------------------------------------------------------------=== 22193326Sed */ 23193326Sed 24193326Sed#ifndef __MMINTRIN_H 25193326Sed#define __MMINTRIN_H 26193326Sed 27193326Sed#ifndef __MMX__ 28193326Sed#error "MMX instruction set not enabled" 29193326Sed#else 30193326Sed 31193326Sedtypedef long long __m64 __attribute__((__vector_size__(8))); 32193326Sed 33193326Sedtypedef int __v2si __attribute__((__vector_size__(8))); 34193326Sedtypedef short __v4hi __attribute__((__vector_size__(8))); 35193326Sedtypedef char __v8qi __attribute__((__vector_size__(8))); 36193326Sed 37206084Srdivackystatic __inline__ void __attribute__((__always_inline__, __nodebug__)) 38193326Sed_mm_empty(void) 39193326Sed{ 40193326Sed __builtin_ia32_emms(); 41193326Sed} 42193326Sed 43206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 44193326Sed_mm_cvtsi32_si64(int __i) 45193326Sed{ 46218893Sdim return (__m64)__builtin_ia32_vec_init_v2si(__i, 0); 47193326Sed} 48193326Sed 49206084Srdivackystatic __inline__ int __attribute__((__always_inline__, __nodebug__)) 50193326Sed_mm_cvtsi64_si32(__m64 __m) 51193326Sed{ 52218893Sdim return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0); 53193326Sed} 54193326Sed 55206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 56193326Sed_mm_cvtsi64_m64(long long __i) 57193326Sed{ 58193326Sed return (__m64)__i; 59193326Sed} 60193326Sed 61206084Srdivackystatic __inline__ long long __attribute__((__always_inline__, __nodebug__)) 62193326Sed_mm_cvtm64_si64(__m64 __m) 63193326Sed{ 64193326Sed return (long long)__m; 65193326Sed} 66193326Sed 67206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 68193326Sed_mm_packs_pi16(__m64 __m1, __m64 __m2) 69193326Sed{ 70193326Sed return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2); 71193326Sed} 72193326Sed 73206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 74193326Sed_mm_packs_pi32(__m64 __m1, __m64 __m2) 75193326Sed{ 76193326Sed return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2); 77193326Sed} 78193326Sed 79206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 80193326Sed_mm_packs_pu16(__m64 __m1, __m64 __m2) 81193326Sed{ 82193326Sed return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2); 83193326Sed} 84193326Sed 85206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 86193326Sed_mm_unpackhi_pi8(__m64 __m1, __m64 __m2) 87193326Sed{ 88218893Sdim return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2); 89193326Sed} 90193326Sed 91206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 92193326Sed_mm_unpackhi_pi16(__m64 __m1, __m64 __m2) 93193326Sed{ 94218893Sdim return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2); 95193326Sed} 96193326Sed 97206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 98193326Sed_mm_unpackhi_pi32(__m64 __m1, __m64 __m2) 99193326Sed{ 100218893Sdim return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2); 101193326Sed} 102193326Sed 103206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 104193326Sed_mm_unpacklo_pi8(__m64 __m1, __m64 __m2) 105193326Sed{ 106218893Sdim return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2); 107193326Sed} 108193326Sed 109206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 110193326Sed_mm_unpacklo_pi16(__m64 __m1, __m64 __m2) 111193326Sed{ 112218893Sdim return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2); 113193326Sed} 114193326Sed 115206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 116193326Sed_mm_unpacklo_pi32(__m64 __m1, __m64 __m2) 117193326Sed{ 118218893Sdim return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2); 119193326Sed} 120193326Sed 121206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 122193326Sed_mm_add_pi8(__m64 __m1, __m64 __m2) 123193326Sed{ 124218893Sdim return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2); 125193326Sed} 126193326Sed 127206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 128193326Sed_mm_add_pi16(__m64 __m1, __m64 __m2) 129193326Sed{ 130218893Sdim return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2); 131193326Sed} 132193326Sed 133206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 134193326Sed_mm_add_pi32(__m64 __m1, __m64 __m2) 135193326Sed{ 136218893Sdim return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2); 137193326Sed} 138193326Sed 139206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 140193326Sed_mm_adds_pi8(__m64 __m1, __m64 __m2) 141193326Sed{ 142193326Sed return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2); 143193326Sed} 144193326Sed 145206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 146193326Sed_mm_adds_pi16(__m64 __m1, __m64 __m2) 147193326Sed{ 148193326Sed return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2); 149193326Sed} 150193326Sed 151206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 152193326Sed_mm_adds_pu8(__m64 __m1, __m64 __m2) 153193326Sed{ 154193326Sed return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2); 155193326Sed} 156193326Sed 157206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 158193326Sed_mm_adds_pu16(__m64 __m1, __m64 __m2) 159193326Sed{ 160193326Sed return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2); 161193326Sed} 162193326Sed 163206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 164193326Sed_mm_sub_pi8(__m64 __m1, __m64 __m2) 165193326Sed{ 166218893Sdim return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2); 167193326Sed} 168193326Sed 169206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 170193326Sed_mm_sub_pi16(__m64 __m1, __m64 __m2) 171193326Sed{ 172218893Sdim return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2); 173193326Sed} 174193326Sed 175206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 176193326Sed_mm_sub_pi32(__m64 __m1, __m64 __m2) 177193326Sed{ 178218893Sdim return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2); 179193326Sed} 180193326Sed 181206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 182193326Sed_mm_subs_pi8(__m64 __m1, __m64 __m2) 183193326Sed{ 184193326Sed return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2); 185193326Sed} 186193326Sed 187206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 188193326Sed_mm_subs_pi16(__m64 __m1, __m64 __m2) 189193326Sed{ 190193326Sed return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2); 191193326Sed} 192193326Sed 193206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 194193326Sed_mm_subs_pu8(__m64 __m1, __m64 __m2) 195193326Sed{ 196193326Sed return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2); 197193326Sed} 198193326Sed 199206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 200193326Sed_mm_subs_pu16(__m64 __m1, __m64 __m2) 201193326Sed{ 202193326Sed return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2); 203193326Sed} 204193326Sed 205206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 206193326Sed_mm_madd_pi16(__m64 __m1, __m64 __m2) 207193326Sed{ 208193326Sed return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2); 209193326Sed} 210193326Sed 211206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 212193326Sed_mm_mulhi_pi16(__m64 __m1, __m64 __m2) 213193326Sed{ 214193326Sed return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2); 215193326Sed} 216193326Sed 217206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 218193326Sed_mm_mullo_pi16(__m64 __m1, __m64 __m2) 219193326Sed{ 220218893Sdim return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2); 221193326Sed} 222193326Sed 223206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 224193326Sed_mm_sll_pi16(__m64 __m, __m64 __count) 225193326Sed{ 226193326Sed return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count); 227193326Sed} 228193326Sed 229206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 230193326Sed_mm_slli_pi16(__m64 __m, int __count) 231193326Sed{ 232193326Sed return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count); 233193326Sed} 234193326Sed 235206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 236193326Sed_mm_sll_pi32(__m64 __m, __m64 __count) 237193326Sed{ 238193326Sed return (__m64)__builtin_ia32_pslld((__v2si)__m, __count); 239193326Sed} 240193326Sed 241206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 242193326Sed_mm_slli_pi32(__m64 __m, int __count) 243193326Sed{ 244193326Sed return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count); 245193326Sed} 246193326Sed 247206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 248193326Sed_mm_sll_si64(__m64 __m, __m64 __count) 249193326Sed{ 250218893Sdim return (__m64)__builtin_ia32_psllq(__m, __count); 251193326Sed} 252193326Sed 253206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 254193326Sed_mm_slli_si64(__m64 __m, int __count) 255193326Sed{ 256218893Sdim return (__m64)__builtin_ia32_psllqi(__m, __count); 257193326Sed} 258193326Sed 259206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 260193326Sed_mm_sra_pi16(__m64 __m, __m64 __count) 261193326Sed{ 262193326Sed return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count); 263193326Sed} 264193326Sed 265206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 266193326Sed_mm_srai_pi16(__m64 __m, int __count) 267193326Sed{ 268193326Sed return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count); 269193326Sed} 270193326Sed 271206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 272193326Sed_mm_sra_pi32(__m64 __m, __m64 __count) 273193326Sed{ 274193326Sed return (__m64)__builtin_ia32_psrad((__v2si)__m, __count); 275193326Sed} 276193326Sed 277206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 278193326Sed_mm_srai_pi32(__m64 __m, int __count) 279193326Sed{ 280193326Sed return (__m64)__builtin_ia32_psradi((__v2si)__m, __count); 281193326Sed} 282193326Sed 283206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 284193326Sed_mm_srl_pi16(__m64 __m, __m64 __count) 285193326Sed{ 286193326Sed return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count); 287193326Sed} 288193326Sed 289206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 290193326Sed_mm_srli_pi16(__m64 __m, int __count) 291193326Sed{ 292193326Sed return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count); 293193326Sed} 294193326Sed 295206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 296193326Sed_mm_srl_pi32(__m64 __m, __m64 __count) 297193326Sed{ 298193326Sed return (__m64)__builtin_ia32_psrld((__v2si)__m, __count); 299193326Sed} 300193326Sed 301206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 302193326Sed_mm_srli_pi32(__m64 __m, int __count) 303193326Sed{ 304193326Sed return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count); 305193326Sed} 306193326Sed 307206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 308193326Sed_mm_srl_si64(__m64 __m, __m64 __count) 309193326Sed{ 310193326Sed return (__m64)__builtin_ia32_psrlq(__m, __count); 311193326Sed} 312193326Sed 313206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 314193326Sed_mm_srli_si64(__m64 __m, int __count) 315193326Sed{ 316218893Sdim return (__m64)__builtin_ia32_psrlqi(__m, __count); 317193326Sed} 318193326Sed 319206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 320193326Sed_mm_and_si64(__m64 __m1, __m64 __m2) 321193326Sed{ 322218893Sdim return __builtin_ia32_pand(__m1, __m2); 323193326Sed} 324193326Sed 325206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 326193326Sed_mm_andnot_si64(__m64 __m1, __m64 __m2) 327193326Sed{ 328218893Sdim return __builtin_ia32_pandn(__m1, __m2); 329193326Sed} 330193326Sed 331206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 332193326Sed_mm_or_si64(__m64 __m1, __m64 __m2) 333193326Sed{ 334218893Sdim return __builtin_ia32_por(__m1, __m2); 335193326Sed} 336193326Sed 337206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 338193326Sed_mm_xor_si64(__m64 __m1, __m64 __m2) 339193326Sed{ 340218893Sdim return __builtin_ia32_pxor(__m1, __m2); 341193326Sed} 342193326Sed 343206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 344193326Sed_mm_cmpeq_pi8(__m64 __m1, __m64 __m2) 345193326Sed{ 346218893Sdim return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2); 347193326Sed} 348193326Sed 349206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 350193326Sed_mm_cmpeq_pi16(__m64 __m1, __m64 __m2) 351193326Sed{ 352218893Sdim return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2); 353193326Sed} 354193326Sed 355206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 356193326Sed_mm_cmpeq_pi32(__m64 __m1, __m64 __m2) 357193326Sed{ 358218893Sdim return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2); 359193326Sed} 360193326Sed 361206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 362193326Sed_mm_cmpgt_pi8(__m64 __m1, __m64 __m2) 363193326Sed{ 364218893Sdim return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2); 365193326Sed} 366193326Sed 367206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 368193326Sed_mm_cmpgt_pi16(__m64 __m1, __m64 __m2) 369193326Sed{ 370218893Sdim return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2); 371193326Sed} 372193326Sed 373206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 374193326Sed_mm_cmpgt_pi32(__m64 __m1, __m64 __m2) 375193326Sed{ 376218893Sdim return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2); 377193326Sed} 378193326Sed 379206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 380193326Sed_mm_setzero_si64(void) 381193326Sed{ 382193326Sed return (__m64){ 0LL }; 383193326Sed} 384193326Sed 385206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 386193326Sed_mm_set_pi32(int __i1, int __i0) 387193326Sed{ 388218893Sdim return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1); 389193326Sed} 390193326Sed 391206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 392193326Sed_mm_set_pi16(short __s3, short __s2, short __s1, short __s0) 393193326Sed{ 394218893Sdim return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3); 395193326Sed} 396193326Sed 397206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 398193326Sed_mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, 399193326Sed char __b1, char __b0) 400193326Sed{ 401218893Sdim return (__m64)__builtin_ia32_vec_init_v8qi(__b0, __b1, __b2, __b3, 402218893Sdim __b4, __b5, __b6, __b7); 403193326Sed} 404193326Sed 405206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 406193326Sed_mm_set1_pi32(int __i) 407193326Sed{ 408218893Sdim return _mm_set_pi32(__i, __i); 409193326Sed} 410193326Sed 411206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 412218893Sdim_mm_set1_pi16(short __w) 413193326Sed{ 414218893Sdim return _mm_set_pi16(__w, __w, __w, __w); 415193326Sed} 416193326Sed 417206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 418193326Sed_mm_set1_pi8(char __b) 419193326Sed{ 420218893Sdim return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b); 421193326Sed} 422193326Sed 423206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 424223017Sdim_mm_setr_pi32(int __i0, int __i1) 425193326Sed{ 426218893Sdim return _mm_set_pi32(__i1, __i0); 427193326Sed} 428193326Sed 429206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 430223017Sdim_mm_setr_pi16(short __w0, short __w1, short __w2, short __w3) 431193326Sed{ 432218893Sdim return _mm_set_pi16(__w3, __w2, __w1, __w0); 433193326Sed} 434193326Sed 435206084Srdivackystatic __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) 436223017Sdim_mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, 437223017Sdim char __b6, char __b7) 438193326Sed{ 439218893Sdim return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0); 440193326Sed} 441193326Sed 442212904Sdim 443212904Sdim/* Aliases for compatibility. */ 444212904Sdim#define _m_empty _mm_empty 445212904Sdim#define _m_from_int _mm_cvtsi32_si64 446212904Sdim#define _m_to_int _mm_cvtsi64_si32 447212904Sdim#define _m_packsswb _mm_packs_pi16 448212904Sdim#define _m_packssdw _mm_packs_pi32 449212904Sdim#define _m_packuswb _mm_packs_pu16 450212904Sdim#define _m_punpckhbw _mm_unpackhi_pi8 451212904Sdim#define _m_punpckhwd _mm_unpackhi_pi16 452212904Sdim#define _m_punpckhdq _mm_unpackhi_pi32 453212904Sdim#define _m_punpcklbw _mm_unpacklo_pi8 454212904Sdim#define _m_punpcklwd _mm_unpacklo_pi16 455212904Sdim#define _m_punpckldq _mm_unpacklo_pi32 456212904Sdim#define _m_paddb _mm_add_pi8 457212904Sdim#define _m_paddw _mm_add_pi16 458212904Sdim#define _m_paddd _mm_add_pi32 459212904Sdim#define _m_paddsb _mm_adds_pi8 460212904Sdim#define _m_paddsw _mm_adds_pi16 461212904Sdim#define _m_paddusb _mm_adds_pu8 462212904Sdim#define _m_paddusw _mm_adds_pu16 463212904Sdim#define _m_psubb _mm_sub_pi8 464212904Sdim#define _m_psubw _mm_sub_pi16 465212904Sdim#define _m_psubd _mm_sub_pi32 466212904Sdim#define _m_psubsb _mm_subs_pi8 467212904Sdim#define _m_psubsw _mm_subs_pi16 468212904Sdim#define _m_psubusb _mm_subs_pu8 469212904Sdim#define _m_psubusw _mm_subs_pu16 470212904Sdim#define _m_pmaddwd _mm_madd_pi16 471212904Sdim#define _m_pmulhw _mm_mulhi_pi16 472212904Sdim#define _m_pmullw _mm_mullo_pi16 473212904Sdim#define _m_psllw _mm_sll_pi16 474212904Sdim#define _m_psllwi _mm_slli_pi16 475212904Sdim#define _m_pslld _mm_sll_pi32 476212904Sdim#define _m_pslldi _mm_slli_pi32 477212904Sdim#define _m_psllq _mm_sll_si64 478212904Sdim#define _m_psllqi _mm_slli_si64 479212904Sdim#define _m_psraw _mm_sra_pi16 480212904Sdim#define _m_psrawi _mm_srai_pi16 481212904Sdim#define _m_psrad _mm_sra_pi32 482212904Sdim#define _m_psradi _mm_srai_pi32 483212904Sdim#define _m_psrlw _mm_srl_pi16 484212904Sdim#define _m_psrlwi _mm_srli_pi16 485212904Sdim#define _m_psrld _mm_srl_pi32 486212904Sdim#define _m_psrldi _mm_srli_pi32 487212904Sdim#define _m_psrlq _mm_srl_si64 488212904Sdim#define _m_psrlqi _mm_srli_si64 489212904Sdim#define _m_pand _mm_and_si64 490212904Sdim#define _m_pandn _mm_andnot_si64 491212904Sdim#define _m_por _mm_or_si64 492212904Sdim#define _m_pxor _mm_xor_si64 493212904Sdim#define _m_pcmpeqb _mm_cmpeq_pi8 494212904Sdim#define _m_pcmpeqw _mm_cmpeq_pi16 495212904Sdim#define _m_pcmpeqd _mm_cmpeq_pi32 496212904Sdim#define _m_pcmpgtb _mm_cmpgt_pi8 497212904Sdim#define _m_pcmpgtw _mm_cmpgt_pi16 498212904Sdim#define _m_pcmpgtd _mm_cmpgt_pi32 499212904Sdim 500193326Sed#endif /* __MMX__ */ 501193326Sed 502193326Sed#endif /* __MMINTRIN_H */ 503193326Sed 504