On Wed, Nov 19, 2014 at 04:24:25PM +0100, Markus Trippelsdorf wrote:
> --- a/gcc/config/rs6000/constraints.md
> +++ b/gcc/config/rs6000/constraints.md
> @@ -140,7 +140,7 @@
>  (define_constraint "I"
>    "A signed 16-bit constant"
>    (and (match_code "const_int")
> -       (match_test "(unsigned HOST_WIDE_INT) (ival + 0x8000) < 0x10000")))
> +       (match_test "((unsigned HOST_WIDE_INT) ival + 0x8000) < 0x10000")))

Use IN_RANGE instead?

> --- a/gcc/config/rs6000/predicates.md
> +++ b/gcc/config/rs6000/predicates.md
> @@ -392,8 +392,8 @@
>  ;; Return 1 if op is a constant integer valid for addition with addis, addi.
>  (define_predicate "add_cint_operand"
>    (and (match_code "const_int")
> -       (match_test "(unsigned HOST_WIDE_INT)
> -                   (INTVAL (op) + (mode == SImode ? 0x80000000 : 0x80008000))
> +       (match_test "((unsigned HOST_WIDE_INT) INTVAL (op)
> +                    + (mode == SImode ? 0x80000000 : 0x80008000))
>                   < (unsigned HOST_WIDE_INT) 0x100000000ll")))

Same here.  Best readable if you make it two IN_RANGE conditions, one
for SImode and one for the other :-)

Rest looks fine.


Segher

Reply via email to