[opus] [PATCH] Optimize silk_warped_autocorrelation_FIX() for ARM NEON

Jean-Marc Valin jmvalin at jmvalin.ca
Thu Feb 2 22:39:58 UTC 2017

Hi Felicia,

I've not yet really looked into the details, but first here's a few
comments and questions:

1) Why does the patch need to define SKIP_CONFIG_H and CUSTOM_MODES at
the beginning? I can't see a reason for that.

2) The whole code is inside an #ifdef FIXED_POINT. It seems like it the
file shouldn't be compiled at all for float, so that #ifdef would be
unnecessary. Or did I miss something?

3) The code as it is written is pretty hard to follow. Can you explain
at a high level how you're vectorizing this code, i.e. which loop(s)
gets unrolled and the general strategy. That should make it easier to

4) In general I'm a bit skeptical that so much unrolled prolog/epilog
code is needed. Did you try having less unrolling for the prolog/epilog?
That would be nicer to the I-cache (if possible).



On 31/01/17 12:30 PM, Felicia Lim wrote:
> Hi, 
> Attached is a patch with arm neon optimizations for
> silk_warped_autocorrelation_FIX(). Please review. 
> Thanks,
> Felicia
> _______________________________________________
> opus mailing list
> opus at xiph.org
> http://lists.xiph.org/mailman/listinfo/opus

More information about the opus mailing list