私はインライン・プログラムを使用して私のプログラムを最適化しています。しかし、今では、結果を浮動小数点値と比較するために、__m128ベクトルにある4つの要素を合計したいと考えています。たとえば、私はこの128ビットのベクトルを持っているとしましょう:{a、b c、d}。 + b + c + dとeをどのように比較できますか?eはfloat型です。_m128ベクトルの4つの32ビット要素の合計
SSE2またはSSE3は、これを簡単に行う方法を提供していますか、または私を助けるコードスニペットがありますか?ありがとう!
2つのHADDPSでSSE3で実行できますが、それほど高速ではありません。このベクターはどこから来たのですか?水平方向の加算を避けることができるように計算するものは何でも構いませんか? – harold
私は(a * a + b * b)と4.0を比較しなければなりません。これを行うために、vec = {a、b、UNUSED、UNUSED}などの__m128ベクタにaとbを格納しました。 square = _mm_mul_ps(vec、vec)を実行して{a²、b²、X、X}を取得します。そして今、私は²+b²を得る方法を探していますので、それを4.0と比較することができます。 それは確かに最適ではないので、アドバイスがあれば、それは非常に高く評価されるでしょう:) – Merkil
SSE4は許可されていますか? – harold