[LLVMdev] Please benchmark new x86 vector shuffle lowering, planning to make it the default very soon!

Chandler Carruth chandlerc at google.com
Tue Sep 23 04:28:02 PDT 2014


And I've just enhanced the AVX side more. It now leverages the variable
VPERMILPS formation that I think LLVM has historically completely failed to
utilize when lowering AVX code. =]

AVX2 is still in-flight.

On Fri, Sep 19, 2014 at 10:15 PM, Chandler Carruth <chandlerc at google.com>
wrote:

> After some adding some serious ninja-ry to the new shuffle lowering...
>
> On Fri, Sep 19, 2014 at 11:53 AM, Quentin Colombet <qcolombet at apple.com>
> wrote:
>
>> 2. none_useless_shuflle none
>> Instead of using a single move to materialize a zero extended constant
>> into a vector register, we explicitly zeroed a vector register and use a
>> shuffle.
>>
>
> ... this test case is fixed, as is your 'pxor.ll' test case from earlier,
> and the 'movss' test cases from Andrea earlier in the thread (I suspect).
> Turns out that there is a trick that we can use in the existing tables to
> get most of the memory-operand-movss optimizations.
>
> I think this is all of the non-avx-specific issues raised thus far.... One
> of the issues isn't avx specific but can only be solved with avx. Anyways,
> I'll look into some of the AVX issues next.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140923/a8cad78b/attachment.html>


More information about the llvm-dev mailing list