Commit 6f28d3e9 by Richard Henderson Committed by Richard Henderson

* combine.c (make_compound_operation): Simplify (subreg (*_extend) 0).

From-SVN: r18836
parent 7eea6443
Thu Mar 26 00:19:47 1998 Richard Henderson <rth@cygnus.com>
* combine.c (make_compound_operation): Simplify (subreg (*_extend) 0).
Wed Mar 25 23:53:11 1998 Jeffrey A Law (law@cygnus.com)
* pa.c (pa_adjust_cost): Avoid redundant calls to get_attr_type.
......
......@@ -6038,6 +6038,23 @@ make_compound_operation (x, in_code)
return newer;
}
/* If this is a paradoxical subreg, and the new code is a sign or
zero extension, omit the subreg and widen the extension. If it
is a regular subreg, we can still get rid of the subreg by not
widening so much, or in fact removing the extension entirely. */
if ((GET_CODE (tem) == SIGN_EXTEND
|| GET_CODE (tem) == ZERO_EXTEND)
&& subreg_lowpart_p (x))
{
if (GET_MODE_SIZE (mode) > GET_MODE_SIZE (GET_MODE (tem))
|| (GET_MODE_SIZE (mode) >
GET_MODE_SIZE (GET_MODE (XEXP (tem, 0)))))
tem = gen_rtx_combine (GET_CODE (tem), mode, XEXP (tem, 0));
else
tem = gen_lowpart_for_combine (mode, XEXP (tem, 0));
return tem;
}
break;
default:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment