_mm_shuffle_ps
Classification
Header File
Instruction
SHUFPS xmm, xmm, imm8
Synopsis
_mm_shuffle_ps(__m128 a, __m128 b, unsigned int imm8);
Description
Shuffle single-precision (32-bit) floating-point elements in "a" using the control in "imm8", and store the results in "dst".
Operation
DEFINE SELECT4(src, control) {
CASE(control[1:0]) OF
0: tmp[31:0] := src[31:0]
1: tmp[31:0] := src[63:32]
2: tmp[31:0] := src[95:64]
3: tmp[31:0] := src[127:96]
ESAC
RETURN tmp[31:0]
}
dst[31:0] := SELECT4(a[127:0], imm8[1:0])
dst[63:32] := SELECT4(a[127:0], imm8[3:2])
dst[95:64] := SELECT4(b[127:0], imm8[5:4])
dst[127:96] := SELECT4(b[127:0], imm8[7:6])