llvm/test/Transforms
Chris Lattner 8d2e88806b Transform a load from an undef/zero global into an undef/global even if we
have complex pointer manipulation going on.  This allows us to compile
stuff like this:

__m128i foo(__m128i x){
                static const unsigned int c_0[4] = { 0, 0, 0, 0 };
                __m128i v_Zero = _mm_loadu_si128((__m128i*)c_0);
                x  = _mm_unpacklo_epi8(x,  v_Zero);
                return x;
}

into:

_foo:
        xorps   %xmm1, %xmm1
        punpcklbw       %xmm1, %xmm0
        ret




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41022 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-11 18:48:48 +00:00
..
ADCE Unreachable block is not a root node in post dominator tree. 2007-07-24 01:02:25 +00:00
ArgumentPromotion Convert .cvsignore files 2007-06-29 16:35:07 +00:00
BlockPlacement Convert .cvsignore files 2007-06-29 16:35:07 +00:00
CodeExtractor Convert .cvsignore files 2007-06-29 16:35:07 +00:00
CondProp Fix PR1575 and test/Transforms/CondProp/2007-08-01-InvalidRead.ll 2007-08-02 04:47:05 +00:00
ConstantMerge Convert .cvsignore files 2007-06-29 16:35:07 +00:00
ConstProp Convert .cvsignore files 2007-06-29 16:35:07 +00:00
CorrelatedExprs Convert .cvsignore files 2007-06-29 16:35:07 +00:00
DeadArgElim Convert .cvsignore files 2007-06-29 16:35:07 +00:00
DeadStoreElimination Forgot to update these files for the FastDSE changes. 2007-08-01 16:53:51 +00:00
DecomposeMultiDimRefs Convert .cvsignore files 2007-06-29 16:35:07 +00:00
GCSE Convert .cvsignore files 2007-06-29 16:35:07 +00:00
GlobalDCE Convert .cvsignore files 2007-06-29 16:35:07 +00:00
GlobalOpt For PR1553: 2007-07-19 23:13:04 +00:00
GVN Fix a failure I accidentally caused in my last commit by mishandling the 2007-07-31 20:18:28 +00:00
GVNPRE For PR1553: 2007-07-19 23:13:04 +00:00
IndVarsSimplify For PR1553: 2007-07-19 23:13:04 +00:00
Inline Convert .cvsignore files 2007-06-29 16:35:07 +00:00
InstCombine Transform a load from an undef/zero global into an undef/global even if we 2007-08-11 18:48:48 +00:00
IPConstantProp Convert .cvsignore files 2007-06-29 16:35:07 +00:00
LCSSA Bunch of tests to check loop passes. 2007-07-31 08:04:17 +00:00
LICM Bunch of tests to check loop passes. 2007-07-31 08:04:17 +00:00
LoopRotate Bunch of tests to check loop passes. 2007-07-31 08:04:17 +00:00
LoopSimplify Convert .cvsignore files 2007-06-29 16:35:07 +00:00
LoopStrengthReduce Convert .cvsignore files 2007-06-29 16:35:07 +00:00
LoopUnroll Convert .cvsignore files 2007-06-29 16:35:07 +00:00
LoopUnswitch Update dominator info for the middle blocks created while spliting 2007-08-02 15:25:57 +00:00
LowerInvoke Convert .cvsignore files 2007-06-29 16:35:07 +00:00
LowerSetJmp Convert .cvsignore files 2007-06-29 16:35:07 +00:00
LowerSwitch Convert .cvsignore files 2007-06-29 16:35:07 +00:00
Mem2Reg Convert .cvsignore files 2007-06-29 16:35:07 +00:00
PredicateSimplifier Convert .cvsignore files 2007-06-29 16:35:07 +00:00
PruneEH Convert .cvsignore files 2007-06-29 16:35:07 +00:00
RaiseAllocations Convert .cvsignore files 2007-06-29 16:35:07 +00:00
Reassociate Convert .cvsignore files 2007-06-29 16:35:07 +00:00
RedundantLoadElimination Rename a lot of things to change FastDLE to RedundantLoadElimination. 2007-07-24 00:17:04 +00:00
ScalarRepl Convert .cvsignore files 2007-06-29 16:35:07 +00:00
SCCP Convert .cvsignore files 2007-06-29 16:35:07 +00:00
SimplifyCFG Convert .cvsignore files 2007-06-29 16:35:07 +00:00
SimplifyLibCalls Convert .cvsignore files 2007-06-29 16:35:07 +00:00
TailCallElim Convert .cvsignore files 2007-06-29 16:35:07 +00:00
TailDup Change the x86 assembly output to use tab characters to separate the 2007-07-31 20:11:57 +00:00