10

LinuxとMacでは、次のことができます

__m128 x;
__m128i n = (__m128i)x;

この操作は、x のビット表現を n にコピーし、SSE 浮動小数点レジスタで動作するさまざまな分岐のない条件付き操作を実装するのに役立ちます。MSVC 11 では、

eikonal-generated.h(1228) : error C2440: 'type cast' : cannot convert from '__m128' to '__m128i'; No constructor could take the source type, or constructor overload resolution was ambiguous

Microsoft Visual Studio で同等のものは何ですか?

数値的に意味のある変換を行う標準の float から int への変換関数 _mm_cvtepi32_ps を要求しているわけではないことに注意してください。

4

1 に答える 1

18

MSVCでは、次のものを使用する必要があります。

_mm_castsi128_ps__m128iからビット単位のキャスト__m128

_mm_castps_si128__m128からビット単位のキャスト__m128i

のコンパイラ(gcc、ICCなど)の場合は、通常のキャストを使用できます。

于 2012-11-29T19:01:12.253 に答える