This is an archive of the discontinued LLVM Phabricator instance.

[SLP]Initialize the lane with the given value instead of default 0.
ClosedPublic

Authored by ABataev on Jan 5 2022, 1:07 PM.

Details

Summary

There is a bug in the reordering analysis stage. If the element with the
given hash is not added to the map but has the same number of APOs and
instructions with same parent, but different instruction opcode, it will
be initalized with default values and then the counter is increased by

  1. But the lane is not updated and default to 0 instead of the actual Lane value. It leads to the fact that the analysis is useless in many cases and default to lane 0 instead of actual lane with the minimum amount of APO operands.

Diff Detail

Event Timeline

ABataev created this revision.Jan 5 2022, 1:07 PM
ABataev requested review of this revision.Jan 5 2022, 1:07 PM
Herald added a project: Restricted Project. · View Herald TranscriptJan 5 2022, 1:07 PM
vporpo added a comment.Jan 5 2022, 8:37 PM

Do you think the regressions will go away with one of your follow-up patches?

llvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
74–75

regression?

llvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
74–75

regression?

Do you think the regressions will go away with one of your follow-up patches?

Yes.

vporpo accepted this revision.Jan 6 2022, 9:07 AM

LGTM

This revision is now accepted and ready to land.Jan 6 2022, 9:07 AM
This revision was landed with ongoing or failed builds.Jan 6 2022, 10:58 AM
This revision was automatically updated to reflect the committed changes.