diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5b6fd01d85f..fa4d4ba0b4e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-10-31 Richard Sandiford + + * 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 * combine.c (make_extraction): Remove dead wanted_inner_mode- diff --git a/gcc/combine.c b/gcc/combine.c index e9d0a45d633..5bbf0bde937 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -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);