10#define __finl __forceinline
11#define __vecc __vectorcall
13#define __finl inline __attribute__((always_inline))
30 v[0] =
v[1] =
v[2] =
v[3] = val;
60 return {x[0], x[1], x[2], x[3]};
65 for (
int i = 0; i < 4; ++i)
71 return {a[0], a[2], b[0], b[2]};
76 return {a[1], a[1], b[3], b[3]};
81 return {a[0] + b[0], a[1] + b[1], a[2] + b[2], a[3] + b[3]};
86 return {a[0] - b[0], a[1] - b[1], a[2] - b[2], a[3] - b[3]};
91 return {a[0] * b[0], a[1] * b[1], a[2] * b[2], a[3] * b[3]};
__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 unzip2(const float_x4 &a, const float_x4 &b)
__finl float & operator[](int n)
__finl const float & operator[](int n) const
__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};