https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99786
--- Comment #2 from Christophe Lyon <clyon at gcc dot gnu.org> --- This fixes the ICE: diff --git a/gcc/config/arm/vec-common.md b/gcc/config/arm/vec-common.md index 48ee659..86563d9 100644 --- a/gcc/config/arm/vec-common.md +++ b/gcc/config/arm/vec-common.md @@ -103,7 +103,7 @@ (define_expand "mul<mode>3" [(set (match_operand:VDQWH 0 "s_register_operand") (mult:VDQWH (match_operand:VDQWH 1 "s_register_operand") (match_operand:VDQWH 2 "s_register_operand")))] - "ARM_HAVE_<MODE>_ARITH" + "ARM_HAVE_<MODE>_ARITH && (!TARGET_REALLY_IWMMXT || <MODE>mode == V4HImode)" ) However, I am getting errors from the assembler: pr79904.s:29: Error: selected processor does not support `wldrd wr0,[r3]' in ARM mode pr79904.s:30: Error: selected processor does not support `wldrd wr2,.L2' in ARM mode pr79904.s:31: Error: selected processor does not support `wmulul wr0,wr0,wr2' in ARM mode pr79904.s:33: Error: selected processor does not support `wstrd wr0,[r3]' in ARM mode I am compiling with arm-eabi-gcc -mcpu=iwmmxt. These errors are unrelated to the PR, but I am wondering why they appear?