Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 12/16/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

<span class='option'>_mm256_permute_pd, _mm_permute_pd</span>

Permutes 256-bit or 128-bit float64 values into a 256-bit or 128-bit destination vector. The corresponding Intel® AVX instruction is VPERMILPD.

Syntax

extern __m256d _mm256_permute_pd(__m256d m1, int control);

extern __m128d _mm_permute_pd(__m128d m1, int control);

Arguments

m1

a 256-bit or 128-bit float64 vector

control

an integer specified as an 8-bit immediate;

  • for the 256-bit m1 vector this integer contains four 1-bit control fields in the low 4 bits of the immediate
  • for the 128-bit m1 vector this integer contains two 1-bit control fields in the low 2 bits of the immediate

Description

The _mm256_permute_pd intrinsic permutes double-precision floating point elements (float64 elements) in the 256-bit source vector m1, according to a specified 1-bit control field, control, and stores the result in a destination vector.

The _mm_permute_pd intrinsic permutes double-precision floating point elements (float64 elements) in the 128-bit source vector m1, according to a specified 1-bit control field, control, and stores the result in a destination vector.

Returns

A 256-bit or 128-bit float64 vector with permuted values.