This is an archive of the discontinued LLVM Phabricator instance.

[VP] Preserve address space of pointer for strided load/store intrinsics.
ClosedPublic

Authored by craig.topper on Mar 18 2022, 2:34 PM.

Details

Summary

This adds LLVMAnyPointerToElt to use instead of LLVMPointerToElt.
This allows us to preserve the address space as part of the type
overload for the intrinsic, but still require the vector element
type to match the pointer type.

Diff Detail

Event Timeline

craig.topper created this revision.Mar 18 2022, 2:34 PM
Herald added a project: Restricted Project. · View Herald TranscriptMar 18 2022, 2:34 PM
craig.topper requested review of this revision.Mar 18 2022, 2:34 PM
Herald added a project: Restricted Project. · View Herald TranscriptMar 18 2022, 2:34 PM
Herald added a subscriber: jdoerfert. · View Herald Transcript

Landing this will break VP strided load/store RVV and VE tests. I'll attach a diff for the VE ones that you can merge into this patch.

Update for vp_strided_load|store.ll tests to be fused into this patch (no attribution necessary):

craig.topper added a comment.EditedMar 21 2022, 9:19 AM

Landing this will break VP strided load/store RVV and VE tests. I'll attach a diff for the VE ones that you can merge into this patch.

The parser barely relies on the type parts of the name so it doesn't fail. But I'll add in your patch. The RVV tests haven't been committed yet

Update VE tests

nikic accepted this revision.Mar 22 2022, 1:41 AM

LGTM

This revision is now accepted and ready to land.Mar 22 2022, 1:41 AM
This revision was landed with ongoing or failed builds.Mar 22 2022, 9:53 AM
This revision was automatically updated to reflect the committed changes.