Macro vsimd::dispatch

source ·
macro_rules! dispatch {
    (
        name        = {$name:ident},
        signature   = {$vis:vis unsafe fn($($arg_name: ident: $arg_type: ty),*) -> $ret:ty},
        fallback    = {$fallback_fn:path},
        simd        = {$simd_fn:path},
        targets     = {$($target:tt),+},
        fastest     = {$($fastest:tt),*},
    ) => { ... };
    (
        @iter_resolve_static,
        targets     = {$x:tt, $($xs:tt),+},
        args        = {$($arg_name: ident),*},
    ) => { ... };
    (
        @iter_resolve_static,
        targets     = {$x:tt},
        args        = {$($arg_name: ident),*},
    ) => { ... };
    (@resolve_static, "avx2", $($arg_name: ident),*) => { ... };
    (@resolve_static, "sse4.1", $($arg_name: ident),*) => { ... };
    (@resolve_static, "ssse3", $($arg_name: ident),*) => { ... };
    (@resolve_static, "sse2", $($arg_name: ident),*) => { ... };
    (@resolve_static, "neon", $($arg_name: ident),*) => { ... };
    (@resolve_static, "simd128", $($arg_name: ident),*) => { ... };
    (
        @iter_resolve_dynamic,
        targets     = {$x:tt, $($xs:tt),+},
    ) => { ... };
    (
        @iter_resolve_dynamic,
        targets     = {$x:tt},
    ) => { ... };
    (@resolve_dynamic, "avx2") => { ... };
    (@resolve_dynamic, "sse4.1") => { ... };
    (@resolve_dynamic, "ssse3") => { ... };
    (@resolve_dynamic, "sse2") => { ... };
    (@resolve_dynamic, "neon") => { ... };
    (@resolve_dynamic, "simd128") => { ... };
    (
        @iter_compile,
        signature   = {$vis:vis unsafe fn($($arg_name: ident: $arg_type: ty),*) -> $ret:ty},
        simd        = {$simd_fn:path},
        targets     = {$x:tt, $($xs:tt),+},
    ) => { ... };
    (
        @iter_compile,
        signature   = {$vis:vis unsafe fn($($arg_name: ident: $arg_type: ty),*) -> $ret:ty},
        simd        = {$simd_fn:path},
        targets     = {$x:tt},
    ) => { ... };
    (
        @compile,
        signature   = {$vis:vis unsafe fn($($arg_name: ident: $arg_type: ty),*) -> $ret:ty},
        simd        = {$simd_fn:path},
        target      = {"avx2"},
    ) => { ... };
    (
        @compile,
        signature   = {$vis:vis unsafe fn($($arg_name: ident: $arg_type: ty),*) -> $ret:ty},
        simd        = {$simd_fn:path},
        target      = {"sse4.1"},
    ) => { ... };
    (
        @compile,
        signature   = {$vis:vis unsafe fn($($arg_name: ident: $arg_type: ty),*) -> $ret:ty},
        simd        = {$simd_fn:path},
        target      = {"ssse3"},
    ) => { ... };
    (
        @compile,
        signature   = {$vis:vis unsafe fn($($arg_name: ident: $arg_type: ty),*) -> $ret:ty},
        simd        = {$simd_fn:path},
        target      = {"sse2"},
    ) => { ... };
    (
        @compile,
        signature   = {$vis:vis unsafe fn($($arg_name: ident: $arg_type: ty),*) -> $ret:ty},
        simd        = {$simd_fn:path},
        target      = {"neon"},
    ) => { ... };
    (
        @compile,
        signature   = {$vis:vis unsafe fn($($arg_name: ident: $arg_type: ty),*) -> $ret:ty},
        simd        = {$simd_fn:path},
        target      = {"simd128"},
    ) => { ... };
}