[Bug target/91204] [10 Regression] ICE in expand_expr_real_2, at expr.c:9215 with -O3

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Jul 19 09:28:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91204

--- Comment #6 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Jakub Jelinek from comment #3)
> seems to work for me.  Or of course something similar can be done in
> config/i386/mmx.md, basically copy the sse.md one_cmpl<mode>2 pattern to
> mmx.md with TARGET_MMX_WITH_SSE and MMXMODEI iterator.

Like this?

--cut here--
diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md
index 4c71e66e6607..c78b33b510a6 100644
--- a/gcc/config/i386/mmx.md
+++ b/gcc/config/i386/mmx.md
@@ -1158,6 +1158,14 @@
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

+(define_expand "one_cmpl<mode>2"
+  [(set (match_operand:MMXMODEI 0 "register_operand")
+       (xor:MMXMODEI
+         (match_operand:MMXMODEI 1 "register_operand")
+         (match_dup 2)))]
+  "TARGET_MMX_WITH_SSE"
+  "operands[2] = force_reg (<MODE>mode, CONSTM1_RTX (<MODE>mode));")
+
 (define_insn "mmx_andnot<mode>3"
   [(set (match_operand:MMXMODEI 0 "register_operand" "=y,x,Yv")
        (and:MMXMODEI
--cut here--


More information about the Gcc-bugs mailing list