INNER CODE UNIT · C++

s1_v8

soedinglab/plass · lib/flash/combine_reads.cpp:169

                __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));

                /* Tally mismatched bases.  Subtracting 0x00 and
                 * 0xff is equivalent to adding 0 and 1,
                 * respectively.  */
                num_mismatches_v8 = _mm_sub_epi8(num_mismatches_v8,
                                                 cmpresult);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…