Luna::Simd::select_f4
template <u32, u32, u32, u32>
float4 select_f4(float4 a, float4 b)
Performs a per-component selection between a
and b
based on the control parameter _SelectX
, _SelectY
, _SelectZ
and _SelectW
, and stores the results in dst
.
DEFINE SELECT2(a, b control)
CASE(control) OF
0: res := a
1: res := b
ESAC
RETURN res
ENDDEF
dst.x := SELECT2(a.x, b.x, _SelectX)
dst.y := SELECT4(a.y, b.y, _SelectY)
dst.z := SELECT4(a.z, b.z, _SelectZ)
dst.w := SELECT4(a.w, b.w, _SelectW)