Add as_array to SimdValue?
Often it would be convenient to be able to cast the entire SIMD value to an array reference instead of extracting lanes one by one, in a generic code over any SimdValue.
As far as I can tell, all implementations of SimdValue should be able to support this - AutoSimd<[T; N]> has array easily accessed via .0, primitives can be casted via std::slice::from_ref, num_complex::Complex has repr(C) compatible with [T; 2], std::simd-based implementation has its own as_array, and wide-based implementation has as_array_ref.
With that in mind, can we add as_array to SimdValue trait itself to make writing generic code easier?
As far as I can tell, this already fails at trying to add as_array to the SimdValue trait, because the return type [Self::Element; Self::LANES] would require the rustc feature generic_const_exprs. And if you add an associated type and fill it in as an array via macro impls, you can't make use of the array in a generic context.
Oh, the name is misleading, I meant for it to just return slice. I should have called it as_slice.
Proper arrays would be nice too, but I agree not feasible at the moment.