This is an archive of the discontinued LLVM Phabricator instance.

DAG: Setting Masked-Expand-Load as a variant of Masked-Load node.
ClosedPublic

Authored by delena on Oct 6 2016, 6:19 AM.

Details

Summary

Masked-expand-load node represents load operation that loads a variable amount of elements from memory according to amount of "true" bits in the mask and expands the loaded elements according to their position in the mask vector.
Right now, the node is used in intrinsics for VEXPAND* instructions.
The work is done towards implementation of masked.expandload and masked.compressstore intrinsics.
See http://lists.llvm.org/pipermail/llvm-dev/2016-September/104985.html

Diff Detail

Repository
rL LLVM

Event Timeline

delena updated this revision to Diff 73774.Oct 6 2016, 6:19 AM
delena retitled this revision from to DAG: Setting Masked-Expand-Load as a variant of Masked-Load node..
delena updated this object.
delena added reviewers: igorb, RKSimon, spatel.
delena set the repository for this revision to rL LLVM.
delena added a subscriber: llvm-commits.
ABataev added a subscriber: ABataev.Oct 7 2016, 1:32 AM
ABataev added inline comments.
../lib/CodeGen/SelectionDAG/SelectionDAG.cpp
5350 ↗(On Diff #73774)

isExpand->IsExpanding

5377 ↗(On Diff #73774)

isCompress->IsCompressing

../lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
3859 ↗(On Diff #73774)

, false->, /*isExpanding=*/false

../lib/Target/X86/X86ISelLowering.cpp
18900 ↗(On Diff #73774)

, true->, /*isExpanding=*/true

delena updated this revision to Diff 74056.Oct 9 2016, 12:51 AM

Updated diff according to Alexey''s comments.

igorb accepted this revision.Oct 9 2016, 2:21 AM
igorb edited edge metadata.

LGTM

This revision is now accepted and ready to land.Oct 9 2016, 2:21 AM
This revision was automatically updated to reflect the committed changes.