]> gcc.gnu.org Git - gcc.git/commit
aarch64: Use standard RTL codes for __rev16 intrinsic expansion
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 18 Apr 2023 14:06:49 +0000 (15:06 +0100)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 18 Apr 2023 14:08:12 +0000 (15:08 +0100)
commit18e78844e78d7096c8e073c5b431480a0b8249d0
tree9a6a2109c2609ddde5e722e8c724bef93a4b2886
parent19cb965e9d16e875944a31173b5e79b65e25d0de
aarch64: Use standard RTL codes for __rev16 intrinsic expansion

I noticed for the expansion of the __rev16* arm_acle.h intrinsics we don't need to use an unspec just because it doesn't match neatly to a bswap code.
We have organic combine patterns for it that we can reuse.
This patch removes the define_insn using UNSPEC_REV (should it have been an UNSPEC_REV16?) and adds an expander to emit
the patterns we have for rev16 using standard RTL codes.

Bootstrapped and tested on aarch64-none-linux-gnu.

gcc/ChangeLog:

* config/aarch64/aarch64.md (@aarch64_rev16<mode>): Change to
define_expand.
(rev16<mode>2): Rename to...
(aarch64_rev16<mode>2_alt1): ... This.
(rev16<mode>2_alt): Rename to...
(*aarch64_rev16<mode>2_alt2): ... This.
gcc/config/aarch64/aarch64.md
This page took 0.062195 seconds and 5 git commands to generate.