Hi all,

Another transition from inline asm to builtin.
Only 3 intrinsics converted this time but they use the "+w" constraint in their 
inline asm
so are more likely to generate redundant moves so benefit more from 
reimplementation.

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

Pushing to trunk.
Thanks,
Kyrill

gcc/ChangeLog:

        * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
        * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
        (aarch64_sqxtun2<mode>_be): Likewise.
        (aarch64_sqxtun2<mode>): Likewise.
        * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using 
builtin.
        (vqmovun_high_s32): Likewise.
        (vqmovun_high_s64): Likewise.
        * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.

gcc/testsuite/ChangeLog:

        * gcc.target/aarch64/narrow_high-intrinsics.c: Adjust sqxtun2 scan.

Attachment: vqmovun2.patch
Description: vqmovun2.patch

Reply via email to