[Bug target/96313] [AArch64] vqmovun* return types should be unsigned
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Oct 8 16:10:21 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96313
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Kyrylo Tkachov
<ktkachov@gcc.gnu.org>:
https://gcc.gnu.org/g:18d980d94f8d7187ce30bf23ddd365fa54189c36
commit r9-8982-g18d980d94f8d7187ce30bf23ddd365fa54189c36
Author: Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Date: Wed Sep 30 12:00:20 2020 +0100
PR target/96313 AArch64: vqmovun* return types should be unsigned
In this PR we have the wrong return type for some intrinsics. It should
be unsigned, but we implement it as signed.
Fix this by adjusting the type qualifiers used when creating the
builtins and fixing the type in the arm_neon.h intrinsic.
With the adjustment in qualifiers we now don't need to cast the result
when returning.
Bootstrapped and tested on aarch64-none-linux-gnu.
gcc/
PR target/96313
* config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS
qualifiers.
* config/aarch64/arm_neon.h (vqmovun_s16): Adjust builtin call.
Remove unnecessary result cast.
(vqmovun_s32): Likewise.
(vqmovun_s64): Likewise.
(vqmovunh_s16): Likewise. Fix return type.
(vqmovuns_s32): Likewise.
(vqmovund_s64): Likewise.
gcc/testsuite/
PR target/96313
* gcc.target/aarch64/pr96313.c: New test.
* gcc.target/aarch64/scalar_intrinsics.c (test_vqmovunh_s16):
Adjust return type.
(test_vqmovuns_s32): Likewise.
(test_vqmovund_s64): Likewise.
(cherry picked from commit 135b043196b5575c690ef1e07bcbb49bf037c3a2)
(cherry picked from commit 7d177b142dcbe841124fe023cb592914d4200e57)
More information about the Gcc-bugs
mailing list