> 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