Function core::arch::x86::_mm_cmpestri
1.27.0 · source · pub unsafe fn _mm_cmpestri(
a: __m128i,
la: i32,
b: __m128i,
lb: i32,
const IMM8: i32
) -> i32
Available on (x86 or x86-64) and target feature
sse4.2
and x86 only.Expand description
使用 IMM8
中的控件将包装的字符串 a
和 b
与长度 la
和 lb
进行比较,并返回生成的索引。
与 _mm_cmpistri
相似,但 _mm_cmpistri
隐式确定 a
和 b
的长度。
控制方式
IMM8
指定的控件可以是以下一种或多种。
数据大小和签名
比较选项
结果极性
返回位
Examples
#[cfg(target_arch = "x86")]
use std::arch::x86::*;
#[cfg(target_arch = "x86_64")]
use std::arch::x86_64::*;
// 我们要在其中找到子字符串的字符串
let haystack = b"Split \r\n\t line ";
// 我们要搜索的字符串带有一些我们不想搜索的额外字节。
let needle = b"\r\n\t ignore this ";
let a = _mm_loadu_si128(needle.as_ptr() as *const _);
let b = _mm_loadu_si128(haystack.as_ptr() as *const _);
// Note: 我们明确指定我们只想搜索 `b` 的前 3 个字符 a.
let idx = _mm_cmpestri(a, 3, b, 15, _SIDD_CMP_EQUAL_ORDERED);
assert_eq!(idx, 6);
Run