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?