pub enum VecTy {
Show 15 variants
M128,
M128i,
M128d,
M256,
M256i,
M256d,
M512,
M512i,
M512d,
M128bh,
M256bh,
M512bh,
M128h,
M256h,
M512h,
}Expand description
Which x86 vector type a Ty::Vector is.
The name is the same in C and in core::arch, which is the whole point:
the generated Rust says ::core::arch::x86_64::__m128i and Rust’s type has
the size, the alignment and the calling convention C’s has.
Variants§
M128
__m128: four float lanes.
M128i
__m128i: sixteen bytes of integer lanes, whatever width.
M128d
__m128d: two double lanes.
M256
__m256: eight float lanes.
M256i
__m256i: thirty-two bytes of integer lanes.
M256d
__m256d: four double lanes.
M512
__m512: sixteen float lanes (AVX-512).
M512i
__m512i: sixty-four bytes of integer lanes.
M512d
__m512d: eight double lanes.
M128bh
__m128bh, __m256bh, __m512bh: bfloat16 lanes (AVX512-BF16). C
only moves them between intrinsics; no scalar __bf16 is needed.
M256bh
See VecTy::M128bh.
M512bh
See VecTy::M128bh.
M128h
__m128h, __m256h, __m512h: half-precision lanes (AVX512-FP16),
opaque in the same way: no _Float16 scalar is needed.
M256h
See VecTy::M128h.
M512h
See VecTy::M128h.