17#if defined(HIGHWAY_HWY_CONTRIB_ALGO_FIND_INL_H_) == \
18 defined(HWY_TARGET_TOGGLE)
19#ifdef HIGHWAY_HWY_CONTRIB_ALGO_FIND_INL_H_
20#undef HIGHWAY_HWY_CONTRIB_ALGO_FIND_INL_H_
22#define HIGHWAY_HWY_CONTRIB_ALGO_FIND_INL_H_
33template <
class D,
typename T = TFromD<D>>
40 for (; i <= count - N; i += N) {
42 if (pos >= 0)
return i +
static_cast<size_t>(pos);
47#if HWY_MEM_OPS_MIGHT_FAULT
50 using V1 =
Vec<
decltype(d1)>;
51 const V1 broadcasted1 =
Set(d1,
GetLane(broadcasted));
52 for (; i < count; ++i) {
58 const size_t remaining = count - i;
64 if (pos >= 0)
return i +
static_cast<size_t>(pos);
73template <
class D,
class Func,
typename T = TFromD<D>>
79 for (; i <= count - N; i += N) {
81 if (pos >= 0)
return i +
static_cast<size_t>(pos);
86#if HWY_MEM_OPS_MIGHT_FAULT
89 for (; i < count; ++i) {
95 const size_t remaining = count - i;
101 if (pos >= 0)
return i +
static_cast<size_t>(pos);
#define HWY_RESTRICT
Definition base.h:95
#define HWY_DASSERT(condition)
Definition base.h:290
size_t Find(D d, T value, const T *HWY_RESTRICT in, size_t count)
Definition find-inl.h:34
HWY_API auto Eq(V a, V b) -> decltype(a==b)
Definition generic_ops-inl.h:7331
D d
Definition arm_sve-inl.h:1915
HWY_API Vec128< T, N > And(const Vec128< T, N > a, const Vec128< T, N > b)
Definition arm_neon-inl.h:2690
HWY_API Vec128< uint8_t > LoadU(D, const uint8_t *HWY_RESTRICT unaligned)
Definition arm_neon-inl.h:3442
HWY_API intptr_t FindFirstTrue(D d, MFromD< D > mask)
Definition arm_neon-inl.h:8377
typename detail::CappedTagChecker< T, kLimit, kPow2 >::type CappedTag
Definition ops/shared-inl.h:379
HWY_API bool AllTrue(D d, Mask128< T > m)
Definition arm_neon-inl.h:8416
decltype(MaskFromVec(Zero(D()))) Mask
Definition generic_ops-inl.h:52
HWY_INLINE Vec128< TFromD< D > > Set(D, T t)
Definition arm_neon-inl.h:931
HWY_API TFromV< V > GetLane(const V v)
Definition arm_neon-inl.h:1648
decltype(Zero(D())) Vec
Definition generic_ops-inl.h:46
HWY_API size_t Lanes(D)
Definition rvv-inl.h:598
HWY_API MFromD< D > FirstN(D d, size_t num)
Definition arm_neon-inl.h:3232
size_t FindIf(D d, const T *HWY_RESTRICT in, size_t count, const Func &func)
Definition find-inl.h:74
HWY_API VFromD< D > MaskedLoad(MFromD< D > m, D d, const TFromD< D > *HWY_RESTRICT aligned)
Definition arm_neon-inl.h:3669
FuncOutput(*)(const void *, FuncInput) Func
Definition nanobenchmark.h:87
#define HWY_NAMESPACE
Definition set_macros-inl.h:166