インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

アンパック演算子

A の上位半分から取り出した 64 ビット値を、B の上位半分から取り出した 64 ビット値とインターリーブします。

I64vec2 unpack_high(I64vec2 A, I64vec2 B);

Is64vec2 unpack_high(Is64vec2 A, Is64vec2 B);

Iu64vec2 unpack_high(Iu64vec2 A, Iu64vec2 B);

R0 = A1;
R1 = B1;

対応する組込み関数: _mm_unpackhi_epi64

A の上位半分から取り出した 2 つの 32 ビット値を、B の上位半分から取り出した 2 つの 32 ビット値とインターリーブします。

I32vec4 unpack_high(I32vec4 A, I32vec4 B);

Is32vec4 unpack_high(Is32vec4 A, Is32vec4 B);

Iu32vec4 unpack_high(Iu32vec4 A, Iu32vec4 B);

R0 = A1;
R1 = B1;
R2 = A2;
R3 = B2;

対応する組込み関数: _mm_unpackhi_epi32

A の上位半分から取り出した 32 ビット値を、B の上位半分から取り出した 32 ビット値とインターリーブします。

I32vec2 unpack_high(I32vec2 A, I32vec2 B);

Is32vec2 unpack_high(Is32vec2 A, Is32vec2 B);

Iu32vec2 unpack_high(Iu32vec2 A, Iu32vec2 B);

R0 = A1;
R1 = B1;

対応する組込み関数: _mm_unpackhi_pi32

A の上位半分から取り出した 4 つの 16 ビット値を、B の上位半分から取り出した 2 つの 16 ビット値とインターリーブします。

I16vec8 unpack_high(I16vec8 A, I16vec8 B);

Is16vec8 unpack_high(Is16vec8 A, Is16vec8 B);

Iu16vec8 unpack_high(Iu16vec8 A, Iu16vec8 B);

R0 = A2;
R1 = B2;
R2 = A3;
R3 = B3;

対応する組込み関数: _mm_unpackhi_epi16

A の上位半分から取り出した 2 つの 16 ビット値を、B の上位半分から取り出した 2 つの 16 ビット値とインターリーブします。

I16vec4 unpack_high(I16vec4 A, I16vec4 B);

Is16vec4 unpack_high(Is16vec4 A, Is16vec4 B);

Iu16vec4 unpack_high(Iu16vec4 A, Iu16vec4 B);

R0 = A2;R1 = B2;
R2 = A3;R3 = B3;

対応する組込み関数: _mm_unpackhi_pi16

A の上位半分から取り出した 4 つの 8 ビット値を、B の上位半分から取り出した 4 つの 8 ビット値とインターリーブします。

I8vec8 unpack_high(I8vec8 A, I8vec8 B);

Is8vec8 unpack_high(Is8vec8 A, I8vec8 B);

Iu8vec8 unpack_high(Iu8vec8 A, I8vec8 B);

R0 = A4;
R1 = B4;
R2 = A5;
R3 = B5;
R4 = A6;
R5 = B6;
R6 = A7;
R7 = B7;

対応する組込み関数: _mm_unpackhi_pi8

A の上位半分から取り出した 16 の 8 ビット値を、B の上位半分から取り出した 4 つの 8 ビット値とインターリーブします。

I8vec16 unpack_high(I8vec16 A, I8vec16 B);

Is8vec16 unpack_high(Is8vec16 A, I8vec16 B);

Iu8vec16 unpack_high(Iu8vec16 A, I8vec16 B);

R0 = A8;
R1 = B8;
R2 = A9;
R3 = B9;
R4 = A10;
R5 = B10;
R6 = A11;
R7 = B11;
R8 = A12;
R8 = B12;
R2 = A13;
R3 = B13;
R4 = A14;
R5 = B14;
R6 = A15;
R7 = B15;

対応する組込み関数: _mm_unpackhi_epi16

A の下位半分から取り出した 32 ビット値を、B の下位半分から取り出した 32 ビット値とインターリーブします。

R0 = A0;
R1 = B0;

