From 861c7bcd62bcbbf6e14311e18ba7293cc581e1ff Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 5 Feb 2016 22:13:43 +0100 Subject: re PR rtl-optimization/69691 (wrong code at -O2 on x86_64-linux-gnu) PR rtl-optimization/69691 * lra-eliminations.c (move_plus_up): Don't add the addend twice. * gcc.c-torture/execute/pr69691.c: New test. From-SVN: r233187 --- gcc/lra-eliminations.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc/lra-eliminations.c') diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c index 1494263..9ae5cfe 100644 --- a/gcc/lra-eliminations.c +++ b/gcc/lra-eliminations.c @@ -303,7 +303,8 @@ move_plus_up (rtx x) subreg_lowpart_offset (x_mode, subreg_reg_mode)); if (cst && CONSTANT_P (cst)) - return gen_rtx_PLUS (x_mode, lowpart_subreg (x_mode, subreg_reg, + return gen_rtx_PLUS (x_mode, lowpart_subreg (x_mode, + XEXP (subreg_reg, 0), subreg_reg_mode), cst); } return x; -- cgit v1.1