[gcc(refs/users/marxin/heads/marxin-gcc-benchmark-branch)] Revert g-465c7c89e92a6d6d582173e505cb16dcb9873034

Martin Liska marxin@gcc.gnu.org
Mon Mar 30 10:37:34 GMT 2020


https://gcc.gnu.org/g:2812a28418b72b24979805cfca1f140dda4963b7

commit 2812a28418b72b24979805cfca1f140dda4963b7
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Wed Jan 29 18:56:35 2020 +0000

    Revert g-465c7c89e92a6d6d582173e505cb16dcb9873034
    
    The patch caused regressions in gcc.target/sh/pr64345-1.c on
    sh3-linux-gnu and gcc.target/m68k/pr39726.c on m68k-linux-gnu.
    It didn't look like they would be fixable in an acceptably
    non-invasive and unhacky way, so punting till future releases.
    
    2020-01-29  Richard Sandiford  <richard.sandiford@arm.com>
    
    gcc/
            Revert:
    
            2020-01-28  Richard Sandiford  <richard.sandiford@arm.com>
    
            PR rtl-optimization/87763
            * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
            simplification to handle subregs as well as bare regs.
            * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.

Diff:
---
 gcc/ChangeLog           | 11 +++++++++++
 gcc/config/i386/i386.md |  2 +-
 gcc/simplify-rtx.c      |  4 +---
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 67d24c74c3d..e2838c053a3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2020-01-29  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Revert:
+
+	2020-01-28  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR rtl-optimization/87763
+	* simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
+	simplification to handle subregs as well as bare regs.
+	* config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
+
 2020-01-29  Joel Hutton  <Joel.Hutton@arm.com>
 
 	PR target/93221
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 9f0077d59a9..f83b3702c8e 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -8925,7 +8925,7 @@
 (define_insn_and_split "*testqi_ext_3"
   [(set (match_operand 0 "flags_reg_operand")
         (match_operator 1 "compare_operator"
-	  [(zero_extract:SWI
+	  [(zero_extract:SWI248
 	     (match_operand 2 "nonimmediate_operand" "rm")
 	     (match_operand 3 "const_int_operand" "n")
 	     (match_operand 4 "const_int_operand" "n"))
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index db4f9339c15..eff1d07a253 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -736,9 +736,7 @@ simplify_truncation (machine_mode mode, rtx op,
      (*_extract:M1 (truncate:M1 (reg:M2)) (len) (pos')) if possible without
      changing len.  */
   if ((GET_CODE (op) == ZERO_EXTRACT || GET_CODE (op) == SIGN_EXTRACT)
-      && (REG_P (XEXP (op, 0))
-	  || (SUBREG_P (XEXP (op, 0))
-	      && REG_P (SUBREG_REG (XEXP (op, 0)))))
+      && REG_P (XEXP (op, 0))
       && GET_MODE (XEXP (op, 0)) == GET_MODE (op)
       && CONST_INT_P (XEXP (op, 1))
       && CONST_INT_P (XEXP (op, 2)))


More information about the Gcc-cvs mailing list