@@ -10681,7 +10681,7 @@ pub fn _mm_cvtepi16_epi8(a: __m128i) -> __m128i {
1068110681pub fn _mm_mask_cvtepi16_epi8(src: __m128i, k: __mmask8, a: __m128i) -> __m128i {
1068210682 unsafe {
1068310683 let convert = _mm_cvtepi16_epi8(a).as_i8x16();
10684- let k: __mmask16 = 0b11111111_11111111 & k as __mmask16;
10684+ let k: __mmask16 = 0b11111111_00000000 | k as __mmask16;
1068510685 transmute(simd_select_bitmask(k, convert, src.as_i8x16()))
1068610686 }
1068710687}
@@ -20559,6 +20559,12 @@ mod tests {
2055920559 let r = _mm_mask_cvtepi16_epi8(src, 0b11111111, a);
2056020560 let e = _mm_set_epi8(0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2);
2056120561 assert_eq_m128i(r, e);
20562+
20563+ let src = _mm_set_epi8(1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1);
20564+ let a = _mm_set1_epi16(3);
20565+ let r = _mm_mask_cvtepi16_epi8(src, 0b11011110, a);
20566+ let e = _mm_set_epi8(0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 1, 3, 3);
20567+ assert_eq_m128i(r, e);
2056220568 }
2056320569
2056420570 #[simd_test(enable = "avx512bw,avx512vl")]
0 commit comments