preames wrote: > > Isn't the condition in code in terms of VecIn.size() == 2? I believe that > > VecIn is the _unique_ input elements, right? Which is distinct from the > > number of elements in the destination type? (Am I just misreading? I only > > skimmed this.) > > VecIn is collecting only extract_vector_elts feeding the build_vector. So > it's true it's not only a 2 element vector, in general (but the standard case > of building a complete vector is 2 elements). The other skipped elements are > all constant or undef. > > A 2 element shuffle just happens to the only case I care about which I'm > trying to make legal (and really only the odd -> even case is of any use).
This is exactly the distinct I'm trying to get at. Avoiding the creation of a 1-2 element shuffle seems quite reasonable. Avoiding the creation of a 100 element splat shuffle does not. I think you need to add an explicit condition in terms of the number elements in the result, not the number of *unique* elements in the result. https://github.com/llvm/llvm-project/pull/122672 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits