Developer Guide and Reference

Contents

_mm256_permute_ps, _mm_permute_ps

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

Syntax

extern __m256 _mm256_permute_ps(__m256 m1, int control);
extern __m128 _mm_permute_ps(__m128 m1, int control);
Arguments
m1
a 256-bit or 128-bit float32 vector
control
an integer specified as an 8-bit immediate;
  • for the 256-bit
    m1
    vector this integer contains four 2-bit control fields in the low 8 bits of the immediate
  • for the 128-bit
    m1
    vector this integer contains two 2-bit control fields in the low 4 bits of the immediate
Description
The
_mm256_permute_ps
intrinsic permutes single-precision floating point elements (float32 elements) in the 256-bit source vector
m1
, according to a specified 2-bit control field,
control
, and stores the result in a destination vector.
The
_mm_permute_ps
intrinsic permutes single-precision floating point elements (float32 elements) in the 128-bit source vector
m1
, according to a specified 2-bit control field,
control
, and stores the result in a destination vector.
Returns
A 256-bit or 128-bit float32 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