This is an archive of the discontinued LLVM Phabricator instance.

[PowerPC] Improve LowerVECTOR_SHUFFLE load-and-splat multi-use
AbandonedPublic

Authored by tingwang on Jul 15 2022, 8:30 AM.

Details

Reviewers
nemanjai
shchenz
lkail
qiucf
Esme
Group Reviewers
Restricted Project
Summary

Currently load-and-splat is applied when input-load has one-use. I think in multi-use scenario, if all use of the load can be shown to touch only the splat region, then we can still use load-and-splat instead of the original load.

This patch tries to explore this opportunity and reduce/simplify instruction.

Baseline test case will be added in https://reviews.llvm.org/D129861.

Diff Detail

Event Timeline

tingwang created this revision.Jul 15 2022, 8:30 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 15 2022, 8:30 AM
tingwang requested review of this revision.Jul 15 2022, 8:30 AM
shchenz added inline comments.Jul 17 2022, 9:14 PM
llvm/test/CodeGen/PowerPC/load-and-splat.ll
1405

Since you already post D129861, you can show diff based on D129861 and make this patch be a child of that patch.

1475

Can we also get improvement for a normal vector type, like <4 x float> or <2 x double>?

tingwang abandoned this revision.Jul 18 2022, 11:14 PM

Close as real scenario for the benefit pattern is unclear.