This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE] Allow vector of pointers as legal type for masked load/store.
ClosedPublic

Authored by huihuiz on Jul 31 2020, 2:36 PM.

Details

Summary

Refer to LangRef http://llvm.org/docs/LangRef.html#llvm-masked-load-intrinsics
'llvm.masked.load/store.*’ intrinsics are overloaded intrinsic, which allow the
load/store data to be a vector of any integer, floating-point or pointer data type.

Therefore, allow pointer data type when checking 'isLegalMaskedLoadStore()'.

Diff Detail

Event Timeline

huihuiz created this revision.Jul 31 2020, 2:36 PM
huihuiz requested review of this revision.Jul 31 2020, 2:36 PM
paulwalker-arm accepted this revision.Jul 31 2020, 4:38 PM

To me sve-masked-ldst-vector-of-pointer.ll implies loading from a vector of pointers rather the loading the pointers themselves. Personally I think the new tests are variants of those in sve-masked-ldst-nonext.ll and thus belong in the same file, but I'm happy either way so will leave you to decide.

This revision is now accepted and ready to land.Jul 31 2020, 4:38 PM

Thanks @paulwalker-arm for the review!
I have moved the new tests into sve-masked-ldst-nonext.ll in the commit.