|
分類:[C/C++]
SSE(SSE2,SSE3など)を使って高速化を試していていろいろとHPを見ていたらデータのロードがわからなくなってきました。 インラインアセンブラを使わないのでC言語でAPIを叩いているのだけども、
__m128i x0 = _mm_lddqu_si128( 初期データ) __m128i x1 = _mm_lddqu_si128( 初期データ)
を使ってx0, x1 などにデータをロードするものだと思っていたら、
x0.m128i_u8[0] = 1; x0.m128i_i8[0] = 32; x0.m128i_u8[1] = 1; x0.m128i_i8[1] = -32;
のような形で__m128i を初期化できることがわかりました。
これで初期化が出来るのならば、なにも_mm_lddqu_si128なんて関数を用意する必要も無いように思います。
そういう意味で、_mm_lddqu_si128の存在意義がわからなくなってきました。この関数は必要なのだろうか?
|