IntrArgMemOnly is only valid for intrinsics that use a scalar
pointer argument. These intrinsics use a vector of pointer.
Alias analysis will try to find a scalar pointer argument and
will return incorrect alias results when it doesn't find one.
Paths
| Differential D133898
[IR][VP] Remove IntrArgMemOnly from vp.gather/scatter. ClosedPublic Authored by craig.topper on Sep 14 2022, 2:26 PM.
Details Summary IntrArgMemOnly is only valid for intrinsics that use a scalar Alias analysis will try to find a scalar pointer argument and
Diff Detail
Event Timelinecraig.topper retitled this revision from [IR] Remove IntrArgMemOnly from vp.gather/scatter. to [IR][VP] Remove IntrArgMemOnly from vp.gather/scatter..Sep 14 2022, 2:26 PM craig.topper added a parent revision: D133899: [GVN][VP] Add test case for incorrect removal of a vp.gather..Sep 14 2022, 2:30 PM Comment Actions LGTM - though I see this mostly as a workaround. I think we should revise the argmemonly semantics to allow vector of pointers, but that's a broader topic. We should fix the bug in the meantime. This revision is now accepted and ready to land.Sep 14 2022, 2:48 PM This revision was landed with ongoing or failed builds.Sep 14 2022, 3:00 PM Closed by commit rG50a699e36215: [IR][VP] Remove IntrArgMemOnly from vp.gather/scatter. (authored by craig.topper). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 460245 llvm/include/llvm/IR/Intrinsics.td
llvm/test/Transforms/GVN/vp_gather_scatter.ll
|