]> git.ipfire.org Git - thirdparty/gcc.git/commit
arm: [MVE intrinsics] rework sqshll srshrl uqshll urshrl
authorChristophe Lyon <christophe.lyon@linaro.org>
Fri, 19 Sep 2025 13:14:51 +0000 (13:14 +0000)
committerChristophe Lyon <christophe.lyon@linaro.org>
Fri, 14 Nov 2025 20:55:29 +0000 (20:55 +0000)
commit8dea981b8f6df2b110c382c2cd17bdba36487a2d
treee7a62eda2457150731d2a0398c515cd8a93ca951
parent859c3ce1437220353069efc5d83e6858dee80d1c
arm: [MVE intrinsics] rework sqshll srshrl uqshll urshrl

Implement sqshll, srshrl, uqshll and urshrl using the new MVE builtins
framework.

gcc/ChangeLog:
* config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift):
Add ss_SQSHLL, ss_SRSHRL, ss_UQSHLL, ss_URSHRL.
(mve_function_scalar_shift): Add support for ss_SQSHLL, ss_SRSHRL,
ss_UQSHLL, ss_URSHRL.
* config/arm/arm-mve-builtins-base.def (sqshll, srshrl, uqshll)
(urshrl): New.
* config/arm/arm-mve-builtins-base.h (sqshll, srshrl, uqshll)
(urshrl): New.
* config/arm/arm-mve-builtins-shapes.cc (scalar_s64_shift_imm)
(scalar_u64_shift_imm): New.
* config/arm/arm-mve-builtins-shapes.h (scalar_s64_shift_imm)
(scalar_u64_shift_imm): New.
* config/arm/arm_mve.h (sqshll): Delete.
(srshrl): Delete.
(uqshll): Delete.
(urshrl): Delete.
(__arm_uqshll): Delete.
(__arm_urshrl): Delete.
(__arm_srshrl): Delete.
(__arm_sqshll): Delete.

gcc/testsuite/ChangeLog:
* gcc.target/arm/mve/intrinsics/sqshll_check_shift.c: New test.
* gcc.target/arm/mve/intrinsics/srshrl_check_shift.c: New test.
* gcc.target/arm/mve/intrinsics/uqshll_check_shift.c: New test.
* gcc.target/arm/mve/intrinsics/urshrl_check_shift.c: New test.
gcc/config/arm/arm-mve-builtins-base.cc
gcc/config/arm/arm-mve-builtins-base.def
gcc/config/arm/arm-mve-builtins-base.h
gcc/config/arm/arm-mve-builtins-shapes.cc
gcc/config/arm/arm-mve-builtins-shapes.h
gcc/config/arm/arm_mve.h
gcc/testsuite/gcc.target/arm/mve/intrinsics/sqshll_check_shift.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl_check_shift.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll_check_shift.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl_check_shift.c [new file with mode: 0644]