include/native/sseplus_native_SSE5.h

Go to the documentation of this file.
00001 //
00002 // Copyright (c) 2006-2008 Advanced Micro Devices, Inc. All Rights Reserved.
00003 // This software is subject to the Apache v2.0 License.
00004 //
00005 #ifndef __SSEPLUS_NATIVE_SSE5_H__
00006 #define __SSEPLUS_NATIVE_SSE5_H__
00007 
00008 #include "../SSEPlus_base.h"
00009 
00010 #include SSP_INCLUDE_FILE_SSE5
00011 #include SSP_INCLUDE_FILE_SSE4_1_SSE5
00012 
00018 //
00019 // Functions unique to SSE5
00020 //
00021 
00023 SSP_FORCEINLINE __m128i ssp_cmov_si128_SSE5(__m128i a, __m128i b, __m128i c)
00024 {
00025     return _mm_cmov_si128 (a, b, c);
00026 }
00027 
00029 SSP_FORCEINLINE __m128 ssp_comeq_ps_SSE5(__m128 a, __m128 b)
00030 {
00031     return _mm_comeq_ps (a, b);
00032 }
00034 SSP_FORCEINLINE __m128 ssp_comlt_ps_SSE5(__m128 a, __m128 b)
00035 {
00036     return _mm_comlt_ps (a, b);
00037 }
00039 SSP_FORCEINLINE __m128 ssp_comle_ps_SSE5(__m128 a, __m128 b)
00040 {
00041     return _mm_comle_ps (a, b);
00042 }
00044 SSP_FORCEINLINE __m128 ssp_comunord_ps_SSE5(__m128 a, __m128 b)
00045 {
00046     return _mm_comunord_ps (a, b);
00047 }
00049 SSP_FORCEINLINE __m128 ssp_comneq_ps_SSE5(__m128 a, __m128 b)
00050 {
00051     return _mm_comneq_ps (a, b);
00052 }
00054 SSP_FORCEINLINE __m128 ssp_comnlt_ps_SSE5(__m128 a, __m128 b)
00055 {
00056     return _mm_comnlt_ps (a, b);
00057 }
00059 SSP_FORCEINLINE __m128 ssp_comnle_ps_SSE5(__m128 a, __m128 b)
00060 {
00061     return _mm_comnle_ps (a, b);
00062 }
00064 SSP_FORCEINLINE __m128 ssp_comord_ps_SSE5(__m128 a, __m128 b)
00065 {
00066     return _mm_comord_ps (a, b);
00067 }
00069 SSP_FORCEINLINE __m128 ssp_comueq_ps_SSE5(__m128 a, __m128 b)
00070 {
00071     return _mm_comueq_ps (a, b);
00072 }
00074 SSP_FORCEINLINE __m128 ssp_comnge_ps_SSE5(__m128 a, __m128 b)
00075 {
00076     return _mm_comnge_ps (a, b);
00077 }
00079 SSP_FORCEINLINE __m128 ssp_comngt_ps_SSE5(__m128 a, __m128 b)
00080 {
00081     return _mm_comngt_ps (a, b);
00082 }
00084 SSP_FORCEINLINE __m128 ssp_comfalse_ps_SSE5(__m128 a, __m128 b)
00085 {
00086     return _mm_comfalse_ps (a, b);
00087 }
00089 SSP_FORCEINLINE __m128 ssp_comoneq_ps_SSE5(__m128 a, __m128 b)
00090 {
00091     return _mm_comoneq_ps (a, b);
00092 }
00094 SSP_FORCEINLINE __m128 ssp_comge_ps_SSE5(__m128 a, __m128 b)
00095 {
00096     return _mm_comge_ps (a, b);
00097 }
00099 SSP_FORCEINLINE __m128 ssp_comgt_ps_SSE5(__m128 a, __m128 b)
00100 {
00101     return _mm_comgt_ps (a, b);
00102 }
00104 SSP_FORCEINLINE __m128 ssp_comtrue_ps_SSE5(__m128 a, __m128 b)
00105 {
00106     return _mm_comtrue_ps (a, b);
00107 }
00108 
00110 SSP_FORCEINLINE __m128d ssp_comeq_pd_SSE5(__m128d a, __m128d b)
00111 {
00112     return _mm_comeq_pd (a, b);
00113 }
00115 SSP_FORCEINLINE __m128d ssp_comlt_pd_SSE5(__m128d a, __m128d b)
00116 {
00117     return _mm_comlt_pd (a, b);
00118 }
00120 SSP_FORCEINLINE __m128d ssp_comle_pd_SSE5(__m128d a, __m128d b)
00121 {
00122     return _mm_comle_pd (a, b);
00123 }
00125 SSP_FORCEINLINE __m128d ssp_comunord_pd_SSE5(__m128d a, __m128d b)
00126 {
00127     return _mm_comunord_pd (a, b);
00128 }
00130 SSP_FORCEINLINE __m128d ssp_comneq_pd_SSE5(__m128d a, __m128d b)
00131 {
00132     return _mm_comneq_pd (a, b);
00133 }
00135 SSP_FORCEINLINE __m128d ssp_comnlt_pd_SSE5(__m128d a, __m128d b)
00136 {
00137     return _mm_comnlt_pd (a, b);
00138 }
00140 SSP_FORCEINLINE __m128d ssp_comnle_pd_SSE5(__m128d a, __m128d b)
00141 {
00142     return _mm_comnle_pd (a, b);
00143 }
00145 SSP_FORCEINLINE __m128d ssp_comord_pd_SSE5(__m128d a, __m128d b)
00146 {
00147     return _mm_comord_pd (a, b);
00148 }
00150 SSP_FORCEINLINE __m128d ssp_comueq_pd_SSE5(__m128d a, __m128d b)
00151 {
00152     return _mm_comueq_pd (a, b);
00153 }
00155 SSP_FORCEINLINE __m128d ssp_comnge_pd_SSE5(__m128d a, __m128d b)
00156 {
00157     return _mm_comnge_pd (a, b);
00158 }
00160 SSP_FORCEINLINE __m128d ssp_comngt_pd_SSE5(__m128d a, __m128d b)
00161 {
00162     return _mm_comngt_pd (a, b);
00163 }
00165 SSP_FORCEINLINE __m128d ssp_comfalse_pd_SSE5(__m128d a, __m128d b)
00166 {
00167     return _mm_comfalse_pd (a, b);
00168 }
00170 SSP_FORCEINLINE __m128d ssp_comoneq_pd_SSE5(__m128d a, __m128d b)
00171 {
00172     return _mm_comoneq_pd (a, b);
00173 }
00175 SSP_FORCEINLINE __m128d ssp_comge_pd_SSE5(__m128d a, __m128d b)
00176 {
00177     return _mm_comge_pd (a, b);
00178 }
00180 SSP_FORCEINLINE __m128d ssp_comgt_pd_SSE5(__m128d a, __m128d b)
00181 {
00182     return _mm_comgt_pd (a, b);
00183 }
00185 SSP_FORCEINLINE __m128d ssp_comtrue_pd_SSE5(__m128d a, __m128d b)
00186 {
00187     return _mm_comtrue_pd (a, b);
00188 }
00190 SSP_FORCEINLINE __m128 ssp_comeq_ss_SSE5(__m128 a, __m128 b)
00191 {
00192     return _mm_comeq_ss (a, b);
00193 }
00195 SSP_FORCEINLINE __m128 ssp_comlt_ss_SSE5(__m128 a, __m128 b)
00196 {
00197     return _mm_comlt_ss (a, b);
00198 }
00200 SSP_FORCEINLINE __m128 ssp_comle_ss_SSE5(__m128 a, __m128 b)
00201 {
00202     return _mm_comle_ss (a, b);
00203 }
00205 SSP_FORCEINLINE __m128 ssp_comunord_ss_SSE5(__m128 a, __m128 b)
00206 {
00207     return _mm_comunord_ss (a, b);
00208 }
00210 SSP_FORCEINLINE __m128 ssp_comneq_ss_SSE5(__m128 a, __m128 b)
00211 {
00212     return _mm_comneq_ss (a, b);
00213 }
00215 SSP_FORCEINLINE __m128 ssp_comnlt_ss_SSE5(__m128 a, __m128 b)
00216 {
00217     return _mm_comnlt_ss (a, b);
00218 }
00220 SSP_FORCEINLINE __m128 ssp_comnle_ss_SSE5(__m128 a, __m128 b)
00221 {
00222     return _mm_comnle_ss (a, b);
00223 }
00225 SSP_FORCEINLINE __m128 ssp_comord_ss_SSE5(__m128 a, __m128 b)
00226 {
00227     return _mm_comord_ss (a, b);
00228 }
00230 SSP_FORCEINLINE __m128 ssp_comueq_ss_SSE5(__m128 a, __m128 b)
00231 {
00232     return _mm_comueq_ss (a, b);
00233 }
00235 SSP_FORCEINLINE __m128 ssp_comnge_ss_SSE5(__m128 a, __m128 b)
00236 {
00237     return _mm_comnge_ss (a, b);
00238 }
00240 SSP_FORCEINLINE __m128 ssp_comngt_ss_SSE5(__m128 a, __m128 b)
00241 {
00242     return _mm_comngt_ss (a, b);
00243 }
00245 SSP_FORCEINLINE __m128 ssp_comfalse_ss_SSE5(__m128 a, __m128 b)
00246 {
00247     return _mm_comfalse_ss (a, b);
00248 }
00250 SSP_FORCEINLINE __m128 ssp_comoneq_ss_SSE5(__m128 a, __m128 b)
00251 {
00252     return _mm_comoneq_ss (a, b);
00253 }
00255 SSP_FORCEINLINE __m128 ssp_comge_ss_SSE5(__m128 a, __m128 b)
00256 {
00257     return _mm_comge_ss (a, b);
00258 }
00260 SSP_FORCEINLINE __m128 ssp_comgt_ss_SSE5(__m128 a, __m128 b)
00261 {
00262     return _mm_comgt_ss (a, b);
00263 }
00265 SSP_FORCEINLINE __m128 ssp_comtrue_ss_SSE5(__m128 a, __m128 b)
00266 {
00267     return _mm_comtrue_ss (a, b);
00268 }
00270 SSP_FORCEINLINE __m128d ssp_comeq_sd_SSE5(__m128d a, __m128d b)
00271 {
00272     return _mm_comeq_sd (a, b);
00273 }
00275 SSP_FORCEINLINE __m128d ssp_comlt_sd_SSE5(__m128d a, __m128d b)
00276 {
00277     return _mm_comlt_sd (a, b);
00278 }
00280 SSP_FORCEINLINE __m128d ssp_comle_sd_SSE5(__m128d a, __m128d b)
00281 {
00282     return _mm_comle_sd (a, b);
00283 }
00285 SSP_FORCEINLINE __m128d ssp_comunord_sd_SSE5(__m128d a, __m128d b)
00286 {
00287     return _mm_comunord_sd (a, b);
00288 }
00290 SSP_FORCEINLINE __m128d ssp_comneq_sd_SSE5(__m128d a, __m128d b)
00291 {
00292     return _mm_comneq_sd (a, b);
00293 }
00295 SSP_FORCEINLINE __m128d ssp_comnlt_sd_SSE5(__m128d a, __m128d b)
00296 {
00297     return _mm_comnlt_sd (a, b);
00298 }
00300 SSP_FORCEINLINE __m128d ssp_comnle_sd_SSE5(__m128d a, __m128d b)
00301 {
00302     return _mm_comnle_sd (a, b);
00303 }
00305 SSP_FORCEINLINE __m128d ssp_comord_sd_SSE5(__m128d a, __m128d b)
00306 {
00307     return _mm_comord_sd (a, b);
00308 }
00310 SSP_FORCEINLINE __m128d ssp_comueq_sd_SSE5(__m128d a, __m128d b)
00311 {
00312     return _mm_comueq_sd (a, b);
00313 }
00315 SSP_FORCEINLINE __m128d ssp_comnge_sd_SSE5(__m128d a, __m128d b)
00316 {
00317     return _mm_comnge_sd (a, b);
00318 }
00320 SSP_FORCEINLINE __m128d ssp_comngt_sd_SSE5(__m128d a, __m128d b)
00321 {
00322     return _mm_comngt_sd (a, b);
00323 }
00325 SSP_FORCEINLINE __m128d ssp_comfalse_sd_SSE5(__m128d a, __m128d b)
00326 {
00327     return _mm_comfalse_sd (a, b);
00328 }
00330 SSP_FORCEINLINE __m128d ssp_comoneq_sd_SSE5(__m128d a, __m128d b)
00331 {
00332     return _mm_comoneq_sd (a, b);
00333 }
00335 SSP_FORCEINLINE __m128d ssp_comge_sd_SSE5(__m128d a, __m128d b)
00336 {
00337     return _mm_comge_sd (a, b);
00338 }
00340 SSP_FORCEINLINE __m128d ssp_comgt_sd_SSE5(__m128d a, __m128d b)
00341 {
00342     return _mm_comgt_sd (a, b);
00343 }
00345 SSP_FORCEINLINE __m128d ssp_comtrue_sd_SSE5(__m128d a, __m128d b)
00346 {
00347     return _mm_comtrue_sd (a, b);
00348 }
00350 SSP_FORCEINLINE __m128i ssp_comlt_epu8_SSE5(__m128i a, __m128i b)
00351 {
00352     return _mm_comlt_epu8 (a, b);
00353 }
00355 SSP_FORCEINLINE __m128i ssp_comle_epu8_SSE5(__m128i a, __m128i b)
00356 {
00357     return _mm_comle_epu8 (a, b);
00358 }
00360 SSP_FORCEINLINE __m128i ssp_comgt_epu8_SSE5(__m128i a, __m128i b)
00361 {
00362     return _mm_comgt_epu8 (a, b);
00363 }
00365 SSP_FORCEINLINE __m128i ssp_comge_epu8_SSE5(__m128i a, __m128i b)
00366 {
00367     return _mm_comge_epu8 (a, b);
00368 }
00370 SSP_FORCEINLINE __m128i ssp_comeq_epu8_SSE5(__m128i a, __m128i b)
00371 {
00372     return _mm_comeq_epu8 (a, b);
00373 }
00375 SSP_FORCEINLINE __m128i ssp_comneq_epu8_SSE5(__m128i a, __m128i b)
00376 {
00377     return _mm_comneq_epu8 (a, b);
00378 }
00380 SSP_FORCEINLINE __m128i ssp_comfalse_epu8_SSE5(__m128i a, __m128i b)
00381 {
00382     return _mm_comfalse_epu8 (a, b);
00383 }
00385 SSP_FORCEINLINE __m128i ssp_comtrue_epu8_SSE5(__m128i a, __m128i b)
00386 {
00387     return _mm_comtrue_epu8 (a, b);
00388 }
00390 SSP_FORCEINLINE __m128i ssp_comlt_epu16_SSE5(__m128i a, __m128i b)
00391 {
00392     return _mm_comlt_epu16 (a, b);
00393 }
00395 SSP_FORCEINLINE __m128i ssp_comle_epu16_SSE5(__m128i a, __m128i b)
00396 {
00397     return _mm_comle_epu16 (a, b);
00398 }
00400 SSP_FORCEINLINE __m128i ssp_comgt_epu16_SSE5(__m128i a, __m128i b)
00401 {
00402     return _mm_comgt_epu16 (a, b);
00403 }
00405 SSP_FORCEINLINE __m128i ssp_comge_epu16_SSE5(__m128i a, __m128i b)
00406 {
00407     return _mm_comge_epu16 (a, b);
00408 }
00410 SSP_FORCEINLINE __m128i ssp_comeq_epu16_SSE5(__m128i a, __m128i b)
00411 {
00412     return _mm_comeq_epu16 (a, b);
00413 }
00415 SSP_FORCEINLINE __m128i ssp_comneq_epu16_SSE5(__m128i a, __m128i b)
00416 {
00417     return _mm_comneq_epu16 (a, b);
00418 }
00420 SSP_FORCEINLINE __m128i ssp_comfalse_epu16_SSE5(__m128i a, __m128i b)
00421 {
00422     return _mm_comfalse_epu16 (a, b);
00423 }
00425 SSP_FORCEINLINE __m128i ssp_comtrue_epu16_SSE5(__m128i a, __m128i b)
00426 {
00427     return _mm_comtrue_epu16 (a, b);
00428 }
00430 SSP_FORCEINLINE __m128i ssp_comlt_epu32_SSE5(__m128i a, __m128i b)
00431 {
00432     return _mm_comlt_epu32 (a, b);
00433 }
00435 SSP_FORCEINLINE __m128i ssp_comle_epu32_SSE5(__m128i a, __m128i b)
00436 {
00437     return _mm_comle_epu32 (a, b);
00438 }
00440 SSP_FORCEINLINE __m128i ssp_comgt_epu32_SSE5(__m128i a, __m128i b)
00441 {
00442     return _mm_comgt_epu32 (a, b);
00443 }
00445 SSP_FORCEINLINE __m128i ssp_comge_epu32_SSE5(__m128i a, __m128i b)
00446 {
00447     return _mm_comge_epu32 (a, b);
00448 }
00450 SSP_FORCEINLINE __m128i ssp_comeq_epu32_SSE5(__m128i a, __m128i b)
00451 {
00452     return _mm_comeq_epu32 (a, b);
00453 }
00455 SSP_FORCEINLINE __m128i ssp_comneq_epu32_SSE5(__m128i a, __m128i b)
00456 {
00457     return _mm_comneq_epu32 (a, b);
00458 }
00460 SSP_FORCEINLINE __m128i ssp_comfalse_epu32_SSE5(__m128i a, __m128i b)
00461 {
00462     return _mm_comfalse_epu32 (a, b);
00463 }
00465 SSP_FORCEINLINE __m128i ssp_comtrue_epu32_SSE5(__m128i a, __m128i b)
00466 {
00467     return _mm_comtrue_epu32 (a, b);
00468 }
00470 SSP_FORCEINLINE __m128i ssp_comlt_epu64_SSE5(__m128i a, __m128i b)
00471 {
00472     return _mm_comlt_epu64 (a, b);
00473 }
00475 SSP_FORCEINLINE __m128i ssp_comle_epu64_SSE5(__m128i a, __m128i b)
00476 {
00477     return _mm_comle_epu64 (a, b);
00478 }
00480 SSP_FORCEINLINE __m128i ssp_comgt_epu64_SSE5(__m128i a, __m128i b)
00481 {
00482     return _mm_comgt_epu64 (a, b);
00483 }
00485 SSP_FORCEINLINE __m128i ssp_comge_epu64_SSE5(__m128i a, __m128i b)
00486 {
00487     return _mm_comge_epu64 (a, b);
00488 }
00490 SSP_FORCEINLINE __m128i ssp_comeq_epu64_SSE5(__m128i a, __m128i b)
00491 {
00492     return _mm_comeq_epu64 (a, b);
00493 }
00495 SSP_FORCEINLINE __m128i ssp_comneq_epu64_SSE5(__m128i a, __m128i b)
00496 {
00497     return _mm_comneq_epu64 (a, b);
00498 }
00500 SSP_FORCEINLINE __m128i ssp_comfalse_epu64_SSE5(__m128i a, __m128i b)
00501 {
00502     return _mm_comfalse_epu64 (a, b);
00503 }
00505 SSP_FORCEINLINE __m128i ssp_comtrue_epu64_SSE5(__m128i a, __m128i b)
00506 {
00507     return _mm_comtrue_epu64 (a, b);
00508 }
00510 SSP_FORCEINLINE __m128i ssp_comlt_epi8_SSE5(__m128i a, __m128i b)
00511 {
00512     return _mm_comlt_epi8 (a, b);
00513 }
00515 SSP_FORCEINLINE __m128i ssp_comle_epi8_SSE5(__m128i a, __m128i b)
00516 {
00517     return _mm_comle_epi8 (a, b);
00518 }
00520 SSP_FORCEINLINE __m128i ssp_comgt_epi8_SSE5(__m128i a, __m128i b)
00521 {
00522     return _mm_comgt_epi8 (a, b);
00523 }
00525 SSP_FORCEINLINE __m128i ssp_comge_epi8_SSE5(__m128i a, __m128i b)
00526 {
00527     return _mm_comge_epi8 (a, b);
00528 }
00530 SSP_FORCEINLINE __m128i ssp_comeq_epi8_SSE5(__m128i a, __m128i b)
00531 {
00532     return _mm_comeq_epi8 (a, b);
00533 }
00535 SSP_FORCEINLINE __m128i ssp_comneq_epi8_SSE5(__m128i a, __m128i b)
00536 {
00537     return _mm_comneq_epi8 (a, b);
00538 }
00540 SSP_FORCEINLINE __m128i ssp_comfalse_epi8_SSE5(__m128i a, __m128i b)
00541 {
00542     return _mm_comfalse_epi8 (a, b);
00543 }
00545 SSP_FORCEINLINE __m128i ssp_comtrue_epi8_SSE5(__m128i a, __m128i b)
00546 {
00547     return _mm_comtrue_epi8 (a, b);
00548 }
00550 SSP_FORCEINLINE __m128i ssp_comlt_epi16_SSE5(__m128i a, __m128i b)
00551 {
00552     return _mm_comlt_epi16 (a, b);
00553 }
00555 SSP_FORCEINLINE __m128i ssp_comle_epi16_SSE5(__m128i a, __m128i b)
00556 {
00557     return _mm_comle_epi16 (a, b);
00558 }
00560 SSP_FORCEINLINE __m128i ssp_comgt_epi16_SSE5(__m128i a, __m128i b)
00561 {
00562     return _mm_comgt_epi16 (a, b);
00563 }
00565 SSP_FORCEINLINE __m128i ssp_comge_epi16_SSE5(__m128i a, __m128i b)
00566 {
00567     return _mm_comge_epi16 (a, b);
00568 }
00570 SSP_FORCEINLINE __m128i ssp_comeq_epi16_SSE5(__m128i a, __m128i b)
00571 {
00572     return _mm_comeq_epi16 (a, b);
00573 }
00575 SSP_FORCEINLINE __m128i ssp_comneq_epi16_SSE5(__m128i a, __m128i b)
00576 {
00577     return _mm_comneq_epi16 (a, b);
00578 }
00580 SSP_FORCEINLINE __m128i ssp_comfalse_epi16_SSE5(__m128i a, __m128i b)
00581 {
00582     return _mm_comfalse_epi16 (a, b);
00583 }
00585 SSP_FORCEINLINE __m128i ssp_comtrue_epi16_SSE5(__m128i a, __m128i b)
00586 {
00587     return _mm_comtrue_epi16 (a, b);
00588 }
00590 SSP_FORCEINLINE __m128i ssp_comlt_epi32_SSE5(__m128i a, __m128i b)
00591 {
00592     return _mm_comlt_epi32 (a, b);
00593 }
00595 SSP_FORCEINLINE __m128i ssp_comle_epi32_SSE5(__m128i a, __m128i b)
00596 {
00597     return _mm_comle_epi32 (a, b);
00598 }
00600 SSP_FORCEINLINE __m128i ssp_comgt_epi32_SSE5(__m128i a, __m128i b)
00601 {
00602     return _mm_comgt_epi32 (a, b);
00603 }
00605 SSP_FORCEINLINE __m128i ssp_comge_epi32_SSE5(__m128i a, __m128i b)
00606 {
00607     return _mm_comge_epi32 (a, b);
00608 }
00610 SSP_FORCEINLINE __m128i ssp_comeq_epi32_SSE5(__m128i a, __m128i b)
00611 {
00612     return _mm_comeq_epi32 (a, b);
00613 }
00615 SSP_FORCEINLINE __m128i ssp_comneq_epi32_SSE5(__m128i a, __m128i b)
00616 {
00617     return _mm_comneq_epi32 (a, b);
00618 }
00620 SSP_FORCEINLINE __m128i ssp_comfalse_epi32_SSE5(__m128i a, __m128i b)
00621 {
00622     return _mm_comfalse_epi32 (a, b);
00623 }
00625 SSP_FORCEINLINE __m128i ssp_comtrue_epi32_SSE5(__m128i a, __m128i b)
00626 {
00627     return _mm_comtrue_epi32 (a, b);
00628 }
00630 SSP_FORCEINLINE __m128i ssp_comlt_epi64_SSE5(__m128i a, __m128i b)
00631 {
00632     return _mm_comlt_epi64 (a, b);
00633 }
00635 SSP_FORCEINLINE __m128i ssp_comle_epi64_SSE5(__m128i a, __m128i b)
00636 {
00637     return _mm_comle_epi64 (a, b);
00638 }
00640 SSP_FORCEINLINE __m128i ssp_comgt_epi64_SSE5(__m128i a, __m128i b)
00641 {
00642     return _mm_comgt_epi64 (a, b);
00643 }
00645 SSP_FORCEINLINE __m128i ssp_comge_epi64_SSE5(__m128i a, __m128i b)
00646 {
00647     return _mm_comge_epi64 (a, b);
00648 }
00650 SSP_FORCEINLINE __m128i ssp_comeq_epi64_SSE5(__m128i a, __m128i b)
00651 {
00652     return _mm_comeq_epi64 (a, b);
00653 }
00655 SSP_FORCEINLINE __m128i ssp_comneq_epi64_SSE5(__m128i a, __m128i b)
00656 {
00657     return _mm_comneq_epi64 (a, b);
00658 }
00660 SSP_FORCEINLINE __m128i ssp_comfalse_epi64_SSE5(__m128i a, __m128i b)
00661 {
00662     return _mm_comfalse_epi64 (a, b);
00663 }
00665 SSP_FORCEINLINE __m128i ssp_comtrue_epi64_SSE5(__m128i a, __m128i b)
00666 {
00667     return _mm_comtrue_epi64 (a, b);
00668 }
00669 
00671 SSP_FORCEINLINE __m128 ssp_frcz_ps_SSE5(__m128 a)
00672 {
00673     return _mm_frcz_ps (a);
00674 }
00676 SSP_FORCEINLINE __m128d ssp_frcz_pd_SSE5(__m128d a)
00677 {
00678     return _mm_frcz_pd (a);
00679 }
00680 
00682 SSP_FORCEINLINE __m128 ssp_frcz_ss_SSE5(__m128 a, __m128 b)
00683 {
00684     return _mm_frcz_ss (a, b);
00685 }
00686 
00688 SSP_FORCEINLINE __m128d ssp_frcz_sd_SSE5(__m128d a, __m128d b)
00689 {
00690     return _mm_frcz_sd (a, b);
00691 }
00693 SSP_FORCEINLINE __m128i ssp_haddw_epi8_SSE5(__m128i a)
00694 {
00695     return _mm_haddw_epi8 (a);
00696 }
00698 SSP_FORCEINLINE __m128i ssp_haddd_epi8_SSE5(__m128i a)
00699 {
00700     return _mm_haddd_epi8 (a);
00701 }
00703 SSP_FORCEINLINE __m128i ssp_haddq_epi8_SSE5(__m128i a)
00704 {
00705     return _mm_haddq_epi8 (a);
00706 }
00708 SSP_FORCEINLINE __m128i ssp_haddd_epi16_SSE5(__m128i a)
00709 {
00710     return _mm_haddd_epi16 (a);
00711 }
00713 SSP_FORCEINLINE __m128i ssp_haddq_epi16_SSE5(__m128i a)
00714 {
00715     return _mm_haddq_epi16 (a);
00716 }
00718 SSP_FORCEINLINE __m128i ssp_haddq_epi32_SSE5(__m128i a)
00719 {
00720     return _mm_haddq_epi32 (a);
00721 }
00723 SSP_FORCEINLINE __m128i ssp_haddw_epu8_SSE5(__m128i a)
00724 {
00725     return _mm_haddw_epu8 (a);
00726 }
00728 SSP_FORCEINLINE __m128i ssp_haddd_epu8_SSE5(__m128i a)
00729 {
00730     return _mm_haddd_epu8 (a);
00731 }
00733 SSP_FORCEINLINE __m128i ssp_haddq_epu8_SSE5(__m128i a)
00734 {
00735     return _mm_haddq_epu8 (a);
00736 }
00738 SSP_FORCEINLINE __m128i ssp_haddd_epu16_SSE5(__m128i a)
00739 {
00740     return _mm_haddd_epu16 (a);
00741 }
00743 SSP_FORCEINLINE __m128i ssp_haddq_epu16_SSE5(__m128i a)
00744 {
00745     return _mm_haddq_epu16 (a);
00746 }
00748 SSP_FORCEINLINE __m128i ssp_haddq_epu32_SSE5(__m128i a)
00749 {
00750     return _mm_haddq_epu32 (a);
00751 }
00753 SSP_FORCEINLINE __m128i ssp_hsubw_epi8_SSE5(__m128i a)
00754 {
00755     return _mm_hsubw_epi8 (a);
00756 }
00758 SSP_FORCEINLINE __m128i ssp_hsubd_epi16_SSE5(__m128i a)
00759 {
00760     return _mm_hsubd_epi16 (a);
00761 }
00763 SSP_FORCEINLINE __m128i ssp_hsubq_epi32_SSE5(__m128i a)
00764 {
00765     return _mm_hsubq_epi32 (a);
00766 }
00767 
00769 SSP_FORCEINLINE __m128i ssp_macc_epi16_SSE5(__m128i a, __m128i b, __m128i c)
00770 {
00771     return _mm_macc_epi16 (a, b, c);
00772 }
00774 SSP_FORCEINLINE __m128i ssp_macc_epi32_SSE5(__m128i a, __m128i b, __m128i c)
00775 {
00776     return _mm_macc_epi32 (a, b, c);
00777 }
00779 SSP_FORCEINLINE __m128d ssp_macc_pd_SSE5(__m128d a, __m128d b, __m128d c)
00780 {
00781     return _mm_macc_pd(a, b, c);
00782 }
00784 SSP_FORCEINLINE __m128 ssp_macc_ps_SSE5(__m128 a, __m128 b, __m128 c)
00785 {
00786     return _mm_macc_ps( a, b, c);
00787 }
00789 SSP_FORCEINLINE __m128d ssp_macc_sd_SSE5(__m128d a, __m128d b, __m128d c)
00790 {
00791     return _mm_macc_sd (a, b, c);
00792 }
00794 SSP_FORCEINLINE __m128 ssp_macc_ss_SSE5(__m128 a, __m128 b, __m128 c)
00795 {
00796     return _mm_macc_ss(a, b, c);
00797 }
00798 
00800 SSP_FORCEINLINE __m128i ssp_maccd_epi16_SSE5(__m128i a, __m128i b, __m128i c)
00801 {
00802     return _mm_maccd_epi16 (a, b, c);
00803 }
00804 
00806 SSP_FORCEINLINE __m128i ssp_maccs_epi16_SSE5(__m128i a, __m128i b, __m128i c)
00807 {
00808     return _mm_maccs_epi16 (a,b, c);
00809 }
00811 SSP_FORCEINLINE __m128i ssp_maccs_epi32_SSE5(__m128i a, __m128i b, __m128i c)
00812 {
00813     return _mm_maccs_epi32 (a, b, c);
00814 }
00816 SSP_FORCEINLINE __m128i ssp_maccsd_epi16_SSE5(__m128i a, __m128i b, __m128i c)
00817 {
00818     return _mm_maccsd_epi16 (a, b, c);
00819 }
00821 SSP_FORCEINLINE __m128i ssp_maccslo_epi32_SSE5(__m128i a, __m128i b, __m128i c)
00822 {
00823     return _mm_maccslo_epi32 (a, b, c);
00824 }
00826 SSP_FORCEINLINE __m128i ssp_macclo_epi32_SSE5(__m128i a, __m128i b, __m128i c)
00827 {
00828     return _mm_macclo_epi32 (a, b, c);
00829 }
00831 SSP_FORCEINLINE __m128i ssp_maccshi_epi32_SSE5(__m128i a, __m128i b, __m128i c)
00832 {
00833     return _mm_maccshi_epi32 (a, b, c);
00834 }
00836 SSP_FORCEINLINE __m128i ssp_macchi_epi32_SSE5(__m128i a, __m128i b, __m128i c)
00837 {
00838     return _mm_macchi_epi32 (a, b, c);
00839 }
00840 
00842 SSP_FORCEINLINE __m128i ssp_maddsd_epi16_SSE5(__m128i a, __m128i b, __m128i c)
00843 {
00844     return _mm_maddsd_epi16 (a,b,c);
00845 }
00847 SSP_FORCEINLINE __m128i ssp_maddd_epi16_SSE5(__m128i a, __m128i b, __m128i c)
00848 {
00849     return _mm_maddd_epi16 (a,b,c);
00850 }
00851 
00853 SSP_FORCEINLINE __m128d ssp_msub_pd_SSE5             (__m128d a, __m128d b, __m128d c)
00854 {
00855     return _mm_msub_pd (a, b, c);
00856 }
00858 SSP_FORCEINLINE __m128 ssp_msub_ps_SSE5      (__m128 a, __m128 b, __m128 c)
00859 {
00860     return _mm_msub_ps (a, b, c);
00861 }
00863 SSP_FORCEINLINE __m128d ssp_msub_sd_SSE5             (__m128d a, __m128d b, __m128d c)
00864 {
00865     return _mm_msub_sd (a, b, c);
00866 }
00868 SSP_FORCEINLINE __m128 ssp_msub_ss_SSE5      (__m128 a, __m128 b, __m128 c)
00869 {
00870     return _mm_msub_ss (a, b, c);
00871 }
00872 
00874 SSP_FORCEINLINE __m128d ssp_nmacc_pd_SSE5(__m128d a, __m128d b, __m128d c)
00875 {
00876     return _mm_nmacc_pd (a, b, c);
00877 }
00879 SSP_FORCEINLINE __m128 ssp_nmacc_ps_SSE5(__m128 a, __m128 b, __m128 c)
00880 {
00881     return _mm_nmacc_ps (a, b, c);
00882 }
00884 SSP_FORCEINLINE __m128d ssp_nmacc_sd_SSE5(__m128d a, __m128d b, __m128d c)
00885 {
00886     return _mm_nmacc_sd (a, b, c);
00887 }
00889 SSP_FORCEINLINE __m128 ssp_nmacc_ss_SSE5(__m128 a, __m128 b, __m128 c)
00890 {
00891     return _mm_nmacc_ss (a, b, c);
00892 }
00894 SSP_FORCEINLINE __m128d ssp_nmsub_pd_SSE5(__m128d a, __m128d b, __m128d c)
00895 {
00896     return _mm_nmsub_pd (a, b, c);
00897 }
00899 SSP_FORCEINLINE __m128 ssp_nmsub_ps_SSE5(__m128 a, __m128 b, __m128 c)
00900 {
00901     return _mm_nmsub_ps (a, b, c);
00902 }
00904 SSP_FORCEINLINE __m128d ssp_nmsub_sd_SSE5(__m128d a, __m128d b, __m128d c)
00905 {
00906     return _mm_nmsub_sd (a, b, c);
00907 }
00909 SSP_FORCEINLINE __m128 ssp_nmsub_ss_SSE5(__m128 a, __m128 b, __m128 c)
00910 {
00911     return _mm_nmsub_ss (a, b, c);
00912 }
00913 
00915 SSP_FORCEINLINE __m128i ssp_perm_epi8_SSE5(__m128i a, __m128i b, __m128i c)
00916 {
00917     return _mm_perm_epi8 (a, b, c);
00918 }
00920 SSP_FORCEINLINE __m128 ssp_perm_ps_SSE5(__m128 a, __m128 b, __m128i c)
00921 {
00922     return _mm_perm_ps (a, b, c);
00923 }
00925 SSP_FORCEINLINE __m128d ssp_perm_pd_SSE5(__m128d a, __m128d b, __m128i c)
00926 {
00927     return _mm_perm_pd (a, b, c);
00928 }
00929 
00931 SSP_FORCEINLINE __m128i ssp_rot_epi8_SSE5(__m128i a, __m128i b  )
00932 {
00933     return _mm_rot_epi8 (a, b);
00934 }
00936 SSP_FORCEINLINE __m128i ssp_rot_epi16_SSE5(__m128i a, __m128i b  )
00937 {
00938     return _mm_rot_epi16 (a, b);
00939 }
00941 SSP_FORCEINLINE __m128i ssp_rot_epi32_SSE5(__m128i a, __m128i b  )
00942 {
00943     return _mm_rot_epi32 (a, b);
00944 }
00946 SSP_FORCEINLINE __m128i ssp_rot_epi64_SSE5(__m128i a, __m128i b  )
00947 {
00948     return _mm_rot_epi64 (a, b);
00949 }
00951 SSP_FORCEINLINE __m128i ssp_roti_epi8_SSE5(__m128i a, const int b)
00952 {
00953     return _mm_roti_epi8 (a, b);
00954 }
00956 SSP_FORCEINLINE __m128i ssp_roti_epi16_SSE5(__m128i a, const int b)
00957 {
00958     return _mm_roti_epi16 (a, b);
00959 }
00961 SSP_FORCEINLINE __m128i ssp_roti_epi32_SSE5(__m128i a, const int b)
00962 {
00963     return _mm_roti_epi32 (a, b);
00964 }
00966 SSP_FORCEINLINE __m128i ssp_roti_epi64_SSE5(__m128i a, const int b)
00967 {
00968     return _mm_roti_epi64 (a, b);
00969 }
00970 
00972 SSP_FORCEINLINE __m128i ssp_shl_epi8_SSE5(__m128i a, __m128i b)
00973 {
00974     return _mm_shl_epi8 (a, b);
00975 }
00977 SSP_FORCEINLINE __m128i ssp_shl_epi16_SSE5(__m128i a, __m128i b)
00978 {
00979     return _mm_shl_epi16 (a, b);
00980 }
00982 SSP_FORCEINLINE __m128i ssp_shl_epi32_SSE5(__m128i a, __m128i b)
00983 {
00984     return _mm_shl_epi32 (a, b);
00985 }
00987 SSP_FORCEINLINE __m128i ssp_shl_epi64_SSE5(__m128i a, __m128i b)
00988 {
00989     return _mm_shl_epi64 (a, b);
00990 }
00992 SSP_FORCEINLINE __m128i ssp_sha_epi8_SSE5(__m128i a, __m128i b)
00993 {
00994     return _mm_sha_epi8 (a, b);
00995 }
00997 SSP_FORCEINLINE __m128i ssp_sha_epi16_SSE5(__m128i a, __m128i b)
00998 {
00999     return _mm_sha_epi16 (a, b);
01000 }
01002 SSP_FORCEINLINE __m128i ssp_sha_epi32_SSE5(__m128i a, __m128i b)
01003 {
01004     return _mm_sha_epi32 (a, b);
01005 }
01007 SSP_FORCEINLINE __m128i ssp_sha_epi64_SSE5(__m128i a, __m128i b)
01008 {
01009     return _mm_sha_epi64 (a, b);
01010 }
01011 
01012 //
01013 // Functions common with SSE4.1
01014 //
01015 
01017 SSP_FORCEINLINE int ssp_testz_si128_SSE5(__m128i mask, __m128i a)
01018 {
01019     return _mm_testz_si128( mask, a);
01020 }
01022 SSP_FORCEINLINE int ssp_testc_si128_SSE5(__m128i mask, __m128i a)
01023 {
01024     return _mm_testc_si128( mask, a);
01025 }
01027 SSP_FORCEINLINE int ssp_testnzc_si128_SSE5(__m128i mask, __m128i b)
01028 {
01029     return _mm_testnzc_si128( mask, b);
01030 }
01032 SSP_FORCEINLINE __m128d ssp_round_pd_SSE5(__m128d a, int iRoundMode)
01033 {   switch( iRoundMode & 0xF )
01034     {        
01035        CASE_16( _mm_round_pd, a );    
01036     }
01037 }
01039 SSP_FORCEINLINE __m128d ssp_round_sd_SSE5(__m128d dst, __m128d a, int iRoundMode)
01040 {    
01041    switch( iRoundMode & 0xF )
01042    {        
01043       CASE_16( _mm_round_sd, dst, a );    
01044    }
01045 }
01047 SSP_FORCEINLINE __m128 ssp_round_ps_SSE5(__m128 a, int iRoundMode)
01048 {    
01049    switch( iRoundMode & 0xF )
01050    {        
01051       CASE_16( _mm_round_ps, a );    
01052    }
01053 }
01055 SSP_FORCEINLINE __m128 ssp_round_ss_SSE5(__m128 dst, __m128 a, int iRoundMode)
01056 {    
01057    switch( iRoundMode & 0xF )
01058    {        
01059       CASE_16( _mm_round_ss, dst, a );    
01060    }
01061 }
01062 
01064 
01065 
01066 #endif // __SSEPLUS_NATIVE_SSE5_H__

Generated on Wed May 21 13:44:11 2008 for "SSEPlus" by  doxygen 1.5.4