size_t m = 0;
__m128i ucase = _mm_load_si128((const __m128i *) scmemcmp_uppercase);
- __m128i nulls = _mm_setzero_si128();
__m128i uplow = _mm_set1_epi8(0x20);
do {
mask = _mm_cmpestrm(ucase, 2, b2, len, _SIDD_CMP_RANGES | _SIDD_UNIT_MASK);
/* Next we use that mask to create a new: this one has 0x20 for
* the uppercase chars, 00 for all other. */
- mask = _mm_blendv_epi8(nulls, uplow, mask);
+ mask = _mm_and_si128(uplow, mask);
/* finally, merge the mask and the buffer converting the
* uppercase to lowercase */
b2 = _mm_add_epi8(b2, mask);
/* setup registers for upper to lower conversion */
upper1 = _mm_set1_epi8(UPPER_LOW);
upper2 = _mm_set1_epi8(UPPER_HIGH);
- nulls = _mm_setzero_si128();
uplow = _mm_set1_epi8(0x20);
do {
mask1 = _mm_cmpeq_epi8(mask1, mask2);
/* Next we use that mask to create a new: this one has 0x20 for
* the uppercase chars, 00 for all other. */
- mask1 = _mm_blendv_epi8(nulls, uplow, mask1);
+ mask1 = _mm_and_si128(uplow, mask1);
/* add to b2, converting uppercase to lowercase */
b2 = _mm_add_epi8(b2, mask1);