From: Richard Kenner Date: Fri, 12 Aug 1994 18:57:01 +0000 (-0400) Subject: (simplify_rtx, case FLOAT_TRUNCATE): Remove redundant float_truncate. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1d12df723d8dc90f2f75b73bbf799725c214584b;p=gcc.git (simplify_rtx, case FLOAT_TRUNCATE): Remove redundant float_truncate. From-SVN: r7906 --- diff --git a/gcc/combine.c b/gcc/combine.c index 83f2cd469c5..581105ea8ec 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