C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

SSEやAVXにおけるデータのロードについて

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■87169 / inTopicNo.1)  SSEやAVXにおけるデータのロードについて
  
□投稿者/ 雲 (1回)-(2018/04/18(Wed) 22:01:45)

分類:[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の存在意義がわからなくなってきました。この関数は必要なのだろうか?
引用返信 編集キー/
■87170 / inTopicNo.2)  Re[1]: SSEやAVXにおけるデータのロードについて
□投稿者/ 774RR (605回)-(2018/04/19(Thu) 08:21:12)
それはコンパイル後のオブジェクトファイル(を読むのは大変なのでアセンブリコード)を読んでのご意見?

cl -EHsc -FAsc -c emmtest.cpp
とすると emmtest.cod というファイルができるので読んでみるべし。
あるいはプロジェクトのプロパティ→ C/C++ 出力ファイル→アセンブリの出力 /FAcs に変更して、
各オブジェクトファイルと同じところに出力される emmtest.cod ファイルを読む。



引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