Hi!

On Mon, Jul 25, 2022 at 01:11:47PM +0800, HAO CHEN GUI wrote:
>   This patch adds an expand and several insns for multiply-add with
> three 64bit operands.

>       PR target/103109
>       * config/rs6000/rs6000.md (<u>maddditi4): New pattern for
>       multiply-add.

Please don't break lines unnecessarily.

> +(define_expand "<u>maddditi4"
> +  [(set (match_operand:TI 0 "gpc_reg_operand")
> +     (plus:TI
> +       (mult:TI (any_extend:TI
> +                  (match_operand:DI 1 "gpc_reg_operand"))
> +                (any_extend:TI
> +                  (match_operand:DI 2 "gpc_reg_operand")))
> +       (any_extend:TI
> +         (match_operand:DI 3 "gpc_reg_operand"))))]

Broken indentation, should be

(define_expand "<u>maddditi4"
  [(set (match_operand:TI 0 "gpc_reg_operand")
        (plus:TI
          (mult:TI (any_extend:TI (match_operand:DI 1 "gpc_reg_operand"))
                   (any_extend:TI (match_operand:DI 2 "gpc_reg_operand")))
          (any_extend:TI (match_operand:DI 3 "gpc_reg_operand"))))]

> +  "TARGET_POWERPC64 && TARGET_MADDLD"

TARGET_MADDLD should itself already include TARGET_POWERPC64.  Could you
please send a separate patch for that first?

> +(define_insn "<u>madddi4_lowpart"
> +  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
> +     (subreg:DI
> +       (plus:TI
> +         (mult:TI (any_extend:TI
> +                    (match_operand:DI 1 "gpc_reg_operand" "r"))
> +                  (any_extend:TI
> +                    (match_operand:DI 2 "gpc_reg_operand" "r")))
> +         (any_extend:TI
> +           (match_operand:DI 3 "gpc_reg_operand" "r")))
> +      8))]

  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
        (subreg:DI
          (plus:TI
            (mult:TI (any_extend:TI (match_operand:DI 1 "gpc_reg_operand" "r"))
                     (any_extend:TI (match_operand:DI 2 "gpc_reg_operand" "r")))
            (any_extend:TI (match_operand:DI 3 "gpc_reg_operand" "r")))
         8))]

(and similar for _le of course).


Segher

Reply via email to