combine.c (simplify_comparison): If BITS_BIG_ENDIAN...

gcc/
	* combine.c (simplify_comparison): If BITS_BIG_ENDIAN, always assume
	that zero_extracts of const_ints are doing word-sized extractions.

From-SVN: r193026
This commit is contained in:
Richard Sandiford 2012-10-31 08:01:23 +00:00 committed by Richard Sandiford
parent 8e2326a23b
commit 7ae6664baa
2 changed files with 6 additions and 11 deletions

View File

@ -1,3 +1,8 @@
2012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
* combine.c (simplify_comparison): If BITS_BIG_ENDIAN, always assume
that zero_extracts of const_ints are doing word-sized extractions.
2012-10-31 Richard Sandiford <rdsandiford@googlemail.com>
* combine.c (make_extraction): Remove dead wanted_inner_mode-

View File

@ -11154,17 +11154,7 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
&& (i = exact_log2 (UINTVAL (XEXP (op0, 0)))) >= 0)
{
if (BITS_BIG_ENDIAN)
{
enum machine_mode new_mode
= mode_for_extraction (EP_extzv, 1);
if (new_mode == MAX_MACHINE_MODE)
i = BITS_PER_WORD - 1 - i;
else
{
mode = new_mode;
i = (GET_MODE_PRECISION (mode) - 1 - i);
}
}
i = BITS_PER_WORD - 1 - i;
op0 = XEXP (op0, 2);
op1 = GEN_INT (i);