diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-02-05 22:13:43 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-02-05 22:13:43 +0100 |
commit | 861c7bcd62bcbbf6e14311e18ba7293cc581e1ff (patch) | |
tree | 84543eae7a1c294a2636eed0bf90ff081233edf4 /gcc/lra-eliminations.c | |
parent | b5c1c988528a8761d802e923fe0a94160810c732 (diff) | |
download | gcc-861c7bcd62bcbbf6e14311e18ba7293cc581e1ff.zip gcc-861c7bcd62bcbbf6e14311e18ba7293cc581e1ff.tar.gz gcc-861c7bcd62bcbbf6e14311e18ba7293cc581e1ff.tar.bz2 |
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
Diffstat (limited to 'gcc/lra-eliminations.c')
-rw-r--r-- | gcc/lra-eliminations.c | 3 |
1 files changed, 2 insertions, 1 deletions
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; |