__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;
}
          
        

参照

Reference

__m64

コンパイラ組み込み関数。