This is an archive of the discontinued LLVM Phabricator instance.

[rs4gc] don't force a conflict for a canonical broadcast
ClosedPublic

Authored by reames on Mar 9 2021, 9:05 PM.

Details

Summary

Minor follow up to D98122 noticed while writing tests for that.

A broadcast is a shufflevector where only one input is used. Because of the way we handle constants (undef is a constant), the canonical shuffle sees a meet of (some value) and (nullptr). Given this, every broadcast gets treated as a conflict and a new base pointer computation is added.

The other way to tackle this would be to change constant handling specifically for undefs, but this seems easier.

Diff Detail

Event Timeline

reames created this revision.Mar 9 2021, 9:05 PM
reames requested review of this revision.Mar 9 2021, 9:05 PM
Herald added a project: Restricted Project. · View Herald TranscriptMar 9 2021, 9:05 PM
skatkov accepted this revision.Mar 15 2021, 7:33 PM
This revision is now accepted and ready to land.Mar 15 2021, 7:33 PM
This revision was landed with ongoing or failed builds.Mar 16 2021, 12:59 PM
This revision was automatically updated to reflect the committed changes.