00001
00002
00003
00004
00005 #ifndef __SSEPLUS_SSE2_H__
00006 #define __SSEPLUS_SSE2_H__
00007
00008 #include "SSEPlus_base.h"
00009
00010
00011
00012
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
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
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
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
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
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__