Struct core::arch::x86_64::__m128i 1.27.0[−][src]
#[repr(simd)]pub struct __m128i(_, _);This is supported on x86-64 only.
Expand description
128 位宽的整数 vector 类型,特定于 x86
此类型与 Intel 定义的 __m128i 类型相同,代表一个 128 位 SIMD 寄存器。
这种类型的用法通常对应于 x86/x86_64 的 sse 和 up 目标特性。
在内部,此类型可以被视为:
i8x16- 十六个i8变量包装在一起i16x8- 八个i16变量包装在一起i32x4- 四个i32变量包装在一起i64x2- 两个i64变量包装在一起
(以及未签名的版本)。 每个内部函数可能会以不同的方式解释内部位,请查看内部函数的文档以了解它是如何使用的。
请注意,这意味着 __m128i 的实例通常仅表示一个 “bag of bits”,该 “bag of bits” 留待使用时进行解释。
大多数使用 __m128i 的内部函数都以 _mm_ 作为前缀,并且整数类型往往对应于像 “epi8” 或 “epi32” 这样的后缀。
Examples
#[cfg(target_arch = "x86")]
use std::arch::x86::*;
#[cfg(target_arch = "x86_64")]
use std::arch::x86_64::*;
let all_bytes_zero = _mm_setzero_si128();
let all_bytes_one = _mm_set1_epi8(1);
let four_i32 = _mm_set_epi32(1, 2, 3, 4);Run