Widens the result and first input vector because they have the same size.
The subvector to be inserted is widened in the operand widen function.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
| llvm/test/CodeGen/AArch64/sve-insert-vector.ll | ||
|---|---|---|
| 425 | This should be v1? | |
| llvm/test/CodeGen/AArch64/sve-insert-vector.ll | ||
|---|---|---|
| 407 | Is it worth having an equivalent one for floats, i.e. define <vscale x 3 x float> @insert_nxv3f32_nxv2f32(<vscale x 2 x float> %sv0) ? | |
| 407 | Also, I wonder if it's worth having a test where we also pass in a <vscale x 3 x i32> vector, i.e. define <vscale x 3 x i32> @insert_nxv3i32_nxv2i32_2(<vscale x 3 x i32> %sv0, <vscale x 2 x i32> %sv1) {
%v0 = call <vscale x 3 x i32> @llvm.experimental.vector.insert.nxv3i32.nxv2i32(<vscale x 3 x i32> %sv0, <vscale x 2 x i32> %sv1, i64 0)
ret <vscale x 3 x i32> %v0} I realise this may be covered by one of the tests below, but I just wanted to make sure that a DAG combine wasn't hiding a bug somewhere that's all. | |
| llvm/test/CodeGen/AArch64/sve-insert-vector.ll | ||
|---|---|---|
| 466 | Hi @CarolineConcatto, did you mean to pass in %sv1 here instead? | |
| llvm/test/CodeGen/AArch64/sve-insert-vector.ll | ||
|---|---|---|
| 466 | Thank you David! | |
LGTM with nit addressed! Thanks @CarolineConcatto
| llvm/test/CodeGen/AArch64/sve-insert-vector.ll | ||
|---|---|---|
| 428 | nit: please add nounwind attributes to the functions to avoid all the .cfi directives. | |
Is it worth having an equivalent one for floats, i.e.
?