aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/f95-lang.c
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2020-09-30 12:00:20 +0100
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>2020-09-30 12:02:21 +0100
commit135b043196b5575c690ef1e07bcbb49bf037c3a2 (patch)
tree2d35a0caa69f043b43bd011fa772c3b14c409e41 /gcc/fortran/f95-lang.c
parentd4f9e81976066e1d67c8dd5ddaf24ebe3b0695ed (diff)
downloadgcc-135b043196b5575c690ef1e07bcbb49bf037c3a2.zip
gcc-135b043196b5575c690ef1e07bcbb49bf037c3a2.tar.gz
gcc-135b043196b5575c690ef1e07bcbb49bf037c3a2.tar.bz2
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.
Diffstat (limited to 'gcc/fortran/f95-lang.c')
0 files changed, 0 insertions, 0 deletions