HomePhabricator

[X86] getAVX512Node() - find constant broadcasts to encourage load-folding

Authored by RKSimon on Mon, Nov 15, 7:51 AM.

Description

[X86] getAVX512Node() - find constant broadcasts to encourage load-folding

If an operand is a bitcasted or widended constant, try to more aggressively create broadcastable constants for folding, which in particular helps non-VLX modes.

I've refactored getAVX512Node so that VLX targets can make better use of this as well.

NOTE: In the future, I think we should consider removing the broadcast of constant data from DAG entirely and move this to either X86InstrInfo::foldMemoryOperand or a new pass - AVX1/2 targets has similar problems with missed (whole vector) folds that need to be improved as well.

Differential Revision: https://reviews.llvm.org/D113845

Details

Committed
RKSimonMon, Nov 15, 7:52 AM
Differential Revision
D113845: [X86] getAVX512Node() - find constant broadcasts to encourage load-folding
Parents
rG036207d5f261: [SLP]Improve splat detection.
Branches
Unknown
Tags
Unknown