__m64_mux1

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]

Microsoft 固有の仕様 →

命令はmux1 の 2 番目のパラメーターで指定される特定のパターンのバイトを配置するために使用される mux 命令のバイトのフォームを生成します。

__m64 __m64_mux1( 
   __m64 source, 
   const int permutation 
);

パラメーター

  • [入力] source
    置換操作のソース データ。

  • [入力] permutation
    結果のソース バイトの置換を指定します。

必要条件

組み込み

アーキテクチャ

__m64_mux1

IPF

ヘッダー ファイル <intrin.h>

解説

使用可能なパターンを次の表に指定されます。

置換

演算

Description

0x0

@brcst

最下位バイトに結果のすべてのバイト数をコピーします。

0x8

@mix

ソースの 2 個の半分ミックスの操作を実行します。

0x9

@shuf

ソースの 2 個の半分を簡単に操作を実行します。

0xA

@alt

ソースの 2 個の半分の変更操作を実行します。

0xB

@rev

バイトの順序を反転させる。

使用例

// mux1.cpp
// processor: IPF
#include <stdio.h>
#include <intrin.h>
#include <memory.h>

#pragma intrinsic(__m64_mux1)

void m64tochararray(__m64 m64, char* c)
{
    for (int j = 0; j < 8; j++)
        c[j] = m64.m64_i8[j];
}

void chararraytom64(const char* c, __m64* pm64)
{
    for (int j = 0; j < 8; j++)
        pm64->m64_i8[j] = c[j];
}

int main()
{
    char s1[9] = "01234567";
    char s2[9];
    __m64 m, result;

    printf_s("Source string:          %s\n", s1);

    memset(s2, 0, 9);
    chararraytom64(s1, &m);  
    result = __m64_mux1(m, 0); // @brcst form
    m64tochararray(result, s2);     
    printf_s("mux1 @brcst (0x0) form: %s\n", s2);

    memset(s2, 0, 9);
    chararraytom64(s1, &m);  
    result = __m64_mux1(m, 8); // @mix form
    m64tochararray(result, s2);     
    printf_s("mux1 @mix   (0x8) form: %s\n", s2);

    memset(s2, 0, 9);
    chararraytom64(s1, &m);  
    result = __m64_mux1(m, 9); // @shuf form
    m64tochararray(result, s2);     
    printf_s("mux1 @shuf  (0x9) form: %s\n", s2);

    memset(s2, 0, 9);
    chararraytom64(s1, &m);  
    result = __m64_mux1(m, 0xA); // @alt form
    m64tochararray(result, s2);     
    printf_s("mux1 @alt   (0xA) form: %s\n", s2);

    memset(s2, 0, 9);
    chararraytom64(s1, &m);  
    result = __m64_mux1(m, 0xB); // @rev form
    m64tochararray(result, s2);     
    printf_s("mux1 @rev   (0xB) form: %s\n", s2);
}
          
        

参照

Reference

__m64

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