From 4635f7488070db8d8262cec5f962bbef3bf06575 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 23 Mar 1994 17:28:26 -0500 Subject: [PATCH] (simplify_rtx, case FLOAT_TRUNCATE): Simplify case of (float_truncate (abs (float_extend X))). From-SVN: r6857 --- gcc/combine.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gcc/combine.c b/gcc/combine.c index e64add4b43e..077483f42aa 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -3456,6 +3456,15 @@ simplify_rtx (x, op0_mode, last, in_dest) if (GET_CODE (XEXP (x, 0)) == FLOAT_EXTEND && GET_MODE (XEXP (XEXP (x, 0), 0)) == mode) return XEXP (XEXP (x, 0), 0); + + /* (float_truncate:SF (OP:DF (float_extend:DF foo:sf))) is + (OP:SF foo:SF) if OP is NEG or ABS. */ + if ((GET_CODE (XEXP (x, 0)) == ABS + || GET_CODE (XEXP (x, 0)) == NEG) + && GET_CODE (XEXP (XEXP (x, 0), 0)) == FLOAT_EXTEND + && GET_MODE (XEXP (XEXP (XEXP (x, 0), 0), 0)) == mode) + return gen_unary (GET_CODE (XEXP (x, 0)), + mode, XEXP (XEXP (XEXP (x, 0), 0), 0)); break; #ifdef HAVE_cc0 -- 2.30.2