re PR target/84860 (ICE in emit_move_insn, at expr.c:3717)

PR target/84860
	* optabs.c (emit_conditional_move): Pass address of cmode's copy
	rather than address of cmode as last argument to prepare_cmp_insn.

	* gcc.c-torture/compile/pr84860.c: New test.

From-SVN: r258552
This commit is contained in:
Jakub Jelinek 2018-03-15 09:35:28 +01:00 committed by Jakub Jelinek
parent c36b04c146
commit fa7dde7ea2
4 changed files with 24 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2018-03-15 Jakub Jelinek <jakub@redhat.com>
PR target/84860
* optabs.c (emit_conditional_move): Pass address of cmode's copy
rather than address of cmode as last argument to prepare_cmp_insn.
2018-03-15 Julia Koval <julia.koval@intel.com>
* config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ,

View File

@ -4345,9 +4345,10 @@ emit_conditional_move (rtx target, enum rtx_code code, rtx op0, rtx op1,
save_pending_stack_adjust (&save);
last = get_last_insn ();
do_pending_stack_adjust ();
machine_mode cmpmode = cmode;
prepare_cmp_insn (XEXP (comparison, 0), XEXP (comparison, 1),
GET_CODE (comparison), NULL_RTX, unsignedp,
OPTAB_WIDEN, &comparison, &cmode);
OPTAB_WIDEN, &comparison, &cmpmode);
if (comparison)
{
struct expand_operand ops[4];

View File

@ -1,3 +1,8 @@
2018-03-15 Jakub Jelinek <jakub@redhat.com>
PR target/84860
* gcc.c-torture/compile/pr84860.c: New test.
2018-03-15 Julia Koval <julia.koval@intel.com>
* gcc.target/i386/builtin_target.c (check_intel_cpu_model): Add

View File

@ -0,0 +1,11 @@
/* PR target/84860 */
void
foo (int x, int y)
{
while (x < 1)
{
x = y;
y = ((float)1 / 0) ? 2 : 0;
}
}