diff options
author | Richard Biener <rguenther@suse.de> | 2019-08-16 13:17:04 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-08-16 13:17:04 +0000 |
commit | 772a1b15d57f0c035188f85cf42641b217eef9eb (patch) | |
tree | 17d614212d989f201b899112a7e1bd1c0aca48f1 /gcc/config | |
parent | 4305b26e1d83b8065f978839252328bca24007e0 (diff) | |
download | gcc-772a1b15d57f0c035188f85cf42641b217eef9eb.zip gcc-772a1b15d57f0c035188f85cf42641b217eef9eb.tar.gz gcc-772a1b15d57f0c035188f85cf42641b217eef9eb.tar.bz2 |
re PR target/91469 (ICE in extract_insn, at recog.c:2310 since r274481)
2019-08-16 Richard Biener <rguenther@suse.de>
PR target/91469
* config/i386/i386-features.c
(general_scalar_chain::replace_with_subreg): Stop at memory operands.
* gcc.target/i386/pr91469-1.c: New testcase.
* gcc.target/i386/pr91469-2.c: Likewise.
From-SVN: r274570
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/i386-features.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/i386/i386-features.c b/gcc/config/i386/i386-features.c index cead207..c4a3d30 100644 --- a/gcc/config/i386/i386-features.c +++ b/gcc/config/i386/i386-features.c @@ -613,6 +613,10 @@ general_scalar_chain::replace_with_subreg (rtx x, rtx reg, rtx new_reg) if (x == reg) return gen_rtx_SUBREG (vmode, new_reg, 0); + /* But not in memory addresses. */ + if (MEM_P (x)) + return x; + const char *fmt = GET_RTX_FORMAT (GET_CODE (x)); int i, j; for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--) |