https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72738
--- Comment #3 from Jeffrey Walton <noloader at gmail dot com> --- (In reply to Jeffrey Walton from comment #2) > (In reply to James Greenhalgh from comment #1) > > Testcase needs a #include <stdbool.h> to compile, but otherwise confirmed > > from GCC 4.9 through to trunk. > > > > Note that it isn't immediately clear that this is valid code - operations on > > poly128_t other than vreinterpret, vldrq, and vstrq are not defined by ACLE, > > so the equality/inequality operators have no defined meaning (though ICEing > > is still not correct). Here's the reason for the dodgy-ness. Its a LeMaker HiKey, ARMv8/Aarch64 running Linaro with Debian/Linaro 4.9.2-10: $ grep -IR vreinterpretq_u64_p128 /usr/lib/gcc $ Its missing some of the vreinterpret_*_p intrinsics, like vreinterpretq_u64_p128. ***** $ find /usr/lib -name 'arm_neon.h' /usr/lib/gcc/aarch64-linux-gnu/4.9/include/arm_neon.h /usr/lib/llvm-3.5/lib/clang/3.5.0/include/arm_neon.h $ find /usr/lib -name 'arm_acle.h' /usr/lib/gcc/aarch64-linux-gnu/4.9/include/arm_acle.h /usr/lib/llvm-3.5/lib/clang/3.5.0/include/arm_acle.h And: $ grep p128 /usr/lib/gcc/aarch64-linux-gnu/4.9/include/arm_acle.h $ grep p128 /usr/lib/gcc/aarch64-linux-gnu/4.9/include/arm_neon.h $ grep p64 /usr/lib/gcc/aarch64-linux-gnu/4.9/include/arm_acle.h $ grep p64 /usr/lib/gcc/aarch64-linux-gnu/4.9/include/arm_neon.h vmull_p64 (poly64_t a, poly64_t b) vmull_high_p64 (poly64x2_t a, poly64x2_t b) $