Lines Matching defs:vfloat4
49 // vfloat4 data type
55 struct vfloat4
60 ASTCENC_SIMD_INLINE vfloat4() = default;
68 ASTCENC_SIMD_INLINE explicit vfloat4(const float* p)
81 ASTCENC_SIMD_INLINE explicit vfloat4(float a)
94 ASTCENC_SIMD_INLINE explicit vfloat4(float a, float b, float c, float d)
121 static ASTCENC_SIMD_INLINE vfloat4 zero()
123 return vfloat4(0.0f);
129 static ASTCENC_SIMD_INLINE vfloat4 load1(const float* p)
131 return vfloat4(*p);
137 static ASTCENC_SIMD_INLINE vfloat4 loada(const float* p)
139 return vfloat4(p);
145 static ASTCENC_SIMD_INLINE vfloat4 lane_id()
147 return vfloat4(0.0f, 1.0f, 2.0f, 3.0f);
153 template <int l0, int l1> ASTCENC_SIMD_INLINE vfloat4 swz() const
155 return vfloat4(lane<l0>(), lane<l1>(), 0.0f, 0.0f);
161 template <int l0, int l1, int l2> ASTCENC_SIMD_INLINE vfloat4 swz() const
163 return vfloat4(lane<l0>(), lane<l1>(), lane<l2>(), 0.0f);
169 template <int l0, int l1, int l2, int l3> ASTCENC_SIMD_INLINE vfloat4 swz() const
171 return vfloat4(lane<l0>(), lane<l1>(), lane<l2>(), lane<l3>());
717 // vfloat4 operators and functions
723 ASTCENC_SIMD_INLINE vfloat4 operator+(vfloat4 a, vfloat4 b)
725 return vfloat4(a.m[0] + b.m[0],
734 ASTCENC_SIMD_INLINE vfloat4 operator-(vfloat4 a, vfloat4 b)
736 return vfloat4(a.m[0] - b.m[0],
745 ASTCENC_SIMD_INLINE vfloat4 operator*(vfloat4 a, vfloat4 b)
747 return vfloat4(a.m[0] * b.m[0],
756 ASTCENC_SIMD_INLINE vfloat4 operator/(vfloat4 a, vfloat4 b)
758 return vfloat4(a.m[0] / b.m[0],
767 ASTCENC_SIMD_INLINE vmask4 operator==(vfloat4 a, vfloat4 b)
778 ASTCENC_SIMD_INLINE vmask4 operator!=(vfloat4 a, vfloat4 b)
789 ASTCENC_SIMD_INLINE vmask4 operator<(vfloat4 a, vfloat4 b)
800 ASTCENC_SIMD_INLINE vmask4 operator>(vfloat4 a, vfloat4 b)
811 ASTCENC_SIMD_INLINE vmask4 operator<=(vfloat4 a, vfloat4 b)
822 ASTCENC_SIMD_INLINE vmask4 operator>=(vfloat4 a, vfloat4 b)
835 ASTCENC_SIMD_INLINE vfloat4 min(vfloat4 a, vfloat4 b)
837 return vfloat4(a.m[0] < b.m[0] ? a.m[0] : b.m[0],
848 ASTCENC_SIMD_INLINE vfloat4 max(vfloat4 a, vfloat4 b)
850 return vfloat4(a.m[0] > b.m[0] ? a.m[0] : b.m[0],
859 ASTCENC_SIMD_INLINE vfloat4 abs(vfloat4 a)
861 return vfloat4(std::abs(a.m[0]),
870 ASTCENC_SIMD_INLINE vfloat4 round(vfloat4 a)
873 return vfloat4(std::nearbyint(a.m[0]),
882 ASTCENC_SIMD_INLINE vfloat4 hmin(vfloat4 a)
886 return vfloat4(std::min(tmp1, tmp2));
892 ASTCENC_SIMD_INLINE vfloat4 hmax(vfloat4 a)
896 return vfloat4(std::max(tmp1, tmp2));
902 ASTCENC_SIMD_INLINE float hadd_s(vfloat4 a)
911 ASTCENC_SIMD_INLINE vfloat4 sqrt(vfloat4 a)
913 return vfloat4(std::sqrt(a.m[0]),
922 ASTCENC_SIMD_INLINE vfloat4 select(vfloat4 a, vfloat4 b, vmask4 cond)
924 return vfloat4((cond.m[0] & static_cast<int>(0x80000000)) ? b.m[0] : a.m[0],
933 ASTCENC_SIMD_INLINE vfloat4 select_msb(vfloat4 a, vfloat4 b, vmask4 cond)
935 return vfloat4((cond.m[0] & static_cast<int>(0x80000000)) ? b.m[0] : a.m[0],
944 ASTCENC_SIMD_INLINE vfloat4 gatherf(const float* base, vint4 indices)
946 return vfloat4(base[indices.m[0]],
955 ASTCENC_SIMD_INLINE void store(vfloat4 a, float* ptr)
966 ASTCENC_SIMD_INLINE void storea(vfloat4 a, float* ptr)
977 ASTCENC_SIMD_INLINE vint4 float_to_int(vfloat4 a)
988 ASTCENC_SIMD_INLINE vint4 float_to_int_rtn(vfloat4 a)
990 a = a + vfloat4(0.5f);
1000 ASTCENC_SIMD_INLINE vfloat4 int_to_float(vint4 a)
1002 return vfloat4(static_cast<float>(a.m[0]),
1011 ASTCENC_SIMD_INLINE vint4 float_to_float16(vfloat4 a)
1031 ASTCENC_SIMD_INLINE vfloat4 float16_to_float(vint4 a)
1033 return vfloat4(
1055 ASTCENC_SIMD_INLINE vint4 float_as_int(vfloat4 a)
1069 ASTCENC_SIMD_INLINE vfloat4 int_as_float(vint4 a)
1071 vfloat4 r;