diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-08-12 14:57:01 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-08-12 14:57:01 -0400 |
commit | 1d12df723d8dc90f2f75b73bbf799725c214584b (patch) | |
tree | 9e43a35e7e1f25f831ab0f0c37de9cb1b6913589 | |
parent | 7d79bcc1698293a21d4b6d33f32d108072df44cf (diff) | |
download | gcc-1d12df723d8dc90f2f75b73bbf799725c214584b.zip gcc-1d12df723d8dc90f2f75b73bbf799725c214584b.tar.gz gcc-1d12df723d8dc90f2f75b73bbf799725c214584b.tar.bz2 |
(simplify_rtx, case FLOAT_TRUNCATE): Remove redundant float_truncate.
From-SVN: r7906
-rw-r--r-- | gcc/combine.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index 83f2cd4..581105e 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -3444,6 +3444,13 @@ simplify_rtx (x, op0_mode, last, in_dest) && GET_MODE (XEXP (XEXP (XEXP (x, 0), 0), 0)) == mode) return gen_unary (GET_CODE (XEXP (x, 0)), mode, mode, XEXP (XEXP (XEXP (x, 0), 0), 0)); + + /* (float_truncate:SF (subreg:DF (float_truncate:SF X) 0)) + is (float_truncate:SF x). */ + if (GET_CODE (XEXP (x, 0)) == SUBREG + && subreg_lowpart_p (XEXP (x, 0)) + && GET_CODE (SUBREG_REG (XEXP (x, 0))) == FLOAT_TRUNCATE) + return SUBREG_REG (XEXP (x, 0)); break; #ifdef HAVE_cc0 |