This is an archive of the discontinued LLVM Phabricator instance.

[MicroBenchmarks] Add initial SLP vectorization benchmarks.
ClosedPublic

Authored by fhahn on Jun 11 2021, 9:03 AM.

Details

Summary

This patch adds a first set of micro benchmarks for SLP vectorization.
The initial benchmarks are focused on cases that require memory
versioning (worked on in D102834).

D101844 added similar benchmarks for the loop vectorizer.

Diff Detail

Repository
rT test-suite

Event Timeline

fhahn created this revision.Jun 11 2021, 9:03 AM
fhahn requested review of this revision.Jun 11 2021, 9:03 AM

Does this expect on loop unrolling to happened? Did you consider adding #pragma clang loop unroll(full) to make sure of it?

MicroBenchmarks/SLPVectorization/Versioning.cpp
18

Where does the "reduction" in the name come from?

Matt added a subscriber: Matt.Jun 12 2021, 10:12 AM
fhahn updated this revision to Diff 351820.Jun 14 2021, 4:08 AM

Does this expect on loop unrolling to happened? Did you consider adding #pragma clang loop unroll(full) to make sure of it?

Thanks for taking a look! Yes those expect loop-unrolling to happen. I added the pragma, even though it is clang specific it should be ignored by other compilers and not break builds with other compilers.

fhahn marked an inline comment as done.Jun 14 2021, 4:08 AM
fhahn added inline comments.
MicroBenchmarks/SLPVectorization/Versioning.cpp
18

There's no reduction, I adjusted the name, thanks!

This revision is now accepted and ready to land.Jun 14 2021, 9:32 AM

reverse ping?

This revision was automatically updated to reflect the committed changes.
fhahn marked an inline comment as done.