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

◆ firstbitset

auto eve::firstbitset = functor<firstbitset_t>
inlineconstexpr

Header file

#include <eve/module/core.hpp>

Callable Signatures

namespace eve
{
// Regular overload
constexpr auto firstbitset(integral_value auto x) noexcept; // 1
// Lanes masking
constexpr auto firstbitset[conditional_expr auto c](integral_value auto x) noexcept; // 2
constexpr auto firstbitset[logical_value auto m](integral_value auto x) noexcept; // 2
}
Specifies that a type is a Conditional Expression.
Definition conditional.hpp:28
The concept integral_value<T> is satisfied if and only if T satisfies eve::value and the element type...
Definition value.hpp:51
The concept logical_value<T> is satisfied if and only if T satisfies eve::value and the element type ...
Definition value.hpp:132
constexpr auto firstbitset
Computes elementwise the bit pattern in which the only bit set (if it exists) is the first bit set in...
Definition firstbitset.hpp:68
EVE Main Namespace.
Definition abi.hpp:18

Parameters

Return value

  1. Computes elementwise the bit pattern in which the only bit set (if it exists) is the first bit set (beginning with the least significant bit) in the input.
  2. The operation is performed conditionnaly.

Example

// revision 0
#include <eve/module/core.hpp>
#include <iostream>
int main()
{
eve::wide wi0{0, 1, 2, 3, -1, -2, -3, -4};
std::cout << "<- wi0 = " << wi0 << "\n";
std::cout << "-> firstbitset(wi0) = " << eve::firstbitset(wi0) << "\n";
std::cout << "-> firstbitset[ignore_last(2)](wi0) = " << eve::firstbitset[eve::ignore_last(2)](wi0) << "\n";
std::cout << "-> firstbitset[wi0 != 0](wi0) = " << eve::firstbitset[wi0 != 0](wi0) << "\n";
}
Conditional expression ignoring the k last lanes from a eve::simd_value.
Definition conditional.hpp:332
Wrapper for SIMD registers.
Definition wide.hpp:70