re PR target/79495 (ICE in extract_constrain_insn, at recog.c:2213)

PR target/79495
	* config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.

testsuite/ChangeLog:

2017-02-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/79495
	* gcc.target/i386/pr79495.c: New test.

From-SVN: r245441
This commit is contained in:
Uros Bizjak 2017-02-14 18:52:37 +01:00 committed by Uros Bizjak
parent 6f207d5810
commit 95d966091d
4 changed files with 28 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2017-02-14 Uros Bizjak <ubizjak@gmail.com>
PR target/79495
* config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
PR target/79498

View File

@ -3248,9 +3248,9 @@
;; in alternatives 4, 6, 7 and 8.
(define_insn "*movxf_internal"
[(set (match_operand:XF 0 "nonimmediate_operand"
"=f,m,f,?r ,!o,?*r ,!o,!o,!o,r ,o")
"=f,m,f,?r ,!o,?*r ,!o,!o,!o,r ,o ,o")
(match_operand:XF 1 "general_operand"
"fm,f,G,roF,r , *roF,*r,F ,C,roF,rF"))]
"fm,f,G,roF,r ,*roF,*r,F ,C ,roF,rF,rC"))]
"!(MEM_P (operands[0]) && MEM_P (operands[1]))
&& (lra_in_progress || reload_completed
|| !CONST_DOUBLE_P (operands[1])
@ -3277,19 +3277,19 @@
}
}
[(set (attr "isa")
(cond [(eq_attr "alternative" "7")
(cond [(eq_attr "alternative" "7,10")
(const_string "nox64")
(eq_attr "alternative" "8")
(eq_attr "alternative" "8,11")
(const_string "x64")
]
(const_string "*")))
(set (attr "type")
(cond [(eq_attr "alternative" "3,4,5,6,7,8,9,10")
(cond [(eq_attr "alternative" "3,4,5,6,7,8,9,10,11")
(const_string "multi")
]
(const_string "fmov")))
(set (attr "mode")
(cond [(eq_attr "alternative" "3,4,5,6,7,8,9,10")
(cond [(eq_attr "alternative" "3,4,5,6,7,8,9,10,11")
(if_then_else (match_test "TARGET_64BIT")
(const_string "DI")
(const_string "SI"))
@ -3300,7 +3300,7 @@
(symbol_ref "false")]
(symbol_ref "true")))
(set (attr "enabled")
(cond [(eq_attr "alternative" "9,10")
(cond [(eq_attr "alternative" "9,10,11")
(if_then_else
(match_test "TARGET_HARD_XF_REGS")
(symbol_ref "false")

View File

@ -1,3 +1,8 @@
2017-02-14 Uros Bizjak <ubizjak@gmail.com>
PR target/79495
* gcc.target/i386/pr79495.c: New test.
2017-02-14 Marek Polacek <polacek@redhat.com>
PR c++/79420

View File

@ -0,0 +1,11 @@
/* PR target/79495 */
/* { dg-do compile } */
/* { dg-options "-O2 -msoft-float" } */
long double dnan = 1.0l/0.0l - 1.0l/0.0l;
long double x = 1.0l;
void fn1 (void)
{
if (dnan != x)
x = 1.0;
}