Hi all, 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. Pushing to trunk. Thanks, Kyrill 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.
rev16.patch
Description: rev16.patch