include/SSEPlus_SSE2.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_SSE2_H__
00006 #define __SSEPLUS_SSE2_H__
00007 
00008 #include "SSEPlus_base.h"
00009 
00010 //Forward declarations
00011 //============================================
00012 // SSE2 Native
00013 //============================================
00014 __m128i   ssp_add_epi16_SSE2        ( __m128i _A, __m128i _B );
00015 __m128i   ssp_add_epi32_SSE2        ( __m128i _A, __m128i _B );
00016 __m128i   ssp_add_epi64_SSE2        ( __m128i _A, __m128i _B );
00017 __m128i   ssp_add_epi8_SSE2         ( __m128i _A, __m128i _B );
00018 __m128d   ssp_add_pd_SSE2           ( __m128d _A, __m128d _B );
00019 __m128d   ssp_add_sd_SSE2           ( __m128d _A, __m128d _B );
00020 __m128i   ssp_adds_epi16_SSE2       ( __m128i _A, __m128i _B );
00021 __m128i   ssp_adds_epi8_SSE2        ( __m128i _A, __m128i _B );
00022 __m128i   ssp_adds_epu16_SSE2       ( __m128i _A, __m128i _B );
00023 __m128i   ssp_adds_epu8_SSE2        ( __m128i _A, __m128i _B );
00024 __m128d   ssp_and_pd_SSE2           ( __m128d _A, __m128d _B );
00025 __m128i   ssp_and_si128_SSE2        ( __m128i _A, __m128i _B );
00026 __m128d   ssp_andnot_pd_SSE2        ( __m128d _A, __m128d _B );
00027 __m128i   ssp_andnot_si128_SSE2     ( __m128i _A, __m128i _B );
00028 __m128i   ssp_avg_epu16_SSE2        ( __m128i _A, __m128i _B );
00029 __m128i   ssp_avg_epu8_SSE2         ( __m128i _A, __m128i _B );
00030 __m128    ssp_castpd_ps_SSE2        ( __m128d );
00031 __m128i   ssp_castpd_si128_SSE2     ( __m128d );
00032 __m128d   ssp_castps_pd_SSE2        ( __m128 );
00033 __m128i   ssp_castps_si128_SSE2     ( __m128 );
00034 __m128d   ssp_castsi128_pd_SSE2     ( __m128i );
00035 __m128    ssp_castsi128_ps_SSE2     ( __m128i );
00036 void      ssp_clflush_SSE2          ( void const*_P );
00037 __m128i   ssp_cmpeq_epi16_SSE2      ( __m128i _A, __m128i _B );
00038 __m128i   ssp_cmpeq_epi32_SSE2      ( __m128i _A, __m128i _B );
00039 __m128i   ssp_cmpeq_epi8_SSE2       ( __m128i _A, __m128i _B );
00040 __m128d   ssp_cmpeq_pd_SSE2         ( __m128d _A, __m128d _B );
00041 __m128d   ssp_cmpeq_sd_SSE2         ( __m128d _A, __m128d _B );
00042 __m128d   ssp_cmpge_pd_SSE2         ( __m128d _A, __m128d _B );
00043 __m128d   ssp_cmpge_sd_SSE2         ( __m128d _A, __m128d _B );
00044 __m128i   ssp_cmpgt_epi16_SSE2      ( __m128i _A, __m128i _B );
00045 __m128i   ssp_cmpgt_epi32_SSE2      ( __m128i _A, __m128i _B );
00046 __m128i   ssp_cmpgt_epi8_SSE2       ( __m128i _A, __m128i _B );
00047 __m128d   ssp_cmpgt_pd_SSE2         ( __m128d _A, __m128d _B );
00048 __m128d   ssp_cmpgt_sd_SSE2         ( __m128d _A, __m128d _B );
00049 __m128d   ssp_cmple_pd_SSE2         ( __m128d _A, __m128d _B );
00050 __m128d   ssp_cmple_sd_SSE2         ( __m128d _A, __m128d _B );
00051 __m128i   ssp_cmplt_epi16_SSE2      ( __m128i _A, __m128i _B );
00052 __m128i   ssp_cmplt_epi32_SSE2      ( __m128i _A, __m128i _B );
00053 __m128i   ssp_cmplt_epi8_SSE2       ( __m128i _A, __m128i _B );
00054 __m128d   ssp_cmplt_pd_SSE2         ( __m128d _A, __m128d _B );
00055 __m128d   ssp_cmplt_sd_SSE2         ( __m128d _A, __m128d _B );
00056 __m128d   ssp_cmpneq_pd_SSE2        ( __m128d _A, __m128d _B );
00057 __m128d   ssp_cmpneq_sd_SSE2        ( __m128d _A, __m128d _B );
00058 __m128d   ssp_cmpnge_pd_SSE2        ( __m128d _A, __m128d _B );
00059 __m128d   ssp_cmpnge_sd_SSE2        ( __m128d _A, __m128d _B );
00060 __m128d   ssp_cmpngt_pd_SSE2        ( __m128d _A, __m128d _B );
00061 __m128d   ssp_cmpngt_sd_SSE2        ( __m128d _A, __m128d _B );
00062 __m128d   ssp_cmpnle_pd_SSE2        ( __m128d _A, __m128d _B );
00063 __m128d   ssp_cmpnle_sd_SSE2        ( __m128d _A, __m128d _B );
00064 __m128d   ssp_cmpnlt_pd_SSE2        ( __m128d _A, __m128d _B );
00065 __m128d   ssp_cmpnlt_sd_SSE2        ( __m128d _A, __m128d _B );
00066 __m128d   ssp_cmpord_pd_SSE2        ( __m128d _A, __m128d _B );
00067 __m128d   ssp_cmpord_sd_SSE2        ( __m128d _A, __m128d _B );
00068 __m128d   ssp_cmpunord_pd_SSE2      ( __m128d _A, __m128d _B );
00069 __m128d   ssp_cmpunord_sd_SSE2      ( __m128d _A, __m128d _B );
00070 int       ssp_comieq_sd_SSE2        ( __m128d _A, __m128d _B );
00071 int       ssp_comige_sd_SSE2        ( __m128d _A, __m128d _B );
00072 int       ssp_comigt_sd_SSE2        ( __m128d _A, __m128d _B );
00073 int       ssp_comile_sd_SSE2        ( __m128d _A, __m128d _B );
00074 int       ssp_comilt_sd_SSE2        ( __m128d _A, __m128d _B );
00075 int       ssp_comineq_sd_SSE2       ( __m128d _A, __m128d _B );
00076 __m128d   ssp_cvtepi32_pd_SSE2      ( __m128i _A );
00077 __m128    ssp_cvtepi32_ps_SSE2      ( __m128i _A );
00078 __m128i   ssp_cvtpd_epi32_SSE2      ( __m128d _A );
00079 __m128    ssp_cvtpd_ps_SSE2         ( __m128d _A );
00080 __m128i   ssp_cvtps_epi32_SSE2      ( __m128 _A );
00081 __m128d   ssp_cvtps_pd_SSE2         ( __m128 _A );
00082 double    ssp_cvtsd_f64_SSE2        ( __m128d _A );
00083 int       ssp_cvtsd_si32_SSE2       ( __m128d _A );
00084 ssp_s64   ssp_cvtsd_si64_SSE2       ( __m128d );
00085 __m128    ssp_cvtsd_ss_SSE2         ( __m128 _A, __m128d _B );
00086 int       ssp_cvtsi128_si32_SSE2    ( __m128i _A );
00087 ssp_s64   ssp_cvtsi128_si64_SSE2    ( __m128i );
00088 __m128d   ssp_cvtsi32_sd_SSE2       ( __m128d _A, int _B );
00089 __m128i   ssp_cvtsi32_si128_SSE2    ( int _A );
00090 __m128d   ssp_cvtsi64_sd_SSE2       ( __m128d, ssp_s64 );
00091 __m128i   ssp_cvtsi64_si128_SSE2    ( ssp_s64 );
00092 __m128d   ssp_cvtss_sd_SSE2         ( __m128d _A, __m128 _B );
00093 __m128i   ssp_cvttpd_epi32_SSE2     ( __m128d _A );
00094 __m128i   ssp_cvttps_epi32_SSE2     ( __m128 _A );
00095 int       ssp_cvttsd_si32_SSE2      ( __m128d _A );
00096 ssp_s64   ssp_cvttsd_si64_SSE2      ( __m128d );
00097 __m128d   ssp_div_pd_SSE2           ( __m128d _A, __m128d _B );
00098 __m128d   ssp_div_sd_SSE2           ( __m128d _A, __m128d _B );
00099 int       ssp_extract_epi16_SSE2    ( __m128i _A, int _Imm );
00100 __m128i   ssp_insert_epi16_SSE2     ( __m128i _A, int _B, int _Imm );
00101 void      ssp_lfence_SSE2           ( void );
00102 __m128d   ssp_load_pd_SSE2          ( double const*_Dp );
00103 __m128d   ssp_load_sd_SSE2          ( double const*_Dp );
00104 __m128i   ssp_load_si128_SSE2       ( __m128i const*_P );
00105 __m128d   ssp_load1_pd_SSE2         ( double const*_Dp );
00106 __m128d   ssp_loadh_pd_SSE2         ( __m128d _A, double const*_Dp );
00107 __m128i   ssp_loadl_epi64_SSE2      ( __m128i const*_P );
00108 __m128d   ssp_loadl_pd_SSE2         ( __m128d _A, double const*_Dp );
00109 __m128d   ssp_loadr_pd_SSE2         ( double const*_Dp );
00110 __m128d   ssp_loadu_pd_SSE2         ( double const*_Dp );
00111 __m128i   ssp_loadu_si128_SSE2      ( __m128i const*_P );
00112 __m128i   ssp_madd_epi16_SSE2       ( __m128i _A, __m128i _B );
00113 void      ssp_maskmoveu_si128_SSE2  ( __m128i _D, __m128i _N, char *_P );
00114 __m128i   ssp_max_epi16_SSE2        ( __m128i _A, __m128i _B );
00115 __m128i   ssp_max_epu8_SSE2         ( __m128i _A, __m128i _B );
00116 __m128d   ssp_max_pd_SSE2           ( __m128d _A, __m128d _B );
00117 __m128d   ssp_max_sd_SSE2           ( __m128d _A, __m128d _B );
00118 void      ssp_mfence_SSE2           ( void );
00119 __m128i   ssp_min_epi16_SSE2        ( __m128i _A, __m128i _B );
00120 __m128i   ssp_min_epu8_SSE2         ( __m128i _A, __m128i _B );
00121 __m128d   ssp_min_pd_SSE2           ( __m128d _A, __m128d _B );
00122 __m128d   ssp_min_sd_SSE2           ( __m128d _A, __m128d _B );
00123 __m128i   ssp_move_epi64_SSE2       ( __m128i _Q );
00124 __m128d   ssp_move_sd_SSE2          ( __m128d _A, __m128d _B );
00125 int       ssp_movemask_epi8_SSE2    ( __m128i _A );
00126 int       ssp_movemask_pd_SSE2      ( __m128d _A );
00127 __m128i   ssp_mul_epu32_SSE2        ( __m128i _A, __m128i _B );
00128 __m128d   ssp_mul_pd_SSE2           ( __m128d _A, __m128d _B );
00129 __m128d   ssp_mul_sd_SSE2           ( __m128d _A, __m128d _B );
00130 __m128i   ssp_mulhi_epi16_SSE2      ( __m128i _A, __m128i _B );
00131 __m128i   ssp_mulhi_epu16_SSE2      ( __m128i _A, __m128i _B );
00132 __m128i   ssp_mullo_epi16_SSE2      ( __m128i _A, __m128i _B );
00133 __m128d   ssp_or_pd_SSE2            ( __m128d _A, __m128d _B );
00134 __m128i   ssp_or_si128_SSE2         ( __m128i _A, __m128i _B );
00135 __m128i   ssp_packs_epi16_SSE2      ( __m128i _A, __m128i _B );
00136 __m128i   ssp_packs_epi32_SSE2      ( __m128i _A, __m128i _B );
00137 __m128i   ssp_packus_epi16_SSE2     ( __m128i _A, __m128i _B );
00138 void      ssp_pause_SSE2            ( void );
00139 __m128i   ssp_sad_epu8_SSE2         ( __m128i _A, __m128i _B );
00140 __m128i   ssp_set_epi16_SSE2        ( short _W7, short _W6, short _W5, short _W4, short _W3, short _W2, short _W1, short _W0 );
00141 __m128i   ssp_set_epi32_SSE2        ( int _I3, int _I2, int _I1, int _I0 );
00142 
00143 __m128i   ssp_set_epi8_SSE2         ( char _B15, char _B14, char _B13, char _B12, char _B11, char _B10, char _B9, char _B8, char _B7, char _B6, char _B5, char _B4, char _B3, char _B2, char _B1, char _B0 );
00144 __m128d   ssp_set_pd_SSE2           ( double _Z, double _Y );
00145 __m128d   ssp_set_sd_SSE2           ( double _W );
00146 __m128i   ssp_set1_epi16_SSE2       ( short _W );
00147 __m128i   ssp_set1_epi32_SSE2       ( int _I );
00148 
00149 __m128i   ssp_set1_epi8_SSE2        ( char _B );
00150 __m128d   ssp_set1_pd_SSE2          ( double _A );
00151 __m128i   ssp_setl_epi64_SSE2       ( __m128i _Q );
00152 __m128i   ssp_setr_epi16_SSE2       ( short _W0, short _W1, short _W2, short _W3, short _W4, short _W5, short _W6, short _W7 );
00153 __m128i   ssp_setr_epi32_SSE2       ( int _I0, int _I1, int _I2, int _I3 );
00154 
00155 __m128i   ssp_setr_epi8_SSE2        ( char _B15, char _B14, char _B13, char _B12, char _B11, char _B10, char _B9, char _B8, char _B7, char _B6, char _B5, char _B4, char _B3, char _B2, char _B1, char _B0 );
00156 __m128d   ssp_setr_pd_SSE2          ( double _Y, double _Z );
00157 __m128d   ssp_setzero_pd_SSE2       ( void );
00158 __m128i   ssp_setzero_si128_SSE2    ( void );
00159 __m128i   ssp_shuffle_epi32_SSE2    ( __m128i _A, int _Imm );
00160 __m128d   ssp_shuffle_pd_SSE2       ( __m128d _A, __m128d _B, int _I );
00161 __m128i   ssp_shufflehi_epi16_SSE2  ( __m128i _A, int _Imm );
00162 __m128i   ssp_shufflelo_epi16_SSE2  ( __m128i _A, int _Imm );
00163 __m128i   ssp_sll_epi16_SSE2        ( __m128i _A, __m128i _Count );
00164 __m128i   ssp_sll_epi32_SSE2        ( __m128i _A, __m128i _Count );
00165 __m128i   ssp_sll_epi64_SSE2        ( __m128i _A, __m128i _Count );
00166 __m128i   ssp_slli_epi16_SSE2       ( __m128i _A, int _Count );
00167 __m128i   ssp_slli_epi32_SSE2       ( __m128i _A, int _Count );
00168 __m128i   ssp_slli_epi64_SSE2       ( __m128i _A, int _Count );
00169 __m128i   ssp_slli_si128_SSE2       ( __m128i _A, int _Imm );
00170 __m128d   ssp_sqrt_pd_SSE2          ( __m128d _A );
00171 __m128d   ssp_sqrt_sd_SSE2          ( __m128d _A, __m128d _B );
00172 __m128i   ssp_sra_epi16_SSE2        ( __m128i _A, __m128i _Count );
00173 __m128i   ssp_sra_epi32_SSE2        ( __m128i _A, __m128i _Count );
00174 __m128i   ssp_srai_epi16_SSE2       ( __m128i _A, int _Count );
00175 __m128i   ssp_srai_epi32_SSE2       ( __m128i _A, int _Count );
00176 __m128i   ssp_srl_epi16_SSE2        ( __m128i _A, __m128i _Count );
00177 __m128i   ssp_srl_epi32_SSE2        ( __m128i _A, __m128i _Count );
00178 __m128i   ssp_srl_epi64_SSE2        ( __m128i _A, __m128i _Count );
00179 __m128i   ssp_srli_epi16_SSE2       ( __m128i _A, int _Count );
00180 __m128i   ssp_srli_epi32_SSE2       ( __m128i _A, int _Count );
00181 __m128i   ssp_srli_epi64_SSE2       ( __m128i _A, int _Count );
00182 __m128i   ssp_srli_si128_SSE2       ( __m128i _A, int _Imm );
00183 void      ssp_store_pd_SSE2         ( double *_Dp, __m128d _A );
00184 void      ssp_store_sd_SSE2         ( double *_Dp, __m128d _A );
00185 void      ssp_store_si128_SSE2      ( __m128i *_P, __m128i _B );
00186 void      ssp_store1_pd_SSE2        ( double *_Dp, __m128d _A );
00187 void      ssp_storeh_pd_SSE2        ( double *_Dp, __m128d _A );
00188 void      ssp_storel_epi64_SSE2     ( __m128i *_P, __m128i _Q );
00189 void      ssp_storel_pd_SSE2        ( double *_Dp, __m128d _A );
00190 void      ssp_storer_pd_SSE2        ( double *_Dp, __m128d _A );
00191 void      ssp_storeu_pd_SSE2        ( double *_Dp, __m128d _A );
00192 void      ssp_storeu_si128_SSE2     ( __m128i *_P, __m128i _B );
00193 void      ssp_stream_pd_SSE2        ( double *_Dp, __m128d _A );
00194 void      ssp_stream_si128_SSE2     ( __m128i *_P, __m128i _A );
00195 void      ssp_stream_si32_SSE2      ( int *_P, int _I );
00196 __m128i   ssp_sub_epi16_SSE2        ( __m128i _A, __m128i _B );
00197 __m128i   ssp_sub_epi32_SSE2        ( __m128i _A, __m128i _B );
00198 __m128i   ssp_sub_epi64_SSE2        ( __m128i _A, __m128i _B );
00199 __m128i   ssp_sub_epi8_SSE2         ( __m128i _A, __m128i _B );
00200 __m128d   ssp_sub_pd_SSE2           ( __m128d _A, __m128d _B );
00201 __m128d   ssp_sub_sd_SSE2           ( __m128d _A, __m128d _B );
00202 
00203 __m128i   ssp_subs_epi16_SSE2       ( __m128i _A, __m128i _B );
00204 __m128i   ssp_subs_epi8_SSE2        ( __m128i _A, __m128i _B );
00205 __m128i   ssp_subs_epu16_SSE2       ( __m128i _A, __m128i _B );
00206 __m128i   ssp_subs_epu8_SSE2        ( __m128i _A, __m128i _B );
00207 int       ssp_ucomieq_sd_SSE2       ( __m128d _A, __m128d _B );
00208 int       ssp_ucomige_sd_SSE2       ( __m128d _A, __m128d _B );
00209 int       ssp_ucomigt_sd_SSE2       ( __m128d _A, __m128d _B );
00210 int       ssp_ucomile_sd_SSE2       ( __m128d _A, __m128d _B );
00211 int       ssp_ucomilt_sd_SSE2       ( __m128d _A, __m128d _B );
00212 int       ssp_ucomineq_sd_SSE2      ( __m128d _A, __m128d _B );
00213 __m128i   ssp_unpackhi_epi16_SSE2   ( __m128i _A, __m128i _B );
00214 __m128i   ssp_unpackhi_epi32_SSE2   ( __m128i _A, __m128i _B );
00215 __m128i   ssp_unpackhi_epi64_SSE2   ( __m128i _A, __m128i _B );
00216 __m128i   ssp_unpackhi_epi8_SSE2    ( __m128i _A, __m128i _B );
00217 __m128d   ssp_unpackhi_pd_SSE2      ( __m128d _A, __m128d _B );
00218 __m128i   ssp_unpacklo_epi16_SSE2   ( __m128i _A, __m128i _B );
00219 __m128i   ssp_unpacklo_epi32_SSE2   ( __m128i _A, __m128i _B );
00220 __m128i   ssp_unpacklo_epi64_SSE2   ( __m128i _A, __m128i _B );
00221 __m128i   ssp_unpacklo_epi8_SSE2    ( __m128i _A, __m128i _B );
00222 __m128d   ssp_unpacklo_pd_SSE2      ( __m128d _A, __m128d _B );
00223 __m128d   ssp_xor_pd_SSE2           ( __m128d _A, __m128d _B );
00224 __m128i   ssp_xor_si128_SSE2        ( __m128i _A, __m128i _B );
00225 
00226 //============================================
00227 // SSE3 Emulation
00228 //============================================
00229 __m128d   ssp_addsub_pd_SSE2        ( __m128d a, __m128d b ); 
00230 __m128    ssp_addsub_ps_SSE2        ( __m128 a, __m128 b ); 
00231 __m128d   ssp_hadd_pd_SSE2          ( __m128d a, __m128d b ); 
00232 __m128    ssp_hadd_ps_SSE2          ( __m128 a, __m128 b ); 
00233 __m128d   ssp_hsub_pd_SSE2          ( __m128d a, __m128d b ); 
00234 __m128    ssp_hsub_ps_SSE2          ( __m128 a, __m128 b ); 
00235 __m128i   ssp_lddqu_si128_SSE2      ( __m128i const *p ); 
00236 __m128d   ssp_loaddup_pd_SSE2       ( double const * dp ); 
00237 __m128d   ssp_movedup_pd_SSE2       ( __m128d a ); 
00238 __m128    ssp_movehdup_ps_SSE2      ( __m128 a ); 
00239 __m128    ssp_moveldup_ps_SSE2      ( __m128 a ); 
00240 
00241 //============================================
00242 // SSSE3 Emulation
00243 //============================================
00244 __m128i   ssp_abs_epi16_SSE2        ( __m128i a );
00245 __m128i   ssp_abs_epi32_SSE2        ( __m128i a );
00246 __m128i   ssp_abs_epi8_SSE2         ( __m128i a );
00247 __m128i   ssp_alignr_epi8_SSE2      ( __m128i a, __m128i b, const int n );
00248 __m128i   ssp_hadd_epi16_SSE2       ( __m128i a, __m128i b );
00249 __m128i   ssp_hadd_epi32_SSE2       ( __m128i a, __m128i b );
00250 __m128i   ssp_hadds_epi16_SSE2      ( __m128i a, __m128i b );
00251 __m128i   ssp_hsub_epi16_SSE2       ( __m128i a, __m128i b );
00252 __m128i   ssp_hsub_epi32_SSE2       ( __m128i a, __m128i b );
00253 __m128i   ssp_hsubs_epi16_SSE2      ( __m128i a, __m128i b );
00254 __m128i   ssp_maddubs_epi16_SSE2    ( __m128i a, __m128i b );
00255 __m128i   ssp_mulhrs_epi16_SSE2     ( __m128i a, __m128i b );
00256 __m128i   ssp_shuffle_epi8_SSE2     ( __m128i a, __m128i b );
00257 __m128i   ssp_sign_epi16_SSE2       ( __m128i a, __m128i b );
00258 __m128i   ssp_sign_epi32_SSE2       ( __m128i a, __m128i b );
00259 __m128i   ssp_sign_epi8_SSE2        ( __m128i a, __m128i b );
00260 
00261 
00262 //============================================
00263 // SSE4A Emulation
00264 //============================================
00265 __m128i   ssp_extract_si64_SSE2     ( __m128i,__m128i );   
00266 __m128i   ssp_extracti_si64_SSE2    ( __m128i, int, int );   
00267 __m128i   ssp_insert_si64_SSE2      ( __m128i,__m128i );   
00268 __m128i   ssp_inserti_si64_SSE2     ( __m128i, __m128i, int, int );   
00269 void      ssp_stream_sd_SSE2        ( double*,__m128d );   
00270 void      ssp_stream_ss_SSE2        ( float*,__m128 );   
00271 
00272 //============================================
00273 // SSE4.1 Emulation
00274 //============================================
00275 __m128i   ssp_blend_epi16_SSE2      ( __m128i v1, __m128i v2, const int mask );    
00276 __m128d   ssp_blend_pd_SSE2         ( __m128d v1, __m128d v2, const int mask );    
00277 __m128    ssp_blend_ps_SSE2         ( __m128  v1, __m128  v2, const int mask );    
00278 __m128i   ssp_blendv_epi8_SSE2      ( __m128i v1, __m128i v2, __m128i   mask );    
00279 __m128d   ssp_blendv_pd_SSE2        ( __m128d v1, __m128d v2, __m128d   mask );    
00280 __m128    ssp_blendv_ps_SSE2        ( __m128  v1, __m128  v2, __m128    mask );    
00281 __m128d   ssp_ceil_pd_SSE2          ( __m128d a );    
00282 __m128    ssp_ceil_ps_SSE2          ( __m128  a );    
00283 __m128d   ssp_ceil_sd_SSE2          ( __m128d a, __m128d b );    
00284 __m128    ssp_ceil_ss_SSE2          ( __m128  a, __m128  b );    
00285 __m128i   ssp_cmpeq_epi64_SSE2      ( __m128i val1, __m128i val2 );    
00286 __m128i   ssp_cvtepi16_epi32_SSE2   ( __m128i shortValues );    
00287 __m128i   ssp_cvtepi16_epi64_SSE2   ( __m128i shortValues );    
00288 __m128i   ssp_cvtepi32_epi64_SSE2   ( __m128i intValues   );    
00289 __m128i   ssp_cvtepi8_epi16_SSE2    ( __m128i byteValues  );    
00290 __m128i   ssp_cvtepi8_epi32_SSE2    ( __m128i byteValues  );    
00291 __m128i   ssp_cvtepi8_epi64_SSE2    ( __m128i byteValues  );    
00292 __m128i   ssp_cvtepu16_epi32_SSE2   ( __m128i shortValues );    
00293 __m128i   ssp_cvtepu16_epi64_SSE2   ( __m128i shortValues );    
00294 __m128i   ssp_cvtepu32_epi64_SSE2   ( __m128i intValues   );    
00295 __m128i   ssp_cvtepu8_epi16_SSE2    ( __m128i byteValues  );    
00296 __m128i   ssp_cvtepu8_epi32_SSE2    ( __m128i byteValues  );    
00297 __m128i   ssp_cvtepu8_epi64_SSE2    ( __m128i shortValues );    
00298 __m128d   ssp_dp_pd_SSE2            ( __m128d val1, __m128d val2, const int mask );    
00299 __m128    ssp_dp_ps_SSE2            ( __m128  val1, __m128  val2, const int mask );    
00300 int       ssp_extract_epi32_SSE2    ( __m128i src, const int ndx );    
00301 ssp_s64   ssp_extract_epi64_SSE2    ( __m128i src, const int ndx );    
00302 int       ssp_extract_epi8_SSE2     ( __m128i src, const int ndx );    
00303 int       ssp_extract_ps_SSE2       ( __m128  src, const int ndx );    
00304 __m128d   ssp_floor_pd_SSE2         ( __m128d a );    
00305 __m128    ssp_floor_ps_SSE2         ( __m128  a );    
00306 __m128d   ssp_floor_sd_SSE2         ( __m128d a, __m128d b );    
00307 __m128    ssp_floor_ss_SSE2         ( __m128  a, __m128  b );    
00308 __m128i   ssp_insert_epi32_SSE2     ( __m128i dst,      int s, const int ndx );    
00309 __m128i   ssp_insert_epi64_SSE2     ( __m128i dst, ssp_s64  s, const int ndx );    
00310 __m128i   ssp_insert_epi8_SSE2      ( __m128i dst,      int s, const int ndx );    
00311 __m128    ssp_insert_ps_SSE2        ( __m128  dst, __m128 src, const int ndx );    
00312 __m128i   ssp_max_epi32_SSE2        ( __m128i val1, __m128i val2 );    
00313 __m128i   ssp_max_epi8_SSE2         ( __m128i val1, __m128i val2 );    
00314 __m128i   ssp_max_epu16_SSE2        ( __m128i val1, __m128i val2 );    
00315 __m128i   ssp_max_epu32_SSE2        ( __m128i val1, __m128i val2 );    
00316 __m128i   ssp_min_epi32_SSE2        ( __m128i val1, __m128i val2 );    
00317 __m128i   ssp_min_epi8_SSE2         ( __m128i val1, __m128i val2 );    
00318 __m128i   ssp_min_epu16_SSE2        ( __m128i val1, __m128i val2 );    
00319 __m128i   ssp_min_epu32_SSE2        ( __m128i val1, __m128i val2 );    
00320 __m128i   ssp_minpos_epu16_SSE2     ( __m128i shortValues );    
00321 __m128i   ssp_mpsadbw_epu8_SSE2     ( __m128i s1,   __m128i s2,   const int msk  );    
00322 __m128i   ssp_mul_epi32_SSE2        ( __m128i a,    __m128i b );   
00323 __m128i   ssp_packus_epi32_SSE2     ( __m128i val1, __m128i val2 );    
00324 __m128d   ssp_round_pd_SSE2         ( __m128d val, int iRoundMode );    
00325 
00326 SSP_FORCEINLINE
00327 __m128    ssp_round_ps_SSE2         ( __m128  val, int iRoundMode );    
00328 __m128d   ssp_round_sd_SSE2         ( __m128d dst, __m128d val, int iRoundMode );    
00329 __m128    ssp_round_ss_SSE2         ( __m128  dst, __m128  val, int iRoundMode );    
00330 __m128i   ssp_stream_load_si128_SSE2( __m128i* v1 );    
00331 int       ssp_testc_si128_SSE2      ( __m128i mask, __m128i val );    
00332 int       ssp_testnzc_si128_SSE2    ( __m128i mask, __m128i s2  ); 
00333 
00334 SSP_FORCEINLINE
00335 int       ssp_testz_si128_SSE2      ( __m128i mask, __m128i val );  
00336 
00337 //============================================
00338 // SSE4.2 Emulation
00339 //============================================
00340 int       ssp_cmpestra_SSE2         ( __m128i a, int la, __m128i b, int lb, const int mode );
00341 int       ssp_cmpestrc_SSE2         ( __m128i a, int la, __m128i b, int lb, const int mode );
00342 int       ssp_cmpestri_SSE2         ( __m128i a, int la, __m128i b, int lb, const int mode );
00343 __m128i   ssp_cmpestrm_SSE2         ( __m128i a, int la, __m128i b, int lb, const int mode );
00344 int       ssp_cmpestro_SSE2         ( __m128i a, int la, __m128i b, int lb, const int mode );
00345 int       ssp_cmpestrs_SSE2         ( __m128i a, int la, __m128i b, int lb, const int mode );
00346 int       ssp_cmpestrz_SSE2         ( __m128i a, int la, __m128i b, int lb, const int mode );
00347 __m128i   ssp_cmpgt_epi64_SSE2      ( __m128i a, __m128i b );
00348 int       ssp_cmpistra_SSE2         ( __m128i a, __m128i b, const int mode );
00349 int       ssp_cmpistrc_SSE2         ( __m128i a, __m128i b, const int mode );
00350 int       ssp_cmpistri_SSE2         ( __m128i a, __m128i b, const int mode );
00351 __m128i   ssp_cmpistrm_SSE2         ( __m128i a, __m128i b, const int mode );
00352 int       ssp_cmpistro_SSE2         ( __m128i a, __m128i b, const int mode );
00353 int       ssp_cmpistrs_SSE2         ( __m128i a, __m128i b, const int mode );
00354 int       ssp_cmpistrz_SSE2         ( __m128i a, __m128i b, const int mode );
00355 unsigned int     ssp_crc32_u16_SSE2 ( unsigned int crc, unsigned short   v );
00356 unsigned int     ssp_crc32_u32_SSE2 ( unsigned int crc, unsigned int     v );
00357 ssp_u64   ssp_crc32_u64_SSE2        ( unsigned int crc,          ssp_u64 v );
00358 unsigned int     ssp_crc32_u8_SSE2  ( unsigned int crc, unsigned char    v );
00359 int       ssp_popcnt_u32_SSE2       ( unsigned int a     );
00360 int       ssp_popcnt_u64_SSE2       ( ssp_u64 a );
00361 
00362 #include "native/SSEPlus_native_SSE2.h" 
00363 #include "emulation/SSEPlus_emulation_SSE2.h" 
00364 #include "arithmetic/SSEPlus_arithmetic_SSE2.h"
00365 #include "logical/SSEPlus_logical_SSE2.h"
00366 #include "memory/SSEPlus_memory_SSE2.h"
00367 #include "convert/SSEPlus_convert_SSE2.h"
00368 
00369 #endif // __SSEPLUS_SSE2_H__

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