]> git.ipfire.org Git - thirdparty/gcc.git/commit
PR tree-optimization/101390: Vectorize modulo operator
authorJennifer Schmitz <jschmitz@nvidia.com>
Wed, 7 Aug 2024 15:56:45 +0000 (08:56 -0700)
committerJennifer Schmitz <jschmitz@nvidia.com>
Thu, 22 Aug 2024 07:11:28 +0000 (09:11 +0200)
commit9bbad3685131ec95d970f81bf75f9556d4d92742
tree731fef87bffc9f3cc9a8ec71fc1899d6fe102b50
parent23496098bba769044ed352c0d7bdb317477c16ac
PR tree-optimization/101390: Vectorize modulo operator

This patch adds a new vectorization pattern that detects the modulo
operation where the second operand is a variable.
It replaces the statement by division, multiplication, and subtraction.

The patch was bootstrapped and regtested on aarch64-linux-gnu, no regression.
Ok for mainline?

Signed-off-by: Jennifer Schmitz <jschmitz@nvidia.com>
gcc/
PR tree-optimization/101390
* tree-vect-patterns.cc (vect_recog_mod_var_pattern): Add new pattern.

gcc/testsuite/
PR tree-optimization/101390
* gcc.dg/vect/vect-mod-var.c: New test.
* gcc.target/aarch64/sve/mod_1.c: Likewise.
* lib/target-supports.exp: New selector expression.
gcc/testsuite/gcc.dg/vect/vect-mod-var.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/mod_1.c [new file with mode: 0644]
gcc/testsuite/lib/target-supports.exp
gcc/tree-vect-patterns.cc