[PATCH, rs6000] Add multiply-add expand pattern [PR103109]

Segher Boessenkool segher@kernel.crashing.org
Mon Aug 1 21:10:42 GMT 2022


Hi!

On Mon, Jul 25, 2022 at 01:11:47PM +0800, HAO CHEN GUI wrote:
> +(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))]
> +  "TARGET_POWERPC64 && TARGET_MADDLD && BYTES_BIG_ENDIAN"
> +  "maddld %0,%1,%2,%3"
> +  [(set_attr "type" "mul")])

So, hrm.  This (as well as the _le version) simplifies to just the :DI
ops, without subreg.  Not properly simplified patterns like this will
not ever match, so most optimisations on this will not work :-(


Segher


More information about the Gcc-patches mailing list