• 19.1
  • 12/16/2019
  • Public Content
Contents

_mm256_permutevar_pd, _mm_permutevar_pd

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

Syntax

extern __m256d _mm256_permutevar_pd(__m256d m1, __m256i control);
extern __m128d _mm_permutevar_pd(__m128d m1, __m128i control);
Arguments
m1
a 256-bit or 128-bit float64 vector
control
a vector with 1-bit control fields, one for each corresponding element of the source vector
  • for the 256-bit
    m1
    source vector this
    control
    vector contains four 1-bit control fields in the low 4 bits of the immediate
  • for the 128-bit
    m1
    source vector this
    control
    vector contains two 1-bit control fields in the low 2 bits of the immediate
Description
Permutes double-precision floating-point values in the source vector,
m1
, according to the the 1-bit control fields in the low bytes of corresponding elements of a shuffle control. The result is stored in a destination vector.
Returns
A 256-bit or 128-bit float64 vector with permuted values.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804