This is an archive of the discontinued LLVM Phabricator instance.

AVX512BW: Support llvm intrinsic masked vector load/store for i8/i16 element types on SKX
ClosedPublic

Authored by igorb on Mar 6 2016, 1:23 AM.

Diff Detail

Repository
rL LLVM

Event Timeline

igorb updated this revision to Diff 49897.Mar 6 2016, 1:23 AM
igorb retitled this revision from to AVX512BW: Support llvm intrinsic masked vector load/store for i8/i16 element types on SKX.
igorb updated this object.
igorb added a reviewer: delena.
igorb set the repository for this revision to rL LLVM.
igorb added a subscriber: llvm-commits.
igorb updated this revision to Diff 49900.Mar 6 2016, 3:51 AM
delena added inline comments.Mar 6 2016, 3:54 AM
lib/Target/X86/X86ISelLowering.cpp
20834

You use ScalarVT in assert. Buildbot will fail.

20838–20855

remove this comment

igorb updated this revision to Diff 49901.Mar 6 2016, 4:20 AM
igorb marked 2 inline comments as done.

Thanks for review!

delena accepted this revision.Mar 6 2016, 4:39 AM
delena edited edge metadata.

LGTM

This revision is now accepted and ready to land.Mar 6 2016, 4:39 AM
This revision was automatically updated to reflect the committed changes.
Ayal added a subscriber: Ayal.Apr 21 2016, 10:24 AM
Ayal added inline comments.
llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp
1442 ↗(On Diff #49902)

Following comment in Analysis/TargetTransformInfo.h should be augmented to indicate targets that also allow this for 8 and 16 bit elements:

/// \brief Return true if the target supports masked gather/scatter
/// AVX2 and AVX-512 targets allow masks for consecutive load and store for
/// 32 and 64 bit elements.
bool isLegalMaskedStore(Type *DataType) const;
bool isLegalMaskedLoad(Type *DataType) const;
igorb marked an inline comment as done.Apr 25 2016, 1:38 AM

Thanks Ayal!