aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/parser.cc
diff options
context:
space:
mode:
authorJennifer Schmitz <jschmitz@nvidia.com>2024-07-16 01:59:50 -0700
committerKyrylo Tkachov <ktkachov@nvidia.com>2024-07-30 13:17:23 +0200
commit7cde140863edea536c676096cbc3d84a6d1424e4 (patch)
tree17c94a1ba0b6b04324e1efab09128c3cfbf39d2e /gcc/cp/parser.cc
parent265aa32062167a5b299c2ffb616edce5997b64bf (diff)
downloadgcc-7cde140863edea536c676096cbc3d84a6d1424e4.zip
gcc-7cde140863edea536c676096cbc3d84a6d1424e4.tar.gz
gcc-7cde140863edea536c676096cbc3d84a6d1424e4.tar.bz2
SVE intrinsics: Add strength reduction for division by constant.
This patch folds SVE division where all divisor elements are the same power of 2 to svasrd (signed) or svlsr (unsigned). Tests were added to check 1) whether the transform is applied (existing test harness was amended), and 2) correctness using runtime tests for all input types of svdiv; for signed and unsigned integers, several corner cases were covered. The patch was bootstrapped and regtested on aarch64-linux-gnu, no regression. OK for mainline? Signed-off-by: Jennifer Schmitz <jschmitz@nvidia.com> gcc/ * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold): Implement strength reduction. gcc/testsuite/ * gcc.target/aarch64/sve/div_const_run.c: New test. * gcc.target/aarch64/sve/acle/asm/div_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/div_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/div_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/div_u64.c: Likewise.
Diffstat (limited to 'gcc/cp/parser.cc')
0 files changed, 0 insertions, 0 deletions