[PATCH] D71636: [AArch64][SVE][WIP] Add support for vscale constants (?)

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 9 15:17:25 PST 2020


efriedma added a comment.

In D71636#1807522 <https://reviews.llvm.org/D71636#1807522>, @simoll wrote:

> >   My current thinking for shuffles is that we shouldn't represent the shuffle mask of shufflevector as a Constant at all. 
>
> If shuffle masks are no longer IR entities, this means ruling  out computed shuffle masks in the future, which are available on some targets (X86). Whether we want computed shuffle masks at all is a different question.


Yes, this is kind of a decision point: either we allow computed shufflemasks, or we get rid of the operand altogether.  Or we can introduce some intrinsics and put off the decision, I guess.

I don't think there's much incentive to support computed shuffle masks.  Yes, x86 has pshufb, but that doesn't generalize to other element widths/two source vectors/etc. easily.  And there aren't very many practical use cases for computed shuffles in automatic vectorization.

If we allow computed shuffle masks, there's also the minor complication that we'd have to change shufflevector to produce poison, not undef, for undef indexes.  But we can likely change that with some work...


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71636





More information about the llvm-commits mailing list