00001
00002
00003
00004
00005 #ifndef __SSEPLUS_CONVERT_REF_H__
00006 #define __SSEPLUS_CONVERT_REF_H__
00007
00008
00015
00016
00017
00018 SSP_FORCEINLINE
00019 void ssp_convert_reverse_transpose_REF( __m128i *a, __m128i *b, __m128i *c )
00020 {
00021 ssp_m128 Ai, Ao, Bi, Bo, Ci, Co;
00022 Ai.i = *a;
00023 Bi.i = *b;
00024 Ci.i = *c;
00025
00026 Ao.u32[ 0 ] = Ai.u32[ 0 ];
00027 Ao.u32[ 1 ] = Bi.u32[ 0 ];
00028 Ao.u32[ 2 ] = Ci.u32[ 0 ];
00029 Ao.u32[ 3 ] = Ai.u32[ 1 ];
00030
00031 Bo.u32[ 0 ] = Bi.u32[ 1 ];
00032 Bo.u32[ 1 ] = Ci.u32[ 1 ];
00033 Bo.u32[ 2 ] = Ai.u32[ 2 ];
00034 Bo.u32[ 3 ] = Bi.u32[ 2 ];
00035
00036 Co.u32[ 0 ] = Ci.u32[ 2 ];
00037 Co.u32[ 1 ] = Ai.u32[ 3 ];
00038 Co.u32[ 2 ] = Bi.u32[ 3 ];
00039 Co.u32[ 3 ] = Ci.u32[ 3 ];
00040
00041 *a = Ao.i;
00042 *b = Bo.i;
00043 *c = Co.i;
00044 }
00045
00046
00047 SSP_FORCEINLINE
00048 void ssp_convert_3c_3p_epi8_REF( __m128i *rgb1, __m128i *rgb2, __m128i *rgb3)
00049 {
00050 ssp_m128 RGB1, RGB2, RGB3;
00051 ssp_m128 R,G,B;
00052
00053 RGB1.i = *rgb1;
00054 RGB2.i = *rgb2;
00055 RGB3.i = *rgb3;
00056
00057 R.u8[0 ] = RGB1.u8[0 ];
00058 R.u8[1 ] = RGB1.u8[3 ];
00059 R.u8[2 ] = RGB1.u8[6 ];
00060 R.u8[3 ] = RGB1.u8[9 ];
00061 R.u8[4 ] = RGB1.u8[12];
00062 R.u8[5 ] = RGB1.u8[15];
00063 R.u8[6 ] = RGB2.u8[2 ];
00064 R.u8[7 ] = RGB2.u8[5 ];
00065 R.u8[8 ] = RGB2.u8[8 ];
00066 R.u8[9 ] = RGB2.u8[11];
00067 R.u8[10] = RGB2.u8[14];
00068 R.u8[11] = RGB3.u8[1 ];
00069 R.u8[12] = RGB3.u8[4 ];
00070 R.u8[13] = RGB3.u8[7 ];
00071 R.u8[14] = RGB3.u8[10];
00072 R.u8[15] = RGB3.u8[13];
00073
00074 G.u8[0 ] = RGB1.u8[1 ];
00075 G.u8[1 ] = RGB1.u8[4 ];
00076 G.u8[2 ] = RGB1.u8[7 ];
00077 G.u8[3 ] = RGB1.u8[10];
00078 G.u8[4 ] = RGB1.u8[13];
00079 G.u8[5 ] = RGB2.u8[0 ];
00080 G.u8[6 ] = RGB2.u8[3 ];
00081 G.u8[7 ] = RGB2.u8[6 ];
00082 G.u8[8 ] = RGB2.u8[9 ];
00083 G.u8[9 ] = RGB2.u8[12];
00084 G.u8[10] = RGB2.u8[15];
00085 G.u8[11] = RGB3.u8[2 ];
00086 G.u8[12] = RGB3.u8[5 ];
00087 G.u8[13] = RGB3.u8[8 ];
00088 G.u8[14] = RGB3.u8[11];
00089 G.u8[15] = RGB3.u8[14];
00090
00091 B.u8[0 ] = RGB1.u8[2 ];
00092 B.u8[1 ] = RGB1.u8[5 ];
00093 B.u8[2 ] = RGB1.u8[8 ];
00094 B.u8[3 ] = RGB1.u8[11];
00095 B.u8[4 ] = RGB1.u8[14];
00096 B.u8[5 ] = RGB2.u8[1 ];
00097 B.u8[6 ] = RGB2.u8[4 ];
00098 B.u8[7 ] = RGB2.u8[7 ];
00099 B.u8[8 ] = RGB2.u8[10];
00100 B.u8[9 ] = RGB2.u8[13];
00101 B.u8[10] = RGB3.u8[0 ];
00102 B.u8[11] = RGB3.u8[3 ];
00103 B.u8[12] = RGB3.u8[6 ];
00104 B.u8[13] = RGB3.u8[9 ];
00105 B.u8[14] = RGB3.u8[12];
00106 B.u8[15] = RGB3.u8[15];
00107
00108
00109 *rgb1 = R.i;
00110 *rgb2 = G.i;
00111 *rgb3 = B.i;
00112 }
00113
00114
00115 SSP_FORCEINLINE
00116 void ssp_convert_3p_3c_epi8_REF( __m128i *r, __m128i *g, __m128i *b )
00117 {
00118 ssp_m128 R,G,B;
00119 ssp_m128 RGB1, RGB2, RGB3;
00120
00121 R.i = *r;
00122 G.i = *g;
00123 B.i = *b;
00124
00125 RGB1.u8[0 ] = R.u8[0 ];
00126 RGB1.u8[1 ] = G.u8[0 ];
00127 RGB1.u8[2 ] = B.u8[0 ];
00128 RGB1.u8[3 ] = R.u8[1 ];
00129 RGB1.u8[4 ] = G.u8[1 ];
00130 RGB1.u8[5 ] = B.u8[1 ];
00131 RGB1.u8[6 ] = R.u8[2 ];
00132 RGB1.u8[7 ] = G.u8[2 ];
00133 RGB1.u8[8 ] = B.u8[2 ];
00134 RGB1.u8[9 ] = R.u8[3 ];
00135 RGB1.u8[10] = G.u8[3 ];
00136 RGB1.u8[11] = B.u8[3 ];
00137 RGB1.u8[12] = R.u8[4 ];
00138 RGB1.u8[13] = G.u8[4 ];
00139 RGB1.u8[14] = B.u8[4 ];
00140 RGB1.u8[15] = R.u8[5 ];
00141
00142 RGB2.u8[0 ] = G.u8[5 ];
00143 RGB2.u8[1 ] = B.u8[5 ];
00144 RGB2.u8[2 ] = R.u8[6 ];
00145 RGB2.u8[3 ] = G.u8[6 ];
00146 RGB2.u8[4 ] = B.u8[6 ];
00147 RGB2.u8[5 ] = R.u8[7 ];
00148 RGB2.u8[6 ] = G.u8[7 ];
00149 RGB2.u8[7 ] = B.u8[7 ];
00150 RGB2.u8[8 ] = R.u8[8 ];
00151 RGB2.u8[9 ] = G.u8[8 ];
00152 RGB2.u8[10] = B.u8[8 ];
00153 RGB2.u8[11] = R.u8[9 ];
00154 RGB2.u8[12] = G.u8[9 ];
00155 RGB2.u8[13] = B.u8[9 ];
00156 RGB2.u8[14] = R.u8[10];
00157 RGB2.u8[15] = G.u8[10];
00158
00159 RGB3.u8[0 ] = B.u8[10];
00160 RGB3.u8[1 ] = R.u8[11];
00161 RGB3.u8[2 ] = G.u8[11];
00162 RGB3.u8[3 ] = B.u8[11];
00163 RGB3.u8[4 ] = R.u8[12];
00164 RGB3.u8[5 ] = G.u8[12];
00165 RGB3.u8[6 ] = B.u8[12];
00166 RGB3.u8[7 ] = R.u8[13];
00167 RGB3.u8[8 ] = G.u8[13];
00168 RGB3.u8[9 ] = B.u8[13];
00169 RGB3.u8[10] = R.u8[14];
00170 RGB3.u8[11] = G.u8[14];
00171 RGB3.u8[12] = B.u8[14];
00172 RGB3.u8[13] = R.u8[15];
00173 RGB3.u8[14] = G.u8[15];
00174 RGB3.u8[15] = B.u8[15];
00175
00176 *r = RGB1.i;
00177 *g = RGB2.i;
00178 *b = RGB3.i;
00179 }
00180
00181 SSP_FORCEINLINE
00182 void ssp_convert_3c_3p_epi16_REF(__m128i *rgb1,__m128i *rgb2,__m128i *rgb3)
00183 {
00184 ssp_m128 trgb1, trgb2, trgb3;
00185 ssp_m128 r, g, b;
00186 trgb1.i = *rgb1;
00187 trgb2.i = *rgb2;
00188 trgb3.i = *rgb3;
00189
00190 r.s16[0] = trgb1.s16[0];
00191 r.s16[1] = trgb1.s16[3];
00192 r.s16[2] = trgb1.s16[6];
00193 r.s16[3] = trgb2.s16[1];
00194 r.s16[4] = trgb2.s16[4];
00195 r.s16[5] = trgb2.s16[7];
00196 r.s16[6] = trgb3.s16[2];
00197 r.s16[7] = trgb3.s16[5];
00198
00199 g.s16[0] = trgb1.s16[1];
00200 g.s16[1] = trgb1.s16[4];
00201 g.s16[2] = trgb1.s16[7];
00202 g.s16[3] = trgb2.s16[2];
00203 g.s16[4] = trgb2.s16[5];
00204 g.s16[5] = trgb3.s16[0];
00205 g.s16[6] = trgb3.s16[3];
00206 g.s16[7] = trgb3.s16[6];
00207
00208 b.s16[0] = trgb1.s16[2];
00209 b.s16[1] = trgb1.s16[5];
00210 b.s16[2] = trgb2.s16[0];
00211 b.s16[3] = trgb2.s16[3];
00212 b.s16[4] = trgb2.s16[6];
00213 b.s16[5] = trgb3.s16[1];
00214 b.s16[6] = trgb3.s16[4];
00215 b.s16[7] = trgb3.s16[7];
00216
00217 *rgb1 = r.i;
00218 *rgb2 = g.i;
00219 *rgb3 = b.i;
00220 }
00221
00222 SSP_FORCEINLINE
00223 void ssp_convert_3p_3c_epi16_REF(__m128i *r,__m128i *g,__m128i *b)
00224 {
00225 ssp_m128 rgb1, rgb2, rgb3;
00226 ssp_m128 tr, tg, tb;
00227 tr.i = *r;
00228 tg.i = *g;
00229 tb.i = *b;
00230
00231 rgb1.s16[0] = tr.s16[0];
00232 rgb1.s16[3] = tr.s16[1];
00233 rgb1.s16[6] = tr.s16[2];
00234 rgb2.s16[1] = tr.s16[3];
00235 rgb2.s16[4] = tr.s16[4];
00236 rgb2.s16[7] = tr.s16[5];
00237 rgb3.s16[2] = tr.s16[6];
00238 rgb3.s16[5] = tr.s16[7];
00239
00240 rgb1.s16[1] = tg.s16[0];
00241 rgb1.s16[4] = tg.s16[1];
00242 rgb1.s16[7] = tg.s16[2];
00243 rgb2.s16[2] = tg.s16[3];
00244 rgb2.s16[5] = tg.s16[4];
00245 rgb3.s16[0] = tg.s16[5];
00246 rgb3.s16[3] = tg.s16[6];
00247 rgb3.s16[6] = tg.s16[7];
00248
00249 rgb1.s16[2] = tb.s16[0];
00250 rgb1.s16[5] = tb.s16[1];
00251 rgb2.s16[0] = tb.s16[2];
00252 rgb2.s16[3] = tb.s16[3];
00253 rgb2.s16[6] = tb.s16[4];
00254 rgb3.s16[1] = tb.s16[5];
00255 rgb3.s16[4] = tb.s16[6];
00256 rgb3.s16[7] = tb.s16[7];
00257
00258 *r = rgb1.i;
00259 *g = rgb2.i;
00260 *b = rgb3.i;
00261 }
00262
00263 SSP_FORCEINLINE
00264 void ssp_convert_3c_3p_epi32_REF(__m128i *rgb1,__m128i *rgb2,__m128i *rgb3)
00265 {
00266 ssp_m128 trgb1, trgb2, trgb3;
00267 ssp_m128 r, g, b;
00268 trgb1.i = *rgb1;
00269 trgb2.i = *rgb2;
00270 trgb3.i = *rgb3;
00271
00272 r.s32[0] = trgb1.s32[0];
00273 r.s32[1] = trgb1.s32[3];
00274 r.s32[2] = trgb2.s32[2];
00275 r.s32[3] = trgb3.s32[1];
00276
00277 g.s32[0] = trgb1.s32[1];
00278 g.s32[1] = trgb2.s32[0];
00279 g.s32[2] = trgb2.s32[3];
00280 g.s32[3] = trgb3.s32[2];
00281
00282 b.s32[0] = trgb1.s32[2];
00283 b.s32[1] = trgb2.s32[1];
00284 b.s32[2] = trgb3.s32[0];
00285 b.s32[3] = trgb3.s32[3];
00286
00287 *rgb1 = r.i;
00288 *rgb2 = g.i;
00289 *rgb3 = b.i;
00290 }
00291
00292 SSP_FORCEINLINE
00293 void ssp_convert_3p_3c_epi32_REF(__m128i *r,__m128i *g,__m128i *b)
00294 {
00295 ssp_m128 tr, tg, tb;
00296 ssp_m128 rgb1, rgb2, rgb3;
00297
00298 tr.i = *r;
00299 tg.i = *g;
00300 tb.i = *b;
00301
00302 rgb1.s32[0] = tr.s32[0];
00303 rgb1.s32[3] = tr.s32[1];
00304 rgb2.s32[2] = tr.s32[2];
00305 rgb3.s32[1] = tr.s32[3];
00306
00307 rgb1.s32[1] = tg.s32[0];
00308 rgb2.s32[0] = tg.s32[1];
00309 rgb2.s32[3] = tg.s32[2];
00310 rgb3.s32[2] = tg.s32[3];
00311
00312 rgb1.s32[2] = tb.s32[0];
00313 rgb2.s32[1] = tb.s32[1];
00314 rgb3.s32[0] = tb.s32[2];
00315 rgb3.s32[3] = tb.s32[3];
00316
00317 *r = rgb1.i;
00318 *g = rgb2.i;
00319 *b = rgb3.i;
00320 }
00321
00322
00323 SSP_FORCEINLINE
00324 void ssp_convert_4c_4p_epi8_REF( __m128i *rgba1, __m128i *rgba2, __m128i *rgba3, __m128i *rgba4 )
00325 {
00326 int n;
00327 ssp_m128 trgba1, trgba2, trgba3, trgba4;
00328 ssp_m128 r, g, b, a;
00329
00330 trgba1.i = *rgba1;
00331 trgba2.i = *rgba2;
00332 trgba3.i = *rgba3;
00333 trgba4.i = *rgba4;
00334
00335 for( n = 0; n < 4; n++ )
00336 {
00337 r.s8[0+n] = trgba1.s8[4*n];
00338 r.s8[4+n] = trgba2.s8[4*n];
00339 r.s8[8+n] = trgba3.s8[4*n];
00340 r.s8[12+n] = trgba4.s8[4*n];
00341
00342 g.s8[0+n] = trgba1.s8[4*n+1];
00343 g.s8[4+n] = trgba2.s8[4*n+1];
00344 g.s8[8+n] = trgba3.s8[4*n+1];
00345 g.s8[12+n] = trgba4.s8[4*n+1];
00346
00347 b.s8[0+n] = trgba1.s8[4*n+2];
00348 b.s8[4+n] = trgba2.s8[4*n+2];
00349 b.s8[8+n] = trgba3.s8[4*n+2];
00350 b.s8[12+n] = trgba4.s8[4*n+2];
00351
00352 a.s8[0+n] = trgba1.s8[4*n+3];
00353 a.s8[4+n] = trgba2.s8[4*n+3];
00354 a.s8[8+n] = trgba3.s8[4*n+3];
00355 a.s8[12+n] = trgba4.s8[4*n+3];
00356 }
00357
00358 *rgba1 = r.i;
00359 *rgba2 = g.i;
00360 *rgba3 = b.i;
00361 *rgba4 = a.i;
00362 }
00363
00364
00365 SSP_FORCEINLINE
00366 void ssp_convert_4p_4c_epi8_REF(__m128i *r,__m128i *g,__m128i *b,__m128i *a)
00367 {
00368 int n;
00369 ssp_m128 tr, tg, tb, ta;
00370 ssp_m128 rgba1, rgba2, rgba3, rgba4;
00371 tr.i = *r;
00372 tg.i = *g;
00373 tb.i = *b;
00374 ta.i = *a;
00375
00376 for( n = 0; n < 4; n++ )
00377 {
00378 rgba1.s8[4*n] = tr.s8[0+n];
00379 rgba2.s8[4*n] = tr.s8[4+n];
00380 rgba3.s8[4*n] = tr.s8[8+n];
00381 rgba4.s8[4*n] = tr.s8[12+n];
00382
00383 rgba1.s8[4*n+1] = tg.s8[0+n];
00384 rgba2.s8[4*n+1] = tg.s8[4+n];
00385 rgba3.s8[4*n+1] = tg.s8[8+n];
00386 rgba4.s8[4*n+1] = tg.s8[12+n];
00387
00388 rgba1.s8[4*n+2] = tb.s8[0+n];
00389 rgba2.s8[4*n+2] = tb.s8[4+n];
00390 rgba3.s8[4*n+2] = tb.s8[8+n];
00391 rgba4.s8[4*n+2] = tb.s8[12+n];
00392
00393 rgba1.s8[4*n+3] = ta.s8[0+n];
00394 rgba2.s8[4*n+3] = ta.s8[4+n];
00395 rgba3.s8[4*n+3] = ta.s8[8+n];
00396 rgba4.s8[4*n+3] = ta.s8[12+n];
00397 }
00398
00399 *r = rgba1.i;
00400 *g = rgba2.i;
00401 *b = rgba3.i;
00402 *a = rgba4.i;
00403 }
00404
00405 SSP_FORCEINLINE
00406 void ssp_convert_4c_4p_epi16_REF(__m128i *rgba1,__m128i *rgba2,__m128i *rgba3,__m128i *rgba4)
00407 {
00408 int n;
00409 ssp_m128 trgba1, trgba2, trgba3, trgba4;
00410 ssp_m128 r, g, b, a;
00411
00412 trgba1.i = *rgba1;
00413 trgba2.i = *rgba2;
00414 trgba3.i = *rgba3;
00415 trgba4.i = *rgba4;
00416
00417 for( n = 0; n < 2; n++ )
00418 {
00419 r.s16[0+n] = trgba1.s16[4*n];
00420 r.s16[2+n] = trgba2.s16[4*n];
00421 r.s16[4+n] = trgba3.s16[4*n];
00422 r.s16[6+n] = trgba4.s16[4*n];
00423
00424 g.s16[0+n] = trgba1.s16[4*n+1];
00425 g.s16[2+n] = trgba2.s16[4*n+1];
00426 g.s16[4+n] = trgba3.s16[4*n+1];
00427 g.s16[6+n] = trgba4.s16[4*n+1];
00428
00429 b.s16[0+n] = trgba1.s16[4*n+2];
00430 b.s16[2+n] = trgba2.s16[4*n+2];
00431 b.s16[4+n] = trgba3.s16[4*n+2];
00432 b.s16[6+n] = trgba4.s16[4*n+2];
00433
00434 a.s16[0+n] = trgba1.s16[4*n+3];
00435 a.s16[2+n] = trgba2.s16[4*n+3];
00436 a.s16[4+n] = trgba3.s16[4*n+3];
00437 a.s16[6+n] = trgba4.s16[4*n+3];
00438 }
00439
00440 *rgba1 = r.i;
00441 *rgba2 = g.i;
00442 *rgba3 = b.i;
00443 *rgba4 = a.i;
00444 }
00445
00446 SSP_FORCEINLINE
00447 void ssp_convert_4p_4c_epi16_REF(__m128i *r,__m128i *g,__m128i *b,__m128i *a)
00448 {
00449 int n;
00450 ssp_m128 tr, tg, tb, ta;
00451 ssp_m128 rgba1, rgba2, rgba3, rgba4;
00452 tr.i = *r;
00453 tg.i = *g;
00454 tb.i = *b;
00455 ta.i = *a;
00456
00457 for( n = 0; n < 2; n++ )
00458 {
00459 rgba1.s16[4*n] = tr.s16[0+n];
00460 rgba2.s16[4*n] = tr.s16[2+n];
00461 rgba3.s16[4*n] = tr.s16[4+n];
00462 rgba4.s16[4*n] = tr.s16[6+n];
00463
00464 rgba1.s16[4*n+1] = tg.s16[0+n];
00465 rgba2.s16[4*n+1] = tg.s16[2+n];
00466 rgba3.s16[4*n+1] = tg.s16[4+n];
00467 rgba4.s16[4*n+1] = tg.s16[6+n];
00468
00469 rgba1.s16[4*n+2] = tb.s16[0+n];
00470 rgba2.s16[4*n+2] = tb.s16[2+n];
00471 rgba3.s16[4*n+2] = tb.s16[4+n];
00472 rgba4.s16[4*n+2] = tb.s16[6+n];
00473
00474 rgba1.s16[4*n+3] = ta.s16[0+n];
00475 rgba2.s16[4*n+3] = ta.s16[2+n];
00476 rgba3.s16[4*n+3] = ta.s16[4+n];
00477 rgba4.s16[4*n+3] = ta.s16[6+n];
00478 }
00479
00480 *r = rgba1.i;
00481 *g = rgba2.i;
00482 *b = rgba3.i;
00483 *a = rgba4.i;
00484 }
00485
00486 SSP_FORCEINLINE
00487 void ssp_convert_4c_4p_epi32_REF(__m128i *rgba1,__m128i *rgba2,__m128i *rgba3, __m128i *rgba4)
00488 {
00489 ssp_m128 trgba1, trgba2, trgba3, trgba4;
00490 ssp_m128 r, g, b, a;
00491
00492 trgba1.i = *rgba1;
00493 trgba2.i = *rgba2;
00494 trgba3.i = *rgba3;
00495 trgba4.i = *rgba4;
00496
00497 r.s32[0] = trgba1.s32[0];
00498 r.s32[1] = trgba2.s32[0];
00499 r.s32[2] = trgba3.s32[0];
00500 r.s32[3] = trgba4.s32[0];
00501
00502 g.s32[0] = trgba1.s32[1];
00503 g.s32[1] = trgba2.s32[1];
00504 g.s32[2] = trgba3.s32[1];
00505 g.s32[3] = trgba4.s32[1];
00506
00507 b.s32[0] = trgba1.s32[2];
00508 b.s32[1] = trgba2.s32[2];
00509 b.s32[2] = trgba3.s32[2];
00510 b.s32[3] = trgba4.s32[2];
00511
00512 a.s32[0] = trgba1.s32[3];
00513 a.s32[1] = trgba2.s32[3];
00514 a.s32[2] = trgba3.s32[3];
00515 a.s32[3] = trgba4.s32[3];
00516
00517 *rgba1 = r.i;
00518 *rgba2 = g.i;
00519 *rgba3 = b.i;
00520 *rgba4 = a.i;
00521 }
00522
00523 SSP_FORCEINLINE
00524 void ssp_convert_4p_4c_epi32_REF(__m128i *r,__m128i *g,__m128i *b,__m128i *a)
00525 {
00526 ssp_m128 tr, tg, tb, ta;
00527 ssp_m128 rgba1, rgba2, rgba3, rgba4;
00528 tr.i = *r;
00529 tg.i = *g;
00530 tb.i = *b;
00531 ta.i = *a;
00532
00533 rgba1.s32[0] = tr.s32[0];
00534 rgba2.s32[0] = tr.s32[1];
00535 rgba3.s32[0] = tr.s32[2];
00536 rgba4.s32[0] = tr.s32[3];
00537
00538 rgba1.s32[1] = tg.s32[0];
00539 rgba2.s32[1] = tg.s32[1];
00540 rgba3.s32[1] = tg.s32[2];
00541 rgba4.s32[1] = tg.s32[3];
00542
00543 rgba1.s32[2] = tb.s32[0];
00544 rgba2.s32[2] = tb.s32[1];
00545 rgba3.s32[2] = tb.s32[2];
00546 rgba4.s32[2] = tb.s32[3];
00547
00548 rgba1.s32[3] = ta.s32[0];
00549 rgba2.s32[3] = ta.s32[1];
00550 rgba3.s32[3] = ta.s32[2];
00551 rgba4.s32[3] = ta.s32[3];
00552
00553 *r = rgba1.i;
00554 *g = rgba2.i;
00555 *b = rgba3.i;
00556 *a = rgba4.i;
00557 }
00558
00565 #endif // __SSEPLUS_CONVERT_REF_H__