E.V.E
v2023.02.15
Loading...
Searching...
No Matches
◆
firstbitunset
auto eve::firstbitunset =
functor
<firstbitunset_t>
inline
constexpr
Header file
#include <eve/module/core.hpp>
Callable Signatures
namespace
eve
{
// Regular overload
constexpr
auto
firstbitunset
(
integral_value
auto
x)
noexcept
;
// 1
// Lanes masking
constexpr
auto
firstbitunset
[
conditional_expr
auto
c](
integral_value
auto
x)
noexcept
;
// 2
constexpr
auto
firstbitunset
[
logical_value
auto
m](
integral_value
auto
x)
noexcept
;
// 2
}
eve::conditional_expr
Specifies that a type is a Conditional Expression.
Definition
conditional.hpp:28
eve::integral_value
The concept integral_value<T> is satisfied if and only if T satisfies eve::value and the element type...
Definition
value.hpp:51
eve::logical_value
The concept logical_value<T> is satisfied if and only if T satisfies eve::value and the element type ...
Definition
value.hpp:132
eve::firstbitunset
constexpr auto firstbitunset
Computes elementwise the bit pattern in which the only bit set (if it exists) is the first bit unset ...
Definition
firstbitunset.hpp:68
eve
EVE Main Namespace.
Definition
abi.hpp:18
Parameters
x
:
integral value
.
c
:
Conditional expression
masking the operation.
m
:
Logical value
masking the operation.
Return value
Computes
elementwise
the bit pattern in which the only bit set (if it exists) is the first bit unset (beginning with the least significant bit) in the input.
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 <<
"-> firstbitunset(wi0) = "
<<
eve::firstbitunset
(wi0) <<
"\n"
;
std::cout <<
"-> firstbitunset[ignore_last(2)](wi0) = "
<<
eve::firstbitunset
[
eve::ignore_last
(2)](wi0) <<
"\n"
;
std::cout <<
"-> firstbitunset[wi0 != 0](wi0) = "
<<
eve::firstbitunset
[wi0 != 0](wi0) <<
"\n"
;
}
eve::ignore_last
Conditional expression ignoring the k last lanes from a eve::simd_value.
Definition
conditional.hpp:332
eve::wide
Wrapper for SIMD registers.
Definition
wide.hpp:86
eve