Eric,

The QA code (qa_gr_fir_ccf.cc) forces a 16 byte alignment.  When the
malloc16Allign is replaced with a regular malloc in the QA code, make check
fails.

I believe that there is an additional requirement that the data passed to
the low-level SSE code have the real sample start on the 0th or 2nd 4 byte
float.  For example the R / C represents 4 byte floats (Real, Complex) , 0
represents "forced alignment" from gr_fir_ccf_simd.cc
RCRC...  OK
00RC...  OK
0RCR...  Not OK

Q: Is my assumption of the additional requirement correct?

Q: I don't think it will be easy to force the additional requirement with
the same trick used in gr_fir_ccf_simd.cc; do you agree?


Tim

>
>
> Yes, it does get called at "make check" time.
>
> FWIW, it's run by way of gnuradio-core/src/tests/test_all
>
> It's possible that there's an alignment requirement that's not being
> honored at runtime.  The low-level SSE code (fcomplex_dotprod_sse64.S)
> requires that its input and taps be 16-byte aligned.  gr_fir_ccf_simd
> allocates 16-byte aligned buffers for the relevant buffers, so it
> should be working OK.   Perhaps one of you seeing the problem could
> add an assert or two to confirm that the alignment is correct.
>
> Eric
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> [email protected]
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to