diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2020-01-29 18:56:35 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2020-01-29 19:15:29 +0000 |
commit | 2812a28418b72b24979805cfca1f140dda4963b7 (patch) | |
tree | ecd2ef276cc6df3aea9c07a840de551224946d9b /gcc/simplify-rtx.c | |
parent | e3b60da8e07030b1417067295f047b25015f21f2 (diff) | |
download | gcc-2812a28418b72b24979805cfca1f140dda4963b7.zip gcc-2812a28418b72b24979805cfca1f140dda4963b7.tar.gz gcc-2812a28418b72b24979805cfca1f140dda4963b7.tar.bz2 |
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.
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r-- | gcc/simplify-rtx.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index db4f933..eff1d07 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))) |