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.

Attachment: rev16.patch
Description: rev16.patch

Reply via email to