[PATCH] D60534: [AArch64][GlobalISel] Legalization and ISel support for load/stores of vectors of pointers

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 11 11:11:25 PDT 2019


arsenm added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp:218-220
+                                 {v2s32, p0, 64, 8},
+                                 {v2s64, p0, 128, 8}})
       // These extends are also legal
----------------
aemerson wrote:
> arsenm wrote:
> > aemerson wrote:
> > > aemerson wrote:
> > > > arsenm wrote:
> > > > > The downside of this is it now breaks any non-0 address pointers, where before they would just work. You might want to add another case for arbitrary address spaces
> > > > Not sure what you mean, how does this break non-zero addrspace pointers? This legalization rule only applies to the 0 addrspace p0 type.
> > > Ah, I see what you mean. New patch incoming.
> > In this case you have to watch out for both the loaded type, as well as the actual pointer type. For the actual load address space the current SelectionDAG behavior means that any non-0 address space pointer type works for most targets since the default load patterns ignore the mem operand's address space.
> Ok I see the point about the current imported patterns, but this new patch doesn't break anything w.r.t that right?
For the pointer type, I think that was and remains broken. I would expect these to fail to select and hit the fallback


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60534/new/

https://reviews.llvm.org/D60534





More information about the llvm-commits mailing list