Luna::Simd::permute2_f4
template <u32, u32, u32, u32>
float4 permute2_f4(float4 a, float4 b)
Shuffles single-precision (32-bit) floating-point elements in a
and b
based on the control parameter _SelectX
, _SelectY
, _SelectZ
and _SelectW
, and stores the results in dst
.
DEFINE SELECT8(a, b, control)
CASE(control) OF
0: res := a.x
1: res := a.y
2: res := a.z
3: res := a.w
4: res := b.x
5: res := b.y
6: res := b.z
7: res := b.w
ESAC
RETURN res
ENDDEF
dst.x := SELECT4(a, b _SelectX)
dst.y := SELECT4(a, b, _SelectY)
dst.z := SELECT4(a, b, _SelectZ)
dst.w := SELECT4(a, b, _SelectW)