__m64_extr、__m64_extru
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]
Microsoft 固有の仕様 →
は抽出 extr() 命令を生成します。
__m64 __m64_extr(
__m64 value,
const int pos,
const int len
);
__m64 __m64_extru(
__m64 value,
const int pos,
const int len
);
パラメーター
[入力] value
変数のビットを抽出します。[入力] pos
1 番目の位置を抽出するにかみました。 0 から 63 まで有効な値。[入力] len
抽出するビット数。 1 から 64 まで有効な値。
必要条件
組み込み |
アーキテクチャ |
---|---|
__m64_extr |
IPF |
__m64_extru |
IPF |
ヘッダー ファイル <intrin.h>
解説
__m64_extr符号付き extr フォーム () を出力し**__m64_extru** は符号なしのフォーム extr.u() を生成します。 命令は両方のビット pos で抽出 (最下位ビット) からカウントを開始する len ビット。 これらのビットは結果の len の最下位のビットに配置されます。 結果は命令の署名された形式で拡張する符号と未署名のフォームに拡張される場合があります。 抽出するための最も高いビットに符号を決定します。
使用例
// extr.cpp
// processor: IPF
#include <stdio.h>
#include <intrin.h>
#pragma intrinsic(__m64_extr, __m64_extru)
int main()
{
__m64 m, n;
m.m64_i64 = 0x8800ff;
// The signed version does a sign extension based on the MSB
// of the extracted portion.
n = __m64_extr(m, 16, 8);
printf_s("0x%I64x\n", n.m64_i64);
// The unsigned version does a zero extension.
n = __m64_extru(m, 16, 8);
printf_s("0x%I64x\n", n.m64_i64);
return 1;
}