Hi all,

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.
Pushing to trunk.
Thanks,
Kyrill

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.

Attachment: addhn2.patch
Description: addhn2.patch

Reply via email to