[PATCH] D127322: [SelectionDAG] Remove invalid TypeSize conversion from WidenVecOp_BITCAST.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 8 16:52:32 PDT 2022


efriedma accepted this revision.
efriedma added a comment.
This revision is now accepted and ready to land.

LGTM

> This is certainly at odds with how we handle the other "unpacked" types but I don't think we've ever really agreed how `<vscale x 1 x` should be represented at the register level.

In memory, ``<vscale x 1 x` is tightly packed.  There are no legal `<vscale x 1 x` types on AArch64, so target-independent legalization will eliminate them.

So the question you're asking is really how `<vscale x 1 x` are passed across functions, and in SelectionDAG, across basic blocks.  That's entirely determined by getCopyFromPartsVector()/getCopyToPartsVector() in SelectionDAGBuilder, I think.  I'm fine with the current state, but if you want to mess with it, we can, I guess.  I don't think it directly interacts with anything else.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D127322



More information about the llvm-commits mailing list