(simplify_rtx, case FLOAT_TRUNCATE): Simplify

case of (float_truncate (abs (float_extend X))).

From-SVN: r6857
This commit is contained in:
Richard Kenner 1994-03-23 17:28:26 -05:00
parent a20dcf46c0
commit 4635f74880
1 changed files with 9 additions and 0 deletions

View File

@ -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