> diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
> index 89a46a9..d74a4ba 100644
> --- a/gcc/simplify-rtx.c
> +++ b/gcc/simplify-rtx.c
> @@ -1504,12 +1504,12 @@ simplify_unary_operation_1 (enum rtx_code code, 
> machine_mode mode, rtx op)
>         && CONST_INT_P (XEXP (op, 1))
>         && XEXP (XEXP (op, 0), 1) == XEXP (op, 1)
>         && (op_mode = as_a <scalar_int_mode> (GET_MODE (op)),
> -           GET_MODE_BITSIZE (op_mode) > INTVAL (XEXP (op, 1))))
> +           GET_MODE_UNIT_PRECISION (op_mode) > INTVAL (XEXP (op, 1))))
>       {
>         scalar_int_mode tmode;
> -       gcc_assert (GET_MODE_BITSIZE (int_mode)
> -                   > GET_MODE_BITSIZE (op_mode));
> -       if (int_mode_for_size (GET_MODE_BITSIZE (op_mode)
> +       gcc_assert (GET_MODE_UNIT_PRECISION (int_mode)
> +                   > GET_MODE_UNIT_PRECISION (op_mode));
> +       if (int_mode_for_size (GET_MODE_UNIT_PRECISION (op_mode)
>                                - INTVAL (XEXP (op, 1)), 1).exists (&tmode))
>           {
>             rtx inner =

I think these should be GET_MODE_PRECISION rather than
GET_MODE_UNIT_PRECISION.  They do the same thing in this context,
but it seems odd to use GET_MODE_UNIT_... when we're specifically
dealing with scalars.

Looks good otherwise (and small enough not to need a copyright assignment,
in case you haven't signed one).

Thanks,
Richard

Reply via email to