Lines 18-34
Link Here
|
18 |
|
18 |
|
19 |
#define TOB(x) ((x)*4*0x01010101 + 0x03020100) /* ..or not TOB */ |
19 |
#define TOB(x) ((x)*4*0x01010101 + 0x03020100) /* ..or not TOB */ |
20 |
|
20 |
|
21 |
/* Basic VPPERM emulation, for testing purposes */ |
|
|
22 |
/*static __m128i _mm_perm_epi8(const __m128i src1, const __m128i src2, const __m128i sel) |
23 |
{ |
24 |
const __m128i sixteen = _mm_set1_epi8(16); |
25 |
const __m128i t0 = _mm_shuffle_epi8(src1, sel); |
26 |
const __m128i s1 = _mm_shuffle_epi8(src2, _mm_sub_epi8(sel, sixteen)); |
27 |
const __m128i mask = _mm_or_si128(_mm_cmpeq_epi8(sel, sixteen), |
28 |
_mm_cmpgt_epi8(sel, sixteen)); /* (>=16) = 0xff : 00 */ |
29 |
return _mm_blendv_epi8(t0, s1, mask); |
30 |
}*/ |
31 |
|
32 |
#define LOAD_MSG_0_1(buf) \ |
21 |
#define LOAD_MSG_0_1(buf) \ |
33 |
buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) ); |
22 |
buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) ); |
34 |
|
23 |
|