31 template <
typename Scalar>
59template <
typename Type>
71 using MaskType = SIMDInternal::MaskType<ElementType>;
77 using PrimitiveType =
typename SIMDInternal::PrimitiveType<ElementType>::type;
134 return {CmplxOps::load (a)};
141 CmplxOps::store (value, a);
150 return CmplxOps::get (value, idx);
158 value = CmplxOps::set (value, idx, v);
171 inline ElementAccess JUCE_VECTOR_CALLTYPE
operator[] (
size_t idx)
noexcept
174 return ElementAccess (*
this, idx);
265 inline bool JUCE_VECTOR_CALLTYPE
operator== (
SIMDRegister other)
const noexcept {
return NativeOps::allEqual (value, other.value); }
274 inline bool JUCE_VECTOR_CALLTYPE
operator!= (Type s)
const noexcept {
return ! (*
this == s); }
318 return { CmplxOps::muladd (a.value, b.value, c.value) };
342 return (
reinterpret_cast<uintptr_t
> (ptr) & bitmask) == 0;
388 u.in = CmplxSIMDOps<MaskType>::expand (a);
static SIMDRegister JUCE_VECTOR_CALLTYPE truncate(SIMDRegister a) noexcept
SIMDRegister &JUCE_VECTOR_CALLTYPE operator*=(SIMDRegister v) noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE expand(ElementType s) noexcept
typename NativeOps::vSIMDType vSIMDType
ElementType sum() const noexcept
void JUCE_VECTOR_CALLTYPE copyToRawArray(ElementType *a) const noexcept
SIMDRegister &JUCE_VECTOR_CALLTYPE operator=(ElementType s) noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE max(SIMDRegister a, SIMDRegister b) noexcept
static ElementType * getNextSIMDAlignedPtr(ElementType *ptr) noexcept
static vMaskType JUCE_VECTOR_CALLTYPE greaterThanOrEqual(SIMDRegister a, SIMDRegister b) noexcept
static vMaskType JUCE_VECTOR_CALLTYPE greaterThan(SIMDRegister a, SIMDRegister b) noexcept
bool JUCE_VECTOR_CALLTYPE operator!=(SIMDRegister other) const noexcept
static bool isSIMDAligned(const ElementType *ptr) noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE abs(SIMDRegister a) noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator|(vMaskType v) const noexcept
SIMDRegister< MaskType > vMaskType
static constexpr size_t SIMDRegisterSize
SIMDRegister &JUCE_VECTOR_CALLTYPE operator^=(vMaskType v) noexcept
static vMaskType JUCE_VECTOR_CALLTYPE equal(SIMDRegister a, SIMDRegister b) noexcept
ElementType JUCE_VECTOR_CALLTYPE get(size_t idx) const noexcept
SIMDRegister &JUCE_VECTOR_CALLTYPE operator-=(SIMDRegister v) noexcept
SIMDRegister &JUCE_VECTOR_CALLTYPE operator&=(vMaskType v) noexcept
SIMDNativeOps< PrimitiveType > NativeOps
static SIMDRegister JUCE_VECTOR_CALLTYPE multiplyAdd(SIMDRegister a, const SIMDRegister b, SIMDRegister c) noexcept
static constexpr size_t size() noexcept
static vMaskType JUCE_VECTOR_CALLTYPE lessThan(SIMDRegister a, SIMDRegister b) noexcept
SIMDRegister() noexcept=default
static SIMDRegister JUCE_VECTOR_CALLTYPE min(SIMDRegister a, SIMDRegister b) noexcept
static constexpr size_t SIMDNumElements
typename vMaskType::vSIMDType vMaskSIMDType
SIMDInternal::MaskType< ElementType > MaskType
void JUCE_VECTOR_CALLTYPE set(size_t idx, ElementType v) noexcept
SIMDRegister &JUCE_VECTOR_CALLTYPE operator+=(SIMDRegister v) noexcept
static vMaskType JUCE_VECTOR_CALLTYPE lessThanOrEqual(SIMDRegister a, SIMDRegister b) noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator~() const noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator^(vMaskType v) const noexcept
SIMDRegister(Type s) noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE fromNative(vSIMDType a) noexcept
CmplxSIMDOps< ElementType > CmplxOps
typename SIMDInternal::PrimitiveType< ElementType >::type PrimitiveType
SIMDRegister &JUCE_VECTOR_CALLTYPE operator|=(vMaskType v) noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator&(vMaskType v) const noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE fromRawArray(const ElementType *a) noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator+(SIMDRegister v) const noexcept
ElementType JUCE_VECTOR_CALLTYPE operator[](size_t idx) const noexcept
static vMaskType JUCE_VECTOR_CALLTYPE notEqual(SIMDRegister a, SIMDRegister b) noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator*(SIMDRegister v) const noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator-(SIMDRegister v) const noexcept
bool JUCE_VECTOR_CALLTYPE operator==(SIMDRegister other) const noexcept