Compartilhar via


_mm_stream_ss

Seção específica da Microsoft

Grava dados de 32 bits em um local de memória sem poluir os caches.

Sintaxe

void _mm_stream_ss(
   float * Destination,
   __m128 Source
);

Parâmetros

Destino
[in] Um ponteiro para o local onde os dados de origem são gravados.

Origem
[in] Um número de 128 bits que contém o valor float a ser gravado nos 32 bits inferiores dele.

Valor retornado

Nenhum.

Requisitos

Intrinsic Arquitetura
_mm_stream_ss SSE4a

Arquivo de cabeçalho<intrin.h>

Comentários

O intrínseco gera a instrução movntss. Para determinar o suporte de hardware para esta instrução, chame o intrínseco __cpuid com InfoType=0x80000001 e verifique o bit 6 de CPUInfo[2] (ECX). Esse bit será 1 quando a instrução for compatível e, caso contrário, 0.

Se você executar o código que usa o intrínseco _mm_stream_ss em hardware que não dá suporte à instrução movntss, os resultados serão imprevisíveis.

Exemplo

// 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

Fim da seção específica da Microsoft

Partes com Copyright 2007 da Advanced Micro Devices, Inc. Todos os direitos reservados. Reproduzido com permissão da Advanced Micro Devices, Inc.

Confira também

_mm_stream_sd
_mm_stream_ps
_mm_store_ss
_mm_sfence
Intrínsecos do compilador