[opus] Opus floating-point NEON jump table question

Linfeng Zhang linfengz at google.com
Wed May 31 16:47:04 UTC 2017


Hi,

./configure --build x86_64-unknown-linux-gnu --host arm-linux-gnueabihf
--disable-assertions --disable-check-asm --enable-intrinsics CFLAGS=-O3
--disable-shared

When configuring with floating-point and intrinsics enabled as above, the
generated config.h only has OPUS_ARM_MAY_HAVE_NEON_INTR defined (to 1), with
/* #undef OPUS_ARM_ASM */
/* #undef OPUS_ARM_INLINE_ASM */
/* #undef OPUS_ARM_INLINE_EDSP */
/* #undef OPUS_ARM_INLINE_MEDIA */
/* #undef OPUS_ARM_INLINE_NEON */
/* #undef OPUS_ARM_MAY_HAVE_EDSP */
/* #undef OPUS_ARM_MAY_HAVE_MEDIA */
/* #undef OPUS_ARM_MAY_HAVE_NEON */
/* #undef OPUS_ARM_PRESUME_AARCH64_NEON_INTR */
/* #undef OPUS_ARM_PRESUME_EDSP */
/* #undef OPUS_ARM_PRESUME_MEDIA */
/* #undef OPUS_ARM_PRESUME_NEON */
/* #undef OPUS_ARM_PRESUME_NEON_INTR */

So MAY_HAVE_NEON will be defined to MEDIA version, which will eventually
fall down to C functions in the jump table:
#  define MAY_HAVE_NEON(name) MAY_HAVE_MEDIA(name)

Therefore all NEON intrinsics optimizations in their jump tables won't get
called for floating-point.

Am I missing some options in my configure command, or the config is intend
to do so in floating-point?

Thanks,
Linfeng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/opus/attachments/20170531/f96dafe8/attachment.html>


More information about the opus mailing list