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
