Swizzle — SIMD 요소 재배열 트레잇

Swizzle — SIMD 요소 재배열 트레잇

Swizzle는 SIMD 벡터의 요소들을 재배열(swizzle)하는 트레잇이에요. nightly 전용 실험 API(portable_simd, #86656)이에요.

출처: Rust 공식 문서

본문

pub trait Swizzle<const N: usize> {
    const INDEX: [usize; N];

    // 제공 메서드
    fn swizzle<T, const M: usize>(vector: Simd<T, M>) -> Simd<T, N>
    where
        T: SimdElement,
    { ... }

    fn concat_swizzle<T, const M: usize>(a: Simd<T, M>, b: Simd<T, M>) -> Simd<T, N>
    where
        T: SimdElement,
    { ... }
}

연관 상수

// 재배열 인덱스 배열
const INDEX: [usize; N];

INDEX가 지정한 인덱스 순서로 요소를 뽑아 새 벡터를 만들어요. 두 벡터를 이어 붙인 뒤 재배열하는 concat_swizzle도 있어요.

더 알아보기 (Learn more)