aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2019-09-11 10:44:06 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2019-09-11 10:44:06 +0000
commit4d1f8ea2c3f5a0528966e58f8ba013a84275ed17 (patch)
tree5185c31791dbd38328a83a84b20b850a7a9656ad
parentc84e340ffa6895d1bfc65308e40d292e23ab4378 (diff)
PR rtl-optimization/89795
* rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@275638 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/rtlanal.c2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/sparc/20161111-1.c2
4 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 18be6a493ce..ad4384a37c3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-09-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/89795
+ * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
+ inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
+
2019-09-09 Jakub Jelinek <jakub@redhat.com>
PR target/87853
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 5642c0d6fcf..bf1c42a8aa1 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -4636,7 +4636,7 @@ nonzero_bits1 (const_rtx x, machine_mode mode, const_rtx known_x,
|| ((extend_op = load_extend_op (inner_mode)) == SIGN_EXTEND
? val_signbit_known_set_p (inner_mode, nonzero)
: extend_op != ZERO_EXTEND)
- || (!MEM_P (SUBREG_REG (x)) && !REG_P (SUBREG_REG (x))))
+ || !MEM_P (SUBREG_REG (x)))
&& GET_MODE_PRECISION (GET_MODE (x))
> GET_MODE_PRECISION (inner_mode))
nonzero
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 332294c99d6..d24390fb2ba 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.target/sparc/20161111-1.c: XFAIL redundant zero-extension test.
+
2019-09-10 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
diff --git a/gcc/testsuite/gcc.target/sparc/20161111-1.c b/gcc/testsuite/gcc.target/sparc/20161111-1.c
index eda8b0a9f12..8195fec8990 100644
--- a/gcc/testsuite/gcc.target/sparc/20161111-1.c
+++ b/gcc/testsuite/gcc.target/sparc/20161111-1.c
@@ -14,4 +14,4 @@ unsigned char ee_isdigit2(unsigned int i)
return retval;
}
-/* { dg-final { scan-assembler-not "and\t%" } } */
+/* { dg-final { scan-assembler-not "and\t%" { xfail *-*-* } } } */