対応する組込み関数: _mm_unpacklo_epi32

A の下位半分から取り出した 64 ビット値を、B の下位半分から取り出した 64 ビット値とインターリーブします。

I64vec2 unpack_low(I64vec2 A, I64vec2 B);

Is64vec2 unpack_low(Is64vec2 A, Is64vec2 B);

Iu64vec2 unpack_low(Iu64vec2 A, Iu64vec2 B);

R0 = A0;
R1 = B0;
R2 = A1;
R3 = B1;

対応する組込み関数: _mm_unpacklo_epi32

A の下位半分から取り出した 2 つの 32 ビット値を、B の下位半分から取り出した 2 つの 32 ビット値とインターリーブします。

I32vec4 unpack_low(I32vec4 A, I32vec4 B);

Is32vec4 unpack_low(Is32vec4 A, Is32vec4 B);

Iu32vec4 unpack_low(Iu32vec4 A, Iu32vec4 B);

R0 = A0;
R1 = B0;
R2 = A1;
R3 = B1;

対応する組込み関数: _mm_unpacklo_epi32

A の下位半分から取り出した 32 ビット値を、B の下位半分から取り出した 32 ビット値とインターリーブします。

I32vec2 unpack_low(I32vec2 A, I32vec2 B);

Is32vec2 unpack_low(Is32vec2 A, Is32vec2 B);

Iu32vec2 unpack_low(Iu32vec2 A, Iu32vec2 B);

R0 = A0;
R1 = B0;

対応する組込み関数: _mm_unpacklo_pi32

A の下位半分から取り出した 2 つの 16 ビット値を、B の下位半分から取り出した 2 つの 16 ビット値とインターリーブします。

I16vec8 unpack_low(I16vec8 A, I16vec8 B);

Is16vec8 unpack_low(Is16vec8 A, Is16vec8 B);

Iu16vec8 unpack_low(Iu16vec8 A, Iu16vec8 B);

R0 = A0;
R1 = B0;
R2 = A1;
R3 = B1;
R4 = A2;
R5 = B2;
R6 = A3;
R7 = B3;

対応する組込み関数: _mm_unpacklo_epi16

A の下位半分から取り出した 2 つの 16 ビット値を、B の下位半分から取り出した 2 つの 16 ビット値とインターリーブします。

I16vec4 unpack_low(I16vec4 A, I16vec4 B);

Is16vec4 unpack_low(Is16vec4 A, Is16vec4 B);

Iu16vec4 unpack_low(Iu16vec4 A, Iu16vec4 B);

R0 = A0;
R1 = B0;
R2 = A1;
R3 = B1;

対応する組込み関数: _mm_unpacklo_pi16

A の下位半分から取り出した 4 つの 8 ビット値を、B の下位半分から取り出した 4 つの 8 ビット値とインターリーブします。

I8vec16 unpack_low(I8vec16 A, I8vec16 B);

Is8vec16 unpack_low(Is8vec16 A, Is8vec16 B);

Iu8vec16 unpack_low(Iu8vec16 A, Iu8vec16 B);

R0 = A0;
R1 = B0;
R2 = A1;
R3 = B1;
R4 = A2;
R5 = B2;
R6 = A3;
R7 = B3;
R8 = A4;
R9 = B4;
R10 = A5;
R11 = B5;
R12 = A6;
R13 = B6;
R14 = A7;
R15 = B7;

対応する組込み関数: _mm_unpacklo_epi8

A の下位半分から取り出した 4 つの 8 ビット値を、B の下位半分から取り出した 4 つの 8 ビット値とインターリーブします。

I8vec8 unpack_low(I8vec8 A, I8vec8 B);

Is8vec8 unpack_low(Is8vec8 A, Is8vec8 B);

Iu8vec8 unpack_low(Iu8vec8 A, Iu8vec8 B);

R0 = A0;
R1 = B0;
R2 = A1;
R3 = B1;
R4 = A2;
R5 = B2;
R6 = A3;
R7 = B3;

対応する組込み関数: _mm_unpacklo_pi8