diff options
author | Andrew Pinski <quic_apinski@quicinc.com> | 2024-08-16 11:18:31 -0700 |
---|---|---|
committer | Andrew Pinski <quic_apinski@quicinc.com> | 2024-08-21 08:10:57 -0700 |
commit | 4a5d6118c10dfa4f1ed28ab4875bb80f2b2dca9d (patch) | |
tree | 8149b4689fb7d58aa1cc78fa5d6acd8862e84ab8 /libcpp | |
parent | 893cef363c46fa879b47d2b042c19c98bcd2b5f8 (diff) | |
download | gcc-4a5d6118c10dfa4f1ed28ab4875bb80f2b2dca9d.zip gcc-4a5d6118c10dfa4f1ed28ab4875bb80f2b2dca9d.tar.gz gcc-4a5d6118c10dfa4f1ed28ab4875bb80f2b2dca9d.tar.bz2 |
aarch64: Implement popcountti2 pattern [PR113042]
When CSSC is not enabled, 128bit popcount can be implemented
just via the vector (v16qi) cnt instruction followed by a reduction,
like how the 64bit one is currently implemented instead of
splitting into 2 64bit popcount.
Changes since v1:
* v2: Make operand 0 be DImode instead of TImode and simplify.
Build and tested for aarch64-linux-gnu.
PR target/113042
gcc/ChangeLog:
* config/aarch64/aarch64.md (popcountti2): New define_expand.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/popcnt10.c: New test.
* gcc.target/aarch64/popcnt9.c: New test.
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions