Permute/swizzle with non-constant mask
We are recently using xsimd to make our Velox query evaluation engine portable. One of the gap we found is xsimd only supports constant permutation mask in swizzle. Can we have support for non-constant swizzle?
In our project we are only using permutation as a way of filtering data, so we take a register of data and a bit mask and move all elements with bit mask set to the front of the register, similar to what std::partition is doing. You can refer to the detail here: https://github.com/facebookincubator/velox/blob/main/velox/common/base/SimdUtil.h#L299-L318
We can help integrating either the generic permutation or the filter implementation we have, which I believe is a quite generic pattern.
I'd be happy to see a generic implemèntation of swizzle being contributed. PR welcome!
Closed by #927