Make details::permute SIMD register size agnostic