Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
セグメンテーション違反なしにSSE命令で処理できるように、データを16バイトに整列させる必要がありますか?私が試したコンパイラは、オプション付きのgcc-msse2です。_mm_cmpgt_epi32大きなint配列を比較するために使用したいと思います。4の倍数の添え字のある位置を除いて、配列のどの位置でも実行できないことがわかりました。
-msse2
_mm_cmpgt_epi32
はい、SSEレジスタとの間でデータをロードおよびストアするときは、ロード/ストア命令のアラインされていないバージョン(/など)を使用しない限り、16バイトアラインする必要があります。ただし、通常、これらの不整合なロード/ストア命令を使用するとパフォーマンスが低下するため、通常は常に正しいデータアライメントを確保し、最後の手段として不整合なロード/ストアのみを使用するようにします。_mm_loadu_si128_mm_storeu_si128
_mm_loadu_si128
_mm_storeu_si128