INNER CODE UNIT · C++
todo
soedinglab/plass · lib/flash/combine_reads.cpp:163
int todo = min(len, 255 * 16) & ~0xf;
len -= todo;
do {
/* Load 16 bases */
__m128i s1_v8 = _mm_loadu_si128((const __m128i *)seq_1);
__m128i s2_v8 = _mm_loadu_si128((const __m128i *)seq_2);
/* Load 16 quality scores */
__m128i q1_v8 = _mm_loadu_si128((const __m128i *)qual_1);
__m128i q2_v8 = _mm_loadu_si128((const __m128i *)qual_2);
/* Compare bases with each other and negate the
* result. This will produce 0xff in bytes
* where the bases differ and 0x00 in bytes
* where the bases were the same. */
__m128i cmpresult = simde_x_mm_not_si128(_mm_cmpeq_epi8(s1_v8, s2_v8));