diff mbox series

[i386] : Fix (target part) PR91204, ICE in expand_expr_real_2

Message ID CAFULd4a9FEs-htKZR9Z_gMSm28Bmfop+nbEuWn3AvDmc6kEEYQ@mail.gmail.com
State New
Headers show
Series [i386] : Fix (target part) PR91204, ICE in expand_expr_real_2 | expand

Commit Message

Uros Bizjak July 19, 2019, 2:41 p.m. UTC
As suggested by Jakub in the PR, add missing vector one_cmpl<mode>2 to
mmx.md. A generic fix is in the works by Jakub.

2019-07-19  Uroš Bizjak  <ubizjak@gmail.com>

    PR target/91204
    * config/i386/mmx.md (one_cmpl<mode>2): New expander.

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline SVN.

Uros.
diff mbox series

Patch

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