https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68674
chrbr at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Target|arm |arm,aarch64 Assignee|chrbr at gcc dot gnu.org |unassigned at gcc dot gnu.org Summary|ARM attribute target neon |ARM/AARCH64 attribute |internal compiler error: in |target neon internal |copy_to_mode_reg, at |compiler error: in |explow.c:595 |copy_to_mode_reg, at | |explow.c:595 --- Comment #6 from chrbr at gcc dot gnu.org --- This test also ICEs for aarch64 the same way ----------------------------------------- #include <arm_neon.h> int8x8_t a, b; int16x8_t e; void __attribute__ ((target("+simd"))) foo(void) { e = (int16x8_t) vaddl_s8(a, b); } ----------------------------------------- internal compiler error: in copy_to_mode_reg, at explow.c:595 return (int16x8_t) __builtin_aarch64_saddlv8qi (__a, __b); called with: cc1 -quiet pr68674.c -mcpu=cortex-a53+nosimd -O2 The reason is that DECL_MODE is been initialized to a scalar during layout_decl since TARGET_SIMD is not set during the global initialization.