On 05/08/2015 09:43 AM, Uros Bizjak wrote:
> @@ -1509,8 +1509,7 @@
>       (and:DI (ashift:DI (match_operand:DI 1 "register_operand" "r")
>                          (match_operand:DI 2 "mul8_operand" "I"))
>               (match_operand:DI 3 "immediate_operand" "i")))]
> -  "HOST_BITS_PER_WIDE_INT == 64
> -   && CONST_INT_P (operands[3])
> +  "CONST_INT_P (operands[3])

Just noticed that we can eliminate this test if we use const_int_operand 
instead.

> +  "operands[2] = force_reg (DImode, GEN_INT (HOST_WIDE_INT_1 << 63));")

I bet we're now supposed to use HOST_WIDE_INT_1U, to avoid any ubsan shift
silliness.

> @@ -1929,7 +1925,7 @@ alpha_emit_set_const_1 (rtx target, machine_mode m
>           temp = alpha_emit_set_const (subtarget, mode, new_const, i, 
> no_output);
>           if (!temp)
>             {
> -             new_const = (c << bits) | (((HOST_WIDE_INT) 1 << bits) - 1);
> +             new_const = (c << bits) | ((HOST_WIDE_INT_1 << bits) - 1);

Likewise.


r~

Reply via email to