diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2021-02-02 13:28:55 +0000 |
---|---|---|
committer | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2021-02-02 15:53:01 +0000 |
commit | 8fdfd0cfdb7ca6b083a2a6205c40f512ea4631a9 (patch) | |
tree | 53eaae50dbe49f42450ab069e16bd36f2ccaaebf /gcc/testsuite | |
parent | 831ff94a882149616b17132d23478c9d1fcbdcd6 (diff) | |
download | gcc-8fdfd0cfdb7ca6b083a2a6205c40f512ea4631a9.zip gcc-8fdfd0cfdb7ca6b083a2a6205c40f512ea4631a9.tar.gz gcc-8fdfd0cfdb7ca6b083a2a6205c40f512ea4631a9.tar.bz2 |
aarch64: Reimplement vqmovun_high* intrinsics using builtins
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.
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.
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/narrow_high-intrinsics.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.target/aarch64/narrow_high-intrinsics.c b/gcc/testsuite/gcc.target/aarch64/narrow_high-intrinsics.c index 5abcadc..6d9e831 100644 --- a/gcc/testsuite/gcc.target/aarch64/narrow_high-intrinsics.c +++ b/gcc/testsuite/gcc.target/aarch64/narrow_high-intrinsics.c @@ -121,5 +121,5 @@ ONE (vmovn_high, uint32x4_t, uint32x2_t, uint64x2_t, u64) /* { dg-final { scan-assembler-times "uqrshrn2\\tv" 3} } */ /* { dg-final { scan-assembler-times "uqxtn2\\tv" 3} } */ /* { dg-final { scan-assembler-times "sqxtn2\\tv" 3} } */ -/* { dg-final { scan-assembler-times "sqxtun2 v" 3} } */ +/* { dg-final { scan-assembler-times "sqxtun2\\tv" 3} } */ /* { dg-final { scan-assembler-times "\\txtn2\\tv" 6} } */ |