Closed
Description
Tested with
With default config parameters, the simd_shuffle16
call is right shifted. This was seen in https://github.com/rust-lang-nursery/stdsimd/blob/f37d6e731a2e7aff51d80853c0c1a710fdd7598e/coresimd/x86/avx2.rs#L2781.
pub unsafe fn _mm256_shufflehi_epi16(a: __m256i, imm8: i32) -> __m256i {
let imm8 = (imm8 & 0xFF) as u8;
let a = a.as_i16x16();
macro_rules! shuffle_done {
($x01:expr, $x23:expr, $x45:expr, $x67:expr) => {
#[cfg_attr(rustfmt, rustfmt_skip)]
simd_shuffle16(a, a, [
0, 1, 2, 3, 4+$x01, 4+$x23, 4+$x45, 4+$x67,
8, 9, 10, 11, 12+$x01, 12+$x23, 12+$x45, 12+$x67
]);
};
}
}
macro_rules! shuffle_done {
($x01:expr, $x23:expr, $x45:expr, $x67:expr) => {
#[cfg_attr(rustfmt, rustfmt_skip)]
- simd_shuffle16(a, a, [
- 0, 1, 2, 3, 4+$x01, 4+$x23, 4+$x45, 4+$x67,
- 8, 9, 10, 11, 12+$x01, 12+$x23, 12+$x45, 12+$x67
- ]);
+ simd_shuffle16(a, a, [
+ 0, 1, 2, 3, 4+$x01, 4+$x23, 4+$x45, 4+$x67,
+ 8, 9, 10, 11, 12+$x01, 12+$x23, 12+$x45, 12+$x67
+ ]);
};
}
}