re PR target/92791 (ICE in extract_insn, at recog.c:2311 since r278645)
authorJakub Jelinek <jakub@redhat.com>
Thu, 5 Dec 2019 09:04:24 +0000 (10:04 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 5 Dec 2019 09:04:24 +0000 (10:04 +0100)
PR target/92791
* config/i386/i386.md (movstrict<mode>): 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
gcc/config/i386/i386.md

index 7f44667ab218b2f509b80aad3d14515bb65b94e8..9bb76236d24ecb56f5946d326db0118dcbc7112a 100644 (file)
@@ -1,3 +1,10 @@
+2019-12-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/92791
+       * config/i386/i386.md (movstrict<mode>): 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  <msebor@redhat.com>
 
        PR middle-end/91582
index 2d43992724fa222fc1a3b20462633d7074364765..66a6f200672b9eb65dfbe73b1affd38a76fe3213 100644 (file)
 (define_expand "movstrict<mode>"
   [(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;
 })