Hi all,

Having converted the patterns for the URSRA,SRSRA instructions to standard RTL 
codes we can also
easily convert the non-accumulating forms URSHR,SRSHR.
This patch does that, reusing the various helpers and predicates from that 
patch in a straightforward way.
This allows GCC to perform the optimisations in the testcase, matching what 
Clang does.

Bootstrapped and tested on aarch64-none-linux-gnu and aarch64_be-none-elf.
Pushing to trunk.
Thanks,
Kyrill

gcc/ChangeLog:

        * config/aarch64/aarch64-simd.md (aarch64_<sur>shr_n<mode>): Delete.
        (aarch64_<sra_op>rshr_n<mode><vczle><vczbe>_insn): New define_insn.
        (aarch64_<sra_op>rshr_n<mode>): New define_expand.

gcc/testsuite/ChangeLog:

        * gcc.target/aarch64/simd/vrshr_1.c: New test.

Attachment: rshr.patch
Description: rshr.patch

Reply via email to