[Simd] Introduce broadcast<V>(s) function.
Improve syntax for initializing SIMD vectors: broadcast initialization.
Basically the incantation to broadcast-initialize a SIMD vector is:
V vec(Simd::Scalar<V>(42));
Brace initialization will often not work, and initialization directly by an int
will often not work for vectors of floating-point types.
This MR introduces a Simd::broadcast<V>()
function, which allows for broadcast initialization like this:
auto vec = Simd::broadcast<V>(42);
The type of the broadcast value does not matter here, as long as it can be explicitly cast to Simd::Scalar<V>
. In this sense broadcast<V>()
is an explicit-cast function.
Edited by Jö Fahlke