Skip to content

skipped code in macro defintion is right shifted #3105

Closed
@scampi

Description

@scampi

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
+                        ]);
         };
     }
 }

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions