#include <eve/module/core.hpp>
#include <tts/tts.hpp>
using l_t = eve::logical<eve::wide<std::uint8_t, n>>;
int main()
{
w_t in { 1, 2, 3, 4 };
l_t m { false, true, true, false };
{
std::array<int, 4> out {};
TTS_EQUAL(2, o - out.data());
out[2] = -1;
out[3] = -1;
TTS_EQUAL((std::array{2, 3, -1, -1}), out);
}
{
std::array<int, 2> out {};
TTS_EQUAL(o - out.data(), 2);
TTS_EQUAL((std::array{2, 3}), out);
}
{
std::array<int, 3> out {-1, 0, 0};
TTS_EQUAL(o - out.data(), 3);
TTS_EQUAL((std::array{-1, 2, 3}), out);
}
{
std::array<int, 3> out {0, -1, -1};
TTS_EQUAL(o - out.data(), 1);
TTS_EQUAL((std::array{2, -1, -1}), out);
}
}
constexpr ignore_none_ ignore_none
Object representing the eve::ignore_none_ conditional expression.
Definition: conditional.hpp:240
SIMD register cardinal type.
Definition: cardinals.hpp:39
Conditional expression keeping all lanes between two position.
Definition: conditional.hpp:477
Conditional expression selecting the k first lanes from a eve::simd_value.
Definition: conditional.hpp:250
Wrapper for SIMD registers.
Definition: wide.hpp:93