X86: Resolve a long standing FIXME and properly isel pextr[bw].
authorJim Grosbach <grosbach@apple.com>
Fri, 7 Feb 2014 00:16:33 +0000 (00:16 +0000)
committerJim Grosbach <grosbach@apple.com>
Fri, 7 Feb 2014 00:16:33 +0000 (00:16 +0000)
commit1f65cfad962a2f0c27b2dcc2324a76c427ba7e2b
treed8131ef94f0732551a7aa8fd804736166066b49b
parent1dd4d5f760602de5a1f26abf2d4e6d67007696ad
X86: Resolve a long standing FIXME and properly isel pextr[bw].

Generalize the AArch64 .td nodes for AssertZext and AssertSext. Use
them to match the relevant pextr store instructions.

The test widen_load-2.ll requires a slight change because with the
stores gone, the remaining instructions are scheduled in a different
order.

Add test cases for SSE4 and AVX variants.

Resolves rdar://13414672.

Patch by Adam Nemet <anemet@apple.com>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200957 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetSelectionDAG.td
lib/Target/AArch64/AArch64InstrNEON.td
lib/Target/X86/README-SSE.txt
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/extract-store.ll [new file with mode: 0644]
test/CodeGen/X86/widen_load-2.ll