diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2022-09-27 10:30:00 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2022-09-27 17:02:11 +0200 |
commit | 001c60ccfeaf9a480a56203418af804ad42e88b9 (patch) | |
tree | 6063fd6a3ed81175459c4f1a848f1fc625da8017 /libcpp | |
parent | 971bc0aae9cf52abe9a6fcab3b7c25d1fa94ad1e (diff) | |
download | gcc-001c60ccfeaf9a480a56203418af804ad42e88b9.zip gcc-001c60ccfeaf9a480a56203418af804ad42e88b9.tar.gz gcc-001c60ccfeaf9a480a56203418af804ad42e88b9.tar.bz2 |
range-ops: Calculate the popcount of a singleton.
The legacy popcount folding didn't actually fold singleton ranges.
I don't think anyone noticed because there are match.pd patterns that
fold __builtin_popcount using the global nonzero bits set by CCP.
It's good form to handle this, even without CCP's help.
Tested on x86-64 Linux.
gcc/ChangeLog:
* gimple-range-op.cc (cfn_popcount): Calculate the popcount of a
singleton.
gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/popcount6b.c: New test.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions