2011-07-18 29 views
3

私の印象は間違いないでしょうが、おそらく巧妙なトリックがありますか?おかげさまで XMMレジスタを使用して128ビット整数演算を行うことはできますか?

+0

私はSSE4が128ビット整数をサポートしていると思います。 – leppie

+0

@leppie:いいえ、それは間違っています - 64ビットの整数演算がいくつかあります(例えば、 'PADDQ'と' PSUBQ')があります。 –

+0

[__int128_t算術はSSEでもGCCでエミュレートされますか?](http://stackoverflow.com/q/16566437/995714)[実用的なBigNum AVX/SSEは可能ですか?](http://stackoverflow.com/q/27923192)/995714) –

答えて

2

直接ではありませんが、128ビット(またはそれ以上)の精度を容易に組み合わせることができる64ビットの算術演算があります。

+1

実際の実装がスカラーバージョンよりも遅くなる可能性があるので、add-with-carryオペレーションは存在しないことに留意してください。 –

+0

@ジャスパー:良い点 - これは実装が簡単ではありますが、ほとんどの現代のx86 CPUに搭載されている2つの64ビットスカラーALUを使用するだけでは性能があまり良くない場合があります。 –

1

xmmレジスタは、8,16,32、および64ビットの整数で算術演算を行うことができます。キャリーフラグは生成されないため、精度を64ビット以上に拡張することはできません。拡張精密数値ライブラリは、OSに応じて32ビットまたは64ビットの汎用レジスタを使用します。

関連する問題