[llvm] [AArch64][GlobalISel] Lower G_BUILD_VECTOR to G_INSERT_VECTOR_ELT (PR #105686)

David Green via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 29 01:33:06 PDT 2024


================
@@ -290,6 +290,13 @@ def combine_mul_cmlt : GICombineRule<
   (apply [{ applyCombineMulCMLT(*${root}, MRI, B, ${matchinfo}); }])
 >;
 
+def lower_build_insert_vec_elt : GICombineRule<
----------------
davemgreen wrote:

I'm not sure you can get through legalization without buildvector (or merge), without it making quite a mess. This fits in with the existing way that AArch64 handles shuffle vectors / buildvectors / other vector operations. It has lower in the name but it can be thought of as a combine that splits the buildvectors up prior to selection to help use the existing tablegen patterns.

https://github.com/llvm/llvm-project/pull/105686


More information about the llvm-commits mailing list