#include "allocator.h" #include #include #include #include #if defined(ARM_MATH_MVEI) || defined(ARM_MATH_MVEF) Q15 external_debug(const PVector &a0, const PVector &a1, const PVector &a2, const PVector &a3, const PVector &b, int l) { int nb = l; Q<33,30> acc0; Q<33,30> acc1; Q<33,30> acc2; Q<33,30> acc3; for(index_t i=0; i::mk(nb-i)); acc1 = inner::vmacc(acc1,a1.vector_op_tail(i,nb-i),b.vector_op_tail(i,nb-i),inner::vctpq::mk(nb-i)); acc2 = inner::vmacc(acc2,a2.vector_op_tail(i,nb-i),b.vector_op_tail(i,nb-i),inner::vctpq::mk(nb-i)); acc3 = inner::vmacc(acc3,a3.vector_op_tail(i,nb-i),b.vector_op_tail(i,nb-i),inner::vctpq::mk(nb-i)); } Q15 r0,r1,r2,r3; r0 = inner::from_accumulator(acc0); r1 = inner::from_accumulator(acc1); r2 = inner::from_accumulator(acc2); r3 = inner::from_accumulator(acc3); return(r0+r1+r2+r3); } #else Q15 external_debug(const PVector &a0, const PVector &a1, const PVector &a2, const PVector &a3, const PVector &b, int l) { (void)a0; (void)a1; (void)a2; (void)a3; (void)b; (void)l; return(a0[0]); } #endif