Remi, <br><br>I am using Linaro's qemu - had no troubles with NEON.<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>Unfortunately, the structure of libdvbcsa in its current form prevents<br>

good ARM NEON optimizations. It cannot deal with unrolling, at least not<br>
with block size above 64 bits. I do not know if this is a problem for MMX,<br>
SSE and Altivec, but it definitely is for ARM NEON. The ARM processors do<br>
not reorder instructions and most NEON instructions have latencies. So you<br>
typically should not use the result of an instruction in the next<br>
instruction, otherwise the coprocessor will stall due to data dependency.<br>
<br></blockquote><div>Does this mean that there's no point in trying to do NEON in this code?<br>I would still like to see this run on real hardware and see if it's worth it at all.<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
Also, without explicit vector load/store (VLD and VST) instructions,<br>
memory transfers to/from the coprocessor may be painfully slow.<br>
<br></blockquote><div>This probably means that BS_VAL can be done as VLD, I can't see where VST can be used though.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

It might also be worth looking at aligned memory accesses, which are much<br>
faster in NEON than unaligned access. But that optimization is only usable<br>
with assembly code (inline or out of line), not with intrinsics.<br>
<br></blockquote><div> </div><div>As I said this is my first NEON experience, so I am not completely sure I understand <br>how to do that? <br>From my standpoint - there are macros that provide some basic primitives for different SIMD platforms.<br>
I have just placed the NEON one (their intrinsics representation), as by the assembly manuals.<br>Now - if the code calls BS_SHL on an unaligned data, what can possibly be done?<br></div></div><br>Thanks,<br>Nikolay Nikolaev<br>