[PATCH] D91362: [SelectionDAG] Add llvm.vector.{extract,insert} intrinsics

Cameron McInally via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 12 10:17:20 PST 2020


cameron.mcinally added inline comments.


================
Comment at: llvm/docs/LangRef.rst:15995
+      declare <4 x float> @llvm.vector.insert.v4f32(<4 x float> %subvec, <4 x float> %vec, i64 %idx)
+      declare <2 x double> @llvm.vector.insert.v2f64(<2 x double> %subvec, <2 x double> %vec, i64 %idx)
+
----------------
sdesmalen wrote:
> Can you add/change the example for inserting a fixed-width vector into a scalable vector. That is one of the main reasons for adding this intrinsic.
This caught me off guard. What are the semantics of:

```
declare <4 x float> @llvm.vector.insert.v4f32(<4 x float> %subvec, <4 x float> %vec, i64 %idx)
```

Is that a full vector copy? I would have expected the subvector VL to be strictly less than the destination VL. E.g.:

```
declare <4 x float> @llvm.vector.insert.v2f32.v4f32(<2 x float> %subvec, <4 x float> %vec, i64 %idx)
```



Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D91362



More information about the llvm-commits mailing list