次の方法で共有


_mm_stream_ss

Microsoft 固有の仕様

キャッシュを汚染することなく、メモリの場所に 32 ビット データを書き込みます。

構文

void _mm_stream_ss(
   float * Destination,
   __m128 Source
);

パラメーター

宛先
[out] ソース データが書き込まれる場所を指すポインター。

ソース
[in] 下位 32 ビットに書き込まれる float 値を含む 128 ビットの数値。

戻り値

ありません。

必要条件

Intrinsic アーキテクチャ
_mm_stream_ss SSE4a

ヘッダー ファイル<intrin.h>

解説

組み込みでは movntss 命令が生成されます。 この命令のハードウェア サポートを判断するには、InfoType=0x80000001__cpuid 組み込みを呼び出し、CPUInfo[2] (ECX) のビット 6 を確認します。 命令がサポートされている場合、このビットは 1 になり、それ以外の場合は 0 になります。

_mm_stream_ss 組み込みが使用されているコードを movntss 命令がサポートされないハードウェアで実行すると、結果は予測できません。

// 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 年、Advanced Micro Devices, Inc.、無断転載を禁じます。 Advanced Micro Devices, Inc. の許可を得て再現

関連項目

_mm_stream_sd
_mm_stream_ps
_mm_store_ss
_mm_sfence
コンパイラの組み込み