_mm_stream_ss

Microsoft 专用

将 32 位数据写入内存位置,而不会污染缓存。

语法

void _mm_stream_ss(
   float * Destination,
   __m128 Source
);

参数

目标
[out] 指向写入源数据的位置的指针。

Source
[in] 一个 128 位数字,其中包含要在其最后 32 位中写入的 float 值。

返回值

无。

要求

Intrinsic 体系结构
_mm_stream_ss SSE4a

头文件<intrin.h>

备注

内部函数生成 movntss 指令。 若要确定此指令的硬件支持,请调用 InfoType=0x80000001__cpuid 内部函数,并检查 CPUInfo[2] (ECX) 的第 6 位。 如果支持该指令,则此位为 1,否则为 0。

如果在不支持 movntss 指令的硬件上运行使用 _mm_stream_ss 内部函数的代码,则结果是不可预测的。

示例

// Compile this sample with: /EHsc
#include <iostream>
#include <intrin.h>
using namespace std;

int main()
{
    __m128 vals;
    float f[4];

    f[0] = -1.;
    f[1] = -2.;
    f[2] = -3.;
    f[3] = -4.;
    vals.m128_f32[0] = 0.;
    vals.m128_f32[1] = 1.;
    vals.m128_f32[2] = 2.;
    vals.m128_f32[3] = 3.;
    _mm_stream_ss(&f[3], vals);
    cout << "f[0] = " << f[0] << ", f[1] = " << f[1] << endl;
    cout << "f[2] = " << f[2] << ", f[3] = " << f[3] << endl;
}
f[0] = -1, f[1] = -2
f[2] = -3, f[3] = 3

结束 Microsoft 专用

超威半导体公司保留 2007 部分版权。 经超威半导体公司许可转载

另请参阅

_mm_stream_sd
_mm_stream_ps
_mm_store_ss
_mm_sfence
编译器内部函数