https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96313

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Kyrylo Tkachov <ktkac...@gcc.gnu.org>:

https://gcc.gnu.org/g:135b043196b5575c690ef1e07bcbb49bf037c3a2

commit r11-3547-g135b043196b5575c690ef1e07bcbb49bf037c3a2
Author: Kyrylo Tkachov <kyrylo.tkac...@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.

Reply via email to