aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorSoumya AR <soumyaa@nvidia.com>2024-10-17 09:30:35 +0530
committerKyrylo Tkachov <ktkachov@nvidia.com>2024-10-24 10:46:04 +0200
commit3e7549ece7c6b90b9e961778361ee2b65bf104a9 (patch)
treeaa1304cae95eefb274d33e17418da3e1e7ddf72e /gcc/fortran
parentfc40202c1ac5d585bb236cdaf3a3968927e970a0 (diff)
downloadgcc-3e7549ece7c6b90b9e961778361ee2b65bf104a9.zip
gcc-3e7549ece7c6b90b9e961778361ee2b65bf104a9.tar.gz
gcc-3e7549ece7c6b90b9e961778361ee2b65bf104a9.tar.bz2
SVE intrinsics: Fold constant operands for svlsl.
This patch implements constant folding for svlsl. Test cases have been added to check for the following cases: Zero, merge, and don't care predication. Shift by 0. Shift by register width. Overflow shift on signed and unsigned integers. Shift on a negative integer. Maximum possible shift, eg. shift by 7 on an 8-bit integer. The patch was bootstrapped and regtested on aarch64-linux-gnu, no regression. OK for mainline? Signed-off-by: Soumya AR <soumyaa@nvidia.com> gcc/ChangeLog: * config/aarch64/aarch64-sve-builtins-base.cc (svlsl_impl::fold): Try constant folding. * config/aarch64/aarch64-sve-builtins.cc (aarch64_const_binop): Return 0 if shift is out of range. gcc/testsuite/ChangeLog: * gcc.target/aarch64/sve/const_fold_lsl_1.c: New test.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions