From ca45475532cfba964304eb54ea7df4311469f6c2 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 5 Dec 2019 10:04:24 +0100 Subject: [PATCH] re PR target/92791 (ICE in extract_insn, at recog.c:2311 since r278645) PR target/92791 * config/i386/i386.md (movstrict): Move test for TARGET_PARTIAL_REG_STALL and not optimizing for size from expander's condition to the body - FAIL; in that case. From-SVN: r278989 --- gcc/ChangeLog | 7 +++++++ gcc/config/i386/i386.md | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7f44667ab21..9bb76236d24 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-12-05 Jakub Jelinek + + PR target/92791 + * config/i386/i386.md (movstrict): Move test for + TARGET_PARTIAL_REG_STALL and not optimizing for size from + expander's condition to the body - FAIL; in that case. + 2019-12-03 Martin Sebor PR middle-end/91582 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 2d43992724f..66a6f200672 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -2801,10 +2801,11 @@ (define_expand "movstrict" [(set (strict_low_part (match_operand:SWI12 0 "register_operand")) (match_operand:SWI12 1 "general_operand"))] - "!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)" + "" { gcc_assert (SUBREG_P (operands[0])); - if (GET_MODE_CLASS (GET_MODE (SUBREG_REG (operands[0]))) != MODE_INT) + if ((TARGET_PARTIAL_REG_STALL && optimize_function_for_speed_p (cfun)) + || GET_MODE_CLASS (GET_MODE (SUBREG_REG (operands[0]))) != MODE_INT) FAIL; }) -- 2.30.2