> I am trying to use the vmull_p64 instruction. The error I am receiving is: > > /usr/lib/gcc/aarch64-linux-gnu/6/include/arm_neon.h: In function ‘__v16u mul128(uint64x1_t, uint64x1_t)’: > /usr/lib/gcc/aarch64-linux-gnu/6/include/arm_neon.h:21892:1: error: inlining failed in call to always_inline ‘poly128_t vmull_p64(poly64_t, poly64_t)’: target specific option mismatch > vmull_p64 (poly64_t a, poly64_t b) > ^~~~~~~~~ > gf64_vmull.cpp:138:27: note: called from here > res = vmull_p64(a64,b64); PMULL and PMULL2 are part of the Crypto extensions from the ACLE. They are optional extensions, so they get enabled with a "+crypto" for architecture flags. You should add -march=armv8-a+crypto or -march=armv8-a+crc+crypto to your CFLAGS or CXXFLAGS. Also see http://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html. An FYI... Linaro is missing is missing vreinterpretq_*_p128 for for converting polynomials. If you are using the Linaro GCC 4.9 toolchain, then you will have to do the C-cast. Also see http://lists.linaro.org/pipermail/linaro-toolchain/2016-July/005833.html. Note... if you attempt Aarch32 on Aarch64, then there could be other complications. I still have not figured out this problem. Also see http://www.96boards.org/forums/topic/compile-and-execute-an-aarch32-program-on-aarch64/ . Jeff