Useful fallback routines to use if the native SIMD op is not supported. More...
#include <juce_fallback_SIMDNativeOps.h>
Classes | |
struct | ScalarAdd |
struct | ScalarAnd |
struct | ScalarEq |
struct | ScalarGeq |
struct | ScalarGt |
struct | ScalarMax |
struct | ScalarMin |
struct | ScalarMul |
struct | ScalarNeq |
struct | ScalarNot |
struct | ScalarOr |
struct | ScalarSub |
struct | ScalarXor |
union | UnionMaskType |
union | UnionType |
Public Types | |
using | MaskType = typename SIMDInternal::MaskTypeFor< ScalarType >::type |
Static Public Member Functions | |
static forcedinline vSIMDType | add (vSIMDType a, vSIMDType b) noexcept |
static forcedinline bool | allEqual (vSIMDType av, vSIMDType bv) noexcept |
template<typename Op > | |
static forcedinline vSIMDType | apply (vSIMDType av, vSIMDType bv) noexcept |
static forcedinline vSIMDType | bit_and (vSIMDType a, vSIMDType b) noexcept |
static forcedinline vSIMDType | bit_not (vSIMDType av) noexcept |
static forcedinline vSIMDType | bit_notand (vSIMDType a, vSIMDType b) noexcept |
static forcedinline vSIMDType | bit_or (vSIMDType a, vSIMDType b) noexcept |
static forcedinline vSIMDType | bit_xor (vSIMDType a, vSIMDType b) noexcept |
template<typename Op > | |
static forcedinline vSIMDType | bitapply (vSIMDType av, vSIMDType bv) noexcept |
template<typename Op > | |
static forcedinline vSIMDType | cmp (vSIMDType av, vSIMDType bv) noexcept |
static forcedinline vSIMDType | cmplxmul (vSIMDType av, vSIMDType bv) noexcept |
static forcedinline vSIMDType | equal (vSIMDType a, vSIMDType b) noexcept |
static forcedinline vSIMDType | expand (ScalarType s) noexcept |
static forcedinline ScalarType | get (vSIMDType v, size_t i) noexcept |
static forcedinline vSIMDType | greaterThan (vSIMDType a, vSIMDType b) noexcept |
static forcedinline vSIMDType | greaterThanOrEqual (vSIMDType a, vSIMDType b) noexcept |
static forcedinline vSIMDType | load (const ScalarType *a) noexcept |
static forcedinline vSIMDType | max (vSIMDType a, vSIMDType b) noexcept |
static forcedinline vSIMDType | min (vSIMDType a, vSIMDType b) noexcept |
static forcedinline vSIMDType | mul (vSIMDType a, vSIMDType b) noexcept |
static forcedinline vSIMDType | multiplyAdd (vSIMDType av, vSIMDType bv, vSIMDType cv) noexcept |
static forcedinline vSIMDType | notEqual (vSIMDType a, vSIMDType b) noexcept |
static forcedinline vSIMDType | set (vSIMDType v, size_t i, ScalarType s) noexcept |
template<unsigned int shuffle_idx> | |
static forcedinline vSIMDType | shuffle (vSIMDType av) noexcept |
static forcedinline void | store (vSIMDType av, ScalarType *dest) noexcept |
static forcedinline vSIMDType | sub (vSIMDType a, vSIMDType b) noexcept |
static forcedinline ScalarType | sum (vSIMDType av) noexcept |
static forcedinline vSIMDType | truncate (vSIMDType av) noexcept |
Static Public Attributes | |
static constexpr size_t | bits = SIMDInternal::Log2Helper<(int) n>::value |
static constexpr size_t | mask = (sizeof (vSIMDType) / sizeof (ScalarType)) - 1 |
static constexpr size_t | n = sizeof (vSIMDType) / sizeof (ScalarType) |
Useful fallback routines to use if the native SIMD op is not supported.
You should never need to use this directly. Use juce_SIMDRegister instead.
@tags{DSP}
using juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::MaskType = typename SIMDInternal::MaskTypeFor<ScalarType>::type |
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, juce::gl::b, and juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n.
|
inlinestaticnoexcept |
References juce::gl::a, juce::gl::b, and juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, juce::gl::b, and juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n.
|
inlinestaticnoexcept |
References juce::gl::a, juce::gl::b, juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n, and juce::gl::r.
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n, juce::gl::r, and juce::gl::s.
|
inlinestaticnoexcept |
References juce::gl::v.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n, and juce::gl::r.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, juce::gl::b, juce::gl::c, and juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::s, and juce::gl::v.
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
References juce::gl::a, and juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::gl::b.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n.
|
inlinestaticnoexcept |
References juce::gl::a, and juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n.
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
Referenced by juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::allEqual(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::apply(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::bit_not(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::bitapply(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::cmp(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::cmplxmul(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::expand(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::load(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::multiplyAdd(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::shuffle(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::store(), juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::sum(), and juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::truncate().