1

セグメンテーション違反なしにSSE命令で処理できるように、データを16バイトに整列させる必要がありますか?私が試したコンパイラは、オプション付きのgcc-msse2です。_mm_cmpgt_epi32大きなint配列を比較するために使用したいと思います。4の倍数の添え字のある位置を除いて、配列のどの位置でも実行できないことがわかりました。

4

1 に答える 1

6

はい、SSEレジスタとの間でデータをロードおよびストアするときは、ロード/ストア命令のアラインされていないバージョン(/など)を使用しない限り、16バイトアラインする必要があります。ただし、通常、これらの不整合なロード/ストア命令を使用するとパフォーマンスが低下するため、通常は常に正しいデータアライメントを確保し、最後の手段として不整合なロード/ストアのみを使用するようにします。_mm_loadu_si128_mm_storeu_si128

于 2012-07-02T17:35:57.353 に答える