Hi Richard,


> ---
>  gcc/config/arm/arm.md |   40 ++++++++++++++++++++++++++++++----------
>  1 files changed, 30 insertions(+), 10 deletions(-)
>
> diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
> index b01343c..3b24627 100644
> --- a/gcc/config/arm/arm.md
> +++ b/gcc/config/arm/arm.md

<...snip>

>  ; By splitting (IOR (AND (NOT A) (NOT B)) C) as D = AND (IOR A B) (NOT C),
>  ; (NOT D) we can sometimes merge the final NOT into one of the following
> @@ -4702,7 +4719,8 @@
>                         (const_int 0)))]
>   "TARGET_32BIT"
>   "tst\\t%0, #255"
> -  [(set_attr "conds" "set")]
> +  [(set_attr "conds" "set")
> +   (set_attr "predicable" "yes")]
>  )

It should be tst%? . Otherwise in the predicable case we wouldn't have
the condition code printed out.

Hmmm that looks like it's been latent for a while.

>
>  (define_expand "extendhisi2"
> @@ -7458,7 +7476,8 @@
>    cmn%?\\t%0, #%n1"
>   [(set_attr "conds" "set")
>    (set_attr "arch" "t2,t2,any,any")
> -   (set_attr "length" "2,2,4,4")]
> +   (set_attr "length" "2,2,4,4")
> +   (set_attr "predicable" "yes")]
>  )
>
>  (define_insn "*cmpsi_shiftsi"
> @@ -7499,7 +7518,8 @@
>   [(set_attr "conds" "set")
>    (set (attr "type") (if_then_else (match_operand 3 "const_int_operand" "")
>                                    (const_string "alu_shift")
> -                                   (const_string "alu_shift_reg")))]
> +                                   (const_string "alu_shift_reg")))
> +   (set_attr "predicable" "yes")]
>  )
>


Otherwise looks OK to me.

Ramana

Reply via email to