# _mm256_unpackhi_epi8/16/32/64

Unpacks and interleaves the high-order data elements of the source vector with the high-order data elements in the destination vector. The corresponding Intel® AVX2 instruction is VPUNPCKHBW, VPUNPCKHWD, VPUNPCKHDQ, or VPUNPCKHQDQ.

## Syntax

extern __m256i _mm256_unpackhi_epi8(__m256i a, __m256i b);

extern __m256i _mm256_unpackhi_epi16(__m256i a, __m256i b);

extern __m256i _mm256_unpackhi_epi32(__m256i a, __m256i b);

extern __m256i _mm256_unpackhi_epi64(__m256i a, __m256i b);

## Arguments

a | integer source operand used for the operation
b | integer source operand used for the operation

## Description

Unpacks and interleaves the high-order signed or unsigned data elements (bytes, words, doublewords, and quadwords) of the source vector and the high-order signed or unsigned data elements (bytes, words, doublewords, and quadwords) in the destination vector. The low-order data elements are ignored.

## Returns

Result of the interleave operation

Parent topic: Intrinsics for Pack/Unpack Operations