缓存为流 SIMD 扩展支持 2 个整数运算
[本文档仅供预览,并可能在以后的版本中更改。 Blank topics are included as placeholders.]
Microsoft 专用
有关使用本主题中的代码示例的语法的说明,请参见 使用流 SIMD 扩展的浮点内部。
将内部使用 __m128、 __m128i和 __m128d 数据类型,在 Itanium 处理器家族 (IPF) (ipf) 处理器不支持。 使用 __m64 数据类型的任何 SSE2 内部在 x64 处理器不支持。
emmintrin.h 头文件包含 SSE2 指令内部函数说明。
void _mm_stream_si128(__m128i *p, __m128i a)
MOVNTDQ
在 a 将数据存储到该地址 p ,而无需污染缓存。 如果包含地址 p 的缓存行已在缓存,缓存更新。 地址 p 必须是对齐的 16 字节。
*p := a
void _mm_stream_si32(int *p, int a)
MOVNTI
在 a 将数据存储到该地址 p ,而无需污染缓存。 如果包含地址 p 的缓存行已在缓存,缓存更新。
*p := a
void _mm_clflush(void const*p)
CLFLUSH
包含 p 的缓存行从以及字段的所有缓存刷新该无效。
void _mm_lfence(void)
LFENCE
确保按过程顺序,前面,加载范围命令的每加载订单在跟踪范围按程序序列的所有加载订单之前是全局可见的。
void _mm_mfence(void)
MFENCE
确保按过程顺序,前面,内存范围命令的每个内存存取在跟踪范围按程序序列的所有内存命令前是全局可见的。
void _mm_pause(void)
PAUSE
下命令的执行延迟执行特定的时间。 命令不修改体系结构状态。 此内部提供尤其显着提高性能。