aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2019-07-19 16:36:49 +0200
committerUros Bizjak <uros@gcc.gnu.org>2019-07-19 16:36:49 +0200
commitd826ea32f6c98b59cbcb4140751374c583616239 (patch)
tree5ca720032f0f86f693bd61fca57df190c61d051c
parent4eb503965ac70e747fa03a5298c1c9af04580c95 (diff)
downloadgcc-d826ea32f6c98b59cbcb4140751374c583616239.zip
gcc-d826ea32f6c98b59cbcb4140751374c583616239.tar.gz
gcc-d826ea32f6c98b59cbcb4140751374c583616239.tar.bz2
re PR target/91204 (ICE in expand_expr_real_2, at expr.c:9215 with -O3)
PR target/91204 * config/i386/mmx.md (one_cmpl<mode>2): New expander. From-SVN: r273604
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/mmx.md8
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2ccbcd1..8824ffd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2019-07-19 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR target/91204
+ * config/i386/mmx.md (one_cmpl<mode>2): New expander.
+
2019-07-19 Jan Hubicka <hubicka@ucw.cz>
PR ipa/91194
diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md
index 4c71e66..c78b33b 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