Instead of a vector load, shuffle and then extract an element. Load the element from...
authorEvan Cheng <evan.cheng@apple.com>
Tue, 13 May 2008 08:35:03 +0000 (08:35 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 13 May 2008 08:35:03 +0000 (08:35 +0000)
commit77f0b7a50a08614b5ffd58f1864b68a9a30d0cb0
treebb8e0ed03e63e856988c905af714ffb7bd62205e
parent6513c1bf90be63b9bd6a43c0db593174075009a0
Instead of a vector load, shuffle and then extract an element. Load the element from address with an offset.
        pshufd $1, (%rdi), %xmm0
        movd %xmm0, %eax
=>
        movl 4(%rdi), %eax

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51026 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/SelectionDAG.h
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/Target/X86/README-SSE.txt
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/extractelement-from-arg.ll
test/CodeGen/X86/extractelement-load.ll [new file with mode: 0644]
test/CodeGen/X86/sse-align-12.ll
test/CodeGen/X86/vec_extract-sse4.ll