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?

Reply via email to