[x86] Teach the new v4i32 shuffle lowering some more tricks to recognize
authorChandler Carruth <chandlerc@gmail.com>
Thu, 4 Sep 2014 09:26:30 +0000 (09:26 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 4 Sep 2014 09:26:30 +0000 (09:26 +0000)
commitae988671265823283d9051f1fa8568a904d64cb7
tree8dd5c3c76616b385ca2e86340ae86ec3ef6adb45
parenta91600713da119acd8c7699ecaf95d12e4eb4b17
[x86] Teach the new v4i32 shuffle lowering some more tricks to recognize
vzext patterns and insert-element patterns that for SSE4 have dedicated
instructions.

With this we can enable the experimental mode in a regression test that
happens to cover some of the past set of issues. You can see that the
new logic does significantly better here on the floating point cases.

A follow-up to this change and the previous ones will hoist the logic
into helpers so it can be shared across element type sizes as in this
particular case it generalizes cleanly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217136 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vec_set-3.ll
test/CodeGen/X86/vector-shuffle-128-v4.ll