[PATCH][GCC][AARCH64] Canonicalize aarch64 widening simd plus insns
Richard Sandiford
richard.sandiford@arm.com
Thu Jul 12 10:18:00 GMT 2018
Looks good to me FWIW (not a maintainer), just a minor formatting thing:
Matthew Malcomson <matthew.malcomson@arm.com> writes:
> diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
> index aac5fa146ed8dde4507a0eb4ad6a07ce78d2f0cd..67b29cbe2cad91e031ee23be656ec61a403f2cf9 100644
> --- a/gcc/config/aarch64/aarch64-simd.md
> +++ b/gcc/config/aarch64/aarch64-simd.md
> @@ -3302,38 +3302,78 @@
> DONE;
> })
>
> -(define_insn "aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>"
> +(define_insn "aarch64_<ANY_EXTEND:su>subw<mode>"
> [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
> - (ADDSUB:<VWIDE> (match_operand:<VWIDE> 1 "register_operand" "w")
> - (ANY_EXTEND:<VWIDE>
> - (match_operand:VD_BHSI 2 "register_operand" "w"))))]
> + (minus:<VWIDE>
> + (match_operand:<VWIDE> 1 "register_operand" "w")
> + (ANY_EXTEND:<VWIDE>
> + (match_operand:VD_BHSI 2 "register_operand" "w"))))]
The (minus should be under the "(match_operand":
(define_insn "aarch64_<ANY_EXTEND:su>subw<mode>"
[(set (match_operand:<VWIDE> 0 "register_operand" "=w")
(minus:<VWIDE> (match_operand:<VWIDE> 1 "register_operand" "w")
(ANY_EXTEND:<VWIDE>
(match_operand:VD_BHSI 2 "register_operand" "w"))))]
Same for the other patterns.
Thanks,
Richard
More information about the Gcc-patches
mailing list