diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-04-25 15:10:01 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-04-25 15:10:01 +0200 |
commit | b15b6fc56478c6243e5776d04c23565ebba87e68 (patch) | |
tree | 794d1758d03e521bfe63f3d94d05b87930c0bb51 /gcc/expr.c | |
parent | be3830f845753a70a38599f3d963a5cbbedcd306 (diff) | |
download | gcc-b15b6fc56478c6243e5776d04c23565ebba87e68.zip gcc-b15b6fc56478c6243e5776d04c23565ebba87e68.tar.gz gcc-b15b6fc56478c6243e5776d04c23565ebba87e68.tar.bz2 |
re PR middle-end/85414 (ICE: in ix86_expand_prologue, at config/i386/i386.c:13810 with -Og -fgcse)
PR middle-end/85414
* simplify-rtx.c (simplify_unary_operation_1) <case SIGN_EXTEND,
case ZERO_EXTEND>: Pass SUBREG_REG (op) rather than op to
gen_lowpart_no_emit.
From-SVN: r259649
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -233,7 +233,10 @@ convert_move (rtx to, rtx from, int unsignedp) && (GET_MODE_PRECISION (subreg_promoted_mode (from)) >= GET_MODE_PRECISION (to_int_mode)) && SUBREG_CHECK_PROMOTED_SIGN (from, unsignedp)) - from = gen_lowpart (to_int_mode, from), from_mode = to_int_mode; + { + from = gen_lowpart (to_int_mode, SUBREG_REG (from)); + from_mode = to_int_mode; + } gcc_assert (GET_CODE (to) != SUBREG || !SUBREG_PROMOTED_VAR_P (to)); |