]> git.ipfire.org Git - thirdparty/gcc.git/commit
[2/2] aarch64: Reimplement (R){ADD,SUB}HN2 patterns with standard RTL codes
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Thu, 4 May 2023 14:22:04 +0000 (15:22 +0100)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Thu, 4 May 2023 14:22:04 +0000 (15:22 +0100)
commit4657977541de1056a1cb651d6e2ba22472f62d04
treea12fca8447f76aa27126b230501922a96f922adf
parentfe3e4557471dfc7e617884186f41e18d6b4023c1
[2/2] aarch64: Reimplement (R){ADD,SUB}HN2 patterns with standard RTL codes

Similar to the previous patch, this one converts the high-half versions of the patterns.
With this patch we can remove the UNSPEC_* codes involved entirely.

Bootstrapped and tested on aarch64-none-linux-gnu. Also tested on aarch64_be-none-elf.

gcc/ChangeLog:

* config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>_insn_le):
Rename and reimplement with RTL codes to...
(aarch64_<optab>hn2<mode>_insn_le): .. This.
(aarch64_r<optab>hn2<mode>_insn_le): New pattern.
(aarch64_<sur><addsub>hn2<mode>_insn_be): Rename and reimplement with RTL
codes to...
(aarch64_<optab>hn2<mode>_insn_be): ... This.
(aarch64_r<optab>hn2<mode>_insn_be): New pattern.
(aarch64_<sur><addsub>hn2<mode>): Rename and adjust expander to...
(aarch64_<optab>hn2<mode>): ... This.
(aarch64_r<optab>hn2<mode>): New expander.
* config/aarch64/iterators.md (UNSPEC_ADDHN, UNSPEC_RADDHN,
UNSPEC_SUBHN, UNSPEC_RSUBHN): Delete unspecs.
(ADDSUBHN): Delete.
(sur): Remove handling of the above.
(addsub): Likewise.
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/iterators.md