rust/tests/target/issue-3105.rs

49 lines
1.6 KiB
Rust

// rustfmt-wrap_comments: true
/// Although the indentation of the skipped method is off, it shouldn't be
/// changed.
///
/// ```
/// 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
/// ]);
/// };
/// }
/// }
/// ```
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
]);
};
}
}
/// The skipped method shouldn't right-shift
pub unsafe fn _mm256_shufflehi_epi32(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_shuffle32(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
]);
};
}
}