On Wed, Apr 12, 2023 at 1:42 PM samuel ammonius via Std-Proposals <std-proposals@lists.isocpp.org> wrote:
On Wed, Apr 12, 2023 at 2:11 PM Sebastian Wittmeier via Std-Proposals <std-proposals@lists.isocpp.org> wrote:

what is it exactly you are mainly after?

a) To express vector operations with implicit fallback to a loop

b) To have a nice way to express SIMD code with simple mathematical operations

c) To create better interoperation between C-style arrays and SIMD code?

Or strictly a combination of those?

This way arrays can be operated on without breaking compatibility. Does this sound like a better idea? 

Yes; and again, observe that you can write that today (if you replace `std::` with `my::`), using operator overloading. The trick is figuring out how to get it to use SIMD instructions on platforms where that's natively possible.

In passing, note that `float`s are always aligned to the alignment of `float`, so the `alignas(float)` is redundant. And what you've got here is to `valarray` as `span` is to `array`, so you might consider naming it `my::valspan` (except that that's a pretty icky name :)).

–Arthur