]> git.ipfire.org Git - thirdparty/gcc.git/commit
Handle POLY_INT_CSTs in get_nonzero_bits
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 24 Oct 2024 13:22:33 +0000 (14:22 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 24 Oct 2024 13:22:33 +0000 (14:22 +0100)
commitd6c4badffafa295f6082b7d74de314e131f30a96
tree0fd7eb32174e5c36bc140b60b04b9fc3d46e26cc
parentec8e8d359690e7347e6e718cc9254d59f694e138
Handle POLY_INT_CSTs in get_nonzero_bits

This patch extends get_nonzero_bits to handle POLY_INT_CSTs,
The easiest (but also most useful) case is that the number
of trailing zeros in the runtime value is at least the number
of trailing zeros in each individual component.

In principle, we could do this for coeffs 1 and above only,
and then OR in ceoff 0.  This would give ~0x11 for [14, 32], say.
But that's future work.

gcc/
* tree-ssanames.cc (get_nonzero_bits): Handle POLY_INT_CSTs.
* match.pd (with_possible_nonzero_bits): Likewise.

gcc/testsuite/
* gcc.target/aarch64/sve/cnt_fold_4.c: New test.
gcc/match.pd
gcc/testsuite/gcc.target/aarch64/sve/cnt_fold_4.c [new file with mode: 0644]
gcc/tree-ssanames.cc