22 #if defined(HIGHWAY_HWY_EXAMPLES_SKELETON_INL_H_) == defined(HWY_TARGET_TOGGLE)
23 #ifdef HIGHWAY_HWY_EXAMPLES_SKELETON_INL_H_
24 #undef HIGHWAY_HWY_EXAMPLES_SKELETON_INL_H_
26 #define HIGHWAY_HWY_EXAMPLES_SKELETON_INL_H_
44 template <
class D,
typename T>
48 for (
size_t i = 0; i < size; i +=
Lanes(d)) {
49 const auto mul =
Load(d, mul_array + i);
50 const auto add =
Load(d, add_array + i);
51 auto x =
Load(d, x_array + i);
53 Store(x, d, x_array + i);
#define HWY_RESTRICT
Definition: base.h:58
#define HWY_MAYBE_UNUSED
Definition: base.h:70
HWY_API Vec128< T, N > Load(Simd< T, N > d, const T *HWY_RESTRICT p)
Definition: arm_neon-inl.h:2152
HWY_API Vec128< float, N > MulAdd(const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > add)
Definition: arm_neon-inl.h:1232
constexpr HWY_API size_t Lanes(Simd< T, N >)
Definition: arm_sve-inl.h:226
HWY_API void Store(Vec128< T, N > v, Simd< T, N > d, T *HWY_RESTRICT aligned)
Definition: arm_neon-inl.h:2343
HWY_MAYBE_UNUSED void MulAddLoop(const D d, const T *HWY_RESTRICT mul_array, const T *HWY_RESTRICT add_array, const size_t size, T *HWY_RESTRICT x_array)
Definition: skeleton-inl.h:45
Definition: skeleton-inl.h:35
#define HWY_NAMESPACE
Definition: set_macros-inl.h:77