[PATCH] D148347: [AArch64] Handle vector with two different values

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 17 10:49:30 PDT 2023

efriedma added a comment.

Something along those lines, yes.

I haven't thought through how to optimize the cases where some non-VSELECT shuffle is optimal.  We don't have any existing code to handle splat operands to shuffles.  I guess to start, you could just check for specific patterns before creating the VSELECT.  Alternatively, might make sense to make a VECTOR_SHUFFLE, then teach shuffle lowering to handle the relevant patterns.

> I have seen the constant pool and load...and I was not sure it is good enough or not...

Better than a long sequence of MOVs.  And if there's a loop, the load may get hoisted out.



More information about the llvm-commits mailing list