https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88734
--- Comment #6 from Tamar Christina <tnfchris at gcc dot gnu.org> --- Yes, I noticed them as well as was taking a look. I don't quite understand what was going on before and why they passed but the option is wrong. Those intrinsics and are all sha3 extensions. diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index 4d50af6..f405a32 100644 --- a/gcc/config/aarch64/arm_neon.h +++ b/gcc/config/aarch64/arm_neon.h @@ -33137,7 +33137,7 @@ vsm4ekeyq_u32 (uint32x4_t __a, uint32x4_t __b) #pragma GCC pop_options #pragma GCC push_options -#pragma GCC target ("arch=armv8.2-a+crypto") +#pragma GCC target ("arch=armv8.2-a+sha3") __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -- should fix it. I really don't understand the behavior when you use ((..)) by accident though.