Thanks for doing this a pre-patch.  Minor request below:

Tamar Christina <tamar.christ...@arm.com> writes:
>  ;; Perform a logical operation on operands 2 and 3, using operand 1 as
> @@ -6676,38 +6690,42 @@ (define_insn "@aarch64_pred_<optab><mode>_z"
>  (define_insn "*<optab><mode>3_cc"
>    [(set (reg:CC_NZC CC_REGNUM)
>       (unspec:CC_NZC
> -       [(match_operand:VNx16BI 1 "register_operand" "Upa")
> +       [(match_operand:VNx16BI 1 "register_operand")
>          (match_operand 4)
>          (match_operand:SI 5 "aarch64_sve_ptrue_flag")
>          (and:PRED_ALL
>            (LOGICAL:PRED_ALL
> -            (match_operand:PRED_ALL 2 "register_operand" "Upa")
> -            (match_operand:PRED_ALL 3 "register_operand" "Upa"))
> +            (match_operand:PRED_ALL 2 "register_operand")
> +            (match_operand:PRED_ALL 3 "register_operand"))
>            (match_dup 4))]
>         UNSPEC_PTEST))
> -   (set (match_operand:PRED_ALL 0 "register_operand" "=Upa")
> +   (set (match_operand:PRED_ALL 0 "register_operand")
>       (and:PRED_ALL (LOGICAL:PRED_ALL (match_dup 2) (match_dup 3))
>                     (match_dup 4)))]
>    "TARGET_SVE"
> -  "<logical>s\t%0.b, %1/z, %2.b, %3.b"
> +  {@ [ cons: =0, 1  , 2  , 3  , 4, 5 ]
> +     [ Upa     , Upa, Upa, Upa,  ,   ] <logical>s\t%0.b, %1/z, %2.b, %3.b
> +  }
>  )

Could we leave out these empty trailing constraints?  They're quite
common in SVE & SME patterns and are specifically not meant to influence
instruction selection.  E.g. we've done the same thing for *cnot<mode>
(to pick a random example).

Agree with Kyrill's ok otherwise.

Richard

Reply via email to