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.
?