Luna::Simd::permute_f4

template <u32, u32, u32, u32>
float4 permute_f4(float4 a)

Shuffles single-precision (32-bit) floating-point elements in a based on the control parameter _SelectX, _SelectY, _SelectZ and _SelectW, and stores the results in dst.

DEFINE SELECT4(src, control)
       CASE(control) OF
       0:    res := src.x
       1:    res := src.y
       2:    res := src.z
       3:    res := src.w
       ESAC
       RETURN res
ENDDEF
dst.x := SELECT4(a, _SelectX)
dst.y := SELECT4(a, _SelectY)
dst.z := SELECT4(a, _SelectZ)
dst.w := SELECT4(a, _SelectW)