For example:
int main(void) { char array1[16]; memset(array1,0x01,16); char array2[16]; memset(array2,0xff, 16); __m128i a1 = *(__m128i *)array1; __m128i a2 = *(__m128i *)array2; __m128i result = _mm_mask_cvtsepi64_epi32 (a1, 0x02, a2); return 0; }
The result is 0x0101010101010101FFFFFFFF01010101, which should be 0x0000000000000000FFFFFFFF01010101.