_mm_cvttsd_si64x
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]
Microsoft 固有の仕様 →
パックされた double 型構造の最初の二つを受け取り64 ビット整数に変換しその結果を返す 64 ビット整数 (cvttsd2si) 命令に切り捨てスカラー倍精度浮動小数点値に変換 x64 によって拡張されたバージョンを生成します。
__int64 _mm_cvttsd_si64x(
__m128d value
);
パラメーター
- [入力] value
__m128d を含む構造体の各倍精度浮動小数点値。
戻り値
64 ビットの整数への最初の変換の結果。
必要条件
組み込み |
アーキテクチャ |
---|---|
_mm_cvttsd_si64x |
AMD64 |
ヘッダー ファイル <intrin.h>
解説
関数は _mm_cvtsd_si64x と不正な変換がゼロに向かって切り詰めが異なります。 結果がオーバーフローすると値 - 9223372036854775808 (0x8000000000000000 は) が返されます。 __m128d の構造は XMM レジスタを表すためから XMM 命令によって生成されるデータの移動はシステム メモリに登録します。
このルーチンは組み込みとしてのみ使用できます。
使用例
// _mm_cvttsd_si64x.cpp
// processor: x64
#include <intrin.h>
#include <stdio.h>
#pragma intrinsic(_mm_cvttsd_si64x)
int main()
{
__m128d d;
__int64 b;
double adbl[2] = { 101.5, 200.5 };
// store the double values into d
// (moves data into the XMM registers)
d = _mm_loadu_pd (adbl);
// Extract the first element of d
b = _mm_cvttsd_si64x(d);
printf_s("%I64d\n", b );
}