[PATCH] D69891: [VP,Integer,#1] Vector-predicated integer intrinsics

Simon Moll via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 12 00:43:45 PST 2020


simoll planned changes to this revision.
simoll added a subscriber: chandlerc.
simoll added a comment.

Ok. This is a summary of the requested changes and i'd like to get your go ahead before "committing" them to the patch:

1. **Define what 'W' is** (that is the vector length that `%evl` is compared against) - for static vector types this would be the number of elements of the vector, for scalable types `W == MVL` and the target is responsible for defining `MVL`.
2. **Define what happens when `%evl > W`** -  since we do not know now what is best, i propose we define this as UB. This leaves us some room to revisit that decision should it turn out that some form of defined behavior would be more reasonable.
3. **Mention that `%evl` is discouraged for non-VL targets** - TTI tells people whether VL is supported or not for every target.  If used nevertheless, the `ExpandVectorPredicationPass` will fold `%evl` into the mask.  "not-using-%evl" means setting `%evl = W` or `%evl = -1`.
4. **`%evl` and `%mask` are parameters** - i will start an RFC on llvm-dev towards optional function parameters (as sketched here under variant a): https://reviews.llvm.org/D69891#1856580).
5. ** Rename to `llvm.experimental.vp.*` ** - Inserting `experimental` is the preferred way to introduce new intrinsics until they are stable (for technical reasons brought up by @chandlerc -  https://reviews.llvm.org/D69891#1852795 ).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D69891





More information about the llvm-commits mailing list