llvm-6502/lib/Transforms/Scalar
Chris Lattner 599ded1a7f Eliminate useless insertelement instructions. This implements
Transforms/InstCombine/vec_insertelt.ll and fixes PR1286.

We now compile the code from that bug into:

_foo:
        movl 4(%esp), %eax
        movdqa (%eax), %xmm0
        movl 8(%esp), %ecx
        psllw (%ecx), %xmm0
        movdqa %xmm0, (%eax)
        ret

instead of:

_foo:
        subl $4, %esp
        movl %ebp, (%esp)
        movl %esp, %ebp
        movl 12(%ebp), %eax
        movdqa (%eax), %xmm0
        #IMPLICIT_DEF %eax
        pinsrw $2, %eax, %xmm0
        xorl %ecx, %ecx
        pinsrw $3, %ecx, %xmm0
        pinsrw $4, %eax, %xmm0
        pinsrw $5, %ecx, %xmm0
        pinsrw $6, %eax, %xmm0
        pinsrw $7, %ecx, %xmm0
        movl 8(%ebp), %eax
        movdqa (%eax), %xmm1
        psllw %xmm0, %xmm1
        movdqa %xmm1, (%eax)
        movl %ebp, %esp
        popl %ebp
        ret

woo :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35788 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09 01:11:16 +00:00
..
ADCE.cpp Eliminate use of ctors that take vectors. 2007-02-13 02:10:56 +00:00
BasicBlockPlacement.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
CodeGenPrepare.cpp Various passes before isel split edges and do other CFG-restructuring changes. 2007-04-02 01:35:34 +00:00
CondPropagate.cpp Prefer non-virtual calls to ConstantInt::isZero over virtual calls to 2007-03-02 00:28:52 +00:00
ConstantProp.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
CorrelatedExprs.cpp Remove the "isSigned" parameters from ConstantRange. It turns out they 2007-03-01 07:54:15 +00:00
DCE.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
DeadStoreElimination.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
GCSE.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
IndVarSimplify.cpp Now IndVarSimplify is a LoopPass. 2007-03-07 06:39:01 +00:00
InstructionCombining.cpp Eliminate useless insertelement instructions. This implements 2007-04-09 01:11:16 +00:00
LICM.cpp Change uses of Function::front to Function::getEntryBlock for readability. 2007-03-22 16:38:57 +00:00
LoopRotation.cpp Add loop rotation pass. 2007-04-07 01:25:15 +00:00
LoopStrengthReduce.cpp Completely purge DomSet. This is the (hopefully) final patch for PR1171. 2007-04-07 07:17:27 +00:00
LoopUnroll.cpp Now LoopUnroll is a LoopPass. 2007-03-07 01:38:05 +00:00
LoopUnswitch.cpp Now LoopUnswitch is a LoopPass. 2007-03-07 00:26:10 +00:00
LowerGC.cpp Eliminate use of ctors that take vectors. 2007-02-13 02:10:56 +00:00
LowerPacked.cpp For PR1195: 2007-02-15 03:39:18 +00:00
Makefile DONT_BUILD_RELINKED is gone and implied by BUILD_ARCHIVE now 2005-10-24 02:26:13 +00:00
PredicateSimplifier.cpp Add support for cast instructions. 2007-04-07 15:48:32 +00:00
Reassociate.cpp Prefer non-virtual calls to ConstantInt::isZero over virtual calls to 2007-03-02 00:28:52 +00:00
Reg2Mem.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
ScalarReplAggregates.cpp Change uses of Function::front to Function::getEntryBlock for readability. 2007-03-22 16:38:57 +00:00
SCCP.cpp minor cleanups 2007-03-04 04:50:21 +00:00
SimplifyCFG.cpp Use a worklist-driven algorithm instead of a recursive one. 2007-04-05 01:27:02 +00:00
TailDuplication.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
TailRecursionElimination.cpp Change uses of Function::front to Function::getEntryBlock for readability. 2007-03-22 16:38:57 +00:00