9#define __finl __forceinline
10#define __vecc __vectorcall
13#define __finl inline __attribute__((always_inline))
50 float f[4] = {v0, v1, v2, v3};
64 struct RegisterAccessWrapper
69 void operator=(
float x)
73 operator float() noexcept
82 RegisterAccessWrapper raw = {
s, n};
106 return vdupq_n_f32(x);
121 return vuzp1q_f32(a.
s, b.
s);
126 return vuzp2q_f32(a.
s, b.
s);
131 return vaddq_f32(a.
s, b.
s);
136 return vsubq_f32(a.
s, b.
s);
141 return vmulq_f32(a.
s, b.
s);
146 return vsqrtq_f32(a.
s);
156 return vrndnq_f32(a.
s);
__finl float_x4 __vecc float_x4_from_float(float x)
__finl float_x4 __vecc operator+(float_x4 a, float_x4 b)
__finl float_x4 __vecc operator-(float_x4 a, float_x4 b)
__finl float __vecc rint(float a)
__finl float_x4 __vecc unzip1(const float_x4 &a, const float_x4 &b)
__finl float_x4 __vecc float_x4_load_aligned(const float *x)
__finl void __vecc store_aligned(const float_x4 &a, float *x)
__finl float_x4 __vecc sqrt(const float_x4 &a)
__finl float_x4 __vecc operator*(float_x4 a, float_x4 b)
__finl float_x4 __vecc rint(const float_x4 &a)
__finl float_x4 __vecc unzip2(const float_x4 &a, const float_x4 &b)
__finl float & operator[](int n)
__finl float_x4(const float32x4_t &val)
__finl float_x4(float val)
enables math like: float_x4 a = 0.5f * float_x4{1.f, 2.f, 3.f, 4.f};
__finl float_x4(float v0, float v1, float v2, float v3)
enables assignments like: float_x4 a = {1.f, 2.f, 3.f, 4.f};