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

Quentin Colombet qcolombet at apple.com
Wed Sep 17 17:18:27 PDT 2014


Hi Chandler,

Here are a few more test cases.
I’ve ordered them from the hottest to the coldest.

To reproduce:
llc <test case>  -x86-experimental-vector-shuffle-lowering=<true | false> [specific feature]

1. avx2_vperm.ll avx2
We use a sequence of extract, 2 shuffle, insert instead of vperm when avx2 is set.

2. avx_blend.ll avx
Instead of using one big blend, we use 2 extracts, one small blend, and one insert.

3. avx2_extract2perm.ll avx2
We use a sequence of two instructions: extract, unpck, instead of one perm.

4. pxor.ll none
Instead of using pxor to set a register to zero, we use a sequence composed of xorpd, shuffle.

5. sse4.1_pmovzxwd.ll sse4.1
Instead of using a single pmovzxwd, we use a movq followed by an unpck.

If you prefer, I can file PRs.

Cheers,
-Quentin
 
On Sep 17, 2014, at 1:30 PM, Chandler Carruth <chandlerc at google.com> wrote:

> 
> On Wed, Sep 17, 2014 at 12:51 PM, Quentin Colombet <qcolombet at apple.com> wrote:
> We use two shuffles instead of 1 palign.
> 
> Doh! I just forgot to teach it about palign... This one should at least be easy.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140917/68a0c42e/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_cases.tgz
Type: application/octet-stream
Size: 1166 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140917/68a0c42e/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140917/68a0c42e/attachment-0001.html>


More information about the llvm-dev mailing list