E.V.E
v2023.02.15
 
Loading...
Searching...
No Matches

◆ slide_left

callable_slide_left_ eve::slide_left = {}
inlineconstexpr

Defined in Header

#include <eve/module/core.hpp>

As any named shuffle, allows to pass a group size, to treat multiple elements as one. Group size has to be 0 < G <= T::size() Shift * GroupSize <= T::size() Shift >= 0

template <simd_value T, std::ptrdiff_t S>
T slide_left(T x, eve::index<S>); // (1)
template <simd_value T, std::ptrdiff_t G, std::ptrdiff_t S>
T slide_left(T x, eve::fixed<G>, eve::index<S>); // (2)
template <simd_value T, std::ptrdiff_t S>
T slide_left(T x, T y, eve::index<S>); // (3)
template <simd_value T, std::ptrdiff_t G, std::ptrdiff_t S>
T slide_left(T x, T y, eve::fixed<G>, eve::index<S>); // (4)
constexpr callable_slide_left_ slide_left
a named shuffles for sliding two simd values together and selecting one register. Common names for th...
Definition slide_left.hpp:16
SIMD register cardinal type.
Definition cardinal.hpp:15

Parameters

  • x, y - simd_values to shuffle
  • G - (optional) - number of elements to treat as one.
  • S - shift by how many elements to shift

    (2), (4) - call (1) (3) respectively, with S = G * S (1) - equivalent to calling eve::slide_left(x, eve::zero(eve::as(x))); (3) - slide_left [abcd], [efgh], index<1> ==> [bcde]

Return value shuffled register

Example

int
main()
{
// in progress
}