From 4c5e43da7792f75567b693105cc53e3f1992ad98 Mon Sep 17 00:00:00 2001 From: Pirama Arumuga Nainar Date: Wed, 8 Apr 2015 08:55:49 -0700 Subject: Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49 --- test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll | 6 +- test/Transforms/ADCE/2002-05-28-Crash.ll | 10 +- .../Transforms/ADCE/2002-07-17-AssertionFailure.ll | 2 +- test/Transforms/ADCE/2002-07-17-PHIAssertion.ll | 6 +- test/Transforms/ADCE/2003-06-11-InvalidCFG.ll | 2 +- test/Transforms/ADCE/2003-06-24-BadSuccessor.ll | 6 +- .../ADCE/2003-06-24-BasicFunctionality.ll | 8 +- test/Transforms/ADCE/basictest1.ll | 36 +- test/Transforms/ADCE/basictest2.ll | 36 +- test/Transforms/AddDiscriminators/basic.ll | 33 +- test/Transforms/AddDiscriminators/first-only.ll | 47 +- test/Transforms/AddDiscriminators/multiple.ll | 43 +- .../AddDiscriminators/no-discriminators.ll | 39 +- test/Transforms/AlignmentFromAssumptions/simple.ll | 44 +- .../AlignmentFromAssumptions/simple32.ll | 44 +- .../AlignmentFromAssumptions/start-unk.ll | 8 +- .../ArgumentPromotion/2008-02-01-ReturnAttrs.ll | 2 +- .../ArgumentPromotion/2008-07-02-array-indexing.ll | 6 +- .../ArgumentPromotion/aggregate-promote.ll | 8 +- test/Transforms/ArgumentPromotion/attrs.ll | 8 +- test/Transforms/ArgumentPromotion/basictest.ll | 4 +- test/Transforms/ArgumentPromotion/byval-2.ll | 8 +- test/Transforms/ArgumentPromotion/byval.ll | 8 +- test/Transforms/ArgumentPromotion/chained.ll | 4 +- test/Transforms/ArgumentPromotion/control-flow.ll | 2 +- test/Transforms/ArgumentPromotion/control-flow2.ll | 4 +- test/Transforms/ArgumentPromotion/crash.ll | 8 +- test/Transforms/ArgumentPromotion/dbg.ll | 13 +- test/Transforms/ArgumentPromotion/fp80.ll | 12 +- test/Transforms/ArgumentPromotion/inalloca.ll | 12 +- test/Transforms/ArgumentPromotion/reserve-tbaa.ll | 12 +- test/Transforms/BBVectorize/X86/loop1.ll | 10 +- test/Transforms/BBVectorize/X86/pr15289.ll | 20 +- test/Transforms/BBVectorize/X86/sh-rec.ll | 18 +- test/Transforms/BBVectorize/X86/sh-rec2.ll | 64 +- test/Transforms/BBVectorize/X86/sh-rec3.ll | 112 ++-- test/Transforms/BBVectorize/X86/simple-ldstr.ll | 18 +- test/Transforms/BBVectorize/X86/wr-aliases.ll | 88 +-- test/Transforms/BBVectorize/func-alias.ll | 150 ++--- test/Transforms/BBVectorize/ld1.ll | 24 +- test/Transforms/BBVectorize/loop1.ll | 30 +- test/Transforms/BBVectorize/mem-op-depth.ll | 18 +- test/Transforms/BBVectorize/metadata.ll | 28 +- test/Transforms/BBVectorize/no-ldstr-conn.ll | 10 +- test/Transforms/BBVectorize/simple-ldstr-ptrs.ll | 104 ++-- test/Transforms/BBVectorize/simple-ldstr.ll | 98 ++-- .../CodeExtractor/2004-03-14-DominanceProblem.ll | 2 +- .../CodeGenPrepare/X86/extend-sink-hoist.ll | 8 +- .../CodeGenPrepare/X86/sink-addrspacecast.ll | 6 +- .../CodeGenPrepare/statepoint-relocate.ll | 54 +- test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll | 2 +- test/Transforms/ConstProp/2009-09-01-GEP-Crash.ll | 2 +- test/Transforms/ConstProp/div-zero.ll | 2 +- test/Transforms/ConstProp/loads.ll | 38 +- test/Transforms/ConstProp/shift.ll | 69 +++ .../ConstantHoisting/AArch64/const-addr.ll | 18 +- .../ConstantHoisting/PowerPC/const-base-addr.ll | 14 +- test/Transforms/ConstantHoisting/PowerPC/masks.ll | 4 +- test/Transforms/ConstantHoisting/X86/cast-inst.ll | 12 +- .../ConstantHoisting/X86/const-base-addr.ll | 14 +- .../ConstantHoisting/X86/delete-dead-cast-inst.ll | 12 +- .../ConstantMerge/2002-09-23-CPR-Update.ll | 4 +- test/Transforms/ConstantMerge/merge-both.ll | 7 +- .../Transforms/CorrelatedValuePropagation/basic.ll | 4 +- .../CorrelatedValuePropagation/non-null.ll | 2 +- .../DeadArgElim/2008-01-16-VarargsParamAttrs.ll | 2 +- test/Transforms/DeadArgElim/2010-04-30-DbgInfo.ll | 68 +-- test/Transforms/DeadArgElim/aggregates.ll | 2 +- test/Transforms/DeadArgElim/dbginfo.ll | 24 +- test/Transforms/DeadArgElim/deadexternal.ll | 4 +- test/Transforms/DeadArgElim/deadretval2.ll | 2 +- test/Transforms/DeadArgElim/keepalive.ll | 2 +- .../2011-03-25-DSEMiscompile.ll | 6 +- .../2011-09-06-EndOfFunction.ll | 6 +- .../DeadStoreElimination/2011-09-06-MemCpy.ll | 12 +- .../DeadStoreElimination/OverwriteStoreEnd.ll | 18 +- .../DeadStoreElimination/PartialStore.ll | 10 +- test/Transforms/DeadStoreElimination/atomic.ll | 56 +- .../DeadStoreElimination/const-pointers.ll | 6 +- test/Transforms/DeadStoreElimination/crash.ll | 20 +- .../DeadStoreElimination/cs-cs-aliasing.ll | 16 +- test/Transforms/DeadStoreElimination/dominate.ll | 2 +- test/Transforms/DeadStoreElimination/free.ll | 6 +- .../Transforms/DeadStoreElimination/inst-limits.ll | 20 +- test/Transforms/DeadStoreElimination/libcalls.ll | 14 +- test/Transforms/DeadStoreElimination/lifetime.ll | 2 +- .../DeadStoreElimination/no-targetdata.ll | 2 +- test/Transforms/DeadStoreElimination/pr11390.ll | 6 +- test/Transforms/DeadStoreElimination/simple.ll | 52 +- test/Transforms/EarlyCSE/basic.ll | 34 +- .../FunctionAttrs/2008-09-03-ReadNone.ll | 2 +- .../FunctionAttrs/2008-09-13-VolatileRead.ll | 2 +- .../FunctionAttrs/2008-12-29-Constant.ll | 2 +- .../FunctionAttrs/2009-01-02-LocalStores.ll | 2 +- .../FunctionAttrs/2010-10-30-volatile.ll | 2 +- test/Transforms/FunctionAttrs/atomic.ll | 4 +- test/Transforms/FunctionAttrs/nocapture.ll | 12 +- test/Transforms/FunctionAttrs/optnone-simple.ll | 24 +- .../Transforms/GCOVProfiling/function-numbering.ll | 22 +- test/Transforms/GCOVProfiling/global-ctor.ll | 20 +- test/Transforms/GCOVProfiling/linezero.ll | 87 ++- test/Transforms/GCOVProfiling/linkagename.ll | 12 +- test/Transforms/GCOVProfiling/return-block.ll | 43 +- test/Transforms/GCOVProfiling/version.ll | 18 +- test/Transforms/GVN/2007-07-25-DominatedLoop.ll | 4 +- test/Transforms/GVN/2007-07-25-InfiniteLoop.ll | 2 +- test/Transforms/GVN/2007-07-25-Loop.ll | 2 +- test/Transforms/GVN/2007-07-25-NestedLoop.ll | 12 +- .../Transforms/GVN/2007-07-25-SinglePredecessor.ll | 6 +- .../Transforms/GVN/2007-07-26-InterlockingLoops.ll | 6 +- test/Transforms/GVN/2007-07-26-NonRedundant.ll | 2 +- test/Transforms/GVN/2007-07-26-PhiErasure.ll | 4 +- test/Transforms/GVN/2007-07-30-PredIDom.ll | 2 +- test/Transforms/GVN/2007-07-31-NoDomInherit.ll | 124 ++-- test/Transforms/GVN/2007-07-31-RedundantPhi.ll | 2 +- test/Transforms/GVN/2008-02-12-UndefLoad.ll | 6 +- test/Transforms/GVN/2008-02-13-NewPHI.ll | 4 +- test/Transforms/GVN/2008-07-02-Unreachable.ll | 4 +- test/Transforms/GVN/2008-12-09-SelfRemove.ll | 6 +- test/Transforms/GVN/2008-12-12-RLE-Crash.ll | 8 +- test/Transforms/GVN/2008-12-14-rle-reanalyze.ll | 6 +- test/Transforms/GVN/2008-12-15-CacheVisited.ll | 8 +- test/Transforms/GVN/2009-01-21-SortInvalidation.ll | 2 +- test/Transforms/GVN/2009-01-22-SortInvalidation.ll | 10 +- test/Transforms/GVN/2009-02-17-LoadPRECrash.ll | 36 +- test/Transforms/GVN/2009-06-17-InvalidPRE.ll | 26 +- test/Transforms/GVN/2009-07-13-MemDepSortFail.ll | 4 +- .../GVN/2009-11-12-MemDepMallocBitCast.ll | 6 +- test/Transforms/GVN/2010-03-31-RedundantPHIs.ll | 4 +- test/Transforms/GVN/2010-05-08-OneBit.ll | 6 +- test/Transforms/GVN/2011-04-27-phioperands.ll | 4 +- .../GVN/2011-06-01-NonLocalMemdepMiscompile.ll | 18 +- test/Transforms/GVN/MemdepMiscompile.ll | 8 +- test/Transforms/GVN/atomic.ll | 92 ++- test/Transforms/GVN/calloc-load-removal.ll | 4 +- test/Transforms/GVN/calls-readonly.ll | 2 +- test/Transforms/GVN/cond_br.ll | 8 +- test/Transforms/GVN/cond_br2.ll | 34 +- test/Transforms/GVN/condprop.ll | 14 +- test/Transforms/GVN/crash-no-aa.ll | 6 +- test/Transforms/GVN/crash.ll | 52 +- test/Transforms/GVN/invariant-load.ll | 68 ++- test/Transforms/GVN/lifetime-simple.ll | 4 +- test/Transforms/GVN/load-constant-mem.ll | 6 +- .../GVN/load-from-unreachable-predecessor.ll | 6 +- test/Transforms/GVN/load-pre-align.ll | 4 +- test/Transforms/GVN/load-pre-licm.ll | 8 +- test/Transforms/GVN/load-pre-nonlocal.ll | 28 +- test/Transforms/GVN/lpre-call-wrap-2.ll | 10 +- test/Transforms/GVN/lpre-call-wrap.ll | 10 +- test/Transforms/GVN/malloc-load-removal.ll | 4 +- test/Transforms/GVN/noalias.ll | 18 +- test/Transforms/GVN/non-local-offset.ll | 12 +- test/Transforms/GVN/nonescaping-malloc.ll | 36 +- test/Transforms/GVN/null-aliases-nothing.ll | 6 +- test/Transforms/GVN/phi-translate-partial-alias.ll | 10 +- test/Transforms/GVN/phi-translate.ll | 8 +- test/Transforms/GVN/pr10820.ll | 2 +- test/Transforms/GVN/pr14166.ll | 6 +- test/Transforms/GVN/pr17732.ll | 8 +- test/Transforms/GVN/pr17852.ll | 44 +- test/Transforms/GVN/pre-basic-add.ll | 2 +- test/Transforms/GVN/pre-compare.ll | 6 +- test/Transforms/GVN/pre-gep-load.ll | 16 +- test/Transforms/GVN/pre-load.ll | 116 ++-- test/Transforms/GVN/pre-single-pred.ll | 6 +- test/Transforms/GVN/preserve-tbaa.ll | 4 +- test/Transforms/GVN/range.ll | 48 +- test/Transforms/GVN/readattrs.ll | 2 +- test/Transforms/GVN/rle-must-alias.ll | 12 +- test/Transforms/GVN/rle-no-phi-translate.ll | 2 +- test/Transforms/GVN/rle-nonlocal.ll | 10 +- test/Transforms/GVN/rle-phi-translate.ll | 32 +- test/Transforms/GVN/rle-semidominated.ll | 4 +- test/Transforms/GVN/rle.ll | 160 ++--- test/Transforms/GVN/tbaa.ll | 8 +- test/Transforms/GVN/volatile.ll | 80 +-- .../Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll | 2 +- .../GlobalDCE/2002-08-17-WorkListTest.ll | 4 +- test/Transforms/GlobalDCE/2002-09-12-Redeletion.ll | 2 +- test/Transforms/GlobalDCE/complex-constantexpr.ll | 12 +- .../GlobalDCE/global_ctors_integration.ll | 8 +- test/Transforms/GlobalDCE/indirectbr.ll | 4 +- .../GlobalOpt/2004-10-10-CastStoreOnce.ll | 4 +- .../GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll | 2 +- test/Transforms/GlobalOpt/2005-09-27-Crash.ll | 2 +- .../GlobalOpt/2006-07-07-InlineAsmCrash.ll | 4 +- .../GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll | 2 +- test/Transforms/GlobalOpt/2007-04-05-Crash.ll | 2 +- test/Transforms/GlobalOpt/2007-05-13-Crash.ll | 22 +- .../GlobalOpt/2007-06-04-PackedStruct.ll | 2 +- .../GlobalOpt/2007-11-09-GEP-GEP-Crash.ll | 4 +- test/Transforms/GlobalOpt/2008-01-03-Crash.ll | 2 +- .../GlobalOpt/2008-01-13-OutOfRangeSROA.ll | 6 +- .../GlobalOpt/2008-01-29-VolatileGlobal.ll | 2 +- .../GlobalOpt/2008-04-26-SROA-Global-Align.ll | 12 +- test/Transforms/GlobalOpt/2008-07-17-addrspace.ll | 8 +- .../GlobalOpt/2008-12-16-HeapSRACrash-2.ll | 8 +- .../GlobalOpt/2008-12-16-HeapSRACrash.ll | 6 +- test/Transforms/GlobalOpt/2009-01-13-phi-user.ll | 8 +- .../GlobalOpt/2009-02-15-BitcastAlias.ll | 2 +- test/Transforms/GlobalOpt/2009-03-05-dbg.ll | 24 +- .../GlobalOpt/2009-03-07-PromotePtrToBool.ll | 2 +- .../GlobalOpt/2009-06-01-RecursivePHI.ll | 6 +- .../2009-11-16-BrokenPerformHeapAllocSRoA.ll | 4 +- .../2009-11-16-MallocSingleStoreToGlobalVar.ll | 6 +- .../GlobalOpt/2010-02-25-MallocPromote.ll | 4 +- test/Transforms/GlobalOpt/2010-02-26-MallocSROA.ll | 4 +- test/Transforms/GlobalOpt/alias-resolve.ll | 4 +- test/Transforms/GlobalOpt/array-elem-refs.ll | 10 +- test/Transforms/GlobalOpt/atomic.ll | 4 +- test/Transforms/GlobalOpt/basictest.ll | 2 +- .../GlobalOpt/constantfold-initializers.ll | 18 +- test/Transforms/GlobalOpt/crash-2.ll | 4 +- test/Transforms/GlobalOpt/crash.ll | 12 +- .../GlobalOpt/ctor-list-opt-constexpr.ll | 4 +- .../Transforms/GlobalOpt/ctor-list-opt-inbounds.ll | 8 +- test/Transforms/GlobalOpt/ctor-list-opt.ll | 18 +- test/Transforms/GlobalOpt/cxx-dtor.ll | 2 +- test/Transforms/GlobalOpt/deadfunction.ll | 4 +- test/Transforms/GlobalOpt/deadglobal-2.ll | 2 +- .../GlobalOpt/externally-initialized-global-ctr.ll | 12 +- test/Transforms/GlobalOpt/fastcc.ll | 8 +- test/Transforms/GlobalOpt/globalsra-partial.ll | 8 +- .../GlobalOpt/globalsra-unknown-index.ll | 26 +- test/Transforms/GlobalOpt/globalsra.ll | 8 +- test/Transforms/GlobalOpt/heap-sra-1.ll | 6 +- test/Transforms/GlobalOpt/heap-sra-2.ll | 8 +- test/Transforms/GlobalOpt/heap-sra-3.ll | 6 +- test/Transforms/GlobalOpt/heap-sra-4.ll | 6 +- test/Transforms/GlobalOpt/heap-sra-phi.ll | 14 +- test/Transforms/GlobalOpt/integer-bool.ll | 2 +- test/Transforms/GlobalOpt/iterate.ll | 4 +- test/Transforms/GlobalOpt/load-store-global.ll | 8 +- test/Transforms/GlobalOpt/malloc-promote-1.ll | 6 +- test/Transforms/GlobalOpt/malloc-promote-2.ll | 4 +- test/Transforms/GlobalOpt/malloc-promote-3.ll | 4 +- test/Transforms/GlobalOpt/memcpy.ll | 4 +- test/Transforms/GlobalOpt/memset-null.ll | 2 +- test/Transforms/GlobalOpt/memset.ll | 4 +- test/Transforms/GlobalOpt/phi-select.ll | 4 +- test/Transforms/GlobalOpt/storepointer-compare.ll | 2 +- test/Transforms/GlobalOpt/storepointer.ll | 2 +- test/Transforms/GlobalOpt/tls.ll | 14 +- test/Transforms/GlobalOpt/trivialstore.ll | 2 +- test/Transforms/GlobalOpt/undef-init.ll | 2 +- test/Transforms/GlobalOpt/unnamed-addr.ll | 10 +- .../GlobalOpt/zeroinitializer-gep-load.ll | 4 +- .../IPConstantProp/2009-09-24-byval-ptr.ll | 16 +- .../IPConstantProp/dangling-block-address.ll | 8 +- test/Transforms/IPConstantProp/global.ll | 4 +- test/Transforms/IPConstantProp/return-argument.ll | 2 +- .../IRCE/bug-loop-varying-upper-limit.ll | 31 + test/Transforms/IRCE/decrementing-loop.ll | 4 +- test/Transforms/IRCE/low-becount.ll | 4 +- test/Transforms/IRCE/multiple-access-no-preloop.ll | 8 +- test/Transforms/IRCE/not-likely-taken.ll | 8 +- test/Transforms/IRCE/only-lower-check.ll | 37 ++ test/Transforms/IRCE/only-upper-check.ll | 37 ++ test/Transforms/IRCE/single-access-no-preloop.ll | 10 +- test/Transforms/IRCE/single-access-with-preloop.ll | 4 +- test/Transforms/IRCE/unhandled.ll | 4 +- test/Transforms/IRCE/with-parent-loops.ll | 36 +- .../IndVarSimplify/2005-02-17-TruncateExprCrash.ll | 2 +- test/Transforms/IndVarSimplify/2005-11-18-Crash.ll | 4 +- .../2006-06-16-Indvar-LCSSA-Crash.ll | 4 +- .../IndVarSimplify/2007-01-06-TripCount.ll | 4 +- .../Transforms/IndVarSimplify/2008-09-02-IVType.ll | 18 +- .../IndVarSimplify/2008-10-03-CouldNotCompute.ll | 2 +- .../IndVarSimplify/2009-04-14-shorten_iv_vars.ll | 96 +-- .../IndVarSimplify/2009-04-15-shorten-iv-vars-2.ll | 108 ++-- .../IndVarSimplify/2009-04-27-Floating.ll | 4 + .../IndVarSimplify/2011-09-27-hoistsext.ll | 4 +- .../IndVarSimplify/2011-10-27-lftrnull.ll | 4 +- .../IndVarSimplify/2011-11-01-lftrptr.ll | 20 +- .../IndVarSimplify/2011-11-15-multiexit.ll | 6 +- .../IndVarSimplify/2012-07-17-lftr-undef.ll | 2 +- .../2014-06-21-congruent-constant.ll | 12 +- .../IndVarSimplify/NVPTX/no-widen-expensive.ll | 2 +- test/Transforms/IndVarSimplify/ada-loops.ll | 12 +- test/Transforms/IndVarSimplify/ashr-tripcount.ll | 48 +- test/Transforms/IndVarSimplify/avoid-i0.ll | 28 +- .../IndVarSimplify/backedge-on-min-max.ll | 32 +- test/Transforms/IndVarSimplify/casted-argument.ll | 6 +- test/Transforms/IndVarSimplify/dangling-use.ll | 6 +- test/Transforms/IndVarSimplify/elim-extend.ll | 22 +- .../IndVarSimplify/eliminate-comparison.ll | 28 +- test/Transforms/IndVarSimplify/eliminate-max.ll | 2 +- test/Transforms/IndVarSimplify/eliminate-rem.ll | 14 +- test/Transforms/IndVarSimplify/indirectbr.ll | 4 +- test/Transforms/IndVarSimplify/iv-fold.ll | 16 +- test/Transforms/IndVarSimplify/iv-sext.ll | 28 +- test/Transforms/IndVarSimplify/iv-widen.ll | 8 +- test/Transforms/IndVarSimplify/iv-zext.ll | 12 +- .../IndVarSimplify/lftr-address-space-pointers.ll | 12 +- .../Transforms/IndVarSimplify/lftr-extend-const.ll | 4 + test/Transforms/IndVarSimplify/lftr-promote.ll | 6 +- test/Transforms/IndVarSimplify/lftr-reuse.ll | 56 +- test/Transforms/IndVarSimplify/lftr-zext.ll | 8 +- test/Transforms/IndVarSimplify/lftr_simple.ll | 6 +- test/Transforms/IndVarSimplify/loop_evaluate7.ll | 4 +- test/Transforms/IndVarSimplify/loop_evaluate8.ll | 4 +- test/Transforms/IndVarSimplify/loop_evaluate9.ll | 4 +- test/Transforms/IndVarSimplify/masked-iv.ll | 2 +- test/Transforms/IndVarSimplify/no-iv-rewrite.ll | 32 +- test/Transforms/IndVarSimplify/overflowcheck.ll | 4 +- .../phi-uses-value-multiple-times.ll | 2 +- .../Transforms/IndVarSimplify/polynomial-expand.ll | 4 +- test/Transforms/IndVarSimplify/pr18223.ll | 2 +- test/Transforms/IndVarSimplify/pr20680.ll | 16 +- test/Transforms/IndVarSimplify/pr22222.ll | 2 +- .../IndVarSimplify/preserve-signed-wrap.ll | 6 +- .../promote-iv-to-eliminate-casts.ll | 17 +- test/Transforms/IndVarSimplify/sharpen-range.ll | 6 +- .../Transforms/IndVarSimplify/signed-trip-count.ll | 6 +- .../IndVarSimplify/single-element-range.ll | 2 +- test/Transforms/IndVarSimplify/sink-alloca.ll | 4 +- test/Transforms/IndVarSimplify/udiv.ll | 16 +- test/Transforms/IndVarSimplify/uglygep.ll | 6 +- test/Transforms/IndVarSimplify/ult-sub-to-eq.ll | 12 +- .../IndVarSimplify/use-range-metadata.ll | 2 +- .../IndVarSimplify/variable-stride-ivs-0.ll | 14 +- test/Transforms/IndVarSimplify/verify-scev.ll | 4 +- test/Transforms/IndVarSimplify/widen-loop-comp.ll | 32 +- test/Transforms/IndVarSimplify/widen-nsw.ll | 4 +- .../Inline/2006-07-12-InlinePruneCGUpdate.ll | 2 +- .../Inline/2009-01-08-NoInlineDynamicAlloca.ll | 8 +- .../Inline/2009-01-13-RecursiveInlineCrash.ll | 84 +-- test/Transforms/Inline/align.ll | 48 +- test/Transforms/Inline/alloca-bonus.ll | 24 +- test/Transforms/Inline/alloca-dbgdeclare.ll | 60 +- test/Transforms/Inline/alloca-in-scc.ll | 2 +- test/Transforms/Inline/alloca-merge-align-nodl.ll | 88 --- test/Transforms/Inline/alloca-merge-align.ll | 66 +-- test/Transforms/Inline/basictest.ll | 6 +- test/Transforms/Inline/byval-tail-call.ll | 2 +- test/Transforms/Inline/byval.ll | 28 +- test/Transforms/Inline/byval_lifetime.ll | 6 +- test/Transforms/Inline/crash2.ll | 2 +- .../Inline/debug-info-duplicate-calls.ll | 26 +- test/Transforms/Inline/debug-invoke.ll | 10 +- test/Transforms/Inline/devirtualize-3.ll | 40 +- test/Transforms/Inline/devirtualize.ll | 48 +- test/Transforms/Inline/ephemeral.ll | 2 +- test/Transforms/Inline/gvn-inline-iteration.ll | 2 +- test/Transforms/Inline/ignore-debug-info.ll | 21 +- test/Transforms/Inline/inline-byval-bonus.ll | 72 +-- test/Transforms/Inline/inline-cold.ll | 120 ++-- test/Transforms/Inline/inline-fast-math-flags.ll | 8 +- test/Transforms/Inline/inline-fp.ll | 24 +- test/Transforms/Inline/inline-invoke-tail.ll | 2 +- test/Transforms/Inline/inline-musttail-varargs.ll | 2 +- test/Transforms/Inline/inline-optsize.ll | 10 +- test/Transforms/Inline/inline-vla.ll | 6 +- test/Transforms/Inline/inline_constprop.ll | 4 +- test/Transforms/Inline/inline_dbg_declare.ll | 196 +++---- test/Transforms/Inline/inline_minisize.ll | 116 ++-- test/Transforms/Inline/inline_ssp.ll | 8 +- test/Transforms/Inline/invoke-combine-clauses.ll | 2 +- test/Transforms/Inline/lifetime-no-datalayout.ll | 6 +- test/Transforms/Inline/noalias-cs.ll | 30 +- test/Transforms/Inline/noalias.ll | 36 +- test/Transforms/Inline/noalias2.ll | 44 +- test/Transforms/Inline/optimization-remarks.ll | 16 +- test/Transforms/Inline/ptr-diff.ll | 24 +- test/Transforms/Inline/store-sroa.ll | 22 + .../InstCombine/2003-07-21-ExternalConstant.ll | 6 +- .../InstCombine/2003-09-09-VolatileLoadElim.ll | 2 +- .../InstCombine/2004-01-13-InstCombineInvokePHI.ll | 2 +- .../InstCombine/2004-05-07-UnsizedCastLoad.ll | 2 +- .../InstCombine/2004-09-20-BadLoadCombine.ll | 2 +- .../InstCombine/2004-09-20-BadLoadCombine2.ll | 2 +- .../2005-06-16-SetCCOrSetCCMiscompile.ll | 2 +- .../InstCombine/2006-09-15-CastToBool.ll | 2 +- .../InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll | 18 +- .../InstCombine/2006-12-08-Select-ICmp.ll | 18 +- .../InstCombine/2006-12-15-Range-Test.ll | 4 +- .../InstCombine/2006-12-23-Select-Cmp-Cmp.ll | 4 +- .../InstCombine/2007-02-01-LoadSinkAlloca.ll | 4 +- .../InstCombine/2007-02-07-PointerCast.ll | 4 +- .../InstCombine/2007-03-25-BadShiftMask.ll | 8 +- test/Transforms/InstCombine/2007-05-14-Crash.ll | 2 +- .../InstCombine/2007-06-06-AshrSignBit.ll | 4 +- .../InstCombine/2007-09-10-AliasConstFold.ll | 2 +- .../InstCombine/2007-10-10-EliminateMemCpy.ll | 4 +- test/Transforms/InstCombine/2007-10-12-Crash.ll | 2 +- .../Transforms/InstCombine/2007-10-28-stacksave.ll | 2 +- .../InstCombine/2007-10-31-RangeCrash.ll | 2 +- .../InstCombine/2007-10-31-StringCrash.ll | 2 +- .../InstCombine/2007-11-07-OpaqueAlignCrash.ll | 4 +- .../InstCombine/2007-11-25-CompatibleAttributes.ll | 2 +- test/Transforms/InstCombine/2007-12-12-GEPScale.ll | 2 +- test/Transforms/InstCombine/2007-12-28-IcmpSub2.ll | 16 +- .../InstCombine/2008-01-14-VarArgTrampoline.ll | 6 +- test/Transforms/InstCombine/2008-03-13-IntToPtr.ll | 2 +- .../2008-04-29-VolatileLoadDontMerge.ll | 4 +- .../InstCombine/2008-04-29-VolatileLoadMerge.ll | 4 +- .../InstCombine/2008-05-08-LiveStoreDelete.ll | 6 +- .../InstCombine/2008-05-08-StrLenSink.ll | 6 +- .../InstCombine/2008-05-09-SinkOfInvoke.ll | 4 +- test/Transforms/InstCombine/2008-05-17-InfLoop.ll | 6 +- .../InstCombine/2008-05-23-CompareFold.ll | 2 +- .../InstCombine/2008-06-19-UncondLoad.ll | 6 +- .../InstCombine/2008-06-24-StackRestore.ll | 2 +- .../InstCombine/2008-07-08-VolatileLoadMerge.ll | 4 +- test/Transforms/InstCombine/2008-08-05-And.ll | 4 +- .../InstCombine/2009-01-08-AlignAlloca.ll | 10 +- .../2009-01-19-fmod-constant-float-specials.ll | 96 +-- .../InstCombine/2009-01-19-fmod-constant-float.ll | 16 +- .../InstCombine/2009-01-24-EmptyStruct.ll | 2 +- .../InstCombine/2009-02-20-InstCombine-SROA.ll | 204 +++---- test/Transforms/InstCombine/2009-02-21-LoadCST.ll | 2 +- .../InstCombine/2009-02-25-CrashZeroSizeArray.ll | 8 +- .../InstCombine/2009-03-18-vector-ashr-crash.ll | 4 +- .../InstCombine/2009-05-23-FCmpToICmp.ll | 2 +- .../InstCombine/2009-12-17-CmpSelectNull.ll | 4 +- test/Transforms/InstCombine/2010-03-03-ExtElim.ll | 8 +- .../InstCombine/2010-05-30-memcpy-Struct.ll | 2 +- .../InstCombine/2010-11-21-SizeZeroTypeGEP.ll | 4 +- .../InstCombine/2011-05-02-VectorBoolean.ll | 4 +- .../InstCombine/2011-05-13-InBoundsGEP.ll | 4 +- .../InstCombine/2011-05-28-swapmulsub.ll | 14 +- .../InstCombine/2011-06-13-nsw-alloca.ll | 12 +- .../InstCombine/2011-09-03-Trampoline.ll | 4 +- .../InstCombine/2011-10-07-AlignPromotion.ll | 2 +- test/Transforms/InstCombine/2012-02-13-FCmp.ll | 4 +- .../InstCombine/2012-05-27-Negative-Shift-Crash.ll | 6 +- .../InstCombine/2012-05-28-select-hang.ll | 4 +- .../InstCombine/2012-06-06-LoadOfPHIs.ll | 50 +- test/Transforms/InstCombine/2012-07-25-LoadPart.ll | 2 +- .../InstCombine/2012-07-30-addrsp-bitcast.ll | 2 +- .../InstCombine/2012-09-17-ZeroSizedAlloca.ll | 4 +- .../2012-09-24-MemcpyFromGlobalCrash.ll | 19 - .../InstCombine/2012-10-25-vector-of-pointers.ll | 4 +- .../Transforms/InstCombine/2012-12-14-simp-vgep.ll | 2 +- .../2013-03-05-Combine-BitcastTy-Into-Alloca.ll | 10 +- test/Transforms/InstCombine/CPP_min_max.ll | 12 +- test/Transforms/InstCombine/PR7357.ll | 2 +- test/Transforms/InstCombine/add3.ll | 4 +- test/Transforms/InstCombine/addrspacecast.ll | 12 +- test/Transforms/InstCombine/alias-recursion.ll | 4 +- test/Transforms/InstCombine/align-2d-gep.ll | 4 +- test/Transforms/InstCombine/align-addr.ll | 12 +- test/Transforms/InstCombine/align-attr.ll | 4 +- test/Transforms/InstCombine/align-external.ll | 2 +- test/Transforms/InstCombine/aligned-altivec.ll | 32 +- test/Transforms/InstCombine/aligned-qpx.ll | 40 +- test/Transforms/InstCombine/alloca.ll | 41 +- test/Transforms/InstCombine/assume-loop-align.ll | 8 +- test/Transforms/InstCombine/assume-redundant.ll | 12 +- test/Transforms/InstCombine/assume.ll | 16 +- test/Transforms/InstCombine/atomic.ll | 6 +- .../InstCombine/bitcast-alias-function.ll | 34 +- test/Transforms/InstCombine/bitcast.ll | 2 +- test/Transforms/InstCombine/bittest.ll | 2 +- test/Transforms/InstCombine/branch.ll | 16 + test/Transforms/InstCombine/call-cast-target.ll | 15 + test/Transforms/InstCombine/call2.ll | 4 +- test/Transforms/InstCombine/cast.ll | 160 ++--- test/Transforms/InstCombine/cast_ptr.ll | 6 +- .../InstCombine/constant-expr-datalayout.ll | 2 +- .../constant-fold-address-space-pointer.ll | 50 +- test/Transforms/InstCombine/constant-fold-alias.ll | 4 +- test/Transforms/InstCombine/constant-fold-gep.ll | 96 +-- test/Transforms/InstCombine/constant-fold-hang.ll | 14 + test/Transforms/InstCombine/crash.ll | 38 +- test/Transforms/InstCombine/debug-line.ll | 16 +- test/Transforms/InstCombine/debuginfo.ll | 50 +- test/Transforms/InstCombine/default-alignment.ll | 10 + test/Transforms/InstCombine/descale-zero.ll | 10 +- .../InstCombine/disable-simplify-libcalls.ll | 50 +- test/Transforms/InstCombine/div-shift-crash.ll | 4 +- test/Transforms/InstCombine/dom-conditions.ll | 152 +++++ .../InstCombine/enforce-known-alignment.ll | 20 +- test/Transforms/InstCombine/err-rep-cold.ll | 18 +- test/Transforms/InstCombine/extractvalue.ll | 18 +- test/Transforms/InstCombine/fast-math.ll | 8 + test/Transforms/InstCombine/fcmp.ll | 35 ++ test/Transforms/InstCombine/fmul.ll | 2 +- test/Transforms/InstCombine/fold-vector-zero.ll | 2 +- test/Transforms/InstCombine/fp-ret-bitcast.ll | 8 +- test/Transforms/InstCombine/fpextend.ll | 12 +- test/Transforms/InstCombine/fprintf-1.ll | 28 +- test/Transforms/InstCombine/fputs-1.ll | 8 +- test/Transforms/InstCombine/fwrite-1.ll | 10 +- test/Transforms/InstCombine/gc.relocate.ll | 5 +- test/Transforms/InstCombine/gep-addrspace.ll | 12 +- test/Transforms/InstCombine/gep-sext.ll | 32 +- test/Transforms/InstCombine/gepgep.ll | 2 +- test/Transforms/InstCombine/gepphigep.ll | 96 ++- test/Transforms/InstCombine/getelementptr.ll | 334 +++++------ test/Transforms/InstCombine/icmp-range.ll | 12 +- test/Transforms/InstCombine/icmp.ll | 92 ++- .../InstCombine/inline-intrinsic-assert.ll | 30 + test/Transforms/InstCombine/intrinsics.ll | 44 ++ test/Transforms/InstCombine/invariant.ll | 2 +- test/Transforms/InstCombine/known_align.ll | 12 +- test/Transforms/InstCombine/load-cmp.ll | 347 ++++------- test/Transforms/InstCombine/load-select.ll | 4 +- test/Transforms/InstCombine/load.ll | 58 +- test/Transforms/InstCombine/load3.ll | 16 +- test/Transforms/InstCombine/loadstore-alignment.ll | 34 +- test/Transforms/InstCombine/loadstore-metadata.ll | 34 +- test/Transforms/InstCombine/lshr-phi.ll | 10 +- test/Transforms/InstCombine/malloc-free-delete.ll | 4 +- test/Transforms/InstCombine/mem-gep-zidx.ll | 12 +- test/Transforms/InstCombine/memchr.ll | 200 +++++++ test/Transforms/InstCombine/memcmp-1.ll | 16 +- test/Transforms/InstCombine/memcpy-from-global.ll | 42 +- test/Transforms/InstCombine/memmove.ll | 10 +- test/Transforms/InstCombine/memset.ll | 2 +- test/Transforms/InstCombine/memset2.ll | 2 +- test/Transforms/InstCombine/merge-icmp.ll | 4 +- test/Transforms/InstCombine/mul.ll | 2 +- .../multi-size-address-space-pointer.ll | 52 +- test/Transforms/InstCombine/no-negzero.ll | 6 +- test/Transforms/InstCombine/obfuscated_splat.ll | 2 +- .../InstCombine/objsize-address-space.ll | 6 +- test/Transforms/InstCombine/objsize.ll | 42 +- test/Transforms/InstCombine/odr-linkage.ll | 8 +- test/Transforms/InstCombine/or.ll | 4 +- test/Transforms/InstCombine/osx-names.ll | 4 +- test/Transforms/InstCombine/overflow-mul.ll | 11 + test/Transforms/InstCombine/phi-merge-gep.ll | 60 +- test/Transforms/InstCombine/phi.ll | 36 +- test/Transforms/InstCombine/pr12251.ll | 4 +- test/Transforms/InstCombine/pr21651.ll | 4 + test/Transforms/InstCombine/pr2645-0.ll | 8 +- test/Transforms/InstCombine/pr2645-1.ll | 6 +- test/Transforms/InstCombine/pr8547.ll | 2 +- test/Transforms/InstCombine/printf-1.ll | 30 +- test/Transforms/InstCombine/printf-2.ll | 12 +- test/Transforms/InstCombine/puts-1.ll | 6 +- test/Transforms/InstCombine/select-cmp-br.ll | 58 +- test/Transforms/InstCombine/select-load-call.ll | 2 +- test/Transforms/InstCombine/select-select.ll | 10 + test/Transforms/InstCombine/select.ll | 86 +-- test/Transforms/InstCombine/shufflemask-undef.ll | 4 +- test/Transforms/InstCombine/signed-comparison.ll | 4 +- .../InstCombine/simplify-demanded-bits-pointer.ll | 2 +- test/Transforms/InstCombine/simplify-libcalls.ll | 27 +- test/Transforms/InstCombine/sincospi.ll | 12 +- test/Transforms/InstCombine/sprintf-1.ll | 22 +- test/Transforms/InstCombine/sqrt.ll | 4 +- test/Transforms/InstCombine/stack-overalign.ll | 4 +- test/Transforms/InstCombine/stacksaverestore.ll | 2 +- test/Transforms/InstCombine/store.ll | 14 +- test/Transforms/InstCombine/stpcpy-1.ll | 14 +- test/Transforms/InstCombine/stpcpy-2.ll | 4 +- test/Transforms/InstCombine/stpcpy_chk-1.ll | 52 +- test/Transforms/InstCombine/stpcpy_chk-2.ll | 4 +- test/Transforms/InstCombine/strcat-1.ll | 8 +- test/Transforms/InstCombine/strcat-2.ll | 8 +- test/Transforms/InstCombine/strcat-3.ll | 4 +- test/Transforms/InstCombine/strchr-1.ll | 37 +- test/Transforms/InstCombine/strchr-2.ll | 2 +- test/Transforms/InstCombine/strcmp-1.ll | 24 +- test/Transforms/InstCombine/strcmp-2.ll | 4 +- test/Transforms/InstCombine/strcpy-1.ll | 12 +- test/Transforms/InstCombine/strcpy-2.ll | 4 +- test/Transforms/InstCombine/strcpy_chk-1.ll | 50 +- test/Transforms/InstCombine/strcpy_chk-2.ll | 4 +- test/Transforms/InstCombine/strcpy_chk-64.ll | 2 +- test/Transforms/InstCombine/strcspn-1.ll | 8 +- test/Transforms/InstCombine/strcspn-2.ll | 2 +- test/Transforms/InstCombine/strlen-1.ll | 20 +- test/Transforms/InstCombine/strlen-2.ll | 2 +- test/Transforms/InstCombine/strncat-1.ll | 8 +- test/Transforms/InstCombine/strncat-2.ll | 16 +- test/Transforms/InstCombine/strncat-3.ll | 4 +- test/Transforms/InstCombine/strncmp-1.ll | 24 +- test/Transforms/InstCombine/strncmp-2.ll | 4 +- test/Transforms/InstCombine/strncpy-1.ll | 30 +- test/Transforms/InstCombine/strncpy-2.ll | 4 +- test/Transforms/InstCombine/strncpy_chk-1.ll | 34 +- test/Transforms/InstCombine/strncpy_chk-2.ll | 4 +- test/Transforms/InstCombine/strpbrk-1.ll | 12 +- test/Transforms/InstCombine/strpbrk-2.ll | 4 +- test/Transforms/InstCombine/strrchr-1.ll | 16 +- test/Transforms/InstCombine/strrchr-2.ll | 2 +- test/Transforms/InstCombine/strspn-1.ll | 8 +- test/Transforms/InstCombine/strstr-1.ll | 10 +- test/Transforms/InstCombine/strstr-2.ll | 2 +- test/Transforms/InstCombine/struct-assign-tbaa.ll | 6 +- test/Transforms/InstCombine/sub.ll | 34 +- .../InstCombine/switch-truncate-crash.ll | 7 + test/Transforms/InstCombine/type_pun.ll | 4 + test/Transforms/InstCombine/unpack-fca.ll | 31 + test/Transforms/InstCombine/urem-simplify-bug.ll | 2 +- test/Transforms/InstCombine/vec_demanded_elts.ll | 6 +- test/Transforms/InstCombine/vec_extract_var_elt.ll | 2 +- test/Transforms/InstCombine/vec_phi_extract.ll | 2 +- test/Transforms/InstCombine/vec_shuffle.ll | 4 +- test/Transforms/InstCombine/vector-casts.ll | 2 +- test/Transforms/InstCombine/vector_gep1.ll | 12 +- test/Transforms/InstCombine/vector_gep2.ll | 4 +- test/Transforms/InstCombine/volatile_store.ll | 2 +- test/Transforms/InstCombine/vsx-unaligned.ll | 12 +- test/Transforms/InstCombine/weak-symbols.ll | 8 +- test/Transforms/InstCombine/x86-vperm2.ll | 283 +++++++++ test/Transforms/InstCombine/zext-or-icmp.ll | 16 +- test/Transforms/InstMerge/ld_hoist1.ll | 22 +- test/Transforms/InstMerge/ld_hoist_st_sink.ll | 62 +- test/Transforms/InstMerge/st_sink_barrier_call.ll | 14 +- test/Transforms/InstMerge/st_sink_bugfix_22613.ll | 26 +- .../InstMerge/st_sink_no_barrier_call.ll | 14 +- .../InstMerge/st_sink_no_barrier_load.ll | 20 +- .../InstMerge/st_sink_no_barrier_store.ll | 16 +- test/Transforms/InstMerge/st_sink_two_stores.ll | 18 +- test/Transforms/InstMerge/st_sink_with_barrier.ll | 20 +- .../InstSimplify/2011-10-27-BinOpCrash.ll | 2 +- test/Transforms/InstSimplify/call-callconv.ll | 4 +- test/Transforms/InstSimplify/call.ll | 6 +- test/Transforms/InstSimplify/compare.ll | 100 ++-- test/Transforms/InstSimplify/gep.ll | 14 +- test/Transforms/InstSimplify/load.ll | 4 +- test/Transforms/InstSimplify/noalias-ptr.ll | 18 +- test/Transforms/InstSimplify/past-the-end.ll | 14 +- test/Transforms/InstSimplify/ptr_diff.ll | 32 +- test/Transforms/InstSimplify/vector_gep.ll | 14 +- test/Transforms/InstSimplify/vector_ptr_bitcast.ll | 4 +- .../Internalize/2009-01-05-InternalizeAliases.ll | 2 +- test/Transforms/JumpThreading/2010-08-26-and.ll | 20 +- .../Transforms/JumpThreading/2011-04-14-InfLoop.ll | 2 +- test/Transforms/JumpThreading/crash.ll | 2 +- test/Transforms/JumpThreading/indirectbr.ll | 6 +- test/Transforms/JumpThreading/landing-pad.ll | 60 +- test/Transforms/JumpThreading/lvi-load.ll | 6 +- test/Transforms/JumpThreading/or-undef.ll | 8 +- test/Transforms/JumpThreading/phi-eq.ll | 54 +- test/Transforms/JumpThreading/select.ll | 4 +- test/Transforms/JumpThreading/thread-loads.ll | 10 +- .../LCSSA/2006-06-03-IncorrectIDFPhis.ll | 4 +- test/Transforms/LCSSA/2006-07-09-NoDominator.ll | 4 +- test/Transforms/LCSSA/2007-07-12-LICM-2.ll | 2 +- test/Transforms/LCSSA/2007-07-12-LICM-3.ll | 2 +- test/Transforms/LCSSA/2007-07-12-LICM.ll | 2 +- test/Transforms/LCSSA/invoke-dest.ll | 12 +- test/Transforms/LCSSA/unreachable-use.ll | 4 +- .../LICM/2003-02-26-LoopExitNotDominated.ll | 2 +- test/Transforms/LICM/2003-05-02-LoadHoist.ll | 4 +- .../LICM/2004-09-14-AliasAnalysisInvalidate.ll | 4 +- test/Transforms/LICM/2004-11-17-UndefIndexCrash.ll | 4 +- test/Transforms/LICM/2007-05-22-VolatileSink.ll | 8 +- test/Transforms/LICM/2007-07-30-AliasSet.ll | 6 +- test/Transforms/LICM/2007-09-17-PromoteValue.ll | 6 +- .../LICM/2008-07-22-LoadGlobalConstant.ll | 8 +- .../Transforms/LICM/2009-12-10-LICM-Indbr-Crash.ll | 2 +- .../LICM/2011-04-06-HoistMissedASTUpdate.ll | 4 +- .../LICM/2011-04-06-PromoteResultOfPromotion.ll | 6 +- test/Transforms/LICM/2011-04-09-RAUW-AST.ll | 6 +- test/Transforms/LICM/2011-07-06-Alignment.ll | 2 +- test/Transforms/LICM/PR21582.ll | 4 +- test/Transforms/LICM/atomics.ll | 14 +- test/Transforms/LICM/constexpr.ll | 6 +- test/Transforms/LICM/crash.ll | 10 +- test/Transforms/LICM/debug-value.ll | 38 +- test/Transforms/LICM/hoist-bitcast-load.ll | 72 +-- test/Transforms/LICM/hoist-deref-load.ll | 52 +- test/Transforms/LICM/hoist-invariant-load.ll | 12 +- test/Transforms/LICM/hoisting.ll | 8 +- test/Transforms/LICM/lcssa-ssa-promoter.ll | 2 +- test/Transforms/LICM/scalar-promote-memmodel.ll | 4 +- test/Transforms/LICM/scalar_promote.ll | 38 +- test/Transforms/LICM/sinking.ll | 28 +- test/Transforms/LICM/speculate.ll | 30 +- test/Transforms/LICM/volatile-alias.ll | 22 +- test/Transforms/LoadCombine/load-combine-aa.ll | 18 +- test/Transforms/LoadCombine/load-combine-assume.ll | 16 +- test/Transforms/LoadCombine/load-combine.ll | 118 ++-- test/Transforms/LoopDeletion/2008-05-06-Phi.ll | 20 +- test/Transforms/LoopIdiom/basic-address-space.ll | 12 +- test/Transforms/LoopIdiom/basic.ll | 63 +- test/Transforms/LoopIdiom/crash.ll | 4 +- test/Transforms/LoopIdiom/debug-line.ll | 34 +- test/Transforms/LoopIdiom/memset_noidiom.ll | 2 +- test/Transforms/LoopIdiom/non-canonical-loop.ll | 2 +- test/Transforms/LoopIdiom/scev-invalidation.ll | 10 +- .../LoopInterchange/currentLimitation.ll | 58 ++ test/Transforms/LoopInterchange/interchange.ll | 557 ++++++++++++++++++ test/Transforms/LoopInterchange/profitability.ll | 205 +++++++ test/Transforms/LoopReroll/basic.ll | 182 +++--- test/Transforms/LoopReroll/nonconst_lb.ll | 70 +-- test/Transforms/LoopReroll/reduction.ll | 56 +- test/Transforms/LoopRotate/PhiRename-1.ll | 38 +- test/Transforms/LoopRotate/PhiSelfReference-1.ll | 2 +- test/Transforms/LoopRotate/alloca.ll | 2 +- test/Transforms/LoopRotate/basic.ll | 2 +- test/Transforms/LoopRotate/crash.ll | 2 +- test/Transforms/LoopRotate/dbgvalue.ll | 40 +- test/Transforms/LoopRotate/indirectbr.ll | 2 +- test/Transforms/LoopRotate/multiple-exits.ll | 4 +- test/Transforms/LoopRotate/nosimplifylatch.ll | 6 +- test/Transforms/LoopRotate/phi-duplicate.ll | 10 +- test/Transforms/LoopRotate/pr22337.ll | 4 +- test/Transforms/LoopRotate/simplifylatch.ll | 16 +- .../LoopSimplify/2003-08-15-PreheadersFail.ll | 20 +- .../LoopSimplify/2003-12-10-ExitBlocksProblem.ll | 8 +- test/Transforms/LoopSimplify/ashr-crash.ll | 6 +- test/Transforms/LoopSimplify/merge-exits.ll | 10 +- test/Transforms/LoopSimplify/notify-scev.ll | 2 +- test/Transforms/LoopSimplify/phi-node-simplify.ll | 22 +- test/Transforms/LoopSimplify/preserve-scev.ll | 7 +- .../LoopStrengthReduce/2005-08-15-AddRecIV.ll | 4 +- .../2005-08-17-OutOfLoopVariant.ll | 2 +- .../LoopStrengthReduce/2007-04-23-UseIterator.ll | 2 +- .../LoopStrengthReduce/2008-08-13-CmpStride.ll | 8 +- .../LoopStrengthReduce/2008-09-09-Overflow.ll | 10 +- .../2009-01-13-nonconstant-stride-outside-loop.ll | 6 +- .../LoopStrengthReduce/2009-04-28-no-reduce-mul.ll | 4 +- .../2011-07-19-CritEdgeBreakCrash.ll | 4 +- .../LoopStrengthReduce/2011-10-03-CritEdgeMerge.ll | 8 +- .../LoopStrengthReduce/2011-10-06-ReusePhi.ll | 20 +- .../LoopStrengthReduce/2011-10-13-SCEVChain.ll | 6 +- .../LoopStrengthReduce/2011-10-14-IntPtr.ll | 2 +- .../2011-12-19-PostincQuadratic.ll | 6 +- .../LoopStrengthReduce/2012-01-02-nopreheader.ll | 4 +- .../LoopStrengthReduce/2012-01-16-nopreheader.ll | 4 +- .../LoopStrengthReduce/2012-03-15-nopreheader.ll | 4 +- .../LoopStrengthReduce/2012-03-26-constexpr.ll | 26 +- .../LoopStrengthReduce/2012-07-13-ExpandUDiv.ll | 8 +- .../2012-07-18-LimitReassociate.ll | 47 +- .../LoopStrengthReduce/2013-01-14-ReuseCast.ll | 4 +- .../LoopStrengthReduce/AArch64/lsr-memcpy.ll | 6 +- .../LoopStrengthReduce/AArch64/lsr-memset.ll | 6 +- .../LoopStrengthReduce/AArch64/req-regs.ll | 2 +- .../ARM/2012-06-15-lsr-noaddrmode.ll | 16 +- .../LoopStrengthReduce/ARM/ivchain-ARM.ll | 136 ++--- .../LoopStrengthReduce/X86/2008-08-14-ShadowIV.ll | 4 + .../LoopStrengthReduce/X86/2011-07-20-DoubleIV.ll | 4 + .../LoopStrengthReduce/X86/2011-12-04-loserreg.ll | 40 +- .../LoopStrengthReduce/X86/2012-01-13-phielim.ll | 22 +- .../LoopStrengthReduce/X86/ivchain-X86.ll | 114 ++-- .../LoopStrengthReduce/X86/ivchain-stress-X86.ll | 40 +- .../X86/no_superflous_induction_vars.ll | 4 +- test/Transforms/LoopStrengthReduce/X86/pr17473.ll | 6 +- .../LoopStrengthReduce/addrec-gep-address-space.ll | 12 +- test/Transforms/LoopStrengthReduce/addrec-gep.ll | 10 +- .../LoopStrengthReduce/address-space-loop.ll | 14 +- .../Transforms/LoopStrengthReduce/count-to-zero.ll | 3 + .../LoopStrengthReduce/dominate-assert.ll | 12 +- .../dont-hoist-simple-loop-constants.ll | 2 +- .../dont_insert_redundant_ops.ll | 8 +- .../LoopStrengthReduce/dont_reduce_bytes.ll | 2 +- test/Transforms/LoopStrengthReduce/dont_reverse.ll | 6 +- .../LoopStrengthReduce/hoist-parent-preheader.ll | 2 +- .../LoopStrengthReduce/invariant_value_first.ll | 2 +- .../invariant_value_first_arg.ll | 2 +- test/Transforms/LoopStrengthReduce/ivchain.ll | 8 +- .../Transforms/LoopStrengthReduce/nested-reduce.ll | 3 + .../LoopStrengthReduce/ops_after_indvar.ll | 2 +- .../phi_node_update_multiple_preds.ll | 4 +- .../LoopStrengthReduce/post-inc-icmpzero.ll | 28 +- test/Transforms/LoopStrengthReduce/pr12018.ll | 8 +- test/Transforms/LoopStrengthReduce/pr12048.ll | 6 +- test/Transforms/LoopStrengthReduce/pr12691.ll | 11 +- test/Transforms/LoopStrengthReduce/pr18165.ll | 16 +- test/Transforms/LoopStrengthReduce/pr2570.ll | 40 +- test/Transforms/LoopStrengthReduce/pr3086.ll | 6 +- test/Transforms/LoopStrengthReduce/pr3399.ll | 2 +- test/Transforms/LoopStrengthReduce/pr3571.ll | 2 +- .../preserve-gep-loop-variant.ll | 2 +- .../LoopStrengthReduce/quadradic-exit-value.ll | 3 + .../LoopStrengthReduce/related_indvars.ll | 4 +- .../Transforms/LoopStrengthReduce/remove_indvar.ll | 5 +- .../scaling_factor_cost_crash.ll | 2 +- .../LoopStrengthReduce/share_code_in_preheader.ll | 8 +- .../LoopStrengthReduce/uglygep-address-space.ll | 14 +- test/Transforms/LoopStrengthReduce/uglygep.ll | 14 +- .../use_postinc_value_outside_loop.ll | 2 +- .../var_stride_used_by_compare.ll | 2 +- .../LoopStrengthReduce/variable_stride.ll | 3 + .../LoopUnroll/2007-05-05-UnrollMiscomp.ll | 8 +- test/Transforms/LoopUnroll/2011-08-08-PhiUpdate.ll | 6 +- .../Transforms/LoopUnroll/2011-08-09-IVSimplify.ll | 10 +- test/Transforms/LoopUnroll/2011-10-01-NoopTrunc.ll | 4 +- test/Transforms/LoopUnroll/AArch64/lit.local.cfg | 3 + test/Transforms/LoopUnroll/AArch64/partial.ll | 76 +++ test/Transforms/LoopUnroll/AArch64/runtime-loop.ll | 33 ++ test/Transforms/LoopUnroll/PowerPC/a2-unrolling.ll | 4 +- test/Transforms/LoopUnroll/X86/partial.ll | 30 +- test/Transforms/LoopUnroll/ephemeral.ll | 4 +- .../LoopUnroll/full-unroll-heuristics.ll | 16 +- .../LoopUnroll/ignore-annotation-intrinsic-cost.ll | 2 +- test/Transforms/LoopUnroll/runtime-loop.ll | 45 +- test/Transforms/LoopUnroll/runtime-loop1.ll | 4 +- test/Transforms/LoopUnroll/runtime-loop2.ll | 4 +- test/Transforms/LoopUnroll/runtime-loop3.ll | 4 +- test/Transforms/LoopUnroll/runtime-loop4.ll | 43 ++ test/Transforms/LoopUnroll/scevunroll.ll | 20 +- test/Transforms/LoopUnroll/shifted-tripcount.ll | 8 +- .../LoopUnroll/unroll-pragmas-disabled.ll | 20 +- test/Transforms/LoopUnroll/unroll-pragmas.ll | 36 +- .../LoopUnswitch/2007-07-12-ExitDomInfo.ll | 2 +- test/Transforms/LoopUnswitch/2007-07-18-DomInfo.ll | 2 +- test/Transforms/LoopUnswitch/2007-08-01-LCSSA.ll | 2 +- .../LoopUnswitch/2008-06-17-DomFrontier.ll | 2 +- test/Transforms/LoopUnswitch/2010-11-18-LCSSA.ll | 2 +- test/Transforms/LoopUnswitch/2011-09-26-EHCrash.ll | 6 +- .../LoopUnswitch/2011-11-18-SimpleSwitch.ll | 10 +- .../2011-11-18-TwoSwitches-Threshold.ll | 6 +- .../LoopUnswitch/2011-11-18-TwoSwitches.ll | 14 +- .../2012-04-30-LoopUnswitch-LPad-Crash.ll | 6 +- test/Transforms/LoopUnswitch/2012-05-20-Phi.ll | 4 +- test/Transforms/LoopUnswitch/basictest.ll | 10 +- test/Transforms/LoopUnswitch/preserve-analyses.ll | 8 +- test/Transforms/LoopVectorize/12-12-11-if-conv.ll | 4 +- .../LoopVectorize/2012-10-22-isconsec.ll | 4 +- .../LoopVectorize/AArch64/aarch64-unroll.ll | 10 +- .../AArch64/arbitrary-induction-step.ll | 44 +- .../LoopVectorize/AArch64/arm64-unroll.ll | 10 +- .../LoopVectorize/AArch64/gather-cost.ll | 28 +- test/Transforms/LoopVectorize/AArch64/sdiv-pow2.ll | 8 +- test/Transforms/LoopVectorize/ARM/arm-unroll.ll | 8 +- test/Transforms/LoopVectorize/ARM/gather-cost.ll | 28 +- test/Transforms/LoopVectorize/ARM/gcc-examples.ll | 16 +- test/Transforms/LoopVectorize/ARM/mul-cast-vect.ll | 24 +- test/Transforms/LoopVectorize/ARM/width-detect.ll | 8 +- .../LoopVectorize/PowerPC/large-loop-rdx.ll | 73 +++ .../LoopVectorize/PowerPC/small-loop-rdx.ll | 4 +- .../LoopVectorize/PowerPC/vsx-tsvc-s173.ll | 16 +- .../LoopVectorize/X86/already-vectorized.ll | 7 +- test/Transforms/LoopVectorize/X86/assume.ll | 20 +- test/Transforms/LoopVectorize/X86/avx1.ll | 8 +- test/Transforms/LoopVectorize/X86/avx512.ll | 2 +- .../LoopVectorize/X86/constant-vector-operand.ll | 6 +- .../LoopVectorize/X86/conversion-cost.ll | 4 +- test/Transforms/LoopVectorize/X86/cost-model.ll | 14 +- .../LoopVectorize/X86/fp32_to_uint32-cost-model.ll | 6 +- .../LoopVectorize/X86/fp64_to_uint32-cost-model.ll | 8 +- .../LoopVectorize/X86/fp_to_sint8-cost-model.ll | 6 +- test/Transforms/LoopVectorize/X86/gather-cost.ll | 28 +- test/Transforms/LoopVectorize/X86/gcc-examples.ll | 16 +- .../X86/illegal-parallel-loop-uniform-write.ll | 10 +- .../LoopVectorize/X86/masked_load_store.ll | 198 +++---- .../LoopVectorize/X86/metadata-enable.ll | 24 +- .../LoopVectorize/X86/min-trip-count-switch.ll | 4 +- test/Transforms/LoopVectorize/X86/no-vector.ll | 4 +- .../X86/parallel-loops-after-reg2mem.ll | 22 +- .../Transforms/LoopVectorize/X86/parallel-loops.ll | 42 +- test/Transforms/LoopVectorize/X86/powof2div.ll | 8 +- .../LoopVectorize/X86/reduction-crash.ll | 8 +- test/Transforms/LoopVectorize/X86/small-size.ll | 46 +- test/Transforms/LoopVectorize/X86/struct-store.ll | 2 +- test/Transforms/LoopVectorize/X86/tripcount.ll | 4 +- .../LoopVectorize/X86/uint64_to_fp64-cost-model.ll | 6 +- test/Transforms/LoopVectorize/X86/unroll-pm.ll | 4 +- .../LoopVectorize/X86/unroll-small-loops.ll | 18 +- .../LoopVectorize/X86/unroll_selection.ll | 8 +- test/Transforms/LoopVectorize/X86/veclib-calls.ll | 182 ++++++ .../Transforms/LoopVectorize/X86/vect.omp.force.ll | 40 +- .../LoopVectorize/X86/vect.omp.force.small-tc.ll | 16 +- .../LoopVectorize/X86/vector-scalar-select-cost.ll | 20 +- .../LoopVectorize/X86/vector_ptr_load_store.ll | 20 +- .../X86/vectorization-remarks-missed.ll | 40 +- .../LoopVectorize/X86/vectorization-remarks.ll | 26 +- .../LoopVectorize/X86/x86_fp80-vector-store.ll | 2 +- .../LoopVectorize/XCore/no-vector-registers.ll | 2 +- test/Transforms/LoopVectorize/align.ll | 14 +- test/Transforms/LoopVectorize/bsd_regex.ll | 2 +- .../Transforms/LoopVectorize/bzip_reverse_loops.ll | 8 +- test/Transforms/LoopVectorize/calloc.ll | 6 +- test/Transforms/LoopVectorize/cast-induction.ll | 2 +- .../LoopVectorize/conditional-assignment.ll | 20 +- test/Transforms/LoopVectorize/control-flow.ll | 22 +- test/Transforms/LoopVectorize/cpp-new-array.ll | 12 +- test/Transforms/LoopVectorize/dbg.value.ll | 42 +- test/Transforms/LoopVectorize/debugloc.ll | 50 +- .../LoopVectorize/duplicated-metadata.ll | 4 +- test/Transforms/LoopVectorize/ee-crash.ll | 6 +- test/Transforms/LoopVectorize/exact.ll | 4 +- test/Transforms/LoopVectorize/flags.ll | 12 +- test/Transforms/LoopVectorize/float-reduction.ll | 8 +- test/Transforms/LoopVectorize/funcall.ll | 4 +- test/Transforms/LoopVectorize/gcc-examples.ll | 234 ++++---- test/Transforms/LoopVectorize/global_alias.ll | 518 ++++++++--------- test/Transforms/LoopVectorize/hoist-loads.ll | 16 +- test/Transforms/LoopVectorize/i8-induction.ll | 2 +- .../LoopVectorize/if-conversion-edgemasks.ll | 18 +- .../Transforms/LoopVectorize/if-conversion-nest.ll | 8 +- .../LoopVectorize/if-conversion-reduction.ll | 4 +- test/Transforms/LoopVectorize/if-conversion.ll | 20 +- test/Transforms/LoopVectorize/if-pred-stores.ll | 16 +- .../Transforms/LoopVectorize/incorrect-dom-info.ll | 8 +- test/Transforms/LoopVectorize/increment.ll | 12 +- test/Transforms/LoopVectorize/induction.ll | 16 +- test/Transforms/LoopVectorize/induction_plus.ll | 2 +- test/Transforms/LoopVectorize/intrinsic.ll | 332 +++++------ test/Transforms/LoopVectorize/lifetime.ll | 14 +- test/Transforms/LoopVectorize/loop-form.ll | 2 +- test/Transforms/LoopVectorize/loop-vect-memdep.ll | 10 +- test/Transforms/LoopVectorize/memdep.ll | 56 +- test/Transforms/LoopVectorize/metadata-unroll.ll | 4 +- test/Transforms/LoopVectorize/metadata-width.ll | 2 +- test/Transforms/LoopVectorize/metadata.ll | 8 +- test/Transforms/LoopVectorize/minmax_reduction.ll | 136 ++--- .../LoopVectorize/multi-use-reduction-bug.ll | 6 +- .../LoopVectorize/multiple-address-spaces.ll | 6 +- test/Transforms/LoopVectorize/no_array_bounds.ll | 36 +- test/Transforms/LoopVectorize/no_idiv_reduction.ll | 4 +- test/Transforms/LoopVectorize/no_int_induction.ll | 12 +- test/Transforms/LoopVectorize/no_outside_user.ll | 4 +- test/Transforms/LoopVectorize/no_switch.ll | 22 +- test/Transforms/LoopVectorize/nofloat.ll | 2 +- test/Transforms/LoopVectorize/non-const-n.ll | 10 +- test/Transforms/LoopVectorize/nsw-crash.ll | 2 +- test/Transforms/LoopVectorize/opt.ll | 4 +- test/Transforms/LoopVectorize/ptr_loops.ll | 36 +- test/Transforms/LoopVectorize/read-only.ll | 8 +- test/Transforms/LoopVectorize/reduction.ll | 92 +-- test/Transforms/LoopVectorize/reverse_induction.ll | 16 +- test/Transforms/LoopVectorize/reverse_iter.ll | 4 +- .../LoopVectorize/runtime-check-address-space.ll | 42 +- .../runtime-check-readonly-address-space.ll | 50 +- .../LoopVectorize/runtime-check-readonly.ll | 10 +- test/Transforms/LoopVectorize/runtime-check.ll | 14 +- test/Transforms/LoopVectorize/runtime-limit.ll | 56 +- test/Transforms/LoopVectorize/safegep.ll | 16 +- test/Transforms/LoopVectorize/same-base-access.ll | 32 +- test/Transforms/LoopVectorize/scalar-select.ll | 10 +- .../Transforms/LoopVectorize/scev-exitlim-crash.ll | 16 +- test/Transforms/LoopVectorize/simple-unroll.ll | 4 +- test/Transforms/LoopVectorize/small-loop.ll | 10 +- test/Transforms/LoopVectorize/start-non-zero.ll | 4 +- test/Transforms/LoopVectorize/store-shuffle-bug.ll | 12 +- test/Transforms/LoopVectorize/struct_access.ll | 8 +- test/Transforms/LoopVectorize/tbaa-nodep.ll | 24 +- test/Transforms/LoopVectorize/undef-inst-bug.ll | 2 +- test/Transforms/LoopVectorize/unroll_novec.ll | 14 +- .../LoopVectorize/unsized-pointee-crash.ll | 4 +- test/Transforms/LoopVectorize/value-ptr-bug.ll | 10 +- .../LoopVectorize/vect.omp.persistence.ll | 10 +- test/Transforms/LoopVectorize/vect.stats.ll | 14 +- test/Transforms/LoopVectorize/vectorize-once.ll | 15 +- .../Transforms/LoopVectorize/version-mem-access.ll | 16 +- test/Transforms/LoopVectorize/write-only.ll | 4 +- test/Transforms/LowerAtomic/atomic-swap.ll | 2 +- test/Transforms/LowerBitSets/constant.ll | 4 +- test/Transforms/LowerBitSets/simple.ll | 61 +- test/Transforms/LowerExpectIntrinsic/basic.ll | 38 +- .../LowerSwitch/2014-06-10-SwitchContiguousOpt.ll | 2 +- .../2014-06-11-SwitchDefaultUnreachableOpt.ll | 4 +- .../Mem2Reg/2002-03-28-UninitializedVal.ll | 2 +- .../2003-04-24-MultipleIdenticalSuccessors.ll | 2 +- .../Mem2Reg/2003-06-26-IterativePromote.ll | 6 +- .../Mem2Reg/2003-10-05-DeadPHIInsertion.ll | 4 +- .../Mem2Reg/2005-06-30-ReadBeforeWrite.ll | 18 +- test/Transforms/Mem2Reg/2005-11-28-Crash.ll | 2 +- .../Mem2Reg/2007-08-27-VolatileLoadsStores.ll | 8 +- test/Transforms/Mem2Reg/ConvertDebugInfo.ll | 38 +- test/Transforms/Mem2Reg/ConvertDebugInfo2.ll | 46 +- test/Transforms/Mem2Reg/PromoteMemToRegister.ll | 6 +- test/Transforms/Mem2Reg/UndefValuesMerge.ll | 2 +- test/Transforms/Mem2Reg/atomic.ll | 2 +- test/Transforms/Mem2Reg/crash.ll | 6 +- test/Transforms/Mem2Reg/ignore-lifetime.ll | 2 +- .../MemCpyOpt/2008-02-24-MultipleUseofSRet.ll | 4 +- .../MemCpyOpt/2008-03-13-ReturnSlotBitcast.ll | 4 +- .../MemCpyOpt/2011-06-02-CallSlotOverwritten.ll | 12 +- test/Transforms/MemCpyOpt/align.ll | 8 +- test/Transforms/MemCpyOpt/atomic.ll | 6 +- test/Transforms/MemCpyOpt/callslot_deref.ll | 4 +- test/Transforms/MemCpyOpt/crash.ll | 32 +- test/Transforms/MemCpyOpt/form-memset.ll | 176 +++--- test/Transforms/MemCpyOpt/loadstore-sret.ll | 6 +- test/Transforms/MemCpyOpt/memcpy-to-memset.ll | 2 +- test/Transforms/MemCpyOpt/memcpy-undef.ll | 8 +- test/Transforms/MemCpyOpt/memcpy.ll | 10 +- test/Transforms/MemCpyOpt/memmove.ll | 8 +- test/Transforms/MemCpyOpt/smaller.ll | 10 +- test/Transforms/MemCpyOpt/sret.ll | 12 +- .../Transforms/MergeFunc/2011-02-08-RemoveEqual.ll | 116 ++-- test/Transforms/MergeFunc/address-spaces.ll | 12 +- test/Transforms/MergeFunc/crash.ll | 12 +- .../Transforms/MergeFunc/inttoptr-address-space.ll | 8 +- test/Transforms/MergeFunc/inttoptr.ll | 12 +- .../MergeFunc/mergefunc-struct-return.ll | 12 +- test/Transforms/MergeFunc/ranges.ll | 24 +- test/Transforms/MergeFunc/vector-GEP-crash.ll | 4 +- test/Transforms/MergeFunc/vector.ll | 4 +- test/Transforms/MetaRenamer/metarenamer.ll | 28 +- test/Transforms/ObjCARC/allocas.ll | 94 +-- test/Transforms/ObjCARC/arc-annotations.ll | 83 --- test/Transforms/ObjCARC/basic.ll | 296 +++++----- test/Transforms/ObjCARC/cfg-hazards.ll | 2 +- .../ObjCARC/contract-storestrong-ivar.ll | 6 +- test/Transforms/ObjCARC/contract-storestrong.ll | 36 +- ...ensure-that-exception-unwind-path-is-visited.ll | 84 +-- test/Transforms/ObjCARC/escape.ll | 68 +-- test/Transforms/ObjCARC/gvn.ll | 10 +- test/Transforms/ObjCARC/intrinsic-use.ll | 16 +- .../ObjCARC/move-and-form-retain-autorelease.ll | 70 +-- .../ObjCARC/move-and-merge-autorelease.ll | 14 +- test/Transforms/ObjCARC/nested.ll | 252 ++++---- test/Transforms/ObjCARC/provenance.ll | 18 +- .../ObjCARC/retain-block-side-effects.ll | 16 +- test/Transforms/ObjCARC/weak-copies.ll | 16 +- .../PhaseOrdering/2010-03-22-empty-baseclass.ll | 42 +- test/Transforms/PhaseOrdering/PR6627.ll | 32 +- test/Transforms/PhaseOrdering/basic.ll | 16 +- test/Transforms/PhaseOrdering/gdce.ll | 20 +- test/Transforms/PhaseOrdering/scev.ll | 12 +- .../Reassociate/2011-01-26-UseAfterFree.ll | 4 +- test/Transforms/Reassociate/basictest.ll | 24 +- test/Transforms/Reassociate/crash.ll | 6 +- .../Reassociate/fast-ReassociateVector.ll | 232 ++++++-- test/Transforms/Reassociate/fast-basictest.ll | 18 +- test/Transforms/Reassociate/looptest.ll | 2 +- test/Transforms/Reassociate/pr12245.ll | 20 +- test/Transforms/Reassociate/pr21205.ll | 2 +- .../RewriteStatepointsForGC/base-pointers-1.ll | 28 + .../RewriteStatepointsForGC/base-pointers-10.ll | 37 ++ .../RewriteStatepointsForGC/base-pointers-11.ll | 26 + .../RewriteStatepointsForGC/base-pointers-2.ll | 21 + .../RewriteStatepointsForGC/base-pointers-3.ll | 20 + .../RewriteStatepointsForGC/base-pointers-4.ll | 53 ++ .../RewriteStatepointsForGC/base-pointers-5.ll | 31 + .../RewriteStatepointsForGC/base-pointers-6.ll | 41 ++ .../RewriteStatepointsForGC/base-pointers-7.ll | 53 ++ .../RewriteStatepointsForGC/base-pointers-8.ll | 38 ++ .../RewriteStatepointsForGC/base-pointers-9.ll | 21 + .../RewriteStatepointsForGC/base-pointers.ll | 98 ++++ test/Transforms/RewriteStatepointsForGC/basics.ll | 10 +- .../relocate_invoke_result.ll | 33 ++ .../RewriteStatepointsForGC/relocation.ll | 295 ++++++++++ .../SCCP/2002-08-30-GetElementPtrTest.ll | 2 +- .../SCCP/2003-06-24-OverdefinedPHIValue.ll | 6 +- test/Transforms/SCCP/2006-10-23-IPSCCP-Crash.ll | 8 +- test/Transforms/SCCP/2006-12-04-PackedType.ll | 8 +- test/Transforms/SCCP/apint-array.ll | 8 +- test/Transforms/SCCP/apint-bigarray.ll | 6 +- test/Transforms/SCCP/apint-bigint2.ll | 8 +- test/Transforms/SCCP/apint-ipsccp3.ll | 4 +- test/Transforms/SCCP/apint-ipsccp4.ll | 8 +- test/Transforms/SCCP/apint-load.ll | 10 +- test/Transforms/SCCP/apint-select.ll | 2 +- test/Transforms/SCCP/atomic-load-store.ll | 4 +- test/Transforms/SCCP/ipsccp-basic.ll | 6 +- test/Transforms/SCCP/loadtest.ll | 12 +- test/Transforms/SLPVectorizer/AArch64/commute.ll | 28 +- .../SLPVectorizer/AArch64/load-store-q.ll | 16 +- test/Transforms/SLPVectorizer/AArch64/sdiv-pow2.ll | 34 +- test/Transforms/SLPVectorizer/ARM/memory.ll | 8 +- test/Transforms/SLPVectorizer/ARM/sroa.ll | 4 +- test/Transforms/SLPVectorizer/R600/simplebb.ll | 54 +- test/Transforms/SLPVectorizer/X86/addsub.ll | 252 ++++---- test/Transforms/SLPVectorizer/X86/align.ll | 38 +- test/Transforms/SLPVectorizer/X86/atomics.ll | 16 +- test/Transforms/SLPVectorizer/X86/bad_types.ll | 2 +- test/Transforms/SLPVectorizer/X86/barriercall.ll | 6 +- test/Transforms/SLPVectorizer/X86/call.ll | 70 +-- test/Transforms/SLPVectorizer/X86/cast.ll | 20 +- test/Transforms/SLPVectorizer/X86/cmp_sel.ll | 10 +- .../Transforms/SLPVectorizer/X86/compare-reduce.ll | 10 +- .../SLPVectorizer/X86/consecutive-access.ll | 80 +-- .../SLPVectorizer/X86/continue_vectorizing.ll | 18 +- test/Transforms/SLPVectorizer/X86/crash_7zip.ll | 4 +- .../Transforms/SLPVectorizer/X86/crash_binaryop.ll | 2 +- test/Transforms/SLPVectorizer/X86/crash_bullet.ll | 10 +- test/Transforms/SLPVectorizer/X86/crash_bullet3.ll | 4 +- test/Transforms/SLPVectorizer/X86/crash_cmpop.ll | 6 +- test/Transforms/SLPVectorizer/X86/crash_dequeue.ll | 14 +- test/Transforms/SLPVectorizer/X86/crash_gep.ll | 6 +- test/Transforms/SLPVectorizer/X86/crash_lencod.ll | 14 +- .../SLPVectorizer/X86/crash_mandeltext.ll | 12 +- .../SLPVectorizer/X86/crash_netbsd_decompress.ll | 12 +- .../SLPVectorizer/X86/crash_scheduling.ll | 4 +- test/Transforms/SLPVectorizer/X86/crash_sim4b1.ll | 4 +- test/Transforms/SLPVectorizer/X86/crash_smallpt.ll | 12 +- .../SLPVectorizer/X86/crash_vectorizeTree.ll | 16 +- .../SLPVectorizer/X86/cross_block_slp.ll | 12 +- test/Transforms/SLPVectorizer/X86/cse.ll | 86 +-- test/Transforms/SLPVectorizer/X86/cycle_dup.ll | 18 +- test/Transforms/SLPVectorizer/X86/debug_info.ll | 56 +- test/Transforms/SLPVectorizer/X86/diamond.ll | 60 +- test/Transforms/SLPVectorizer/X86/external_user.ll | 12 +- test/Transforms/SLPVectorizer/X86/extract.ll | 18 +- .../SLPVectorizer/X86/extract_in_tree_user.ll | 42 +- test/Transforms/SLPVectorizer/X86/extractcost.ll | 6 +- test/Transforms/SLPVectorizer/X86/flag.ll | 24 +- test/Transforms/SLPVectorizer/X86/gep.ll | 32 +- test/Transforms/SLPVectorizer/X86/hoist.ll | 16 +- test/Transforms/SLPVectorizer/X86/horizontal.ll | 194 +++---- test/Transforms/SLPVectorizer/X86/implicitfloat.ll | 14 +- test/Transforms/SLPVectorizer/X86/in-tree-user.ll | 10 +- test/Transforms/SLPVectorizer/X86/intrinsic.ll | 286 ++++----- test/Transforms/SLPVectorizer/X86/long_chains.ll | 8 +- test/Transforms/SLPVectorizer/X86/loopinvariant.ll | 32 +- test/Transforms/SLPVectorizer/X86/metadata.ll | 28 +- test/Transforms/SLPVectorizer/X86/multi_block.ll | 10 +- test/Transforms/SLPVectorizer/X86/multi_user.ll | 18 +- test/Transforms/SLPVectorizer/X86/odd_store.ll | 16 +- test/Transforms/SLPVectorizer/X86/operandorder.ll | 184 +++--- test/Transforms/SLPVectorizer/X86/opt.ll | 14 +- test/Transforms/SLPVectorizer/X86/ordering.ll | 2 +- test/Transforms/SLPVectorizer/X86/phi.ll | 72 +-- test/Transforms/SLPVectorizer/X86/phi3.ll | 2 +- .../SLPVectorizer/X86/phi_overalignedtype.ll | 24 +- test/Transforms/SLPVectorizer/X86/powof2div.ll | 36 +- test/Transforms/SLPVectorizer/X86/pr16628.ll | 4 +- test/Transforms/SLPVectorizer/X86/pr16899.ll | 8 +- test/Transforms/SLPVectorizer/X86/pr19657.ll | 90 +-- .../SLPVectorizer/X86/propagate_ir_flags.ll | 210 +++---- test/Transforms/SLPVectorizer/X86/reduction.ll | 8 +- test/Transforms/SLPVectorizer/X86/reduction2.ll | 8 +- test/Transforms/SLPVectorizer/X86/return.ll | 30 +- test/Transforms/SLPVectorizer/X86/rgb_phi.ll | 22 +- test/Transforms/SLPVectorizer/X86/saxpy.ll | 44 +- test/Transforms/SLPVectorizer/X86/scheduling.ll | 42 +- test/Transforms/SLPVectorizer/X86/simple-loop.ll | 48 +- test/Transforms/SLPVectorizer/X86/simplebb.ll | 56 +- test/Transforms/SLPVectorizer/X86/tiny-tree.ll | 80 +-- test/Transforms/SLPVectorizer/X86/unreachable.ll | 22 +- .../SLPVectorizer/XCore/no-vector-registers.ll | 14 +- test/Transforms/SROA/address-spaces.ll | 8 +- test/Transforms/SROA/alignment.ll | 68 +-- test/Transforms/SROA/basictest.ll | 642 ++++++++++----------- test/Transforms/SROA/big-endian.ll | 30 +- test/Transforms/SROA/fca.ll | 14 +- test/Transforms/SROA/phi-and-select.ll | 104 ++-- test/Transforms/SROA/slice-order-independence.ll | 12 +- test/Transforms/SROA/slice-width.ll | 20 +- test/Transforms/SROA/vector-conversion.ll | 6 +- test/Transforms/SROA/vector-lifetime-intrinsic.ll | 2 +- test/Transforms/SROA/vector-promotion.ll | 216 +++---- test/Transforms/SROA/vectors-of-pointers.ll | 2 +- test/Transforms/SampleProfile/branch.ll | 64 +- test/Transforms/SampleProfile/calls.ll | 40 +- test/Transforms/SampleProfile/discriminator.ll | 30 +- test/Transforms/SampleProfile/fnptr.ll | 16 +- test/Transforms/SampleProfile/propagate.ll | 98 ++-- test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll | 6 +- .../ScalarRepl/2003-09-12-IncorrectPromote.ll | 4 +- .../ScalarRepl/2003-10-29-ArrayProblem.ll | 4 +- .../ScalarRepl/2006-11-07-InvalidArrayPromote.ll | 8 +- .../ScalarRepl/2007-05-29-MemcpyPreserve.ll | 10 +- .../ScalarRepl/2007-11-03-bigendian_apint.ll | 20 +- .../Transforms/ScalarRepl/2008-01-29-PromoteBug.ll | 6 +- .../2008-02-28-SubElementExtractCrash.ll | 8 +- .../ScalarRepl/2008-06-05-loadstore-agg.ll | 8 +- .../2008-08-22-out-of-range-array-promote.ll | 4 +- .../Transforms/ScalarRepl/2008-09-22-vector-gep.ll | 4 +- .../2009-02-02-ScalarPromoteOutOfRange.ll | 6 +- test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll | 2 +- .../ScalarRepl/2009-03-04-MemCpyAlign.ll | 2 +- test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll | 32 +- .../ScalarRepl/2011-05-06-CapturedAlloca.ll | 2 +- .../ScalarRepl/2011-06-08-VectorExtractValue.ll | 26 +- .../ScalarRepl/2011-06-17-VectorPartialMemset.ll | 4 +- .../ScalarRepl/2011-09-22-PHISpeculateInvoke.ll | 2 +- .../ScalarRepl/2011-10-22-VectorCrash.ll | 2 +- .../ScalarRepl/2011-11-11-EmptyStruct.ll | 4 +- test/Transforms/ScalarRepl/AggregatePromote.ll | 26 +- test/Transforms/ScalarRepl/DifferingTypes.ll | 2 +- test/Transforms/ScalarRepl/address-space.ll | 12 +- test/Transforms/ScalarRepl/arraytest.ll | 4 +- test/Transforms/ScalarRepl/badarray.ll | 10 +- test/Transforms/ScalarRepl/basictest.ll | 6 +- test/Transforms/ScalarRepl/bitfield-sroa.ll | 6 +- test/Transforms/ScalarRepl/copy-aggregate.ll | 28 +- test/Transforms/ScalarRepl/crash.ll | 38 +- test/Transforms/ScalarRepl/debuginfo-preserved.ll | 42 +- test/Transforms/ScalarRepl/inline-vector.ll | 8 +- test/Transforms/ScalarRepl/lifetime.ll | 62 +- test/Transforms/ScalarRepl/load-store-aggregate.ll | 12 +- test/Transforms/ScalarRepl/memcpy-align.ll | 2 +- .../ScalarRepl/memset-aggregate-byte-leader.ll | 6 +- test/Transforms/ScalarRepl/memset-aggregate.ll | 24 +- test/Transforms/ScalarRepl/negative-memset.ll | 2 +- test/Transforms/ScalarRepl/nonzero-first-index.ll | 20 +- test/Transforms/ScalarRepl/not-a-vector.ll | 6 +- test/Transforms/ScalarRepl/phi-cycle.ll | 10 +- test/Transforms/ScalarRepl/phi-select.ll | 34 +- test/Transforms/ScalarRepl/phinodepromote.ll | 6 +- test/Transforms/ScalarRepl/select_promote.ll | 6 +- test/Transforms/ScalarRepl/sroa-fca.ll | 4 +- test/Transforms/ScalarRepl/sroa_two.ll | 8 +- test/Transforms/ScalarRepl/union-fp-int.ll | 2 +- test/Transforms/ScalarRepl/union-packed.ll | 2 +- test/Transforms/ScalarRepl/union-pointer.ll | 24 +- test/Transforms/ScalarRepl/vector_memcpy.ll | 4 +- test/Transforms/ScalarRepl/vector_promote.ll | 46 +- .../ScalarRepl/vectors-with-mismatched-elements.ll | 4 +- test/Transforms/ScalarRepl/volatile.ll | 6 +- test/Transforms/Scalarizer/basic.ll | 164 +++--- test/Transforms/Scalarizer/dbginfo.ll | 72 +-- test/Transforms/Scalarizer/no-data-layout.ll | 25 - .../NVPTX/split-gep-and-gvn.ll | 96 +-- .../SeparateConstOffsetFromGEP/NVPTX/split-gep.ll | 86 +-- .../SimplifyCFG/2003-08-17-FoldSwitch-dbg.ll | 2 +- test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll | 4 +- .../SimplifyCFG/2005-08-01-PHIUpdateFail.ll | 2 +- .../SimplifyCFG/2005-12-03-IncorrectPHIFold.ll | 44 +- test/Transforms/SimplifyCFG/2006-08-03-Crash.ll | 46 +- .../SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll | 42 +- .../SimplifyCFG/2008-01-02-hoist-fp-add.ll | 2 +- .../SimplifyCFG/2008-07-13-InfLoopMiscompile.ll | 4 +- .../SimplifyCFG/2008-09-08-MultiplePred.ll | 2 +- .../SimplifyCFG/2009-05-12-externweak.ll | 2 +- test/Transforms/SimplifyCFG/AArch64/prefer-fma.ll | 20 +- test/Transforms/SimplifyCFG/EmptyBlockMerge.ll | 2 +- test/Transforms/SimplifyCFG/MagicPointer.ll | 16 +- test/Transforms/SimplifyCFG/PR17073.ll | 6 +- test/Transforms/SimplifyCFG/SpeculativeExec.ll | 4 +- .../SimplifyCFG/X86/switch-covered-bug.ll | 4 +- .../Transforms/SimplifyCFG/X86/switch-table-bug.ll | 4 +- .../SimplifyCFG/X86/switch_to_lookup_table.ll | 44 +- test/Transforms/SimplifyCFG/attr-noduplicate.ll | 4 +- test/Transforms/SimplifyCFG/basictest.ll | 4 +- test/Transforms/SimplifyCFG/branch-fold-dbg.ll | 22 +- .../SimplifyCFG/branch-fold-threshold.ll | 2 +- test/Transforms/SimplifyCFG/branch-phi-thread.ll | 2 +- test/Transforms/SimplifyCFG/dbginfo.ll | 2 +- .../Transforms/SimplifyCFG/duplicate-landingpad.ll | 110 ++++ test/Transforms/SimplifyCFG/hoist-common-code.ll | 4 +- test/Transforms/SimplifyCFG/hoist-dbgvalue.ll | 32 +- test/Transforms/SimplifyCFG/hoist-with-range.ll | 6 +- test/Transforms/SimplifyCFG/indirectbr.ll | 8 +- test/Transforms/SimplifyCFG/iterative-simplify.ll | 18 +- test/Transforms/SimplifyCFG/multiple-phis.ll | 4 +- .../SimplifyCFG/no_speculative_loads_with_tsan.ll | 6 +- test/Transforms/SimplifyCFG/phi-undef-loadstore.ll | 10 +- .../SimplifyCFG/preserve-branchweights.ll | 2 +- test/Transforms/SimplifyCFG/select-gep.ll | 2 +- test/Transforms/SimplifyCFG/speculate-store.ll | 40 +- .../SimplifyCFG/speculate-with-offset.ll | 16 +- ...switch-to-select-multiple-edge-per-block-phi.ll | 4 +- test/Transforms/SimplifyCFG/switch_create.ll | 4 +- test/Transforms/SimplifyCFG/trap-debugloc.ll | 14 +- .../SimplifyCFG/trapping-load-unreachable.ll | 2 +- test/Transforms/SimplifyCFG/unreachable-blocks.ll | 4 +- test/Transforms/SimplifyCFG/volatile-phioper.ll | 2 +- test/Transforms/Sink/basic.ll | 24 +- .../StraightLineStrengthReduce/X86/lit.local.cfg | 2 + .../StraightLineStrengthReduce/X86/no-slsr.ll | 30 + .../StraightLineStrengthReduce/slsr-gep.ll | 109 ++++ .../StraightLineStrengthReduce/slsr-mul.ll | 121 ++++ test/Transforms/StraightLineStrengthReduce/slsr.ll | 119 ---- .../StripSymbols/2010-06-30-StripDebug.ll | 20 +- test/Transforms/StripSymbols/2010-08-25-crash.ll | 20 +- .../StripSymbols/strip-dead-debug-info.ll | 40 +- .../StructurizeCFG/branch-on-argument.ll | 2 +- .../StructurizeCFG/loop-multiple-exits.ll | 4 +- .../StructurizeCFG/post-order-traversal-bug.ll | 16 +- test/Transforms/TailCallElim/basic.ll | 2 +- test/Transforms/TailCallElim/dont_reorder_load.ll | 6 +- test/Transforms/TailCallElim/inf-recursion.ll | 21 + test/Transforms/TailCallElim/reorder_load.ll | 20 +- test/Transforms/Util/lowerswitch.ll | 134 +++++ 1249 files changed, 15915 insertions(+), 12343 deletions(-) create mode 100644 test/Transforms/ConstProp/shift.ll create mode 100644 test/Transforms/IRCE/bug-loop-varying-upper-limit.ll create mode 100644 test/Transforms/IRCE/only-lower-check.ll create mode 100644 test/Transforms/IRCE/only-upper-check.ll delete mode 100644 test/Transforms/Inline/alloca-merge-align-nodl.ll create mode 100644 test/Transforms/Inline/store-sroa.ll delete mode 100644 test/Transforms/InstCombine/2012-09-24-MemcpyFromGlobalCrash.ll create mode 100644 test/Transforms/InstCombine/branch.ll create mode 100644 test/Transforms/InstCombine/constant-fold-hang.ll create mode 100644 test/Transforms/InstCombine/default-alignment.ll create mode 100644 test/Transforms/InstCombine/dom-conditions.ll create mode 100644 test/Transforms/InstCombine/inline-intrinsic-assert.ll create mode 100644 test/Transforms/InstCombine/memchr.ll create mode 100644 test/Transforms/InstCombine/switch-truncate-crash.ll create mode 100644 test/Transforms/InstCombine/unpack-fca.ll create mode 100644 test/Transforms/InstCombine/x86-vperm2.ll create mode 100644 test/Transforms/LoopInterchange/currentLimitation.ll create mode 100644 test/Transforms/LoopInterchange/interchange.ll create mode 100644 test/Transforms/LoopInterchange/profitability.ll create mode 100644 test/Transforms/LoopUnroll/AArch64/lit.local.cfg create mode 100644 test/Transforms/LoopUnroll/AArch64/partial.ll create mode 100644 test/Transforms/LoopUnroll/AArch64/runtime-loop.ll create mode 100644 test/Transforms/LoopUnroll/runtime-loop4.ll create mode 100644 test/Transforms/LoopVectorize/PowerPC/large-loop-rdx.ll create mode 100644 test/Transforms/LoopVectorize/X86/veclib-calls.ll delete mode 100644 test/Transforms/ObjCARC/arc-annotations.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-1.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-10.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-11.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-2.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-3.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-4.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-5.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-6.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-7.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-8.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers-9.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/base-pointers.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/relocate_invoke_result.ll create mode 100644 test/Transforms/RewriteStatepointsForGC/relocation.ll delete mode 100644 test/Transforms/Scalarizer/no-data-layout.ll create mode 100644 test/Transforms/SimplifyCFG/duplicate-landingpad.ll create mode 100644 test/Transforms/StraightLineStrengthReduce/X86/lit.local.cfg create mode 100644 test/Transforms/StraightLineStrengthReduce/X86/no-slsr.ll create mode 100644 test/Transforms/StraightLineStrengthReduce/slsr-gep.ll create mode 100644 test/Transforms/StraightLineStrengthReduce/slsr-mul.ll delete mode 100644 test/Transforms/StraightLineStrengthReduce/slsr.ll (limited to 'test/Transforms') diff --git a/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll b/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll index 9407b5a..8d1beec 100644 --- a/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll +++ b/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll @@ -15,14 +15,14 @@ bb0: br label %bb1 bb1: ; preds = %bb0 - %reg107 = load %node_t** %nodelist.upgrd.1 ; <%node_t*> [#uses=2] + %reg107 = load %node_t*, %node_t** %nodelist.upgrd.1 ; <%node_t*> [#uses=2] %cond211 = icmp eq %node_t* %reg107, null ; [#uses=1] br i1 %cond211, label %bb3, label %bb2 bb2: ; preds = %bb2, %bb1 %reg109 = phi %node_t* [ %reg110, %bb2 ], [ %reg107, %bb1 ] ; <%node_t*> [#uses=1] - %reg212 = getelementptr %node_t* %reg109, i64 0, i32 1 ; <%node_t**> [#uses=1] - %reg110 = load %node_t** %reg212 ; <%node_t*> [#uses=2] + %reg212 = getelementptr %node_t, %node_t* %reg109, i64 0, i32 1 ; <%node_t**> [#uses=1] + %reg110 = load %node_t*, %node_t** %reg212 ; <%node_t*> [#uses=2] %cond213 = icmp ne %node_t* %reg110, null ; [#uses=1] br i1 %cond213, label %bb2, label %bb3 diff --git a/test/Transforms/ADCE/2002-05-28-Crash.ll b/test/Transforms/ADCE/2002-05-28-Crash.ll index 9bbbd05..d88580a 100644 --- a/test/Transforms/ADCE/2002-05-28-Crash.ll +++ b/test/Transforms/ADCE/2002-05-28-Crash.ll @@ -15,7 +15,7 @@ define i32 @rx_bitset_empty(i32 %size, i32* %set) { bb1: - %reg110 = load i32* %set ; [#uses=2] + %reg110 = load i32, i32* %set ; [#uses=2] store i32 1, i32* %set %cast112 = sext i32 %size to i64 ; [#uses=1] %reg113 = add i64 %cast112, 31 ; [#uses=1] @@ -25,8 +25,8 @@ bb1: %reg114-idxcast = trunc i64 %reg114 to i32 ; [#uses=1] %reg114-idxcast-offset = add i32 %reg114-idxcast, 1073741823 ; [#uses=1] %reg114-idxcast-offset.upgrd.1 = zext i32 %reg114-idxcast-offset to i64 ; [#uses=1] - %reg124 = getelementptr i32* %set, i64 %reg114-idxcast-offset.upgrd.1 ; [#uses=1] - %reg125 = load i32* %reg124 ; [#uses=1] + %reg124 = getelementptr i32, i32* %set, i64 %reg114-idxcast-offset.upgrd.1 ; [#uses=1] + %reg125 = load i32, i32* %reg124 ; [#uses=1] %cond232 = icmp ne i32 %reg125, 0 ; [#uses=1] br i1 %cond232, label %bb3, label %bb2 @@ -38,8 +38,8 @@ bb2: ; preds = %bb2, %bb1 %reg130-idxcast = bitcast i32 %reg130 to i32 ; [#uses=1] %reg130-idxcast-offset = add i32 %reg130-idxcast, 1073741823 ; [#uses=1] %reg130-idxcast-offset.upgrd.2 = zext i32 %reg130-idxcast-offset to i64 ; [#uses=1] - %reg118 = getelementptr i32* %set, i64 %reg130-idxcast-offset.upgrd.2 ; [#uses=1] - %reg119 = load i32* %reg118 ; [#uses=1] + %reg118 = getelementptr i32, i32* %set, i64 %reg130-idxcast-offset.upgrd.2 ; [#uses=1] + %reg119 = load i32, i32* %reg118 ; [#uses=1] %cond233 = icmp eq i32 %reg119, 0 ; [#uses=1] br i1 %cond233, label %bb2, label %bb3 diff --git a/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll b/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll index 8f8dadf..ff8bdb3 100644 --- a/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll +++ b/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll @@ -7,7 +7,7 @@ define void @foo(i8* %reg5481) { %cast611 = bitcast i8* %reg5481 to i8** ; [#uses=1] - %reg162 = load i8** %cast611 ; [#uses=1] + %reg162 = load i8*, i8** %cast611 ; [#uses=1] ptrtoint i8* %reg162 to i32 ; :1 [#uses=0] ret void } diff --git a/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll b/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll index 2f0df67..1bf79e8 100644 --- a/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll +++ b/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll @@ -17,7 +17,7 @@ bb3: ; preds = %bb2 br label %UnifiedExitNode bb4: ; preds = %bb2 - %reg117 = load i32* @hufts ; [#uses=2] + %reg117 = load i32, i32* @hufts ; [#uses=2] %cond241 = icmp ule i32 %reg117, %reg128 ; [#uses=1] br i1 %cond241, label %bb6, label %bb5 @@ -29,12 +29,12 @@ bb6: ; preds = %bb5, %bb4 br i1 false, label %bb2, label %bb7 bb7: ; preds = %bb6 - %reg126 = load i32* @bk ; [#uses=1] + %reg126 = load i32, i32* @bk ; [#uses=1] %cond247 = icmp ule i32 %reg126, 7 ; [#uses=1] br i1 %cond247, label %bb9, label %bb8 bb8: ; preds = %bb8, %bb7 - %reg119 = load i32* @bk ; [#uses=1] + %reg119 = load i32, i32* @bk ; [#uses=1] %cond256 = icmp ugt i32 %reg119, 7 ; [#uses=1] br i1 %cond256, label %bb8, label %bb9 diff --git a/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll b/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll index 5206b24..7c7e238 100644 --- a/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll +++ b/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll @@ -16,7 +16,7 @@ then.66: ; preds = %shortcirc_done.12 br label %endif.42 endif.65: ; preds = %endif.42 - %tmp.2846 = load i32** @G ; [#uses=1] + %tmp.2846 = load i32*, i32** @G ; [#uses=1] br i1 false, label %shortcirc_next.12, label %shortcirc_done.12 shortcirc_next.12: ; preds = %endif.65 diff --git a/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll b/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll index eb3ef1e..707e14a 100644 --- a/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll +++ b/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll @@ -48,8 +48,8 @@ shortcirc_next.4: ; preds = %then.44 br i1 false, label %no_exit.2, label %loopexit.2 no_exit.2: ; preds = %shortcirc_next.4 - %tmp.897 = getelementptr i32* %SubArrays.10, i64 0 ; [#uses=1] - %tmp.899 = load i32* %tmp.897 ; [#uses=1] + %tmp.897 = getelementptr i32, i32* %SubArrays.10, i64 0 ; [#uses=1] + %tmp.899 = load i32, i32* %tmp.897 ; [#uses=1] store i32 %tmp.899, i32* null ret i32 0 @@ -79,7 +79,7 @@ shortcirc_next.8: ; preds = %shortcirc_next.7 then.53: ; preds = %shortcirc_next.7, %label.17 %SubArrays.8 = phi i32* [ %SubArrays.10, %shortcirc_next.7 ], [ %SubArrays.10, %label.17 ] ; [#uses=1] - %tmp.1023 = load i32* null ; [#uses=1] + %tmp.1023 = load i32, i32* null ; [#uses=1] switch i32 %tmp.1023, label %loopentry.1 [ ] diff --git a/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll b/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll index 82fa5b2..f0de431 100644 --- a/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll +++ b/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll @@ -2,20 +2,20 @@ define void @dead_test8(i32* %data.1, i32 %idx.1) { entry: - %tmp.1 = load i32* %data.1 ; [#uses=2] + %tmp.1 = load i32, i32* %data.1 ; [#uses=2] %tmp.41 = icmp sgt i32 %tmp.1, 0 ; [#uses=1] br i1 %tmp.41, label %no_exit.preheader, label %return no_exit.preheader: ; preds = %entry - %tmp.11 = getelementptr i32* %data.1, i64 1 ; [#uses=1] + %tmp.11 = getelementptr i32, i32* %data.1, i64 1 ; [#uses=1] %tmp.22-idxcast = sext i32 %idx.1 to i64 ; [#uses=1] - %tmp.28 = getelementptr i32* %data.1, i64 %tmp.22-idxcast ; [#uses=1] + %tmp.28 = getelementptr i32, i32* %data.1, i64 %tmp.22-idxcast ; [#uses=1] br label %no_exit no_exit: ; preds = %endif, %no_exit.preheader %k.1 = phi i32 [ %k.0, %endif ], [ 0, %no_exit.preheader ] ; [#uses=3] %i.0 = phi i32 [ %inc.1, %endif ], [ 0, %no_exit.preheader ] ; [#uses=1] - %tmp.12 = load i32* %tmp.11 ; [#uses=1] + %tmp.12 = load i32, i32* %tmp.11 ; [#uses=1] %tmp.14 = sub i32 0, %tmp.12 ; [#uses=1] %tmp.161 = icmp ne i32 %k.1, %tmp.14 ; [#uses=1] br i1 %tmp.161, label %then, label %else diff --git a/test/Transforms/ADCE/basictest1.ll b/test/Transforms/ADCE/basictest1.ll index bbb8878..4d0d386 100644 --- a/test/Transforms/ADCE/basictest1.ll +++ b/test/Transforms/ADCE/basictest1.ll @@ -22,12 +22,12 @@ declare i32 @fwrite(i8*, i32, i32, %FILE*) declare void @perror(i8*) define i32 @spec_getc(i32 %fd) { - %reg109 = load i32* @dbglvl ; [#uses=1] + %reg109 = load i32, i32* @dbglvl ; [#uses=1] %cond266 = icmp sle i32 %reg109, 4 ; [#uses=1] br i1 %cond266, label %bb3, label %bb2 bb2: ; preds = %0 - %cast273 = getelementptr [17 x i8]* @.LC12, i64 0, i64 0 ; [#uses=0] + %cast273 = getelementptr [17 x i8], [17 x i8]* @.LC12, i64 0, i64 0 ; [#uses=0] br label %bb3 bb3: ; preds = %bb2, %0 @@ -35,8 +35,8 @@ bb3: ; preds = %bb2, %0 br i1 %cond267, label %bb5, label %bb4 bb4: ; preds = %bb3 - %reg111 = getelementptr [20 x %FILE]* @__iob, i64 0, i64 1, i32 3 ; [#uses=1] - %cast274 = getelementptr [34 x i8]* @.LC9, i64 0, i64 0 ; [#uses=0] + %reg111 = getelementptr [20 x %FILE], [20 x %FILE]* @__iob, i64 0, i64 1, i32 3 ; [#uses=1] + %cast274 = getelementptr [34 x i8], [34 x i8]* @.LC9, i64 0, i64 0 ; [#uses=0] %cast282 = bitcast i8* %reg111 to %FILE* ; <%FILE*> [#uses=0] call void @exit( i32 1 ) br label %UnifiedExitNode @@ -44,21 +44,21 @@ bb4: ; preds = %bb3 bb5: ; preds = %bb3 %reg107-idxcast1 = sext i32 %fd to i64 ; [#uses=2] %reg107-idxcast2 = sext i32 %fd to i64 ; [#uses=1] - %reg1311 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1] - %idx1 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1] - %reg1321 = load i32* %idx1 ; [#uses=3] - %idx2 = getelementptr %spec_fd_t* %reg1311, i64 0, i32 1 ; [#uses=1] - %reg1331 = load i32* %idx2 ; [#uses=1] + %reg1311 = getelementptr [3 x %spec_fd_t], [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1] + %idx1 = getelementptr [3 x %spec_fd_t], [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1] + %reg1321 = load i32, i32* %idx1 ; [#uses=3] + %idx2 = getelementptr %spec_fd_t, %spec_fd_t* %reg1311, i64 0, i32 1 ; [#uses=1] + %reg1331 = load i32, i32* %idx2 ; [#uses=1] %cond270 = icmp slt i32 %reg1321, %reg1331 ; [#uses=1] br i1 %cond270, label %bb9, label %bb6 bb6: ; preds = %bb5 - %reg134 = load i32* @dbglvl ; [#uses=1] + %reg134 = load i32, i32* @dbglvl ; [#uses=1] %cond271 = icmp sle i32 %reg134, 4 ; [#uses=1] br i1 %cond271, label %bb8, label %bb7 bb7: ; preds = %bb6 - %cast277 = getelementptr [4 x i8]* @.LC10, i64 0, i64 0 ; [#uses=0] + %cast277 = getelementptr [4 x i8], [4 x i8]* @.LC10, i64 0, i64 0 ; [#uses=0] br label %bb8 bb8: ; preds = %bb7, %bb6 @@ -66,21 +66,21 @@ bb8: ; preds = %bb7, %bb6 bb9: ; preds = %bb5 %reg107-idxcast3 = sext i32 %fd to i64 ; [#uses=1] - %idx3 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast3, i32 3 ; [#uses=1] - %reg1601 = load i8** %idx3 ; [#uses=1] + %idx3 = getelementptr [3 x %spec_fd_t], [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast3, i32 3 ; [#uses=1] + %reg1601 = load i8*, i8** %idx3 ; [#uses=1] %reg132-idxcast1 = sext i32 %reg1321 to i64 ; [#uses=1] - %idx4 = getelementptr i8* %reg1601, i64 %reg132-idxcast1 ; [#uses=1] - %reg1621 = load i8* %idx4 ; [#uses=2] + %idx4 = getelementptr i8, i8* %reg1601, i64 %reg132-idxcast1 ; [#uses=1] + %reg1621 = load i8, i8* %idx4 ; [#uses=2] %cast108 = zext i8 %reg1621 to i64 ; [#uses=0] %reg157 = add i32 %reg1321, 1 ; [#uses=1] - %idx5 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1] + %idx5 = getelementptr [3 x %spec_fd_t], [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1] store i32 %reg157, i32* %idx5 - %reg163 = load i32* @dbglvl ; [#uses=1] + %reg163 = load i32, i32* @dbglvl ; [#uses=1] %cond272 = icmp sle i32 %reg163, 4 ; [#uses=1] br i1 %cond272, label %bb11, label %bb10 bb10: ; preds = %bb9 - %cast279 = getelementptr [4 x i8]* @.LC11, i64 0, i64 0 ; [#uses=0] + %cast279 = getelementptr [4 x i8], [4 x i8]* @.LC11, i64 0, i64 0 ; [#uses=0] br label %bb11 bb11: ; preds = %bb10, %bb9 diff --git a/test/Transforms/ADCE/basictest2.ll b/test/Transforms/ADCE/basictest2.ll index a17795f..26b2e85 100644 --- a/test/Transforms/ADCE/basictest2.ll +++ b/test/Transforms/ADCE/basictest2.ll @@ -22,12 +22,12 @@ declare i32 @fwrite(i8*, i32, i32, %FILE*) declare void @perror(i8*) define i32 @spec_getc(i32 %fd) { - %reg109 = load i32* @dbglvl ; [#uses=1] + %reg109 = load i32, i32* @dbglvl ; [#uses=1] %cond266 = icmp sle i32 %reg109, 4 ; [#uses=1] br i1 %cond266, label %bb3, label %bb2 bb2: ; preds = %0 - %cast273 = getelementptr [17 x i8]* @.LC12, i64 0, i64 0 ; [#uses=0] + %cast273 = getelementptr [17 x i8], [17 x i8]* @.LC12, i64 0, i64 0 ; [#uses=0] br label %bb3 bb3: ; preds = %bb2, %0 @@ -35,8 +35,8 @@ bb3: ; preds = %bb2, %0 br label %bb5 bb4: ; No predecessors! - %reg111 = getelementptr [20 x %FILE]* @__iob, i64 0, i64 1, i32 3 ; [#uses=1] - %cast274 = getelementptr [34 x i8]* @.LC9, i64 0, i64 0 ; [#uses=0] + %reg111 = getelementptr [20 x %FILE], [20 x %FILE]* @__iob, i64 0, i64 1, i32 3 ; [#uses=1] + %cast274 = getelementptr [34 x i8], [34 x i8]* @.LC9, i64 0, i64 0 ; [#uses=0] %cast282 = bitcast i8* %reg111 to %FILE* ; <%FILE*> [#uses=0] call void @exit( i32 1 ) br label %UnifiedExitNode @@ -44,21 +44,21 @@ bb4: ; No predecessors! bb5: ; preds = %bb3 %reg107-idxcast1 = sext i32 %fd to i64 ; [#uses=2] %reg107-idxcast2 = sext i32 %fd to i64 ; [#uses=1] - %reg1311 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1] - %idx1 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1] - %reg1321 = load i32* %idx1 ; [#uses=3] - %idx2 = getelementptr %spec_fd_t* %reg1311, i64 0, i32 1 ; [#uses=1] - %reg1331 = load i32* %idx2 ; [#uses=1] + %reg1311 = getelementptr [3 x %spec_fd_t], [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1] + %idx1 = getelementptr [3 x %spec_fd_t], [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1] + %reg1321 = load i32, i32* %idx1 ; [#uses=3] + %idx2 = getelementptr %spec_fd_t, %spec_fd_t* %reg1311, i64 0, i32 1 ; [#uses=1] + %reg1331 = load i32, i32* %idx2 ; [#uses=1] %cond270 = icmp slt i32 %reg1321, %reg1331 ; [#uses=1] br i1 %cond270, label %bb9, label %bb6 bb6: ; preds = %bb5 - %reg134 = load i32* @dbglvl ; [#uses=1] + %reg134 = load i32, i32* @dbglvl ; [#uses=1] %cond271 = icmp sle i32 %reg134, 4 ; [#uses=1] br i1 %cond271, label %bb8, label %bb7 bb7: ; preds = %bb6 - %cast277 = getelementptr [4 x i8]* @.LC10, i64 0, i64 0 ; [#uses=0] + %cast277 = getelementptr [4 x i8], [4 x i8]* @.LC10, i64 0, i64 0 ; [#uses=0] br label %bb8 bb8: ; preds = %bb7, %bb6 @@ -66,21 +66,21 @@ bb8: ; preds = %bb7, %bb6 bb9: ; preds = %bb5 %reg107-idxcast3 = sext i32 %fd to i64 ; [#uses=1] - %idx3 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast3, i32 3 ; [#uses=1] - %reg1601 = load i8** %idx3 ; [#uses=1] + %idx3 = getelementptr [3 x %spec_fd_t], [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast3, i32 3 ; [#uses=1] + %reg1601 = load i8*, i8** %idx3 ; [#uses=1] %reg132-idxcast1 = sext i32 %reg1321 to i64 ; [#uses=1] - %idx4 = getelementptr i8* %reg1601, i64 %reg132-idxcast1 ; [#uses=1] - %reg1621 = load i8* %idx4 ; [#uses=2] + %idx4 = getelementptr i8, i8* %reg1601, i64 %reg132-idxcast1 ; [#uses=1] + %reg1621 = load i8, i8* %idx4 ; [#uses=2] %cast108 = zext i8 %reg1621 to i64 ; [#uses=0] %reg157 = add i32 %reg1321, 1 ; [#uses=1] - %idx5 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1] + %idx5 = getelementptr [3 x %spec_fd_t], [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1] store i32 %reg157, i32* %idx5 - %reg163 = load i32* @dbglvl ; [#uses=1] + %reg163 = load i32, i32* @dbglvl ; [#uses=1] %cond272 = icmp sle i32 %reg163, 4 ; [#uses=1] br i1 %cond272, label %bb11, label %bb10 bb10: ; preds = %bb9 - %cast279 = getelementptr [4 x i8]* @.LC11, i64 0, i64 0 ; [#uses=0] + %cast279 = getelementptr [4 x i8], [4 x i8]* @.LC11, i64 0, i64 0 ; [#uses=0] br label %bb11 bb11: ; preds = %bb10, %bb9 diff --git a/test/Transforms/AddDiscriminators/basic.ll b/test/Transforms/AddDiscriminators/basic.ll index 7c8b3d3..9ab0edf 100644 --- a/test/Transforms/AddDiscriminators/basic.ll +++ b/test/Transforms/AddDiscriminators/basic.ll @@ -16,22 +16,23 @@ entry: %i.addr = alloca i32, align 4 %x = alloca i32, align 4 store i32 %i, i32* %i.addr, align 4 - %0 = load i32* %i.addr, align 4, !dbg !10 + %0 = load i32, i32* %i.addr, align 4, !dbg !10 %cmp = icmp slt i32 %0, 10, !dbg !10 br i1 %cmp, label %if.then, label %if.end, !dbg !10 if.then: ; preds = %entry - %1 = load i32* %i.addr, align 4, !dbg !10 -; CHECK: %1 = load i32* %i.addr, align 4, !dbg !12 + %1 = load i32, i32* %i.addr, align 4, !dbg !10 +; CHECK: %1 = load i32, i32* %i.addr, align 4, !dbg ![[THEN:[0-9]+]] store i32 %1, i32* %x, align 4, !dbg !10 -; CHECK: store i32 %1, i32* %x, align 4, !dbg !12 +; CHECK: store i32 %1, i32* %x, align 4, !dbg ![[THEN]] br label %if.end, !dbg !10 -; CHECK: br label %if.end, !dbg !12 +; CHECK: br label %if.end, !dbg ![[THEN]] if.end: ; preds = %if.then, %entry ret void, !dbg !12 +; CHECK: ret void, !dbg ![[END:[0-9]+]] } attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } @@ -40,20 +41,22 @@ attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointe !llvm.module.flags = !{!7, !8} !llvm.ident = !{!9} -!0 = !{!"0x11\0012\00clang version 3.5 \000\00\000\00\000", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [basic.c] [DW_LANG_C99] -!1 = !{!"basic.c", !"."} +!0 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 ", isOptimized: false, emissionKind: 0, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) +!1 = !MDFile(filename: "basic.c", directory: ".") !2 = !{} !3 = !{!4} -!4 = !{!"0x2e\00foo\00foo\00\001\000\001\000\006\00256\000\001", !1, !5, !6, null, void (i32)* @foo, null, null, !2} ; [ DW_TAG_subprogram ] [line 1] [def] [foo] -!5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [basic.c] -!6 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !2, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!4 = !MDSubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !6, function: void (i32)* @foo, variables: !2) +!5 = !MDFile(filename: "basic.c", directory: ".") +!6 = !MDSubroutineType(types: !2) !7 = !{i32 2, !"Dwarf Version", i32 4} -!8 = !{i32 1, !"Debug Info Version", i32 2} +!8 = !{i32 1, !"Debug Info Version", i32 3} !9 = !{!"clang version 3.5 "} !10 = !MDLocation(line: 3, scope: !11) -!11 = !{!"0xb\003\000\000", !1, !4} ; [ DW_TAG_lexical_block ] [basic.c] +!11 = distinct !MDLexicalBlock(line: 3, column: 0, file: !1, scope: !4) !12 = !MDLocation(line: 4, scope: !4) -; CHECK: !12 = !MDLocation(line: 3, scope: !13) -; CHECK: !13 = !{!"0xb\001", !1, !11} ; [ DW_TAG_lexical_block ] [./basic.c] -; CHECK: !14 = !MDLocation(line: 4, scope: !4) +; CHECK: ![[FOO:[0-9]+]] = !MDSubprogram(name: "foo" +; CHECK: ![[BLOCK:[0-9]+]] = distinct !MDLexicalBlock(scope: ![[FOO]],{{.*}} line: 3) +; CHECK: ![[THEN]] = !MDLocation(line: 3, scope: ![[BLOCKFILE:[0-9]+]]) +; CHECK: ![[BLOCKFILE]] = !MDLexicalBlockFile(scope: ![[BLOCK]],{{.*}} discriminator: 1) +; CHECK: ![[END]] = !MDLocation(line: 4, scope: ![[FOO]]) diff --git a/test/Transforms/AddDiscriminators/first-only.ll b/test/Transforms/AddDiscriminators/first-only.ll index 153cfc8..59bcb05 100644 --- a/test/Transforms/AddDiscriminators/first-only.ll +++ b/test/Transforms/AddDiscriminators/first-only.ll @@ -19,29 +19,29 @@ entry: %x = alloca i32, align 4 %y = alloca i32, align 4 store i32 %i, i32* %i.addr, align 4 - %0 = load i32* %i.addr, align 4, !dbg !10 + %0 = load i32, i32* %i.addr, align 4, !dbg !10 %cmp = icmp slt i32 %0, 10, !dbg !10 br i1 %cmp, label %if.then, label %if.end, !dbg !10 if.then: ; preds = %entry - %1 = load i32* %i.addr, align 4, !dbg !12 + %1 = load i32, i32* %i.addr, align 4, !dbg !12 store i32 %1, i32* %x, align 4, !dbg !12 - %2 = load i32* %i.addr, align 4, !dbg !14 -; CHECK: %2 = load i32* %i.addr, align 4, !dbg !15 + %2 = load i32, i32* %i.addr, align 4, !dbg !14 +; CHECK: %2 = load i32, i32* %i.addr, align 4, !dbg ![[THEN:[0-9]+]] %sub = sub nsw i32 0, %2, !dbg !14 -; CHECK: %sub = sub nsw i32 0, %2, !dbg !15 +; CHECK: %sub = sub nsw i32 0, %2, !dbg ![[THEN]] store i32 %sub, i32* %y, align 4, !dbg !14 -; CHECK: store i32 %sub, i32* %y, align 4, !dbg !15 +; CHECK: store i32 %sub, i32* %y, align 4, !dbg ![[THEN]] br label %if.end, !dbg !15 -; CHECK: br label %if.end, !dbg !16 +; CHECK: br label %if.end, !dbg ![[BR:[0-9]+]] if.end: ; preds = %if.then, %entry ret void, !dbg !16 -; CHECK: ret void, !dbg !17 +; CHECK: ret void, !dbg ![[END:[0-9]+]] } attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } @@ -50,33 +50,34 @@ attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointe !llvm.module.flags = !{!7, !8} !llvm.ident = !{!9} -!0 = !{!"0x11\0012\00clang version 3.5 (trunk 199750) (llvm/trunk 199751)\000\00\000\00\000", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [first-only.c] [DW_LANG_C99] -!1 = !{!"first-only.c", !"."} -!2 = !{i32 0} +!0 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 (trunk 199750) (llvm/trunk 199751)", isOptimized: false, emissionKind: 0, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) +!1 = !MDFile(filename: "first-only.c", directory: ".") +!2 = !{} !3 = !{!4} -!4 = !{!"0x2e\00foo\00foo\00\001\000\001\000\006\00256\000\001", !1, !5, !6, null, void (i32)* @foo, null, null, !2} ; [ DW_TAG_subprogram ] [line 1] [def] [foo] -!5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [first-only.c] -!6 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !2, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!4 = !MDSubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !6, function: void (i32)* @foo, variables: !2) +!5 = !MDFile(filename: "first-only.c", directory: ".") +!6 = !MDSubroutineType(types: !{null}) !7 = !{i32 2, !"Dwarf Version", i32 4} -!8 = !{i32 1, !"Debug Info Version", i32 2} +!8 = !{i32 1, !"Debug Info Version", i32 3} !9 = !{!"clang version 3.5 (trunk 199750) (llvm/trunk 199751)"} !10 = !MDLocation(line: 3, scope: !11) -!11 = !{!"0xb\003\000\000", !1, !4} ; [ DW_TAG_lexical_block ] [first-only.c] -; CHECK: !11 = !{!"0xb\003\000\000", !1, !4} +!11 = distinct !MDLexicalBlock(line: 3, column: 0, file: !1, scope: !4) +; CHECK: ![[FOO:[0-9]+]] = !MDSubprogram(name: "foo" +; CHECK: ![[BLOCK1:[0-9]+]] = distinct !MDLexicalBlock(scope: ![[FOO]],{{.*}} line: 3) !12 = !MDLocation(line: 3, scope: !13) -!13 = !{!"0xb\003\000\001", !1, !11} ; [ DW_TAG_lexical_block ] [first-only.c] -; CHECK: !13 = !{!"0xb\001", !1, !14} ; [ DW_TAG_lexical_block ] [./first-only.c] +!13 = distinct !MDLexicalBlock(line: 3, column: 0, file: !1, scope: !11) +; CHECK: !MDLexicalBlockFile(scope: ![[BLOCK2:[0-9]+]],{{.*}} discriminator: 1) !14 = !MDLocation(line: 4, scope: !13) -; CHECK: !14 = !{!"0xb\003\000\001", !1, !11} +; CHECK: ![[BLOCK2]] = distinct !MDLexicalBlock(scope: ![[BLOCK1]],{{.*}} line: 3) !15 = !MDLocation(line: 5, scope: !13) -; CHECK: !15 = !MDLocation(line: 4, scope: !14) +; CHECK: ![[THEN]] = !MDLocation(line: 4, scope: ![[BLOCK2]]) !16 = !MDLocation(line: 6, scope: !4) -; CHECK: !16 = !MDLocation(line: 5, scope: !14) -; CHECK: !17 = !MDLocation(line: 6, scope: !4) +; CHECK: ![[BR]] = !MDLocation(line: 5, scope: ![[BLOCK2]]) +; CHECK: ![[END]] = !MDLocation(line: 6, scope: ![[FOO]]) diff --git a/test/Transforms/AddDiscriminators/multiple.ll b/test/Transforms/AddDiscriminators/multiple.ll index 5e552a8..587baad 100644 --- a/test/Transforms/AddDiscriminators/multiple.ll +++ b/test/Transforms/AddDiscriminators/multiple.ll @@ -15,29 +15,29 @@ entry: %i.addr = alloca i32, align 4 %x = alloca i32, align 4 store i32 %i, i32* %i.addr, align 4 - %0 = load i32* %i.addr, align 4, !dbg !10 + %0 = load i32, i32* %i.addr, align 4, !dbg !10 %cmp = icmp slt i32 %0, 10, !dbg !10 br i1 %cmp, label %if.then, label %if.else, !dbg !10 if.then: ; preds = %entry - %1 = load i32* %i.addr, align 4, !dbg !10 -; CHECK: %1 = load i32* %i.addr, align 4, !dbg !12 + %1 = load i32, i32* %i.addr, align 4, !dbg !10 +; CHECK: %1 = load i32, i32* %i.addr, align 4, !dbg ![[THEN:[0-9]+]] store i32 %1, i32* %x, align 4, !dbg !10 -; CHECK: store i32 %1, i32* %x, align 4, !dbg !12 +; CHECK: store i32 %1, i32* %x, align 4, !dbg ![[THEN]] br label %if.end, !dbg !10 -; CHECK: br label %if.end, !dbg !12 +; CHECK: br label %if.end, !dbg ![[THEN]] if.else: ; preds = %entry - %2 = load i32* %i.addr, align 4, !dbg !10 -; CHECK: %2 = load i32* %i.addr, align 4, !dbg !14 + %2 = load i32, i32* %i.addr, align 4, !dbg !10 +; CHECK: %2 = load i32, i32* %i.addr, align 4, !dbg ![[ELSE:[0-9]+]] %sub = sub nsw i32 0, %2, !dbg !10 -; CHECK: %sub = sub nsw i32 0, %2, !dbg !14 +; CHECK: %sub = sub nsw i32 0, %2, !dbg ![[ELSE]] store i32 %sub, i32* %x, align 4, !dbg !10 -; CHECK: store i32 %sub, i32* %x, align 4, !dbg !14 +; CHECK: store i32 %sub, i32* %x, align 4, !dbg ![[ELSE]] br label %if.end @@ -51,21 +51,22 @@ attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointe !llvm.module.flags = !{!7, !8} !llvm.ident = !{!9} -!0 = !{!"0x11\0012\00clang version 3.5 (trunk 199750) (llvm/trunk 199751)\000\00\000\00\000", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [multiple.c] [DW_LANG_C99] -!1 = !{!"multiple.c", !"."} -!2 = !{i32 0} +!0 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 (trunk 199750) (llvm/trunk 199751)", isOptimized: false, emissionKind: 0, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) +!1 = !MDFile(filename: "multiple.c", directory: ".") +!2 = !{} !3 = !{!4} -!4 = !{!"0x2e\00foo\00foo\00\001\000\001\000\006\00256\000\001", !1, !5, !6, null, void (i32)* @foo, null, null, !2} ; [ DW_TAG_subprogram ] [line 1] [def] [foo] -!5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [multiple.c] -!6 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !2, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!4 = !MDSubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !6, function: void (i32)* @foo, variables: !2) +!5 = !MDFile(filename: "multiple.c", directory: ".") +!6 = !MDSubroutineType(types: !{null, !13}) +!13 = !MDBasicType(encoding: DW_ATE_signed, name: "int", size: 32, align: 32) !7 = !{i32 2, !"Dwarf Version", i32 4} -!8 = !{i32 1, !"Debug Info Version", i32 2} +!8 = !{i32 1, !"Debug Info Version", i32 3} !9 = !{!"clang version 3.5 (trunk 199750) (llvm/trunk 199751)"} !10 = !MDLocation(line: 3, scope: !11) -!11 = !{!"0xb\003\000\000", !1, !4} ; [ DW_TAG_lexical_block ] [multiple.c] +!11 = distinct !MDLexicalBlock(line: 3, column: 0, file: !1, scope: !4) !12 = !MDLocation(line: 4, scope: !4) -; CHECK: !12 = !MDLocation(line: 3, scope: !13) -; CHECK: !13 = !{!"0xb\001", !1, !11} ; [ DW_TAG_lexical_block ] [./multiple.c] -; CHECK: !14 = !MDLocation(line: 3, scope: !15) -; CHECK: !15 = !{!"0xb\002", !1, !11} ; [ DW_TAG_lexical_block ] [./multiple.c] +; CHECK: ![[THEN]] = !MDLocation(line: 3, scope: ![[THENBLOCK:[0-9]+]]) +; CHECK: ![[THENBLOCK]] = !MDLexicalBlockFile(scope: ![[SCOPE:[0-9]+]],{{.*}} discriminator: 1) +; CHECK: ![[ELSE]] = !MDLocation(line: 3, scope: ![[ELSEBLOCK:[0-9]+]]) +; CHECK: ![[ELSEBLOCK]] = !MDLexicalBlockFile(scope: ![[SCOPE]],{{.*}} discriminator: 2) diff --git a/test/Transforms/AddDiscriminators/no-discriminators.ll b/test/Transforms/AddDiscriminators/no-discriminators.ll index dd7faf0..5ef0d00 100644 --- a/test/Transforms/AddDiscriminators/no-discriminators.ll +++ b/test/Transforms/AddDiscriminators/no-discriminators.ll @@ -17,13 +17,13 @@ entry: %retval = alloca i32, align 4 %i.addr = alloca i64, align 8 store i64 %i, i64* %i.addr, align 8 - call void @llvm.dbg.declare(metadata i64* %i.addr, metadata !13, metadata !{}), !dbg !14 - %0 = load i64* %i.addr, align 8, !dbg !15 -; CHECK: %0 = load i64* %i.addr, align 8, !dbg !15 + call void @llvm.dbg.declare(metadata i64* %i.addr, metadata !13, metadata !MDExpression()), !dbg !14 + %0 = load i64, i64* %i.addr, align 8, !dbg !15 +; CHECK: %0 = load i64, i64* %i.addr, align 8, !dbg ![[ENTRY:[0-9]+]] %cmp = icmp slt i64 %0, 5, !dbg !15 -; CHECK: %cmp = icmp slt i64 %0, 5, !dbg !15 +; CHECK: %cmp = icmp slt i64 %0, 5, !dbg ![[ENTRY:[0-9]+]] br i1 %cmp, label %if.then, label %if.else, !dbg !15 -; CHECK: br i1 %cmp, label %if.then, label %if.else, !dbg !15 +; CHECK: br i1 %cmp, label %if.then, label %if.else, !dbg ![[ENTRY:[0-9]+]] if.then: ; preds = %entry store i32 2, i32* %retval, !dbg !15 @@ -34,7 +34,7 @@ if.else: ; preds = %entry br label %return, !dbg !15 return: ; preds = %if.else, %if.then - %1 = load i32* %retval, !dbg !17 + %1 = load i32, i32* %retval, !dbg !17 ret i32 %1, !dbg !17 } @@ -48,24 +48,25 @@ attributes #1 = { nounwind readnone } !llvm.module.flags = !{!10, !11} !llvm.ident = !{!12} -!0 = !{!"0x11\0012\00clang version 3.5.0 \000\00\000\00\001", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [./no-discriminators] [DW_LANG_C99] -!1 = !{!"no-discriminators", !"."} +!0 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: 1, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) +!1 = !MDFile(filename: "no-discriminators", directory: ".") !2 = !{} !3 = !{!4} -!4 = !{!"0x2e\00foo\00foo\00\001\000\001\000\006\00256\000\001", !1, !5, !6, null, i32 (i64)* @foo, null, null, !2} ; [ DW_TAG_subprogram ] [line 1] [def] [foo] -!5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [./no-discriminators] -!6 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!4 = !MDSubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !6, function: i32 (i64)* @foo, variables: !2) +; CHECK: ![[FOO:[0-9]+]] = !MDSubprogram(name: "foo" +!5 = !MDFile(filename: "no-discriminators", directory: ".") +!6 = !MDSubroutineType(types: !7) !7 = !{!8, !9} -!8 = !{!"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed] -!9 = !{!"0x24\00long int\000\0064\0064\000\000\005", null, null} ; [ DW_TAG_base_type ] [long int] [line 0, size 64, align 64, offset 0, enc DW_ATE_signed] +!8 = !MDBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) +!9 = !MDBasicType(tag: DW_TAG_base_type, name: "long int", size: 64, align: 64, encoding: DW_ATE_signed) !10 = !{i32 2, !"Dwarf Version", i32 2} -; CHECK: !10 = !{i32 2, !"Dwarf Version", i32 2} -!11 = !{i32 1, !"Debug Info Version", i32 2} +; CHECK: !{i32 2, !"Dwarf Version", i32 2} +!11 = !{i32 1, !"Debug Info Version", i32 3} !12 = !{!"clang version 3.5.0 "} -!13 = !{!"0x101\00i\0016777217\000", !4, !5, !9} ; [ DW_TAG_arg_variable ] [i] [line 1] +!13 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "i", line: 1, arg: 1, scope: !4, file: !5, type: !9) !14 = !MDLocation(line: 1, scope: !4) !15 = !MDLocation(line: 2, scope: !16) -; CHECK: !15 = !MDLocation(line: 2, scope: !16) -!16 = !{!"0xb\002\000\000", !1, !4} ; [ DW_TAG_lexical_block ] [./no-discriminators] -; CHECK: !16 = !{!"0xb\002\000\000", !1, !4} ; [ DW_TAG_lexical_block ] [./no-discriminators] +; CHECK: ![[ENTRY]] = !MDLocation(line: 2, scope: ![[BLOCK:[0-9]+]]) +!16 = distinct !MDLexicalBlock(line: 2, column: 0, file: !1, scope: !4) +; CHECK: ![[BLOCK]] = distinct !MDLexicalBlock(scope: ![[FOO]],{{.*}} line: 2) !17 = !MDLocation(line: 3, scope: !4) diff --git a/test/Transforms/AlignmentFromAssumptions/simple.ll b/test/Transforms/AlignmentFromAssumptions/simple.ll index 884c8ba..851e6dc 100644 --- a/test/Transforms/AlignmentFromAssumptions/simple.ll +++ b/test/Transforms/AlignmentFromAssumptions/simple.ll @@ -7,11 +7,11 @@ entry: %maskedptr = and i64 %ptrint, 31 %maskcond = icmp eq i64 %maskedptr, 0 tail call void @llvm.assume(i1 %maskcond) - %0 = load i32* %a, align 4 + %0 = load i32, i32* %a, align 4 ret i32 %0 ; CHECK-LABEL: @foo -; CHECK: load i32* {{[^,]+}}, align 32 +; CHECK: load i32, i32* {{[^,]+}}, align 32 ; CHECK: ret i32 } @@ -22,12 +22,12 @@ entry: %maskedptr = and i64 %offsetptr, 31 %maskcond = icmp eq i64 %maskedptr, 0 tail call void @llvm.assume(i1 %maskcond) - %arrayidx = getelementptr inbounds i32* %a, i64 2 - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 2 + %0 = load i32, i32* %arrayidx, align 4 ret i32 %0 ; CHECK-LABEL: @foo2 -; CHECK: load i32* {{[^,]+}}, align 16 +; CHECK: load i32, i32* {{[^,]+}}, align 16 ; CHECK: ret i32 } @@ -38,12 +38,12 @@ entry: %maskedptr = and i64 %offsetptr, 31 %maskcond = icmp eq i64 %maskedptr, 0 tail call void @llvm.assume(i1 %maskcond) - %arrayidx = getelementptr inbounds i32* %a, i64 -1 - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 -1 + %0 = load i32, i32* %arrayidx, align 4 ret i32 %0 ; CHECK-LABEL: @foo2a -; CHECK: load i32* {{[^,]+}}, align 32 +; CHECK: load i32, i32* {{[^,]+}}, align 32 ; CHECK: ret i32 } @@ -53,11 +53,11 @@ entry: %maskedptr = and i64 %ptrint, 31 %maskcond = icmp eq i64 %maskedptr, 0 tail call void @llvm.assume(i1 %maskcond) - %0 = load i32* %a, align 4 + %0 = load i32, i32* %a, align 4 ret i32 %0 ; CHECK-LABEL: @goo -; CHECK: load i32* {{[^,]+}}, align 32 +; CHECK: load i32, i32* {{[^,]+}}, align 32 ; CHECK: ret i32 } @@ -72,8 +72,8 @@ entry: for.body: ; preds = %entry, %for.body %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] %r.06 = phi i32 [ 0, %entry ], [ %add, %for.body ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %add = add nsw i32 %0, %r.06 %indvars.iv.next = add i64 %indvars.iv, 8 %1 = trunc i64 %indvars.iv.next to i32 @@ -85,7 +85,7 @@ for.end: ; preds = %for.body ret i32 %add.lcssa ; CHECK-LABEL: @hoo -; CHECK: load i32* %arrayidx, align 32 +; CHECK: load i32, i32* %arrayidx, align 32 ; CHECK: ret i32 %add.lcssa } @@ -100,8 +100,8 @@ entry: for.body: ; preds = %entry, %for.body %indvars.iv = phi i64 [ 4, %entry ], [ %indvars.iv.next, %for.body ] %r.06 = phi i32 [ 0, %entry ], [ %add, %for.body ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %add = add nsw i32 %0, %r.06 %indvars.iv.next = add i64 %indvars.iv, 8 %1 = trunc i64 %indvars.iv.next to i32 @@ -113,7 +113,7 @@ for.end: ; preds = %for.body ret i32 %add.lcssa ; CHECK-LABEL: @joo -; CHECK: load i32* %arrayidx, align 16 +; CHECK: load i32, i32* %arrayidx, align 16 ; CHECK: ret i32 %add.lcssa } @@ -128,8 +128,8 @@ entry: for.body: ; preds = %entry, %for.body %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] %r.06 = phi i32 [ 0, %entry ], [ %add, %for.body ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %add = add nsw i32 %0, %r.06 %indvars.iv.next = add i64 %indvars.iv, 4 %1 = trunc i64 %indvars.iv.next to i32 @@ -141,7 +141,7 @@ for.end: ; preds = %for.body ret i32 %add.lcssa ; CHECK-LABEL: @koo -; CHECK: load i32* %arrayidx, align 16 +; CHECK: load i32, i32* %arrayidx, align 16 ; CHECK: ret i32 %add.lcssa } @@ -156,8 +156,8 @@ entry: for.body: ; preds = %entry, %for.body %indvars.iv = phi i64 [ -4, %entry ], [ %indvars.iv.next, %for.body ] %r.06 = phi i32 [ 0, %entry ], [ %add, %for.body ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %add = add nsw i32 %0, %r.06 %indvars.iv.next = add i64 %indvars.iv, 4 %1 = trunc i64 %indvars.iv.next to i32 @@ -169,7 +169,7 @@ for.end: ; preds = %for.body ret i32 %add.lcssa ; CHECK-LABEL: @koo2 -; CHECK: load i32* %arrayidx, align 16 +; CHECK: load i32, i32* %arrayidx, align 16 ; CHECK: ret i32 %add.lcssa } diff --git a/test/Transforms/AlignmentFromAssumptions/simple32.ll b/test/Transforms/AlignmentFromAssumptions/simple32.ll index 166e7ef..2edc2e9 100644 --- a/test/Transforms/AlignmentFromAssumptions/simple32.ll +++ b/test/Transforms/AlignmentFromAssumptions/simple32.ll @@ -7,11 +7,11 @@ entry: %maskedptr = and i64 %ptrint, 31 %maskcond = icmp eq i64 %maskedptr, 0 tail call void @llvm.assume(i1 %maskcond) - %0 = load i32* %a, align 4 + %0 = load i32, i32* %a, align 4 ret i32 %0 ; CHECK-LABEL: @foo -; CHECK: load i32* {{[^,]+}}, align 32 +; CHECK: load i32, i32* {{[^,]+}}, align 32 ; CHECK: ret i32 } @@ -22,12 +22,12 @@ entry: %maskedptr = and i64 %offsetptr, 31 %maskcond = icmp eq i64 %maskedptr, 0 tail call void @llvm.assume(i1 %maskcond) - %arrayidx = getelementptr inbounds i32* %a, i64 2 - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 2 + %0 = load i32, i32* %arrayidx, align 4 ret i32 %0 ; CHECK-LABEL: @foo2 -; CHECK: load i32* {{[^,]+}}, align 16 +; CHECK: load i32, i32* {{[^,]+}}, align 16 ; CHECK: ret i32 } @@ -38,12 +38,12 @@ entry: %maskedptr = and i64 %offsetptr, 31 %maskcond = icmp eq i64 %maskedptr, 0 tail call void @llvm.assume(i1 %maskcond) - %arrayidx = getelementptr inbounds i32* %a, i64 -1 - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 -1 + %0 = load i32, i32* %arrayidx, align 4 ret i32 %0 ; CHECK-LABEL: @foo2a -; CHECK: load i32* {{[^,]+}}, align 32 +; CHECK: load i32, i32* {{[^,]+}}, align 32 ; CHECK: ret i32 } @@ -53,11 +53,11 @@ entry: %maskedptr = and i64 %ptrint, 31 %maskcond = icmp eq i64 %maskedptr, 0 tail call void @llvm.assume(i1 %maskcond) - %0 = load i32* %a, align 4 + %0 = load i32, i32* %a, align 4 ret i32 %0 ; CHECK-LABEL: @goo -; CHECK: load i32* {{[^,]+}}, align 32 +; CHECK: load i32, i32* {{[^,]+}}, align 32 ; CHECK: ret i32 } @@ -72,8 +72,8 @@ entry: for.body: ; preds = %entry, %for.body %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] %r.06 = phi i32 [ 0, %entry ], [ %add, %for.body ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %add = add nsw i32 %0, %r.06 %indvars.iv.next = add i64 %indvars.iv, 8 %1 = trunc i64 %indvars.iv.next to i32 @@ -85,7 +85,7 @@ for.end: ; preds = %for.body ret i32 %add.lcssa ; CHECK-LABEL: @hoo -; CHECK: load i32* %arrayidx, align 32 +; CHECK: load i32, i32* %arrayidx, align 32 ; CHECK: ret i32 %add.lcssa } @@ -100,8 +100,8 @@ entry: for.body: ; preds = %entry, %for.body %indvars.iv = phi i64 [ 4, %entry ], [ %indvars.iv.next, %for.body ] %r.06 = phi i32 [ 0, %entry ], [ %add, %for.body ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %add = add nsw i32 %0, %r.06 %indvars.iv.next = add i64 %indvars.iv, 8 %1 = trunc i64 %indvars.iv.next to i32 @@ -113,7 +113,7 @@ for.end: ; preds = %for.body ret i32 %add.lcssa ; CHECK-LABEL: @joo -; CHECK: load i32* %arrayidx, align 16 +; CHECK: load i32, i32* %arrayidx, align 16 ; CHECK: ret i32 %add.lcssa } @@ -128,8 +128,8 @@ entry: for.body: ; preds = %entry, %for.body %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] %r.06 = phi i32 [ 0, %entry ], [ %add, %for.body ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %add = add nsw i32 %0, %r.06 %indvars.iv.next = add i64 %indvars.iv, 4 %1 = trunc i64 %indvars.iv.next to i32 @@ -141,7 +141,7 @@ for.end: ; preds = %for.body ret i32 %add.lcssa ; CHECK-LABEL: @koo -; CHECK: load i32* %arrayidx, align 16 +; CHECK: load i32, i32* %arrayidx, align 16 ; CHECK: ret i32 %add.lcssa } @@ -156,8 +156,8 @@ entry: for.body: ; preds = %entry, %for.body %indvars.iv = phi i64 [ -4, %entry ], [ %indvars.iv.next, %for.body ] %r.06 = phi i32 [ 0, %entry ], [ %add, %for.body ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %add = add nsw i32 %0, %r.06 %indvars.iv.next = add i64 %indvars.iv, 4 %1 = trunc i64 %indvars.iv.next to i32 @@ -169,7 +169,7 @@ for.end: ; preds = %for.body ret i32 %add.lcssa ; CHECK-LABEL: @koo2 -; CHECK: load i32* %arrayidx, align 16 +; CHECK: load i32, i32* %arrayidx, align 16 ; CHECK: ret i32 %add.lcssa } diff --git a/test/Transforms/AlignmentFromAssumptions/start-unk.ll b/test/Transforms/AlignmentFromAssumptions/start-unk.ll index b7fe249..99533cf 100644 --- a/test/Transforms/AlignmentFromAssumptions/start-unk.ll +++ b/test/Transforms/AlignmentFromAssumptions/start-unk.ll @@ -79,13 +79,13 @@ if.then126: ; preds = %if.end123 %maskcond.i.i187 = icmp eq i64 %maskedptr.i.i186, 0 tail call void @llvm.assume(i1 %maskcond.i.i187) #0 %ret.0..sroa_cast.i.i188 = bitcast %type1* undef to i32* - %ret.0.copyload.i.i189 = load i32* %ret.0..sroa_cast.i.i188, align 2 + %ret.0.copyload.i.i189 = load i32, i32* %ret.0..sroa_cast.i.i188, align 2 ; CHECK: load {{.*}} align 2 %0 = tail call i32 @llvm.bswap.i32(i32 %ret.0.copyload.i.i189) #0 %conv131 = zext i32 %0 to i64 - %add.ptr132 = getelementptr inbounds i8* undef, i64 %conv131 + %add.ptr132 = getelementptr inbounds i8, i8* undef, i64 %conv131 %1 = bitcast i8* %add.ptr132 to %type1* br i1 undef, label %if.end150, label %if.end.i173 @@ -113,11 +113,11 @@ for.body137: ; preds = %test1b.exit, %for.b br i1 undef, label %for.body137.if.end146_crit_edge, label %if.then140 for.body137.if.end146_crit_edge: ; preds = %for.body137 - %incdec.ptr = getelementptr inbounds %type1* %ShndxTable.0309, i64 1 + %incdec.ptr = getelementptr inbounds %type1, %type1* %ShndxTable.0309, i64 1 br i1 undef, label %cond.false.i70, label %cond.end.i if.then140: ; preds = %for.body137 - %ret.0.copyload.i.i102 = load i32* %ret.0..sroa_cast.i.i106, align 2 + %ret.0.copyload.i.i102 = load i32, i32* %ret.0..sroa_cast.i.i106, align 2 ; CHECK: load {{.*}} align 2 diff --git a/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll b/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll index 1226b98..c988774 100644 --- a/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll +++ b/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll @@ -3,7 +3,7 @@ ; CHECK: define internal i32 @deref(i32 %x.val) #0 { define internal i32 @deref(i32* %x) nounwind { entry: - %tmp2 = load i32* %x, align 4 + %tmp2 = load i32, i32* %x, align 4 ret i32 %tmp2 } diff --git a/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll b/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll index 210eb97..267a6c0 100644 --- a/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll +++ b/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll @@ -7,14 +7,14 @@ define internal i32 @callee(i1 %C, i32* %A) { entry: ; Unconditonally load the element at %A - %A.0 = load i32* %A + %A.0 = load i32, i32* %A br i1 %C, label %T, label %F T: ret i32 %A.0 F: ; Load the element at offset two from %A. This should not be promoted! - %A.2 = getelementptr i32* %A, i32 2 - %R = load i32* %A.2 + %A.2 = getelementptr i32, i32* %A, i32 2 + %R = load i32, i32* %A.2 ret i32 %R } diff --git a/test/Transforms/ArgumentPromotion/aggregate-promote.ll b/test/Transforms/ArgumentPromotion/aggregate-promote.ll index 12de511..3f521ba 100644 --- a/test/Transforms/ArgumentPromotion/aggregate-promote.ll +++ b/test/Transforms/ArgumentPromotion/aggregate-promote.ll @@ -9,10 +9,10 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1 i32 25 } ; <%QuadTy*> [#uses=1] define internal i32 @test(%QuadTy* %P) { - %A = getelementptr %QuadTy* %P, i64 0, i32 3 ; [#uses=1] - %B = getelementptr %QuadTy* %P, i64 0, i32 2 ; [#uses=1] - %a = load i32* %A ; [#uses=1] - %b = load i32* %B ; [#uses=1] + %A = getelementptr %QuadTy, %QuadTy* %P, i64 0, i32 3 ; [#uses=1] + %B = getelementptr %QuadTy, %QuadTy* %P, i64 0, i32 2 ; [#uses=1] + %a = load i32, i32* %A ; [#uses=1] + %b = load i32, i32* %B ; [#uses=1] %V = add i32 %a, %b ; [#uses=1] ret i32 %V } diff --git a/test/Transforms/ArgumentPromotion/attrs.ll b/test/Transforms/ArgumentPromotion/attrs.ll index 49c0750..46128f9 100644 --- a/test/Transforms/ArgumentPromotion/attrs.ll +++ b/test/Transforms/ArgumentPromotion/attrs.ll @@ -4,8 +4,8 @@ define internal void @f(%struct.ss* byval %b, i32* byval %X, i32 %i) nounwind { entry: - %tmp = getelementptr %struct.ss* %b, i32 0, i32 0 - %tmp1 = load i32* %tmp, align 4 + %tmp = getelementptr %struct.ss, %struct.ss* %b, i32 0, i32 0 + %tmp1 = load i32, i32* %tmp, align 4 %tmp2 = add i32 %tmp1, 1 store i32 %tmp2, i32* %tmp, align 4 @@ -16,9 +16,9 @@ entry: define i32 @test(i32* %X) { entry: %S = alloca %struct.ss ; <%struct.ss*> [#uses=4] - %tmp1 = getelementptr %struct.ss* %S, i32 0, i32 0 ; [#uses=1] + %tmp1 = getelementptr %struct.ss, %struct.ss* %S, i32 0, i32 0 ; [#uses=1] store i32 1, i32* %tmp1, align 8 - %tmp4 = getelementptr %struct.ss* %S, i32 0, i32 1 ; [#uses=1] + %tmp4 = getelementptr %struct.ss, %struct.ss* %S, i32 0, i32 1 ; [#uses=1] store i64 2, i64* %tmp4, align 4 call void @f( %struct.ss* byval %S, i32* byval %X, i32 zeroext 0) ret i32 0 diff --git a/test/Transforms/ArgumentPromotion/basictest.ll b/test/Transforms/ArgumentPromotion/basictest.ll index 8f78b98..89888bb 100644 --- a/test/Transforms/ArgumentPromotion/basictest.ll +++ b/test/Transforms/ArgumentPromotion/basictest.ll @@ -3,8 +3,8 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1 define internal i32 @test(i32* %X, i32* %Y) { ; CHECK-LABEL: define internal i32 @test(i32 %X.val, i32 %Y.val) - %A = load i32* %X - %B = load i32* %Y + %A = load i32, i32* %X + %B = load i32, i32* %Y %C = add i32 %A, %B ret i32 %C } diff --git a/test/Transforms/ArgumentPromotion/byval-2.ll b/test/Transforms/ArgumentPromotion/byval-2.ll index b412f5e..6c0288f 100644 --- a/test/Transforms/ArgumentPromotion/byval-2.ll +++ b/test/Transforms/ArgumentPromotion/byval-2.ll @@ -8,8 +8,8 @@ define internal void @f(%struct.ss* byval %b, i32* byval %X) nounwind { ; CHECK-LABEL: define internal void @f(i32 %b.0, i64 %b.1, i32* byval %X) entry: - %tmp = getelementptr %struct.ss* %b, i32 0, i32 0 - %tmp1 = load i32* %tmp, align 4 + %tmp = getelementptr %struct.ss, %struct.ss* %b, i32 0, i32 0 + %tmp1 = load i32, i32* %tmp, align 4 %tmp2 = add i32 %tmp1, 1 store i32 %tmp2, i32* %tmp, align 4 @@ -21,9 +21,9 @@ define i32 @test(i32* %X) { ; CHECK-LABEL: define i32 @test entry: %S = alloca %struct.ss - %tmp1 = getelementptr %struct.ss* %S, i32 0, i32 0 + %tmp1 = getelementptr %struct.ss, %struct.ss* %S, i32 0, i32 0 store i32 1, i32* %tmp1, align 8 - %tmp4 = getelementptr %struct.ss* %S, i32 0, i32 1 + %tmp4 = getelementptr %struct.ss, %struct.ss* %S, i32 0, i32 1 store i64 2, i64* %tmp4, align 4 call void @f( %struct.ss* byval %S, i32* byval %X) ; CHECK: call void @f(i32 %{{.*}}, i64 %{{.*}}, i32* byval %{{.*}}) diff --git a/test/Transforms/ArgumentPromotion/byval.ll b/test/Transforms/ArgumentPromotion/byval.ll index 27305e9..b091b09 100644 --- a/test/Transforms/ArgumentPromotion/byval.ll +++ b/test/Transforms/ArgumentPromotion/byval.ll @@ -7,8 +7,8 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1 define internal void @f(%struct.ss* byval %b) nounwind { ; CHECK-LABEL: define internal void @f(i32 %b.0, i64 %b.1) entry: - %tmp = getelementptr %struct.ss* %b, i32 0, i32 0 ; [#uses=2] - %tmp1 = load i32* %tmp, align 4 ; [#uses=1] + %tmp = getelementptr %struct.ss, %struct.ss* %b, i32 0, i32 0 ; [#uses=2] + %tmp1 = load i32, i32* %tmp, align 4 ; [#uses=1] %tmp2 = add i32 %tmp1, 1 ; [#uses=1] store i32 %tmp2, i32* %tmp, align 4 ret void @@ -18,9 +18,9 @@ define i32 @main() nounwind { ; CHECK-LABEL: define i32 @main entry: %S = alloca %struct.ss ; <%struct.ss*> [#uses=4] - %tmp1 = getelementptr %struct.ss* %S, i32 0, i32 0 ; [#uses=1] + %tmp1 = getelementptr %struct.ss, %struct.ss* %S, i32 0, i32 0 ; [#uses=1] store i32 1, i32* %tmp1, align 8 - %tmp4 = getelementptr %struct.ss* %S, i32 0, i32 1 ; [#uses=1] + %tmp4 = getelementptr %struct.ss, %struct.ss* %S, i32 0, i32 1 ; [#uses=1] store i64 2, i64* %tmp4, align 4 call void @f( %struct.ss* byval %S ) nounwind ; CHECK: call void @f(i32 %{{.*}}, i64 %{{.*}}) diff --git a/test/Transforms/ArgumentPromotion/chained.ll b/test/Transforms/ArgumentPromotion/chained.ll index c9a4538..6ba2e8d 100644 --- a/test/Transforms/ArgumentPromotion/chained.ll +++ b/test/Transforms/ArgumentPromotion/chained.ll @@ -5,8 +5,8 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1 @G2 = constant i32* @G1 ; [#uses=1] define internal i32 @test(i32** %X) { - %Y = load i32** %X ; [#uses=1] - %X.upgrd.1 = load i32* %Y ; [#uses=1] + %Y = load i32*, i32** %X ; [#uses=1] + %X.upgrd.1 = load i32, i32* %Y ; [#uses=1] ret i32 %X.upgrd.1 } diff --git a/test/Transforms/ArgumentPromotion/control-flow.ll b/test/Transforms/ArgumentPromotion/control-flow.ll index e4a61da..cdff36e 100644 --- a/test/Transforms/ArgumentPromotion/control-flow.ll +++ b/test/Transforms/ArgumentPromotion/control-flow.ll @@ -8,7 +8,7 @@ T: ; preds = %0 ret i32 17 F: ; preds = %0 - %X = load i32* %P ; [#uses=1] + %X = load i32, i32* %P ; [#uses=1] ret i32 %X } diff --git a/test/Transforms/ArgumentPromotion/control-flow2.ll b/test/Transforms/ArgumentPromotion/control-flow2.ll index db63584..7413f46 100644 --- a/test/Transforms/ArgumentPromotion/control-flow2.ll +++ b/test/Transforms/ArgumentPromotion/control-flow2.ll @@ -1,6 +1,6 @@ ; RUN: opt < %s -argpromotion -S | FileCheck %s -; CHECK: load i32* %A +; CHECK: load i32, i32* %A target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128" define internal i32 @callee(i1 %C, i32* %P) { @@ -10,7 +10,7 @@ T: ; preds = %0 ret i32 17 F: ; preds = %0 - %X = load i32* %P ; [#uses=1] + %X = load i32, i32* %P ; [#uses=1] ret i32 %X } diff --git a/test/Transforms/ArgumentPromotion/crash.ll b/test/Transforms/ArgumentPromotion/crash.ll index 5e1a037..dbd343a 100644 --- a/test/Transforms/ArgumentPromotion/crash.ll +++ b/test/Transforms/ArgumentPromotion/crash.ll @@ -50,10 +50,10 @@ init: define internal i32 @"clay_assign(Chain, Chain)"(%0* %c, %0* %d) { init: - %0 = getelementptr %0* %d, i32 0, i32 0 - %1 = load %0** %0 - %2 = getelementptr %0* %c, i32 0, i32 0 - %3 = load %0** %2 + %0 = getelementptr %0, %0* %d, i32 0, i32 0 + %1 = load %0*, %0** %0 + %2 = getelementptr %0, %0* %c, i32 0, i32 0 + %3 = load %0*, %0** %2 %4 = call i32 @"clay_assign(Chain, Chain)"(%0* %3, %0* %1) ret i32 0 } diff --git a/test/Transforms/ArgumentPromotion/dbg.ll b/test/Transforms/ArgumentPromotion/dbg.ll index 65cf367..69bd4d2 100644 --- a/test/Transforms/ArgumentPromotion/dbg.ll +++ b/test/Transforms/ArgumentPromotion/dbg.ll @@ -1,12 +1,12 @@ ; RUN: opt < %s -argpromotion -S | FileCheck %s ; CHECK: call void @test(i32 % -; CHECK: void (i32)* @test, {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [test] +; CHECK: !MDSubprogram(name: "test",{{.*}} function: void (i32)* @test declare void @sink(i32) define internal void @test(i32** %X) { - %1 = load i32** %X, align 8 - %2 = load i32* %1, align 8 + %1 = load i32*, i32** %X, align 8 + %2 = load i32, i32* %1, align 8 call void @sink(i32 %2) ret void } @@ -19,8 +19,9 @@ define void @caller(i32** %Y) { !llvm.module.flags = !{!0} !llvm.dbg.cu = !{!3} -!0 = !{i32 2, !"Debug Info Version", i32 2} +!0 = !{i32 2, !"Debug Info Version", i32 3} !1 = !MDLocation(line: 8, scope: !2) -!2 = !{!"0x2e\00test\00test\00\003\001\001\000\006\00256\000\003", null, null, null, null, void (i32**)* @test, null, null, null} ; [ DW_TAG_subprogram ] -!3 = !{!"0x11\004\00clang version 3.5.0 \000\00\000\00\002", null, null, null, !4, null, null} ; [ DW_TAG_compile_unit ] [/usr/local/google/home/blaikie/dev/scratch/pr20038/reduce/] [DW_LANG_C_plus_plus] +!2 = !MDSubprogram(name: "test", line: 3, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 3, scope: null, function: void (i32**)* @test) +!3 = !MDCompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: 2, file: !5, subprograms: !4) !4 = !{!2} +!5 = !MDFile(filename: "test.c", directory: "") diff --git a/test/Transforms/ArgumentPromotion/fp80.ll b/test/Transforms/ArgumentPromotion/fp80.ll index a770d60..84ef603 100644 --- a/test/Transforms/ArgumentPromotion/fp80.ll +++ b/test/Transforms/ArgumentPromotion/fp80.ll @@ -24,22 +24,22 @@ entry: define internal i8 @UseLongDoubleUnsafely(%union.u* byval align 16 %arg) { entry: %bitcast = bitcast %union.u* %arg to %struct.s* - %gep = getelementptr inbounds %struct.s* %bitcast, i64 0, i32 2 - %result = load i8* %gep + %gep = getelementptr inbounds %struct.s, %struct.s* %bitcast, i64 0, i32 2 + %result = load i8, i8* %gep ret i8 %result } ; CHECK: internal x86_fp80 @UseLongDoubleSafely(x86_fp80 {{%.*}}) { define internal x86_fp80 @UseLongDoubleSafely(%union.u* byval align 16 %arg) { - %gep = getelementptr inbounds %union.u* %arg, i64 0, i32 0 - %fp80 = load x86_fp80* %gep + %gep = getelementptr inbounds %union.u, %union.u* %arg, i64 0, i32 0 + %fp80 = load x86_fp80, x86_fp80* %gep ret x86_fp80 %fp80 } ; CHECK: define internal i64 @AccessPaddingOfStruct(%struct.Foo* byval %a) { define internal i64 @AccessPaddingOfStruct(%struct.Foo* byval %a) { %p = bitcast %struct.Foo* %a to i64* - %v = load i64* %p + %v = load i64, i64* %p ret i64 %v } @@ -53,6 +53,6 @@ loop: %phi = phi %struct.Foo* [ null, %entry ], [ %gep, %loop ] %0 = phi %struct.Foo* [ %a, %entry ], [ %0, %loop ] store %struct.Foo* %phi, %struct.Foo** %a_ptr - %gep = getelementptr %struct.Foo* %a, i64 0 + %gep = getelementptr %struct.Foo, %struct.Foo* %a, i64 0 br label %loop } diff --git a/test/Transforms/ArgumentPromotion/inalloca.ll b/test/Transforms/ArgumentPromotion/inalloca.ll index 089a78f..80bd6fd 100644 --- a/test/Transforms/ArgumentPromotion/inalloca.ll +++ b/test/Transforms/ArgumentPromotion/inalloca.ll @@ -7,10 +7,10 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1 ; Argpromote + scalarrepl should change this to passing the two integers by value. define internal i32 @f(%struct.ss* inalloca %s) { entry: - %f0 = getelementptr %struct.ss* %s, i32 0, i32 0 - %f1 = getelementptr %struct.ss* %s, i32 0, i32 1 - %a = load i32* %f0, align 4 - %b = load i32* %f1, align 4 + %f0 = getelementptr %struct.ss, %struct.ss* %s, i32 0, i32 0 + %f1 = getelementptr %struct.ss, %struct.ss* %s, i32 0, i32 1 + %a = load i32, i32* %f0, align 4 + %b = load i32, i32* %f1, align 4 %r = add i32 %a, %b ret i32 %r } @@ -21,8 +21,8 @@ entry: define i32 @main() { entry: %S = alloca inalloca %struct.ss - %f0 = getelementptr %struct.ss* %S, i32 0, i32 0 - %f1 = getelementptr %struct.ss* %S, i32 0, i32 1 + %f0 = getelementptr %struct.ss, %struct.ss* %S, i32 0, i32 0 + %f1 = getelementptr %struct.ss, %struct.ss* %S, i32 0, i32 1 store i32 1, i32* %f0, align 4 store i32 2, i32* %f1, align 4 %r = call i32 @f(%struct.ss* inalloca %S) diff --git a/test/Transforms/ArgumentPromotion/reserve-tbaa.ll b/test/Transforms/ArgumentPromotion/reserve-tbaa.ll index db9d70d..3c8ed79 100644 --- a/test/Transforms/ArgumentPromotion/reserve-tbaa.ll +++ b/test/Transforms/ArgumentPromotion/reserve-tbaa.ll @@ -14,9 +14,9 @@ define internal fastcc void @fn(i32* nocapture readonly %p1, i64* nocapture readonly %p2) { entry: - %0 = load i64* %p2, align 8, !tbaa !1 + %0 = load i64, i64* %p2, align 8, !tbaa !1 %conv = trunc i64 %0 to i32 - %1 = load i32* %p1, align 4, !tbaa !5 + %1 = load i32, i32* %p1, align 4, !tbaa !5 %conv1 = trunc i32 %1 to i8 store i8 %conv1, i8* @d, align 1, !tbaa !7 ret void @@ -26,11 +26,11 @@ define i32 @main() { entry: ; CHECK-LABEL: main ; CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa ![[I32:[0-9]+]] -; CHECK: %g.val = load i32* @g, align 4, !tbaa ![[I32]] -; CHECK: %c.val = load i64* @c, align 8, !tbaa ![[LONG:[0-9]+]] - %0 = load i32*** @e, align 8, !tbaa !8 +; CHECK: %g.val = load i32, i32* @g, align 4, !tbaa ![[I32]] +; CHECK: %c.val = load i64, i64* @c, align 8, !tbaa ![[LONG:[0-9]+]] + %0 = load i32**, i32*** @e, align 8, !tbaa !8 store i32* @g, i32** %0, align 8, !tbaa !8 - %1 = load i32** @a, align 8, !tbaa !8 + %1 = load i32*, i32** @a, align 8, !tbaa !8 store i32 1, i32* %1, align 4, !tbaa !5 call fastcc void @fn(i32* @g, i64* @c) diff --git a/test/Transforms/BBVectorize/X86/loop1.ll b/test/Transforms/BBVectorize/X86/loop1.ll index 4018084..c3c3045 100644 --- a/test/Transforms/BBVectorize/X86/loop1.ll +++ b/test/Transforms/BBVectorize/X86/loop1.ll @@ -12,10 +12,10 @@ entry: for.body: ; preds = %for.body, %entry %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] - %arrayidx = getelementptr inbounds double* %in1, i64 %indvars.iv - %0 = load double* %arrayidx, align 8 - %arrayidx2 = getelementptr inbounds double* %in2, i64 %indvars.iv - %1 = load double* %arrayidx2, align 8 + %arrayidx = getelementptr inbounds double, double* %in1, i64 %indvars.iv + %0 = load double, double* %arrayidx, align 8 + %arrayidx2 = getelementptr inbounds double, double* %in2, i64 %indvars.iv + %1 = load double, double* %arrayidx2, align 8 %mul = fmul double %0, %0 %mul3 = fmul double %0, %1 %add = fadd double %mul, %mul3 @@ -28,7 +28,7 @@ for.body: ; preds = %for.body, %entry %add10 = fadd double %add9, %0 %mul11 = fmul double %mul8, %add10 %add12 = fadd double %add7, %mul11 - %arrayidx14 = getelementptr inbounds double* %out, i64 %indvars.iv + %arrayidx14 = getelementptr inbounds double, double* %out, i64 %indvars.iv store double %add12, double* %arrayidx14, align 8 %indvars.iv.next = add i64 %indvars.iv, 1 %lftr.wideiv = trunc i64 %indvars.iv.next to i32 diff --git a/test/Transforms/BBVectorize/X86/pr15289.ll b/test/Transforms/BBVectorize/X86/pr15289.ll index 42bd0ff..a383a26 100644 --- a/test/Transforms/BBVectorize/X86/pr15289.ll +++ b/test/Transforms/BBVectorize/X86/pr15289.ll @@ -44,43 +44,43 @@ entry: %12 = fsub double undef, %7 %13 = fmul double %3, %12 %14 = fmul double %3, undef - %15 = getelementptr inbounds [5 x { double, double }]* %c2ten, i64 0, i64 0, i32 0 + %15 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 0, i32 0 store double %13, double* %15, align 8 - %16 = getelementptr inbounds [5 x { double, double }]* %c2ten, i64 0, i64 0, i32 1 + %16 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 0, i32 1 %17 = fmul double undef, %8 %18 = fmul double %17, undef %19 = fmul double undef, %18 %20 = fadd double undef, undef %21 = fmul double %3, %19 %22 = fsub double -0.000000e+00, %21 - %23 = getelementptr inbounds [5 x { double, double }]* %c2ten, i64 0, i64 1, i32 0 + %23 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 1, i32 0 store double %22, double* %23, align 8 - %24 = getelementptr inbounds [5 x { double, double }]* %c2ten, i64 0, i64 1, i32 1 + %24 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 1, i32 1 %25 = fmul double undef, 0x3FE42F601A8C6794 %26 = fmul double undef, 2.000000e+00 %27 = fsub double %26, %0 %28 = fmul double %6, undef %29 = fsub double undef, %28 - %30 = getelementptr inbounds [5 x { double, double }]* %c2ten, i64 0, i64 2, i32 0 + %30 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 2, i32 0 store double undef, double* %30, align 8 - %31 = getelementptr inbounds [5 x { double, double }]* %c2ten, i64 0, i64 2, i32 1 + %31 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 2, i32 1 %32 = fmul double undef, %17 %33 = fmul double undef, %17 %34 = fmul double undef, %32 %35 = fmul double undef, %33 %36 = fsub double undef, %35 %37 = fmul double %3, %34 - %38 = getelementptr inbounds [5 x { double, double }]* %c2ten, i64 0, i64 3, i32 0 + %38 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 3, i32 0 store double %37, double* %38, align 8 - %39 = getelementptr inbounds [5 x { double, double }]* %c2ten, i64 0, i64 3, i32 1 + %39 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 3, i32 1 %40 = fmul double undef, %8 %41 = fmul double undef, %40 %42 = fmul double undef, %41 %43 = fsub double undef, %42 %44 = fmul double %3, %43 - %45 = getelementptr inbounds [5 x { double, double }]* %c2ten, i64 0, i64 4, i32 0 + %45 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 4, i32 0 store double %13, double* %45, align 8 - %46 = getelementptr inbounds [5 x { double, double }]* %c2ten, i64 0, i64 4, i32 1 + %46 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 4, i32 1 %47 = fsub double -0.000000e+00, %14 store double %47, double* %16, align 8 store double undef, double* %24, align 8 diff --git a/test/Transforms/BBVectorize/X86/sh-rec.ll b/test/Transforms/BBVectorize/X86/sh-rec.ll index ad75fc9..2cb9dbd 100644 --- a/test/Transforms/BBVectorize/X86/sh-rec.ll +++ b/test/Transforms/BBVectorize/X86/sh-rec.ll @@ -8,39 +8,39 @@ entry: br i1 undef, label %return, label %if.end10 if.end10: ; preds = %entry - %incdec.ptr = getelementptr inbounds i8* %call, i64 undef + %incdec.ptr = getelementptr inbounds i8, i8* %call, i64 undef %call17 = call i32 @ptou() nounwind - %incdec.ptr26.1 = getelementptr inbounds i8* %incdec.ptr, i64 -2 + %incdec.ptr26.1 = getelementptr inbounds i8, i8* %incdec.ptr, i64 -2 store i8 undef, i8* %incdec.ptr26.1, align 1 %div27.1 = udiv i32 %call17, 100 %rem.2 = urem i32 %div27.1, 10 %add2230.2 = or i32 %rem.2, 48 %conv25.2 = trunc i32 %add2230.2 to i8 - %incdec.ptr26.2 = getelementptr inbounds i8* %incdec.ptr, i64 -3 + %incdec.ptr26.2 = getelementptr inbounds i8, i8* %incdec.ptr, i64 -3 store i8 %conv25.2, i8* %incdec.ptr26.2, align 1 - %incdec.ptr26.3 = getelementptr inbounds i8* %incdec.ptr, i64 -4 + %incdec.ptr26.3 = getelementptr inbounds i8, i8* %incdec.ptr, i64 -4 store i8 undef, i8* %incdec.ptr26.3, align 1 %div27.3 = udiv i32 %call17, 10000 %rem.4 = urem i32 %div27.3, 10 %add2230.4 = or i32 %rem.4, 48 %conv25.4 = trunc i32 %add2230.4 to i8 - %incdec.ptr26.4 = getelementptr inbounds i8* %incdec.ptr, i64 -5 + %incdec.ptr26.4 = getelementptr inbounds i8, i8* %incdec.ptr, i64 -5 store i8 %conv25.4, i8* %incdec.ptr26.4, align 1 %div27.4 = udiv i32 %call17, 100000 %rem.5 = urem i32 %div27.4, 10 %add2230.5 = or i32 %rem.5, 48 %conv25.5 = trunc i32 %add2230.5 to i8 - %incdec.ptr26.5 = getelementptr inbounds i8* %incdec.ptr, i64 -6 + %incdec.ptr26.5 = getelementptr inbounds i8, i8* %incdec.ptr, i64 -6 store i8 %conv25.5, i8* %incdec.ptr26.5, align 1 - %incdec.ptr26.6 = getelementptr inbounds i8* %incdec.ptr, i64 -7 + %incdec.ptr26.6 = getelementptr inbounds i8, i8* %incdec.ptr, i64 -7 store i8 0, i8* %incdec.ptr26.6, align 1 - %incdec.ptr26.7 = getelementptr inbounds i8* %incdec.ptr, i64 -8 + %incdec.ptr26.7 = getelementptr inbounds i8, i8* %incdec.ptr, i64 -8 store i8 undef, i8* %incdec.ptr26.7, align 1 %div27.7 = udiv i32 %call17, 100000000 %rem.8 = urem i32 %div27.7, 10 %add2230.8 = or i32 %rem.8, 48 %conv25.8 = trunc i32 %add2230.8 to i8 - %incdec.ptr26.8 = getelementptr inbounds i8* %incdec.ptr, i64 -9 + %incdec.ptr26.8 = getelementptr inbounds i8, i8* %incdec.ptr, i64 -9 store i8 %conv25.8, i8* %incdec.ptr26.8, align 1 unreachable diff --git a/test/Transforms/BBVectorize/X86/sh-rec2.ll b/test/Transforms/BBVectorize/X86/sh-rec2.ll index d65ac1c..d7a004c 100644 --- a/test/Transforms/BBVectorize/X86/sh-rec2.ll +++ b/test/Transforms/BBVectorize/X86/sh-rec2.ll @@ -7,72 +7,72 @@ target triple = "x86_64-unknown-linux-gnu" define void @gsm_encode(%struct.gsm_state.2.8.14.15.16.17.19.22.23.25.26.28.29.31.32.33.35.36.37.38.40.41.42.44.45.47.48.50.52.53.54.56.57.58.59.60.61.62.63.66.73.83.84.89.90.91.92.93.94.95.96.99.100.101.102.103.104.106.107.114.116.121.122.129.130.135.136.137.138.139.140.141.142.143.144.147.148.149.158.159.160.161.164.165.166.167.168.169.172.179.181.182.183.188.195.200.201.202.203.204.205.208.209.210.212.213.214.215.222.223.225.226.230.231.232.233.234.235.236.237.238.239.240.241.242.243.244.352* %s, i16* %source, i8* %c) nounwind uwtable { entry: %xmc = alloca [52 x i16], align 16 - %arraydecay5 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 0 + %arraydecay5 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 0 call void @Gsm_Coder(%struct.gsm_state.2.8.14.15.16.17.19.22.23.25.26.28.29.31.32.33.35.36.37.38.40.41.42.44.45.47.48.50.52.53.54.56.57.58.59.60.61.62.63.66.73.83.84.89.90.91.92.93.94.95.96.99.100.101.102.103.104.106.107.114.116.121.122.129.130.135.136.137.138.139.140.141.142.143.144.147.148.149.158.159.160.161.164.165.166.167.168.169.172.179.181.182.183.188.195.200.201.202.203.204.205.208.209.210.212.213.214.215.222.223.225.226.230.231.232.233.234.235.236.237.238.239.240.241.242.243.244.352* %s, i16* %source, i16* undef, i16* null, i16* undef, i16* undef, i16* undef, i16* %arraydecay5) nounwind - %incdec.ptr136 = getelementptr inbounds i8* %c, i64 10 - %incdec.ptr157 = getelementptr inbounds i8* %c, i64 11 + %incdec.ptr136 = getelementptr inbounds i8, i8* %c, i64 10 + %incdec.ptr157 = getelementptr inbounds i8, i8* %c, i64 11 store i8 0, i8* %incdec.ptr136, align 1 - %arrayidx162 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 11 - %0 = load i16* %arrayidx162, align 2 + %arrayidx162 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 11 + %0 = load i16, i16* %arrayidx162, align 2 %conv1631 = trunc i16 %0 to i8 %and164 = shl i8 %conv1631, 3 %shl165 = and i8 %and164, 56 - %incdec.ptr172 = getelementptr inbounds i8* %c, i64 12 + %incdec.ptr172 = getelementptr inbounds i8, i8* %c, i64 12 store i8 %shl165, i8* %incdec.ptr157, align 1 - %1 = load i16* inttoptr (i64 2 to i16*), align 2 + %1 = load i16, i16* inttoptr (i64 2 to i16*), align 2 %conv1742 = trunc i16 %1 to i8 %and175 = shl i8 %conv1742, 1 - %incdec.ptr183 = getelementptr inbounds i8* %c, i64 13 + %incdec.ptr183 = getelementptr inbounds i8, i8* %c, i64 13 store i8 %and175, i8* %incdec.ptr172, align 1 - %incdec.ptr199 = getelementptr inbounds i8* %c, i64 14 + %incdec.ptr199 = getelementptr inbounds i8, i8* %c, i64 14 store i8 0, i8* %incdec.ptr183, align 1 - %arrayidx214 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 15 - %incdec.ptr220 = getelementptr inbounds i8* %c, i64 15 + %arrayidx214 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 15 + %incdec.ptr220 = getelementptr inbounds i8, i8* %c, i64 15 store i8 0, i8* %incdec.ptr199, align 1 - %2 = load i16* %arrayidx214, align 2 + %2 = load i16, i16* %arrayidx214, align 2 %conv2223 = trunc i16 %2 to i8 %and223 = shl i8 %conv2223, 6 - %incdec.ptr235 = getelementptr inbounds i8* %c, i64 16 + %incdec.ptr235 = getelementptr inbounds i8, i8* %c, i64 16 store i8 %and223, i8* %incdec.ptr220, align 1 - %arrayidx240 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 19 - %3 = load i16* %arrayidx240, align 2 + %arrayidx240 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 19 + %3 = load i16, i16* %arrayidx240, align 2 %conv2414 = trunc i16 %3 to i8 %and242 = shl i8 %conv2414, 2 %shl243 = and i8 %and242, 28 - %incdec.ptr251 = getelementptr inbounds i8* %c, i64 17 + %incdec.ptr251 = getelementptr inbounds i8, i8* %c, i64 17 store i8 %shl243, i8* %incdec.ptr235, align 1 - %incdec.ptr272 = getelementptr inbounds i8* %c, i64 18 + %incdec.ptr272 = getelementptr inbounds i8, i8* %c, i64 18 store i8 0, i8* %incdec.ptr251, align 1 - %arrayidx282 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 25 - %4 = load i16* %arrayidx282, align 2 + %arrayidx282 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 25 + %4 = load i16, i16* %arrayidx282, align 2 %conv2835 = trunc i16 %4 to i8 %and284 = and i8 %conv2835, 7 - %incdec.ptr287 = getelementptr inbounds i8* %c, i64 19 + %incdec.ptr287 = getelementptr inbounds i8, i8* %c, i64 19 store i8 %and284, i8* %incdec.ptr272, align 1 - %incdec.ptr298 = getelementptr inbounds i8* %c, i64 20 + %incdec.ptr298 = getelementptr inbounds i8, i8* %c, i64 20 store i8 0, i8* %incdec.ptr287, align 1 - %incdec.ptr314 = getelementptr inbounds i8* %c, i64 21 + %incdec.ptr314 = getelementptr inbounds i8, i8* %c, i64 21 store i8 0, i8* %incdec.ptr298, align 1 - %arrayidx319 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 26 - %5 = load i16* %arrayidx319, align 4 + %arrayidx319 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 26 + %5 = load i16, i16* %arrayidx319, align 4 %conv3206 = trunc i16 %5 to i8 %and321 = shl i8 %conv3206, 4 %shl322 = and i8 %and321, 112 - %incdec.ptr335 = getelementptr inbounds i8* %c, i64 22 + %incdec.ptr335 = getelementptr inbounds i8, i8* %c, i64 22 store i8 %shl322, i8* %incdec.ptr314, align 1 - %arrayidx340 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 29 - %6 = load i16* %arrayidx340, align 2 + %arrayidx340 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 29 + %6 = load i16, i16* %arrayidx340, align 2 %conv3417 = trunc i16 %6 to i8 %and342 = shl i8 %conv3417, 3 %shl343 = and i8 %and342, 56 - %incdec.ptr350 = getelementptr inbounds i8* %c, i64 23 + %incdec.ptr350 = getelementptr inbounds i8, i8* %c, i64 23 store i8 %shl343, i8* %incdec.ptr335, align 1 - %incdec.ptr366 = getelementptr inbounds i8* %c, i64 24 + %incdec.ptr366 = getelementptr inbounds i8, i8* %c, i64 24 store i8 0, i8* %incdec.ptr350, align 1 - %arrayidx381 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 36 - %incdec.ptr387 = getelementptr inbounds i8* %c, i64 25 + %arrayidx381 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 36 + %incdec.ptr387 = getelementptr inbounds i8, i8* %c, i64 25 store i8 0, i8* %incdec.ptr366, align 1 - %7 = load i16* %arrayidx381, align 8 + %7 = load i16, i16* %arrayidx381, align 8 %conv3898 = trunc i16 %7 to i8 %and390 = shl i8 %conv3898, 6 store i8 %and390, i8* %incdec.ptr387, align 1 diff --git a/test/Transforms/BBVectorize/X86/sh-rec3.ll b/test/Transforms/BBVectorize/X86/sh-rec3.ll index ad880ed..2096deb 100644 --- a/test/Transforms/BBVectorize/X86/sh-rec3.ll +++ b/test/Transforms/BBVectorize/X86/sh-rec3.ll @@ -7,153 +7,153 @@ target triple = "x86_64-unknown-linux-gnu" define void @gsm_encode(%struct.gsm_state.2.8.39.44.45.55.56.57.58.59.62.63.64.65.74.75.76.77.80.87.92.93.94.95.96.97.110.111.112.113.114.128.130.135.136.137.138.139.140.141.142.143.144.145.148.149.150.151.152.169.170.177.178.179.184.185.186.187.188.201.208.209.219.220.221.223.224.225.230.231.232.233.235.236.237.238.245.246.248.249.272.274.279.280.281.282.283.286.293.298.299.314.315.316.317.318.319.320.321.322.323.324.325.326.327.328.329.330.331.332.333.334.335.336.337.338.339.340.341.342.343.344.345.346.347.348.349.350.351.352.353.565* %s, i16* %source, i8* %c) nounwind uwtable { entry: %LARc28 = alloca [2 x i64], align 16 - %LARc28.sub = getelementptr inbounds [2 x i64]* %LARc28, i64 0, i64 0 + %LARc28.sub = getelementptr inbounds [2 x i64], [2 x i64]* %LARc28, i64 0, i64 0 %tmpcast = bitcast [2 x i64]* %LARc28 to [8 x i16]* %Nc = alloca [4 x i16], align 2 %Mc = alloca [4 x i16], align 2 %bc = alloca [4 x i16], align 2 %xmc = alloca [52 x i16], align 16 %arraydecay = bitcast [2 x i64]* %LARc28 to i16* - %arraydecay1 = getelementptr inbounds [4 x i16]* %Nc, i64 0, i64 0 - %arraydecay2 = getelementptr inbounds [4 x i16]* %bc, i64 0, i64 0 - %arraydecay3 = getelementptr inbounds [4 x i16]* %Mc, i64 0, i64 0 - %arraydecay5 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 0 + %arraydecay1 = getelementptr inbounds [4 x i16], [4 x i16]* %Nc, i64 0, i64 0 + %arraydecay2 = getelementptr inbounds [4 x i16], [4 x i16]* %bc, i64 0, i64 0 + %arraydecay3 = getelementptr inbounds [4 x i16], [4 x i16]* %Mc, i64 0, i64 0 + %arraydecay5 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 0 call void @Gsm_Coder(%struct.gsm_state.2.8.39.44.45.55.56.57.58.59.62.63.64.65.74.75.76.77.80.87.92.93.94.95.96.97.110.111.112.113.114.128.130.135.136.137.138.139.140.141.142.143.144.145.148.149.150.151.152.169.170.177.178.179.184.185.186.187.188.201.208.209.219.220.221.223.224.225.230.231.232.233.235.236.237.238.245.246.248.249.272.274.279.280.281.282.283.286.293.298.299.314.315.316.317.318.319.320.321.322.323.324.325.326.327.328.329.330.331.332.333.334.335.336.337.338.339.340.341.342.343.344.345.346.347.348.349.350.351.352.353.565* %s, i16* %source, i16* %arraydecay, i16* %arraydecay1, i16* %arraydecay2, i16* %arraydecay3, i16* undef, i16* %arraydecay5) nounwind - %0 = load i64* %LARc28.sub, align 16 + %0 = load i64, i64* %LARc28.sub, align 16 %1 = trunc i64 %0 to i32 %conv1 = lshr i32 %1, 2 %and = and i32 %conv1, 15 %or = or i32 %and, 208 %conv6 = trunc i32 %or to i8 - %incdec.ptr = getelementptr inbounds i8* %c, i64 1 + %incdec.ptr = getelementptr inbounds i8, i8* %c, i64 1 store i8 %conv6, i8* %c, align 1 %conv84 = trunc i64 %0 to i8 %and9 = shl i8 %conv84, 6 - %incdec.ptr15 = getelementptr inbounds i8* %c, i64 2 + %incdec.ptr15 = getelementptr inbounds i8, i8* %c, i64 2 store i8 %and9, i8* %incdec.ptr, align 1 %2 = lshr i64 %0, 50 %shr226.tr = trunc i64 %2 to i8 %conv25 = and i8 %shr226.tr, 7 - %incdec.ptr26 = getelementptr inbounds i8* %c, i64 3 + %incdec.ptr26 = getelementptr inbounds i8, i8* %c, i64 3 store i8 %conv25, i8* %incdec.ptr15, align 1 - %incdec.ptr42 = getelementptr inbounds i8* %c, i64 4 + %incdec.ptr42 = getelementptr inbounds i8, i8* %c, i64 4 store i8 0, i8* %incdec.ptr26, align 1 - %arrayidx52 = getelementptr inbounds [8 x i16]* %tmpcast, i64 0, i64 7 - %3 = load i16* %arrayidx52, align 2 + %arrayidx52 = getelementptr inbounds [8 x i16], [8 x i16]* %tmpcast, i64 0, i64 7 + %3 = load i16, i16* %arrayidx52, align 2 %conv537 = trunc i16 %3 to i8 %and54 = and i8 %conv537, 7 - %incdec.ptr57 = getelementptr inbounds i8* %c, i64 5 + %incdec.ptr57 = getelementptr inbounds i8, i8* %c, i64 5 store i8 %and54, i8* %incdec.ptr42, align 1 - %incdec.ptr68 = getelementptr inbounds i8* %c, i64 6 + %incdec.ptr68 = getelementptr inbounds i8, i8* %c, i64 6 store i8 0, i8* %incdec.ptr57, align 1 - %4 = load i16* %arraydecay3, align 2 + %4 = load i16, i16* %arraydecay3, align 2 %conv748 = trunc i16 %4 to i8 %and75 = shl i8 %conv748, 5 %shl76 = and i8 %and75, 96 - %incdec.ptr84 = getelementptr inbounds i8* %c, i64 7 + %incdec.ptr84 = getelementptr inbounds i8, i8* %c, i64 7 store i8 %shl76, i8* %incdec.ptr68, align 1 - %arrayidx94 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 1 - %5 = load i16* %arrayidx94, align 2 + %arrayidx94 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 1 + %5 = load i16, i16* %arrayidx94, align 2 %conv959 = trunc i16 %5 to i8 %and96 = shl i8 %conv959, 1 %shl97 = and i8 %and96, 14 %or103 = or i8 %shl97, 1 - %incdec.ptr105 = getelementptr inbounds i8* %c, i64 8 + %incdec.ptr105 = getelementptr inbounds i8, i8* %c, i64 8 store i8 %or103, i8* %incdec.ptr84, align 1 - %arrayidx115 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 4 + %arrayidx115 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 4 %6 = bitcast i16* %arrayidx115 to i32* - %7 = load i32* %6, align 8 + %7 = load i32, i32* %6, align 8 %conv11610 = trunc i32 %7 to i8 %and117 = and i8 %conv11610, 7 - %incdec.ptr120 = getelementptr inbounds i8* %c, i64 9 + %incdec.ptr120 = getelementptr inbounds i8, i8* %c, i64 9 store i8 %and117, i8* %incdec.ptr105, align 1 %8 = lshr i32 %7, 16 %and12330 = shl nuw nsw i32 %8, 5 %and123 = trunc i32 %and12330 to i8 - %incdec.ptr136 = getelementptr inbounds i8* %c, i64 10 + %incdec.ptr136 = getelementptr inbounds i8, i8* %c, i64 10 store i8 %and123, i8* %incdec.ptr120, align 1 - %incdec.ptr157 = getelementptr inbounds i8* %c, i64 11 + %incdec.ptr157 = getelementptr inbounds i8, i8* %c, i64 11 store i8 0, i8* %incdec.ptr136, align 1 - %incdec.ptr172 = getelementptr inbounds i8* %c, i64 12 + %incdec.ptr172 = getelementptr inbounds i8, i8* %c, i64 12 store i8 0, i8* %incdec.ptr157, align 1 - %arrayidx173 = getelementptr inbounds [4 x i16]* %Nc, i64 0, i64 1 - %9 = load i16* %arrayidx173, align 2 + %arrayidx173 = getelementptr inbounds [4 x i16], [4 x i16]* %Nc, i64 0, i64 1 + %9 = load i16, i16* %arrayidx173, align 2 %conv17412 = zext i16 %9 to i32 %and175 = shl nuw nsw i32 %conv17412, 1 - %arrayidx177 = getelementptr inbounds [4 x i16]* %bc, i64 0, i64 1 - %10 = load i16* %arrayidx177, align 2 + %arrayidx177 = getelementptr inbounds [4 x i16], [4 x i16]* %bc, i64 0, i64 1 + %10 = load i16, i16* %arrayidx177, align 2 %conv17826 = zext i16 %10 to i32 %shr17913 = lshr i32 %conv17826, 1 %and180 = and i32 %shr17913, 1 %or181 = or i32 %and175, %and180 %conv182 = trunc i32 %or181 to i8 - %incdec.ptr183 = getelementptr inbounds i8* %c, i64 13 + %incdec.ptr183 = getelementptr inbounds i8, i8* %c, i64 13 store i8 %conv182, i8* %incdec.ptr172, align 1 - %arrayidx188 = getelementptr inbounds [4 x i16]* %Mc, i64 0, i64 1 - %11 = load i16* %arrayidx188, align 2 + %arrayidx188 = getelementptr inbounds [4 x i16], [4 x i16]* %Mc, i64 0, i64 1 + %11 = load i16, i16* %arrayidx188, align 2 %conv18914 = trunc i16 %11 to i8 %and190 = shl i8 %conv18914, 5 %shl191 = and i8 %and190, 96 - %incdec.ptr199 = getelementptr inbounds i8* %c, i64 14 + %incdec.ptr199 = getelementptr inbounds i8, i8* %c, i64 14 store i8 %shl191, i8* %incdec.ptr183, align 1 - %arrayidx209 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 14 - %12 = load i16* %arrayidx209, align 4 + %arrayidx209 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 14 + %12 = load i16, i16* %arrayidx209, align 4 %conv21015 = trunc i16 %12 to i8 %and211 = shl i8 %conv21015, 1 %shl212 = and i8 %and211, 14 %or218 = or i8 %shl212, 1 - %incdec.ptr220 = getelementptr inbounds i8* %c, i64 15 + %incdec.ptr220 = getelementptr inbounds i8, i8* %c, i64 15 store i8 %or218, i8* %incdec.ptr199, align 1 - %arrayidx225 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 16 + %arrayidx225 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 16 %13 = bitcast i16* %arrayidx225 to i64* - %14 = load i64* %13, align 16 + %14 = load i64, i64* %13, align 16 %conv22616 = trunc i64 %14 to i8 %and227 = shl i8 %conv22616, 3 %shl228 = and i8 %and227, 56 - %incdec.ptr235 = getelementptr inbounds i8* %c, i64 16 + %incdec.ptr235 = getelementptr inbounds i8, i8* %c, i64 16 store i8 %shl228, i8* %incdec.ptr220, align 1 %15 = lshr i64 %14, 32 %and23832 = shl nuw nsw i64 %15, 5 %and238 = trunc i64 %and23832 to i8 - %incdec.ptr251 = getelementptr inbounds i8* %c, i64 17 + %incdec.ptr251 = getelementptr inbounds i8, i8* %c, i64 17 store i8 %and238, i8* %incdec.ptr235, align 1 - %arrayidx266 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 23 - %incdec.ptr272 = getelementptr inbounds i8* %c, i64 18 + %arrayidx266 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 23 + %incdec.ptr272 = getelementptr inbounds i8, i8* %c, i64 18 store i8 0, i8* %incdec.ptr251, align 1 - %16 = load i16* %arrayidx266, align 2 + %16 = load i16, i16* %arrayidx266, align 2 %conv27418 = trunc i16 %16 to i8 %and275 = shl i8 %conv27418, 6 - %incdec.ptr287 = getelementptr inbounds i8* %c, i64 19 + %incdec.ptr287 = getelementptr inbounds i8, i8* %c, i64 19 store i8 %and275, i8* %incdec.ptr272, align 1 - %arrayidx288 = getelementptr inbounds [4 x i16]* %Nc, i64 0, i64 2 - %17 = load i16* %arrayidx288, align 2 + %arrayidx288 = getelementptr inbounds [4 x i16], [4 x i16]* %Nc, i64 0, i64 2 + %17 = load i16, i16* %arrayidx288, align 2 %conv28919 = zext i16 %17 to i32 %and290 = shl nuw nsw i32 %conv28919, 1 - %arrayidx292 = getelementptr inbounds [4 x i16]* %bc, i64 0, i64 2 - %18 = load i16* %arrayidx292, align 2 + %arrayidx292 = getelementptr inbounds [4 x i16], [4 x i16]* %bc, i64 0, i64 2 + %18 = load i16, i16* %arrayidx292, align 2 %conv29327 = zext i16 %18 to i32 %shr29420 = lshr i32 %conv29327, 1 %and295 = and i32 %shr29420, 1 %or296 = or i32 %and290, %and295 %conv297 = trunc i32 %or296 to i8 - %incdec.ptr298 = getelementptr inbounds i8* %c, i64 20 + %incdec.ptr298 = getelementptr inbounds i8, i8* %c, i64 20 store i8 %conv297, i8* %incdec.ptr287, align 1 %conv30021 = trunc i16 %18 to i8 %and301 = shl i8 %conv30021, 7 - %incdec.ptr314 = getelementptr inbounds i8* %c, i64 21 + %incdec.ptr314 = getelementptr inbounds i8, i8* %c, i64 21 store i8 %and301, i8* %incdec.ptr298, align 1 - %incdec.ptr335 = getelementptr inbounds i8* %c, i64 22 + %incdec.ptr335 = getelementptr inbounds i8, i8* %c, i64 22 store i8 0, i8* %incdec.ptr314, align 1 - %arrayidx340 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 29 - %19 = load i16* %arrayidx340, align 2 + %arrayidx340 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 29 + %19 = load i16, i16* %arrayidx340, align 2 %conv34122 = trunc i16 %19 to i8 %and342 = shl i8 %conv34122, 3 %shl343 = and i8 %and342, 56 - %incdec.ptr350 = getelementptr inbounds i8* %c, i64 23 + %incdec.ptr350 = getelementptr inbounds i8, i8* %c, i64 23 store i8 %shl343, i8* %incdec.ptr335, align 1 - %arrayidx355 = getelementptr inbounds [52 x i16]* %xmc, i64 0, i64 32 + %arrayidx355 = getelementptr inbounds [52 x i16], [52 x i16]* %xmc, i64 0, i64 32 %20 = bitcast i16* %arrayidx355 to i32* - %21 = load i32* %20, align 16 + %21 = load i32, i32* %20, align 16 %conv35623 = shl i32 %21, 2 %shl358 = and i32 %conv35623, 28 %22 = lshr i32 %21, 17 diff --git a/test/Transforms/BBVectorize/X86/simple-ldstr.ll b/test/Transforms/BBVectorize/X86/simple-ldstr.ll index 1abbc34..2c05f30 100644 --- a/test/Transforms/BBVectorize/X86/simple-ldstr.ll +++ b/test/Transforms/BBVectorize/X86/simple-ldstr.ll @@ -4,23 +4,23 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 ; Simple 3-pair chain with loads and stores define void @test1(double* %a, double* %b, double* %c) nounwind uwtable readonly { entry: - %i0 = load double* %a, align 8 - %i1 = load double* %b, align 8 + %i0 = load double, double* %a, align 8 + %i1 = load double, double* %b, align 8 %mul = fmul double %i0, %i1 - %arrayidx3 = getelementptr inbounds double* %a, i64 1 - %i3 = load double* %arrayidx3, align 8 - %arrayidx4 = getelementptr inbounds double* %b, i64 1 - %i4 = load double* %arrayidx4, align 8 + %arrayidx3 = getelementptr inbounds double, double* %a, i64 1 + %i3 = load double, double* %arrayidx3, align 8 + %arrayidx4 = getelementptr inbounds double, double* %b, i64 1 + %i4 = load double, double* %arrayidx4, align 8 %mul5 = fmul double %i3, %i4 store double %mul, double* %c, align 8 - %arrayidx5 = getelementptr inbounds double* %c, i64 1 + %arrayidx5 = getelementptr inbounds double, double* %c, i64 1 store double %mul5, double* %arrayidx5, align 8 ret void ; CHECK-LABEL: @test1( ; CHECK: %i0.v.i0 = bitcast double* %a to <2 x double>* ; CHECK: %i1.v.i0 = bitcast double* %b to <2 x double>* -; CHECK: %i0 = load <2 x double>* %i0.v.i0, align 8 -; CHECK: %i1 = load <2 x double>* %i1.v.i0, align 8 +; CHECK: %i0 = load <2 x double>, <2 x double>* %i0.v.i0, align 8 +; CHECK: %i1 = load <2 x double>, <2 x double>* %i1.v.i0, align 8 ; CHECK: %mul = fmul <2 x double> %i0, %i1 ; CHECK: %0 = bitcast double* %c to <2 x double>* ; CHECK: store <2 x double> %mul, <2 x double>* %0, align 8 diff --git a/test/Transforms/BBVectorize/X86/wr-aliases.ll b/test/Transforms/BBVectorize/X86/wr-aliases.ll index 34b1d4e..56448c0 100644 --- a/test/Transforms/BBVectorize/X86/wr-aliases.ll +++ b/test/Transforms/BBVectorize/X86/wr-aliases.ll @@ -27,27 +27,27 @@ arrayctor.cont.ret.exitStub: ; preds = %arrayctor.cont ; CHECK: <2 x double> ; CHECK: @_ZL12printQBezier7QBezier ; CHECK: store double %mul8.i, double* %x3.i, align 16 -; CHECK: load double* %x3.i, align 16 +; CHECK: load double, double* %x3.i, align 16 ; CHECK: ret arrayctor.cont: ; preds = %newFuncRoot - %ref.tmp.sroa.0.0.idx = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 0 + %ref.tmp.sroa.0.0.idx = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 0 store double 1.000000e+01, double* %ref.tmp.sroa.0.0.idx, align 16 - %ref.tmp.sroa.2.0.idx1 = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 1 + %ref.tmp.sroa.2.0.idx1 = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 1 store double 2.000000e+01, double* %ref.tmp.sroa.2.0.idx1, align 8 - %ref.tmp.sroa.3.0.idx2 = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 2 + %ref.tmp.sroa.3.0.idx2 = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 2 store double 3.000000e+01, double* %ref.tmp.sroa.3.0.idx2, align 16 - %ref.tmp.sroa.4.0.idx3 = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 3 + %ref.tmp.sroa.4.0.idx3 = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 3 store double 4.000000e+01, double* %ref.tmp.sroa.4.0.idx3, align 8 - %ref.tmp.sroa.5.0.idx4 = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 4 + %ref.tmp.sroa.5.0.idx4 = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 4 store double 5.000000e+01, double* %ref.tmp.sroa.5.0.idx4, align 16 - %ref.tmp.sroa.6.0.idx5 = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 5 + %ref.tmp.sroa.6.0.idx5 = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 5 store double 6.000000e+01, double* %ref.tmp.sroa.6.0.idx5, align 8 - %ref.tmp.sroa.7.0.idx6 = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 6 + %ref.tmp.sroa.7.0.idx6 = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 6 store double 7.000000e+01, double* %ref.tmp.sroa.7.0.idx6, align 16 - %ref.tmp.sroa.8.0.idx7 = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 7 + %ref.tmp.sroa.8.0.idx7 = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 7 store double 8.000000e+01, double* %ref.tmp.sroa.8.0.idx7, align 8 - %add.ptr = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 1 + %add.ptr = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 1 %v0 = bitcast %class.QBezier.15* %agg.tmp.i to i8* call void @llvm.lifetime.start(i64 64, i8* %v0) %v1 = bitcast %class.QBezier.15* %agg.tmp55.i to i8* @@ -57,77 +57,77 @@ arrayctor.cont: ; preds = %newFuncRoot %v3 = bitcast [10 x %class.QBezier.15]* %beziers to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %v0, i8* %v3, i64 64, i32 8, i1 false) call fastcc void @_ZL12printQBezier7QBezier(%class.QBezier.15* byval align 8 %agg.tmp.i) - %x2.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 2 - %v4 = load double* %x2.i, align 16 - %x3.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 4 - %v5 = load double* %x3.i, align 16 + %x2.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 2 + %v4 = load double, double* %x2.i, align 16 + %x3.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 4 + %v5 = load double, double* %x3.i, align 16 %add.i = fadd double %v4, %v5 %mul.i = fmul double 5.000000e-01, %add.i - %x1.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 0 - %v6 = load double* %x1.i, align 16 + %x1.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 0 + %v6 = load double, double* %x1.i, align 16 %add3.i = fadd double %v4, %v6 %mul4.i = fmul double 5.000000e-01, %add3.i - %x25.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 2 + %x25.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 2 store double %mul4.i, double* %x25.i, align 16 - %v7 = load double* %x3.i, align 16 - %x4.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 6 - %v8 = load double* %x4.i, align 16 + %v7 = load double, double* %x3.i, align 16 + %x4.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 6 + %v8 = load double, double* %x4.i, align 16 %add7.i = fadd double %v7, %v8 %mul8.i = fmul double 5.000000e-01, %add7.i store double %mul8.i, double* %x3.i, align 16 - %v9 = load double* %x1.i, align 16 - %x111.i = getelementptr inbounds %class.QBezier.15* %add.ptr, i64 0, i32 0 + %v9 = load double, double* %x1.i, align 16 + %x111.i = getelementptr inbounds %class.QBezier.15, %class.QBezier.15* %add.ptr, i64 0, i32 0 store double %v9, double* %x111.i, align 16 - %v10 = load double* %x25.i, align 16 + %v10 = load double, double* %x25.i, align 16 %add15.i = fadd double %mul.i, %v10 %mul16.i = fmul double 5.000000e-01, %add15.i - %x317.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 4 + %x317.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 4 store double %mul16.i, double* %x317.i, align 16 - %v11 = load double* %x3.i, align 16 + %v11 = load double, double* %x3.i, align 16 %add19.i = fadd double %mul.i, %v11 %mul20.i = fmul double 5.000000e-01, %add19.i store double %mul20.i, double* %x2.i, align 16 - %v12 = load double* %x317.i, align 16 + %v12 = load double, double* %x317.i, align 16 %add24.i = fadd double %v12, %mul20.i %mul25.i = fmul double 5.000000e-01, %add24.i store double %mul25.i, double* %x1.i, align 16 - %x427.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 6 + %x427.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 6 store double %mul25.i, double* %x427.i, align 16 - %y2.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 3 - %v13 = load double* %y2.i, align 8 - %y3.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 5 - %v14 = load double* %y3.i, align 8 + %y2.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 3 + %v13 = load double, double* %y2.i, align 8 + %y3.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 5 + %v14 = load double, double* %y3.i, align 8 %add28.i = fadd double %v13, %v14 %div.i = fmul double 5.000000e-01, %add28.i - %y1.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 1 - %v15 = load double* %y1.i, align 8 + %y1.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 1 + %v15 = load double, double* %y1.i, align 8 %add30.i = fadd double %v13, %v15 %mul31.i = fmul double 5.000000e-01, %add30.i - %y232.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 3 + %y232.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 3 store double %mul31.i, double* %y232.i, align 8 - %v16 = load double* %y3.i, align 8 - %y4.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 7 - %v17 = load double* %y4.i, align 8 + %v16 = load double, double* %y3.i, align 8 + %y4.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 0, i32 7 + %v17 = load double, double* %y4.i, align 8 %add34.i = fadd double %v16, %v17 %mul35.i = fmul double 5.000000e-01, %add34.i store double %mul35.i, double* %y3.i, align 8 - %v18 = load double* %y1.i, align 8 - %y138.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 1 + %v18 = load double, double* %y1.i, align 8 + %y138.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 1 store double %v18, double* %y138.i, align 8 - %v19 = load double* %y232.i, align 8 + %v19 = load double, double* %y232.i, align 8 %add42.i = fadd double %div.i, %v19 %mul43.i = fmul double 5.000000e-01, %add42.i - %y344.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 5 + %y344.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 5 store double %mul43.i, double* %y344.i, align 8 - %v20 = load double* %y3.i, align 8 + %v20 = load double, double* %y3.i, align 8 %add46.i = fadd double %div.i, %v20 %mul47.i = fmul double 5.000000e-01, %add46.i store double %mul47.i, double* %y2.i, align 8 - %v21 = load double* %y344.i, align 8 + %v21 = load double, double* %y344.i, align 8 %add51.i = fadd double %v21, %mul47.i %mul52.i = fmul double 5.000000e-01, %add51.i store double %mul52.i, double* %y1.i, align 8 - %y454.i = getelementptr inbounds [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 7 + %y454.i = getelementptr inbounds [10 x %class.QBezier.15], [10 x %class.QBezier.15]* %beziers, i64 0, i64 1, i32 7 store double %mul52.i, double* %y454.i, align 8 %v22 = bitcast %class.QBezier.15* %add.ptr to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %v1, i8* %v22, i64 64, i32 8, i1 false) diff --git a/test/Transforms/BBVectorize/func-alias.ll b/test/Transforms/BBVectorize/func-alias.ll index 9d0cc07..ab72ec0 100644 --- a/test/Transforms/BBVectorize/func-alias.ll +++ b/test/Transforms/BBVectorize/func-alias.ll @@ -47,99 +47,99 @@ codeRepl80.exitStub: ; preds = %"" ret i1 false "": ; preds = %newFuncRoot - %tmp128 = getelementptr inbounds %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0 - %tmp129 = getelementptr inbounds %struct.__st_parameter_common* %tmp128, i32 0, i32 2 - store i8* getelementptr inbounds ([11 x i8]* @.cst4, i64 0, i64 0), i8** %tmp129, align 8 - %tmp130 = getelementptr inbounds %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0 - %tmp131 = getelementptr inbounds %struct.__st_parameter_common* %tmp130, i32 0, i32 3 + %tmp128 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0 + %tmp129 = getelementptr inbounds %struct.__st_parameter_common, %struct.__st_parameter_common* %tmp128, i32 0, i32 2 + store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.cst4, i64 0, i64 0), i8** %tmp129, align 8 + %tmp130 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0 + %tmp131 = getelementptr inbounds %struct.__st_parameter_common, %struct.__st_parameter_common* %tmp130, i32 0, i32 3 store i32 31495, i32* %tmp131, align 4 - %tmp132 = getelementptr inbounds %struct.__st_parameter_dt* %memtmp3, i32 0, i32 5 - store i8* getelementptr inbounds ([214 x i8]* @.cst823, i64 0, i64 0), i8** %tmp132, align 8 - %tmp133 = getelementptr inbounds %struct.__st_parameter_dt* %memtmp3, i32 0, i32 6 + %tmp132 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 5 + store i8* getelementptr inbounds ([214 x i8], [214 x i8]* @.cst823, i64 0, i64 0), i8** %tmp132, align 8 + %tmp133 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 6 store i32 214, i32* %tmp133, align 4 - %tmp134 = getelementptr inbounds %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0 - %tmp135 = getelementptr inbounds %struct.__st_parameter_common* %tmp134, i32 0, i32 0 + %tmp134 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0 + %tmp135 = getelementptr inbounds %struct.__st_parameter_common, %struct.__st_parameter_common* %tmp134, i32 0, i32 0 store i32 4096, i32* %tmp135, align 4 - %iounit.8748_288 = load i32* @__main1_MOD_iounit, align 4 - %tmp136 = getelementptr inbounds %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0 - %tmp137 = getelementptr inbounds %struct.__st_parameter_common* %tmp136, i32 0, i32 1 + %iounit.8748_288 = load i32, i32* @__main1_MOD_iounit, align 4 + %tmp136 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0 + %tmp137 = getelementptr inbounds %struct.__st_parameter_common, %struct.__st_parameter_common* %tmp136, i32 0, i32 1 store i32 %iounit.8748_288, i32* %tmp137, align 4 call void @_gfortran_st_write(%struct.__st_parameter_dt* %memtmp3) nounwind call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_integer_write to void (%struct.__st_parameter_dt*, i32*, i32)*)(%struct.__st_parameter_dt* %memtmp3, i32* @j.4580, i32 4) nounwind ; CHECK: @_gfortran_transfer_integer_write - %D.75807_289 = load i8** getelementptr inbounds (%"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 0), align 8 - %j.8758_290 = load i32* @j.4580, align 4 + %D.75807_289 = load i8*, i8** getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 0), align 8 + %j.8758_290 = load i32, i32* @j.4580, align 4 %D.75760_291 = sext i32 %j.8758_290 to i64 - %iave.8736_292 = load i32* @__main1_MOD_iave, align 4 + %iave.8736_292 = load i32, i32* @__main1_MOD_iave, align 4 %D.75620_293 = sext i32 %iave.8736_292 to i64 - %D.75808_294 = load i64* getelementptr inbounds (%"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 2, i32 0), align 8 + %D.75808_294 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 2, i32 0), align 8 %D.75809_295 = mul nsw i64 %D.75620_293, %D.75808_294 - %igrp.8737_296 = load i32* @__main1_MOD_igrp, align 4 + %igrp.8737_296 = load i32, i32* @__main1_MOD_igrp, align 4 %D.75635_297 = sext i32 %igrp.8737_296 to i64 - %D.75810_298 = load i64* getelementptr inbounds (%"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 1, i32 0), align 8 + %D.75810_298 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 1, i32 0), align 8 %D.75811_299 = mul nsw i64 %D.75635_297, %D.75810_298 %D.75812_300 = add nsw i64 %D.75809_295, %D.75811_299 %D.75813_301 = add nsw i64 %D.75760_291, %D.75812_300 - %ityp.8750_302 = load i32* @__main1_MOD_ityp, align 4 + %ityp.8750_302 = load i32, i32* @__main1_MOD_ityp, align 4 %D.75704_303 = sext i32 %ityp.8750_302 to i64 - %D.75814_304 = load i64* getelementptr inbounds (%"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 3, i32 0), align 8 + %D.75814_304 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 3, i32 0), align 8 %D.75815_305 = mul nsw i64 %D.75704_303, %D.75814_304 %D.75816_306 = add nsw i64 %D.75813_301, %D.75815_305 - %D.75817_307 = load i64* getelementptr inbounds (%"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 1), align 8 + %D.75817_307 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 1), align 8 %D.75818_308 = add nsw i64 %D.75816_306, %D.75817_307 %tmp138 = bitcast i8* %D.75807_289 to [0 x float]* %tmp139 = bitcast [0 x float]* %tmp138 to float* - %D.75819_309 = getelementptr inbounds float* %tmp139, i64 %D.75818_308 + %D.75819_309 = getelementptr inbounds float, float* %tmp139, i64 %D.75818_308 call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_real_write to void (%struct.__st_parameter_dt*, float*, i32)*)(%struct.__st_parameter_dt* %memtmp3, float* %D.75819_309, i32 4) nounwind ; CHECK: @_gfortran_transfer_real_write - %D.75820_310 = load i8** getelementptr inbounds (%struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 0), align 8 - %j.8758_311 = load i32* @j.4580, align 4 + %D.75820_310 = load i8*, i8** getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 0), align 8 + %j.8758_311 = load i32, i32* @j.4580, align 4 %D.75760_312 = sext i32 %j.8758_311 to i64 - %iave.8736_313 = load i32* @__main1_MOD_iave, align 4 + %iave.8736_313 = load i32, i32* @__main1_MOD_iave, align 4 %D.75620_314 = sext i32 %iave.8736_313 to i64 - %D.75821_315 = load i64* getelementptr inbounds (%struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 2, i32 0), align 8 + %D.75821_315 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 2, i32 0), align 8 %D.75822_316 = mul nsw i64 %D.75620_314, %D.75821_315 - %igrp.8737_317 = load i32* @__main1_MOD_igrp, align 4 + %igrp.8737_317 = load i32, i32* @__main1_MOD_igrp, align 4 %D.75635_318 = sext i32 %igrp.8737_317 to i64 - %D.75823_319 = load i64* getelementptr inbounds (%struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 1, i32 0), align 8 + %D.75823_319 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 1, i32 0), align 8 %D.75824_320 = mul nsw i64 %D.75635_318, %D.75823_319 %D.75825_321 = add nsw i64 %D.75822_316, %D.75824_320 %D.75826_322 = add nsw i64 %D.75760_312, %D.75825_321 - %ityp.8750_323 = load i32* @__main1_MOD_ityp, align 4 + %ityp.8750_323 = load i32, i32* @__main1_MOD_ityp, align 4 %D.75704_324 = sext i32 %ityp.8750_323 to i64 - %D.75827_325 = load i64* getelementptr inbounds (%struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 3, i32 0), align 8 + %D.75827_325 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 3, i32 0), align 8 %D.75828_326 = mul nsw i64 %D.75704_324, %D.75827_325 %D.75829_327 = add nsw i64 %D.75826_322, %D.75828_326 - %D.75830_328 = load i64* getelementptr inbounds (%struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 1), align 8 + %D.75830_328 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 1), align 8 %D.75831_329 = add nsw i64 %D.75829_327, %D.75830_328 %tmp140 = bitcast i8* %D.75820_310 to [0 x [1 x i8]]* %tmp141 = bitcast [0 x [1 x i8]]* %tmp140 to [1 x i8]* - %D.75832_330 = getelementptr inbounds [1 x i8]* %tmp141, i64 %D.75831_329 + %D.75832_330 = getelementptr inbounds [1 x i8], [1 x i8]* %tmp141, i64 %D.75831_329 call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_character_write to void (%struct.__st_parameter_dt*, [1 x i8]*, i32)*)(%struct.__st_parameter_dt* %memtmp3, [1 x i8]* %D.75832_330, i32 1) nounwind ; CHECK: @_gfortran_transfer_character_write - %D.75833_331 = load i8** getelementptr inbounds (%"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 0), align 8 - %j.8758_332 = load i32* @j.4580, align 4 + %D.75833_331 = load i8*, i8** getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 0), align 8 + %j.8758_332 = load i32, i32* @j.4580, align 4 %D.75760_333 = sext i32 %j.8758_332 to i64 - %iave.8736_334 = load i32* @__main1_MOD_iave, align 4 + %iave.8736_334 = load i32, i32* @__main1_MOD_iave, align 4 %D.75620_335 = sext i32 %iave.8736_334 to i64 - %D.75834_336 = load i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 2, i32 0), align 8 + %D.75834_336 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 2, i32 0), align 8 %D.75835_337 = mul nsw i64 %D.75620_335, %D.75834_336 - %igrp.8737_338 = load i32* @__main1_MOD_igrp, align 4 + %igrp.8737_338 = load i32, i32* @__main1_MOD_igrp, align 4 %D.75635_339 = sext i32 %igrp.8737_338 to i64 - %D.75836_340 = load i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 1, i32 0), align 8 + %D.75836_340 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 1, i32 0), align 8 %D.75837_341 = mul nsw i64 %D.75635_339, %D.75836_340 %D.75838_342 = add nsw i64 %D.75835_337, %D.75837_341 %D.75839_343 = add nsw i64 %D.75760_333, %D.75838_342 - %ityp.8750_344 = load i32* @__main1_MOD_ityp, align 4 + %ityp.8750_344 = load i32, i32* @__main1_MOD_ityp, align 4 %D.75704_345 = sext i32 %ityp.8750_344 to i64 - %D.75840_346 = load i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 3, i32 0), align 8 + %D.75840_346 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 3, i32 0), align 8 %D.75841_347 = mul nsw i64 %D.75704_345, %D.75840_346 %D.75842_348 = add nsw i64 %D.75839_343, %D.75841_347 - %D.75843_349 = load i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 1), align 8 + %D.75843_349 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 1), align 8 %D.75844_350 = add nsw i64 %D.75842_348, %D.75843_349 %tmp142 = bitcast i8* %D.75833_331 to [0 x i32]* %tmp143 = bitcast [0 x i32]* %tmp142 to i32* - %D.75845_351 = getelementptr inbounds i32* %tmp143, i64 %D.75844_350 + %D.75845_351 = getelementptr inbounds i32, i32* %tmp143, i64 %D.75844_350 call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_integer_write to void (%struct.__st_parameter_dt*, i32*, i32)*)(%struct.__st_parameter_dt* %memtmp3, i32* %D.75845_351, i32 4) nounwind ; CHECK: @_gfortran_transfer_integer_write call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_real_write to void (%struct.__st_parameter_dt*, float*, i32)*)(%struct.__st_parameter_dt* %memtmp3, float* @xr1.4592, i32 4) nounwind @@ -150,79 +150,79 @@ codeRepl80.exitStub: ; preds = %"" ; CHECK: @_gfortran_transfer_character_write call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_integer_write to void (%struct.__st_parameter_dt*, i32*, i32)*)(%struct.__st_parameter_dt* %memtmp3, i32* @j1.4581, i32 4) nounwind ; CHECK: @_gfortran_transfer_integer_write - %D.75807_352 = load i8** getelementptr inbounds (%"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 0), align 8 - %j1.8760_353 = load i32* @j1.4581, align 4 + %D.75807_352 = load i8*, i8** getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 0), align 8 + %j1.8760_353 = load i32, i32* @j1.4581, align 4 %D.75773_354 = sext i32 %j1.8760_353 to i64 - %iave.8736_355 = load i32* @__main1_MOD_iave, align 4 + %iave.8736_355 = load i32, i32* @__main1_MOD_iave, align 4 %D.75620_356 = sext i32 %iave.8736_355 to i64 - %D.75808_357 = load i64* getelementptr inbounds (%"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 2, i32 0), align 8 + %D.75808_357 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 2, i32 0), align 8 %D.75809_358 = mul nsw i64 %D.75620_356, %D.75808_357 - %igrp.8737_359 = load i32* @__main1_MOD_igrp, align 4 + %igrp.8737_359 = load i32, i32* @__main1_MOD_igrp, align 4 %D.75635_360 = sext i32 %igrp.8737_359 to i64 - %D.75810_361 = load i64* getelementptr inbounds (%"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 1, i32 0), align 8 + %D.75810_361 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 1, i32 0), align 8 %D.75811_362 = mul nsw i64 %D.75635_360, %D.75810_361 %D.75812_363 = add nsw i64 %D.75809_358, %D.75811_362 %D.75846_364 = add nsw i64 %D.75773_354, %D.75812_363 - %ityp.8750_365 = load i32* @__main1_MOD_ityp, align 4 + %ityp.8750_365 = load i32, i32* @__main1_MOD_ityp, align 4 %D.75704_366 = sext i32 %ityp.8750_365 to i64 - %D.75814_367 = load i64* getelementptr inbounds (%"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 3, i32 0), align 8 + %D.75814_367 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 3, i32 0), align 8 %D.75815_368 = mul nsw i64 %D.75704_366, %D.75814_367 %D.75847_369 = add nsw i64 %D.75846_364, %D.75815_368 - %D.75817_370 = load i64* getelementptr inbounds (%"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 1), align 8 + %D.75817_370 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 1), align 8 %D.75848_371 = add nsw i64 %D.75847_369, %D.75817_370 %tmp144 = bitcast i8* %D.75807_352 to [0 x float]* %tmp145 = bitcast [0 x float]* %tmp144 to float* - %D.75849_372 = getelementptr inbounds float* %tmp145, i64 %D.75848_371 + %D.75849_372 = getelementptr inbounds float, float* %tmp145, i64 %D.75848_371 call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_real_write to void (%struct.__st_parameter_dt*, float*, i32)*)(%struct.__st_parameter_dt* %memtmp3, float* %D.75849_372, i32 4) nounwind ; CHECK: @_gfortran_transfer_real_write - %D.75820_373 = load i8** getelementptr inbounds (%struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 0), align 8 - %j1.8760_374 = load i32* @j1.4581, align 4 + %D.75820_373 = load i8*, i8** getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 0), align 8 + %j1.8760_374 = load i32, i32* @j1.4581, align 4 %D.75773_375 = sext i32 %j1.8760_374 to i64 - %iave.8736_376 = load i32* @__main1_MOD_iave, align 4 + %iave.8736_376 = load i32, i32* @__main1_MOD_iave, align 4 %D.75620_377 = sext i32 %iave.8736_376 to i64 - %D.75821_378 = load i64* getelementptr inbounds (%struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 2, i32 0), align 8 + %D.75821_378 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 2, i32 0), align 8 %D.75822_379 = mul nsw i64 %D.75620_377, %D.75821_378 - %igrp.8737_380 = load i32* @__main1_MOD_igrp, align 4 + %igrp.8737_380 = load i32, i32* @__main1_MOD_igrp, align 4 %D.75635_381 = sext i32 %igrp.8737_380 to i64 - %D.75823_382 = load i64* getelementptr inbounds (%struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 1, i32 0), align 8 + %D.75823_382 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 1, i32 0), align 8 %D.75824_383 = mul nsw i64 %D.75635_381, %D.75823_382 %D.75825_384 = add nsw i64 %D.75822_379, %D.75824_383 %D.75850_385 = add nsw i64 %D.75773_375, %D.75825_384 - %ityp.8750_386 = load i32* @__main1_MOD_ityp, align 4 + %ityp.8750_386 = load i32, i32* @__main1_MOD_ityp, align 4 %D.75704_387 = sext i32 %ityp.8750_386 to i64 - %D.75827_388 = load i64* getelementptr inbounds (%struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 3, i32 0), align 8 + %D.75827_388 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 3, i32 0), align 8 %D.75828_389 = mul nsw i64 %D.75704_387, %D.75827_388 %D.75851_390 = add nsw i64 %D.75850_385, %D.75828_389 - %D.75830_391 = load i64* getelementptr inbounds (%struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 1), align 8 + %D.75830_391 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 1), align 8 %D.75852_392 = add nsw i64 %D.75851_390, %D.75830_391 %tmp146 = bitcast i8* %D.75820_373 to [0 x [1 x i8]]* %tmp147 = bitcast [0 x [1 x i8]]* %tmp146 to [1 x i8]* - %D.75853_393 = getelementptr inbounds [1 x i8]* %tmp147, i64 %D.75852_392 + %D.75853_393 = getelementptr inbounds [1 x i8], [1 x i8]* %tmp147, i64 %D.75852_392 call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_character_write to void (%struct.__st_parameter_dt*, [1 x i8]*, i32)*)(%struct.__st_parameter_dt* %memtmp3, [1 x i8]* %D.75853_393, i32 1) nounwind ; CHECK: @_gfortran_transfer_character_write - %D.75833_394 = load i8** getelementptr inbounds (%"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 0), align 8 - %j1.8760_395 = load i32* @j1.4581, align 4 + %D.75833_394 = load i8*, i8** getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 0), align 8 + %j1.8760_395 = load i32, i32* @j1.4581, align 4 %D.75773_396 = sext i32 %j1.8760_395 to i64 - %iave.8736_397 = load i32* @__main1_MOD_iave, align 4 + %iave.8736_397 = load i32, i32* @__main1_MOD_iave, align 4 %D.75620_398 = sext i32 %iave.8736_397 to i64 - %D.75834_399 = load i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 2, i32 0), align 8 + %D.75834_399 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 2, i32 0), align 8 %D.75835_400 = mul nsw i64 %D.75620_398, %D.75834_399 - %igrp.8737_401 = load i32* @__main1_MOD_igrp, align 4 + %igrp.8737_401 = load i32, i32* @__main1_MOD_igrp, align 4 %D.75635_402 = sext i32 %igrp.8737_401 to i64 - %D.75836_403 = load i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 1, i32 0), align 8 + %D.75836_403 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 1, i32 0), align 8 %D.75837_404 = mul nsw i64 %D.75635_402, %D.75836_403 %D.75838_405 = add nsw i64 %D.75835_400, %D.75837_404 %D.75854_406 = add nsw i64 %D.75773_396, %D.75838_405 - %ityp.8750_407 = load i32* @__main1_MOD_ityp, align 4 + %ityp.8750_407 = load i32, i32* @__main1_MOD_ityp, align 4 %D.75704_408 = sext i32 %ityp.8750_407 to i64 - %D.75840_409 = load i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 3, i32 0), align 8 + %D.75840_409 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 3, i32 0), align 8 %D.75841_410 = mul nsw i64 %D.75704_408, %D.75840_409 %D.75855_411 = add nsw i64 %D.75854_406, %D.75841_410 - %D.75843_412 = load i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 1), align 8 + %D.75843_412 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 1), align 8 %D.75856_413 = add nsw i64 %D.75855_411, %D.75843_412 %tmp148 = bitcast i8* %D.75833_394 to [0 x i32]* %tmp149 = bitcast [0 x i32]* %tmp148 to i32* - %D.75857_414 = getelementptr inbounds i32* %tmp149, i64 %D.75856_413 + %D.75857_414 = getelementptr inbounds i32, i32* %tmp149, i64 %D.75856_413 call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_integer_write to void (%struct.__st_parameter_dt*, i32*, i32)*)(%struct.__st_parameter_dt* %memtmp3, i32* %D.75857_414, i32 4) nounwind ; CHECK: @_gfortran_transfer_integer_write call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_real_write to void (%struct.__st_parameter_dt*, float*, i32)*)(%struct.__st_parameter_dt* %memtmp3, float* @xr2.4593, i32 4) nounwind @@ -233,9 +233,9 @@ codeRepl80.exitStub: ; preds = %"" ; CHECK: @_gfortran_transfer_character_write call void @_gfortran_st_write_done(%struct.__st_parameter_dt* %memtmp3) nounwind ; CHECK: @_gfortran_st_write_done - %j.8758_415 = load i32* @j.4580, align 4 + %j.8758_415 = load i32, i32* @j.4580, align 4 %D.4634_416 = icmp eq i32 %j.8758_415, %D.4627_188.reload - %j.8758_417 = load i32* @j.4580, align 4 + %j.8758_417 = load i32, i32* @j.4580, align 4 %j.8770_418 = add nsw i32 %j.8758_417, 1 store i32 %j.8770_418, i32* @j.4580, align 4 %tmp150 = icmp ne i1 %D.4634_416, false diff --git a/test/Transforms/BBVectorize/ld1.ll b/test/Transforms/BBVectorize/ld1.ll index 9c79eef..368c38a 100644 --- a/test/Transforms/BBVectorize/ld1.ll +++ b/test/Transforms/BBVectorize/ld1.ll @@ -3,18 +3,18 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 define double @test1(double* %a, double* %b, double* %c) nounwind uwtable readonly { entry: - %i0 = load double* %a, align 8 - %i1 = load double* %b, align 8 + %i0 = load double, double* %a, align 8 + %i1 = load double, double* %b, align 8 %mul = fmul double %i0, %i1 - %i2 = load double* %c, align 8 + %i2 = load double, double* %c, align 8 %add = fadd double %mul, %i2 - %arrayidx3 = getelementptr inbounds double* %a, i64 1 - %i3 = load double* %arrayidx3, align 8 - %arrayidx4 = getelementptr inbounds double* %b, i64 1 - %i4 = load double* %arrayidx4, align 8 + %arrayidx3 = getelementptr inbounds double, double* %a, i64 1 + %i3 = load double, double* %arrayidx3, align 8 + %arrayidx4 = getelementptr inbounds double, double* %b, i64 1 + %i4 = load double, double* %arrayidx4, align 8 %mul5 = fmul double %i3, %i4 - %arrayidx6 = getelementptr inbounds double* %c, i64 1 - %i5 = load double* %arrayidx6, align 8 + %arrayidx6 = getelementptr inbounds double, double* %c, i64 1 + %i5 = load double, double* %arrayidx6, align 8 %add7 = fadd double %mul5, %i5 %mul9 = fmul double %add, %i1 %add11 = fadd double %mul9, %i2 @@ -26,10 +26,10 @@ entry: ; CHECK: %i0.v.i0 = bitcast double* %a to <2 x double>* ; CHECK: %i1.v.i0 = bitcast double* %b to <2 x double>* ; CHECK: %i2.v.i0 = bitcast double* %c to <2 x double>* -; CHECK: %i0 = load <2 x double>* %i0.v.i0, align 8 -; CHECK: %i1 = load <2 x double>* %i1.v.i0, align 8 +; CHECK: %i0 = load <2 x double>, <2 x double>* %i0.v.i0, align 8 +; CHECK: %i1 = load <2 x double>, <2 x double>* %i1.v.i0, align 8 ; CHECK: %mul = fmul <2 x double> %i0, %i1 -; CHECK: %i2 = load <2 x double>* %i2.v.i0, align 8 +; CHECK: %i2 = load <2 x double>, <2 x double>* %i2.v.i0, align 8 ; CHECK: %add = fadd <2 x double> %mul, %i2 ; CHECK: %mul9 = fmul <2 x double> %add, %i1 ; CHECK: %add11 = fadd <2 x double> %mul9, %i2 diff --git a/test/Transforms/BBVectorize/loop1.ll b/test/Transforms/BBVectorize/loop1.ll index ca36170..70a5def 100644 --- a/test/Transforms/BBVectorize/loop1.ll +++ b/test/Transforms/BBVectorize/loop1.ll @@ -12,10 +12,10 @@ entry: for.body: ; preds = %for.body, %entry %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] - %arrayidx = getelementptr inbounds double* %in1, i64 %indvars.iv - %0 = load double* %arrayidx, align 8 - %arrayidx2 = getelementptr inbounds double* %in2, i64 %indvars.iv - %1 = load double* %arrayidx2, align 8 + %arrayidx = getelementptr inbounds double, double* %in1, i64 %indvars.iv + %0 = load double, double* %arrayidx, align 8 + %arrayidx2 = getelementptr inbounds double, double* %in2, i64 %indvars.iv + %1 = load double, double* %arrayidx2, align 8 %mul = fmul double %0, %0 %mul3 = fmul double %0, %1 %add = fadd double %mul, %mul3 @@ -28,17 +28,17 @@ for.body: ; preds = %for.body, %entry %add10 = fadd double %add9, %0 %mul11 = fmul double %mul8, %add10 %add12 = fadd double %add7, %mul11 - %arrayidx14 = getelementptr inbounds double* %out, i64 %indvars.iv + %arrayidx14 = getelementptr inbounds double, double* %out, i64 %indvars.iv store double %add12, double* %arrayidx14, align 8 %indvars.iv.next = add i64 %indvars.iv, 1 %lftr.wideiv = trunc i64 %indvars.iv.next to i32 %exitcond = icmp eq i32 %lftr.wideiv, 10 br i1 %exitcond, label %for.end, label %for.body ; CHECK: %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] -; CHECK: %arrayidx = getelementptr inbounds double* %in1, i64 %indvars.iv -; CHECK: %0 = load double* %arrayidx, align 8 -; CHECK: %arrayidx2 = getelementptr inbounds double* %in2, i64 %indvars.iv -; CHECK: %1 = load double* %arrayidx2, align 8 +; CHECK: %arrayidx = getelementptr inbounds double, double* %in1, i64 %indvars.iv +; CHECK: %0 = load double, double* %arrayidx, align 8 +; CHECK: %arrayidx2 = getelementptr inbounds double, double* %in2, i64 %indvars.iv +; CHECK: %1 = load double, double* %arrayidx2, align 8 ; CHECK: %mul = fmul double %0, %0 ; CHECK: %mul3 = fmul double %0, %1 ; CHECK: %add = fadd double %mul, %mul3 @@ -55,20 +55,20 @@ for.body: ; preds = %for.body, %entry ; CHECK: %mul6.v.r2 = extractelement <2 x double> %mul6, i32 1 ; CHECK: %add7 = fadd double %add, %mul6.v.r1 ; CHECK: %add12 = fadd double %add7, %mul6.v.r2 -; CHECK: %arrayidx14 = getelementptr inbounds double* %out, i64 %indvars.iv +; CHECK: %arrayidx14 = getelementptr inbounds double, double* %out, i64 %indvars.iv ; CHECK: store double %add12, double* %arrayidx14, align 8 ; CHECK: %indvars.iv.next = add i64 %indvars.iv, 1 ; CHECK: %lftr.wideiv = trunc i64 %indvars.iv.next to i32 ; CHECK: %exitcond = icmp eq i32 %lftr.wideiv, 10 ; CHECK: br i1 %exitcond, label %for.end, label %for.body ; CHECK-UNRL: %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next.1, %for.body ] -; CHECK-UNRL: %arrayidx = getelementptr inbounds double* %in1, i64 %indvars.iv +; CHECK-UNRL: %arrayidx = getelementptr inbounds double, double* %in1, i64 %indvars.iv ; CHECK-UNRL: %0 = bitcast double* %arrayidx to <2 x double>* -; CHECK-UNRL: %arrayidx2 = getelementptr inbounds double* %in2, i64 %indvars.iv +; CHECK-UNRL: %arrayidx2 = getelementptr inbounds double, double* %in2, i64 %indvars.iv ; CHECK-UNRL: %1 = bitcast double* %arrayidx2 to <2 x double>* -; CHECK-UNRL: %arrayidx14 = getelementptr inbounds double* %out, i64 %indvars.iv -; CHECK-UNRL: %2 = load <2 x double>* %0, align 8 -; CHECK-UNRL: %3 = load <2 x double>* %1, align 8 +; CHECK-UNRL: %arrayidx14 = getelementptr inbounds double, double* %out, i64 %indvars.iv +; CHECK-UNRL: %2 = load <2 x double>, <2 x double>* %0, align 8 +; CHECK-UNRL: %3 = load <2 x double>, <2 x double>* %1, align 8 ; CHECK-UNRL: %mul = fmul <2 x double> %2, %2 ; CHECK-UNRL: %mul3 = fmul <2 x double> %2, %3 ; CHECK-UNRL: %add = fadd <2 x double> %mul, %mul3 diff --git a/test/Transforms/BBVectorize/mem-op-depth.ll b/test/Transforms/BBVectorize/mem-op-depth.ll index c31d452..732043b 100644 --- a/test/Transforms/BBVectorize/mem-op-depth.ll +++ b/test/Transforms/BBVectorize/mem-op-depth.ll @@ -7,15 +7,15 @@ target triple = "x86_64-unknown-linux-gnu" define i32 @test1() nounwind { ; CHECK-LABEL: @test1( - %V1 = load float* getelementptr inbounds ([1024 x float]* @A, i64 0, i64 0), align 16 - %V2 = load float* getelementptr inbounds ([1024 x float]* @A, i64 0, i64 1), align 4 - %V3= load float* getelementptr inbounds ([1024 x float]* @A, i64 0, i64 2), align 8 - %V4 = load float* getelementptr inbounds ([1024 x float]* @A, i64 0, i64 3), align 4 -; CHECK: %V1 = load <4 x float>* bitcast ([1024 x float]* @A to <4 x float>*), align 16 - store float %V1, float* getelementptr inbounds ([1024 x float]* @B, i64 0, i64 0), align 16 - store float %V2, float* getelementptr inbounds ([1024 x float]* @B, i64 0, i64 1), align 4 - store float %V3, float* getelementptr inbounds ([1024 x float]* @B, i64 0, i64 2), align 8 - store float %V4, float* getelementptr inbounds ([1024 x float]* @B, i64 0, i64 3), align 4 + %V1 = load float, float* getelementptr inbounds ([1024 x float], [1024 x float]* @A, i64 0, i64 0), align 16 + %V2 = load float, float* getelementptr inbounds ([1024 x float], [1024 x float]* @A, i64 0, i64 1), align 4 + %V3= load float, float* getelementptr inbounds ([1024 x float], [1024 x float]* @A, i64 0, i64 2), align 8 + %V4 = load float, float* getelementptr inbounds ([1024 x float], [1024 x float]* @A, i64 0, i64 3), align 4 +; CHECK: %V1 = load <4 x float>, <4 x float>* bitcast ([1024 x float]* @A to <4 x float>*), align 16 + store float %V1, float* getelementptr inbounds ([1024 x float], [1024 x float]* @B, i64 0, i64 0), align 16 + store float %V2, float* getelementptr inbounds ([1024 x float], [1024 x float]* @B, i64 0, i64 1), align 4 + store float %V3, float* getelementptr inbounds ([1024 x float], [1024 x float]* @B, i64 0, i64 2), align 8 + store float %V4, float* getelementptr inbounds ([1024 x float], [1024 x float]* @B, i64 0, i64 3), align 4 ; CHECK-NEXT: store <4 x float> %V1, <4 x float>* bitcast ([1024 x float]* @B to <4 x float>*), align 16 ret i32 0 ; CHECK-NEXT: ret i32 0 diff --git a/test/Transforms/BBVectorize/metadata.ll b/test/Transforms/BBVectorize/metadata.ll index 874fbb8..f5580a8 100644 --- a/test/Transforms/BBVectorize/metadata.ll +++ b/test/Transforms/BBVectorize/metadata.ll @@ -4,16 +4,16 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 ; Simple 3-pair chain with loads and stores (with fpmath) define void @test1(double* %a, double* %b, double* %c) nounwind uwtable readonly { entry: - %i0 = load double* %a, align 8 - %i1 = load double* %b, align 8 + %i0 = load double, double* %a, align 8 + %i1 = load double, double* %b, align 8 %mul = fmul double %i0, %i1, !fpmath !2 - %arrayidx3 = getelementptr inbounds double* %a, i64 1 - %i3 = load double* %arrayidx3, align 8 - %arrayidx4 = getelementptr inbounds double* %b, i64 1 - %i4 = load double* %arrayidx4, align 8 + %arrayidx3 = getelementptr inbounds double, double* %a, i64 1 + %i3 = load double, double* %arrayidx3, align 8 + %arrayidx4 = getelementptr inbounds double, double* %b, i64 1 + %i4 = load double, double* %arrayidx4, align 8 %mul5 = fmul double %i3, %i4, !fpmath !3 store double %mul, double* %c, align 8 - %arrayidx5 = getelementptr inbounds double* %c, i64 1 + %arrayidx5 = getelementptr inbounds double, double* %c, i64 1 store double %mul5, double* %arrayidx5, align 8 ret void ; CHECK-LABEL: @test1( @@ -24,16 +24,16 @@ entry: ; Simple 3-pair chain with loads and stores (ints with range) define void @test2(i64* %a, i64* %b, i64* %c) nounwind uwtable readonly { entry: - %i0 = load i64* %a, align 8, !range !0 - %i1 = load i64* %b, align 8 + %i0 = load i64, i64* %a, align 8, !range !0 + %i1 = load i64, i64* %b, align 8 %mul = mul i64 %i0, %i1 - %arrayidx3 = getelementptr inbounds i64* %a, i64 1 - %i3 = load i64* %arrayidx3, align 8, !range !1 - %arrayidx4 = getelementptr inbounds i64* %b, i64 1 - %i4 = load i64* %arrayidx4, align 8 + %arrayidx3 = getelementptr inbounds i64, i64* %a, i64 1 + %i3 = load i64, i64* %arrayidx3, align 8, !range !1 + %arrayidx4 = getelementptr inbounds i64, i64* %b, i64 1 + %i4 = load i64, i64* %arrayidx4, align 8 %mul5 = mul i64 %i3, %i4 store i64 %mul, i64* %c, align 8 - %arrayidx5 = getelementptr inbounds i64* %c, i64 1 + %arrayidx5 = getelementptr inbounds i64, i64* %c, i64 1 store i64 %mul5, i64* %arrayidx5, align 8 ret void ; CHECK-LABEL: @test2( diff --git a/test/Transforms/BBVectorize/no-ldstr-conn.ll b/test/Transforms/BBVectorize/no-ldstr-conn.ll index bcc5ce7..a84cd65 100644 --- a/test/Transforms/BBVectorize/no-ldstr-conn.ll +++ b/test/Transforms/BBVectorize/no-ldstr-conn.ll @@ -7,10 +7,10 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 define i64 @test2(i64 %a) nounwind uwtable readonly { entry: %a1 = inttoptr i64 %a to i64* - %a2 = getelementptr i64* %a1, i64 1 - %a3 = getelementptr i64* %a1, i64 2 - %v2 = load i64* %a2, align 8 - %v3 = load i64* %a3, align 8 + %a2 = getelementptr i64, i64* %a1, i64 1 + %a3 = getelementptr i64, i64* %a1, i64 2 + %v2 = load i64, i64* %a2, align 8 + %v3 = load i64, i64* %a3, align 8 %v2a = add i64 %v2, 5 %v3a = add i64 %v3, 7 store i64 %v2a, i64* %a2, align 8 @@ -18,6 +18,6 @@ entry: %r = add i64 %v2, %v3 ret i64 %r ; CHECK-LABEL: @test2( -; CHECK-NOT: getelementptr <2 x i64*> +; CHECK-NOT: getelementptr i64, <2 x i64*> } diff --git a/test/Transforms/BBVectorize/simple-ldstr-ptrs.ll b/test/Transforms/BBVectorize/simple-ldstr-ptrs.ll index 4d2298c..fcc0236 100644 --- a/test/Transforms/BBVectorize/simple-ldstr-ptrs.ll +++ b/test/Transforms/BBVectorize/simple-ldstr-ptrs.ll @@ -8,37 +8,37 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 ; Simple 3-pair chain also with loads and stores (using ptrs and gep) define double @test1(i64* %a, i64* %b, i64* %c) nounwind uwtable readonly { entry: - %i0 = load i64* %a, align 8 - %i1 = load i64* %b, align 8 + %i0 = load i64, i64* %a, align 8 + %i1 = load i64, i64* %b, align 8 %mul = mul i64 %i0, %i1 - %arrayidx3 = getelementptr inbounds i64* %a, i64 1 - %i3 = load i64* %arrayidx3, align 8 - %arrayidx4 = getelementptr inbounds i64* %b, i64 1 - %i4 = load i64* %arrayidx4, align 8 + %arrayidx3 = getelementptr inbounds i64, i64* %a, i64 1 + %i3 = load i64, i64* %arrayidx3, align 8 + %arrayidx4 = getelementptr inbounds i64, i64* %b, i64 1 + %i4 = load i64, i64* %arrayidx4, align 8 %mul5 = mul i64 %i3, %i4 %ptr = inttoptr i64 %mul to double* %ptr5 = inttoptr i64 %mul5 to double* - %aptr = getelementptr inbounds double* %ptr, i64 2 - %aptr5 = getelementptr inbounds double* %ptr5, i64 3 - %av = load double* %aptr, align 16 - %av5 = load double* %aptr5, align 16 + %aptr = getelementptr inbounds double, double* %ptr, i64 2 + %aptr5 = getelementptr inbounds double, double* %ptr5, i64 3 + %av = load double, double* %aptr, align 16 + %av5 = load double, double* %aptr5, align 16 %r = fmul double %av, %av5 store i64 %mul, i64* %c, align 8 - %arrayidx5 = getelementptr inbounds i64* %c, i64 1 + %arrayidx5 = getelementptr inbounds i64, i64* %c, i64 1 store i64 %mul5, i64* %arrayidx5, align 8 ret double %r ; CHECK-LABEL: @test1( ; CHECK: %i0.v.i0 = bitcast i64* %a to <2 x i64>* ; CHECK: %i1.v.i0 = bitcast i64* %b to <2 x i64>* -; CHECK: %i0 = load <2 x i64>* %i0.v.i0, align 8 -; CHECK: %i1 = load <2 x i64>* %i1.v.i0, align 8 +; CHECK: %i0 = load <2 x i64>, <2 x i64>* %i0.v.i0, align 8 +; CHECK: %i1 = load <2 x i64>, <2 x i64>* %i1.v.i0, align 8 ; CHECK: %mul = mul <2 x i64> %i0, %i1 ; CHECK: %ptr = inttoptr <2 x i64> %mul to <2 x double*> -; CHECK: %aptr = getelementptr inbounds <2 x double*> %ptr, <2 x i64> +; CHECK: %aptr = getelementptr inbounds double, <2 x double*> %ptr, <2 x i64> ; CHECK: %aptr.v.r1 = extractelement <2 x double*> %aptr, i32 0 ; CHECK: %aptr.v.r2 = extractelement <2 x double*> %aptr, i32 1 -; CHECK: %av = load double* %aptr.v.r1, align 16 -; CHECK: %av5 = load double* %aptr.v.r2, align 16 +; CHECK: %av = load double, double* %aptr.v.r1, align 16 +; CHECK: %av5 = load double, double* %aptr.v.r2, align 16 ; CHECK: %r = fmul double %av, %av5 ; CHECK: %0 = bitcast i64* %c to <2 x i64>* ; CHECK: store <2 x i64> %mul, <2 x i64>* %0, align 8 @@ -50,31 +50,31 @@ entry: ; Simple 3-pair chain with loads and stores (using ptrs and gep) define void @test2(i64** %a, i64** %b, i64** %c) nounwind uwtable readonly { entry: - %i0 = load i64** %a, align 8 - %i1 = load i64** %b, align 8 - %arrayidx3 = getelementptr inbounds i64** %a, i64 1 - %i3 = load i64** %arrayidx3, align 8 - %arrayidx4 = getelementptr inbounds i64** %b, i64 1 - %i4 = load i64** %arrayidx4, align 8 - %o1 = load i64* %i1, align 8 - %o4 = load i64* %i4, align 8 - %ptr0 = getelementptr inbounds i64* %i0, i64 %o1 - %ptr3 = getelementptr inbounds i64* %i3, i64 %o4 + %i0 = load i64*, i64** %a, align 8 + %i1 = load i64*, i64** %b, align 8 + %arrayidx3 = getelementptr inbounds i64*, i64** %a, i64 1 + %i3 = load i64*, i64** %arrayidx3, align 8 + %arrayidx4 = getelementptr inbounds i64*, i64** %b, i64 1 + %i4 = load i64*, i64** %arrayidx4, align 8 + %o1 = load i64, i64* %i1, align 8 + %o4 = load i64, i64* %i4, align 8 + %ptr0 = getelementptr inbounds i64, i64* %i0, i64 %o1 + %ptr3 = getelementptr inbounds i64, i64* %i3, i64 %o4 store i64* %ptr0, i64** %c, align 8 - %arrayidx5 = getelementptr inbounds i64** %c, i64 1 + %arrayidx5 = getelementptr inbounds i64*, i64** %c, i64 1 store i64* %ptr3, i64** %arrayidx5, align 8 ret void ; CHECK-LABEL: @test2( ; CHECK: %i0.v.i0 = bitcast i64** %a to <2 x i64*>* -; CHECK: %i1 = load i64** %b, align 8 -; CHECK: %i0 = load <2 x i64*>* %i0.v.i0, align 8 -; CHECK: %arrayidx4 = getelementptr inbounds i64** %b, i64 1 -; CHECK: %i4 = load i64** %arrayidx4, align 8 -; CHECK: %o1 = load i64* %i1, align 8 -; CHECK: %o4 = load i64* %i4, align 8 +; CHECK: %i1 = load i64*, i64** %b, align 8 +; CHECK: %i0 = load <2 x i64*>, <2 x i64*>* %i0.v.i0, align 8 +; CHECK: %arrayidx4 = getelementptr inbounds i64*, i64** %b, i64 1 +; CHECK: %i4 = load i64*, i64** %arrayidx4, align 8 +; CHECK: %o1 = load i64, i64* %i1, align 8 +; CHECK: %o4 = load i64, i64* %i4, align 8 ; CHECK: %ptr0.v.i1.1 = insertelement <2 x i64> undef, i64 %o1, i32 0 ; CHECK: %ptr0.v.i1.2 = insertelement <2 x i64> %ptr0.v.i1.1, i64 %o4, i32 1 -; CHECK: %ptr0 = getelementptr inbounds <2 x i64*> %i0, <2 x i64> %ptr0.v.i1.2 +; CHECK: %ptr0 = getelementptr inbounds i64, <2 x i64*> %i0, <2 x i64> %ptr0.v.i1.2 ; CHECK: %0 = bitcast i64** %c to <2 x i64*>* ; CHECK: store <2 x i64*> %ptr0, <2 x i64*>* %0, align 8 ; CHECK: ret void @@ -86,42 +86,42 @@ entry: ; using pointer vectors. define void @test3(<2 x i64*>* %a, <2 x i64*>* %b, <2 x i64*>* %c) nounwind uwtable readonly { entry: - %i0 = load <2 x i64*>* %a, align 8 - %i1 = load <2 x i64*>* %b, align 8 - %arrayidx3 = getelementptr inbounds <2 x i64*>* %a, i64 1 - %i3 = load <2 x i64*>* %arrayidx3, align 8 - %arrayidx4 = getelementptr inbounds <2 x i64*>* %b, i64 1 - %i4 = load <2 x i64*>* %arrayidx4, align 8 + %i0 = load <2 x i64*>, <2 x i64*>* %a, align 8 + %i1 = load <2 x i64*>, <2 x i64*>* %b, align 8 + %arrayidx3 = getelementptr inbounds <2 x i64*>, <2 x i64*>* %a, i64 1 + %i3 = load <2 x i64*>, <2 x i64*>* %arrayidx3, align 8 + %arrayidx4 = getelementptr inbounds <2 x i64*>, <2 x i64*>* %b, i64 1 + %i4 = load <2 x i64*>, <2 x i64*>* %arrayidx4, align 8 %j1 = extractelement <2 x i64*> %i1, i32 0 %j4 = extractelement <2 x i64*> %i4, i32 0 - %o1 = load i64* %j1, align 8 - %o4 = load i64* %j4, align 8 + %o1 = load i64, i64* %j1, align 8 + %o4 = load i64, i64* %j4, align 8 %j0 = extractelement <2 x i64*> %i0, i32 0 %j3 = extractelement <2 x i64*> %i3, i32 0 - %ptr0 = getelementptr inbounds i64* %j0, i64 %o1 - %ptr3 = getelementptr inbounds i64* %j3, i64 %o4 + %ptr0 = getelementptr inbounds i64, i64* %j0, i64 %o1 + %ptr3 = getelementptr inbounds i64, i64* %j3, i64 %o4 %qtr0 = insertelement <2 x i64*> undef, i64* %ptr0, i32 0 %rtr0 = insertelement <2 x i64*> %qtr0, i64* %ptr0, i32 1 %qtr3 = insertelement <2 x i64*> undef, i64* %ptr3, i32 0 %rtr3 = insertelement <2 x i64*> %qtr3, i64* %ptr3, i32 1 store <2 x i64*> %rtr0, <2 x i64*>* %c, align 8 - %arrayidx5 = getelementptr inbounds <2 x i64*>* %c, i64 1 + %arrayidx5 = getelementptr inbounds <2 x i64*>, <2 x i64*>* %c, i64 1 store <2 x i64*> %rtr3, <2 x i64*>* %arrayidx5, align 8 ret void ; CHECK-LABEL: @test3( ; CHECK: %i0.v.i0 = bitcast <2 x i64*>* %a to <4 x i64*>* -; CHECK: %i1 = load <2 x i64*>* %b, align 8 -; CHECK: %i0 = load <4 x i64*>* %i0.v.i0, align 8 -; CHECK: %arrayidx4 = getelementptr inbounds <2 x i64*>* %b, i64 1 -; CHECK: %i4 = load <2 x i64*>* %arrayidx4, align 8 +; CHECK: %i1 = load <2 x i64*>, <2 x i64*>* %b, align 8 +; CHECK: %i0 = load <4 x i64*>, <4 x i64*>* %i0.v.i0, align 8 +; CHECK: %arrayidx4 = getelementptr inbounds <2 x i64*>, <2 x i64*>* %b, i64 1 +; CHECK: %i4 = load <2 x i64*>, <2 x i64*>* %arrayidx4, align 8 ; CHECK: %j1 = extractelement <2 x i64*> %i1, i32 0 ; CHECK: %j4 = extractelement <2 x i64*> %i4, i32 0 -; CHECK: %o1 = load i64* %j1, align 8 -; CHECK: %o4 = load i64* %j4, align 8 +; CHECK: %o1 = load i64, i64* %j1, align 8 +; CHECK: %o4 = load i64, i64* %j4, align 8 ; CHECK: %ptr0.v.i1.1 = insertelement <2 x i64> undef, i64 %o1, i32 0 ; CHECK: %ptr0.v.i1.2 = insertelement <2 x i64> %ptr0.v.i1.1, i64 %o4, i32 1 ; CHECK: %ptr0.v.i0 = shufflevector <4 x i64*> %i0, <4 x i64*> undef, <2 x i32> -; CHECK: %ptr0 = getelementptr inbounds <2 x i64*> %ptr0.v.i0, <2 x i64> %ptr0.v.i1.2 +; CHECK: %ptr0 = getelementptr inbounds i64, <2 x i64*> %ptr0.v.i0, <2 x i64> %ptr0.v.i1.2 ; CHECK: %rtr0 = shufflevector <2 x i64*> %ptr0, <2 x i64*> undef, <2 x i32> zeroinitializer ; CHECK: %rtr3 = shufflevector <2 x i64*> %ptr0, <2 x i64*> undef, <2 x i32> ; CHECK: %0 = bitcast <2 x i64*>* %c to <4 x i64*>* diff --git a/test/Transforms/BBVectorize/simple-ldstr.ll b/test/Transforms/BBVectorize/simple-ldstr.ll index 558f8b3..56c1a06 100644 --- a/test/Transforms/BBVectorize/simple-ldstr.ll +++ b/test/Transforms/BBVectorize/simple-ldstr.ll @@ -5,23 +5,23 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 ; Simple 3-pair chain with loads and stores define void @test1(double* %a, double* %b, double* %c) nounwind uwtable readonly { entry: - %i0 = load double* %a, align 8 - %i1 = load double* %b, align 8 + %i0 = load double, double* %a, align 8 + %i1 = load double, double* %b, align 8 %mul = fmul double %i0, %i1 - %arrayidx3 = getelementptr inbounds double* %a, i64 1 - %i3 = load double* %arrayidx3, align 8 - %arrayidx4 = getelementptr inbounds double* %b, i64 1 - %i4 = load double* %arrayidx4, align 8 + %arrayidx3 = getelementptr inbounds double, double* %a, i64 1 + %i3 = load double, double* %arrayidx3, align 8 + %arrayidx4 = getelementptr inbounds double, double* %b, i64 1 + %i4 = load double, double* %arrayidx4, align 8 %mul5 = fmul double %i3, %i4 store double %mul, double* %c, align 8 - %arrayidx5 = getelementptr inbounds double* %c, i64 1 + %arrayidx5 = getelementptr inbounds double, double* %c, i64 1 store double %mul5, double* %arrayidx5, align 8 ret void ; CHECK-LABEL: @test1( ; CHECK: %i0.v.i0 = bitcast double* %a to <2 x double>* ; CHECK: %i1.v.i0 = bitcast double* %b to <2 x double>* -; CHECK: %i0 = load <2 x double>* %i0.v.i0, align 8 -; CHECK: %i1 = load <2 x double>* %i1.v.i0, align 8 +; CHECK: %i0 = load <2 x double>, <2 x double>* %i0.v.i0, align 8 +; CHECK: %i1 = load <2 x double>, <2 x double>* %i1.v.i0, align 8 ; CHECK: %mul = fmul <2 x double> %i0, %i1 ; CHECK: %0 = bitcast double* %c to <2 x double>* ; CHECK: store <2 x double> %mul, <2 x double>* %0, align 8 @@ -33,28 +33,28 @@ entry: ; Simple chain with extending loads and stores define void @test2(float* %a, float* %b, double* %c) nounwind uwtable readonly { entry: - %i0f = load float* %a, align 4 + %i0f = load float, float* %a, align 4 %i0 = fpext float %i0f to double - %i1f = load float* %b, align 4 + %i1f = load float, float* %b, align 4 %i1 = fpext float %i1f to double %mul = fmul double %i0, %i1 - %arrayidx3 = getelementptr inbounds float* %a, i64 1 - %i3f = load float* %arrayidx3, align 4 + %arrayidx3 = getelementptr inbounds float, float* %a, i64 1 + %i3f = load float, float* %arrayidx3, align 4 %i3 = fpext float %i3f to double - %arrayidx4 = getelementptr inbounds float* %b, i64 1 - %i4f = load float* %arrayidx4, align 4 + %arrayidx4 = getelementptr inbounds float, float* %b, i64 1 + %i4f = load float, float* %arrayidx4, align 4 %i4 = fpext float %i4f to double %mul5 = fmul double %i3, %i4 store double %mul, double* %c, align 8 - %arrayidx5 = getelementptr inbounds double* %c, i64 1 + %arrayidx5 = getelementptr inbounds double, double* %c, i64 1 store double %mul5, double* %arrayidx5, align 8 ret void ; CHECK-LABEL: @test2( ; CHECK: %i0f.v.i0 = bitcast float* %a to <2 x float>* ; CHECK: %i1f.v.i0 = bitcast float* %b to <2 x float>* -; CHECK: %i0f = load <2 x float>* %i0f.v.i0, align 4 +; CHECK: %i0f = load <2 x float>, <2 x float>* %i0f.v.i0, align 4 ; CHECK: %i0 = fpext <2 x float> %i0f to <2 x double> -; CHECK: %i1f = load <2 x float>* %i1f.v.i0, align 4 +; CHECK: %i1f = load <2 x float>, <2 x float>* %i1f.v.i0, align 4 ; CHECK: %i1 = fpext <2 x float> %i1f to <2 x double> ; CHECK: %mul = fmul <2 x double> %i0, %i1 ; CHECK: %0 = bitcast double* %c to <2 x double>* @@ -67,37 +67,37 @@ entry: ; Simple chain with loads and truncating stores define void @test3(double* %a, double* %b, float* %c) nounwind uwtable readonly { entry: - %i0 = load double* %a, align 8 - %i1 = load double* %b, align 8 + %i0 = load double, double* %a, align 8 + %i1 = load double, double* %b, align 8 %mul = fmul double %i0, %i1 %mulf = fptrunc double %mul to float - %arrayidx3 = getelementptr inbounds double* %a, i64 1 - %i3 = load double* %arrayidx3, align 8 - %arrayidx4 = getelementptr inbounds double* %b, i64 1 - %i4 = load double* %arrayidx4, align 8 + %arrayidx3 = getelementptr inbounds double, double* %a, i64 1 + %i3 = load double, double* %arrayidx3, align 8 + %arrayidx4 = getelementptr inbounds double, double* %b, i64 1 + %i4 = load double, double* %arrayidx4, align 8 %mul5 = fmul double %i3, %i4 %mul5f = fptrunc double %mul5 to float store float %mulf, float* %c, align 8 - %arrayidx5 = getelementptr inbounds float* %c, i64 1 + %arrayidx5 = getelementptr inbounds float, float* %c, i64 1 store float %mul5f, float* %arrayidx5, align 4 ret void ; CHECK-LABEL: @test3( ; CHECK: %i0.v.i0 = bitcast double* %a to <2 x double>* ; CHECK: %i1.v.i0 = bitcast double* %b to <2 x double>* -; CHECK: %i0 = load <2 x double>* %i0.v.i0, align 8 -; CHECK: %i1 = load <2 x double>* %i1.v.i0, align 8 +; CHECK: %i0 = load <2 x double>, <2 x double>* %i0.v.i0, align 8 +; CHECK: %i1 = load <2 x double>, <2 x double>* %i1.v.i0, align 8 ; CHECK: %mul = fmul <2 x double> %i0, %i1 ; CHECK: %mulf = fptrunc <2 x double> %mul to <2 x float> ; CHECK: %0 = bitcast float* %c to <2 x float>* ; CHECK: store <2 x float> %mulf, <2 x float>* %0, align 8 ; CHECK: ret void ; CHECK-AO-LABEL: @test3( -; CHECK-AO: %i0 = load double* %a, align 8 -; CHECK-AO: %i1 = load double* %b, align 8 -; CHECK-AO: %arrayidx3 = getelementptr inbounds double* %a, i64 1 -; CHECK-AO: %i3 = load double* %arrayidx3, align 8 -; CHECK-AO: %arrayidx4 = getelementptr inbounds double* %b, i64 1 -; CHECK-AO: %i4 = load double* %arrayidx4, align 8 +; CHECK-AO: %i0 = load double, double* %a, align 8 +; CHECK-AO: %i1 = load double, double* %b, align 8 +; CHECK-AO: %arrayidx3 = getelementptr inbounds double, double* %a, i64 1 +; CHECK-AO: %i3 = load double, double* %arrayidx3, align 8 +; CHECK-AO: %arrayidx4 = getelementptr inbounds double, double* %b, i64 1 +; CHECK-AO: %i4 = load double, double* %arrayidx4, align 8 ; CHECK-AO: %mul.v.i1.1 = insertelement <2 x double> undef, double %i1, i32 0 ; CHECK-AO: %mul.v.i1.2 = insertelement <2 x double> %mul.v.i1.1, double %i4, i32 1 ; CHECK-AO: %mul.v.i0.1 = insertelement <2 x double> undef, double %i0, i32 0 @@ -119,16 +119,16 @@ if.then1: br label %if.then if.then: - %i0 = load double* %a, align 8 - %i1 = load double* %b, align 8 + %i0 = load double, double* %a, align 8 + %i1 = load double, double* %b, align 8 %mul = fmul double %i0, %i1 - %arrayidx3 = getelementptr inbounds double* %a, i64 1 - %i3 = load double* %arrayidx3, align 8 - %arrayidx4 = getelementptr inbounds double* %b, i64 1 - %i4 = load double* %arrayidx4, align 8 + %arrayidx3 = getelementptr inbounds double, double* %a, i64 1 + %i3 = load double, double* %arrayidx3, align 8 + %arrayidx4 = getelementptr inbounds double, double* %b, i64 1 + %i4 = load double, double* %arrayidx4, align 8 %mul5 = fmul double %i3, %i4 store double %mul, double* %c, align 8 - %arrayidx5 = getelementptr inbounds double* %c, i64 1 + %arrayidx5 = getelementptr inbounds double, double* %c, i64 1 store double %mul5, double* %arrayidx5, align 8 br label %if.end @@ -143,23 +143,23 @@ if.end: ; Simple 3-pair chain with loads and stores define void @test5(double* %a, double* %b, double* %c) nounwind uwtable readonly { entry: - %i0 = load double* %a, align 8 - %i1 = load double* %b, align 8 + %i0 = load double, double* %a, align 8 + %i1 = load double, double* %b, align 8 %mul = fmul double %i0, %i1 - %arrayidx3 = getelementptr inbounds double* %a, i64 1 - %i3 = load double* %arrayidx3, align 8 - %arrayidx4 = getelementptr inbounds double* %b, i64 1 - %i4 = load double* %arrayidx4, align 8 + %arrayidx3 = getelementptr inbounds double, double* %a, i64 1 + %i3 = load double, double* %arrayidx3, align 8 + %arrayidx4 = getelementptr inbounds double, double* %b, i64 1 + %i4 = load double, double* %arrayidx4, align 8 %mul5 = fmul double %i3, %i4 - %arrayidx5 = getelementptr inbounds double* %c, i64 1 + %arrayidx5 = getelementptr inbounds double, double* %c, i64 1 store double %mul5, double* %arrayidx5, align 8 store double %mul, double* %c, align 4 ret void ; CHECK-LABEL: @test5( ; CHECK: %i0.v.i0 = bitcast double* %a to <2 x double>* ; CHECK: %i1.v.i0 = bitcast double* %b to <2 x double>* -; CHECK: %i0 = load <2 x double>* %i0.v.i0, align 8 -; CHECK: %i1 = load <2 x double>* %i1.v.i0, align 8 +; CHECK: %i0 = load <2 x double>, <2 x double>* %i0.v.i0, align 8 +; CHECK: %i1 = load <2 x double>, <2 x double>* %i1.v.i0, align 8 ; CHECK: %mul = fmul <2 x double> %i0, %i1 ; CHECK: %0 = bitcast double* %c to <2 x double>* ; CHECK: store <2 x double> %mul, <2 x double>* %0, align 4 diff --git a/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll b/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll index a6ee63e..2f9c0c73 100644 --- a/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll +++ b/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll @@ -13,7 +13,7 @@ loopentry.1: ; preds = %no_exit.1, %loopentry.1.preheader br i1 false, label %no_exit.1, label %loopexit.0.loopexit1 no_exit.1: ; preds = %loopentry.1 - %tmp.53 = load i32* null ; [#uses=1] + %tmp.53 = load i32, i32* null ; [#uses=1] br i1 false, label %shortcirc_next.2, label %loopentry.1 shortcirc_next.2: ; preds = %no_exit.1 diff --git a/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll b/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll index 430b992..519e1ee 100644 --- a/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll +++ b/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll @@ -9,7 +9,7 @@ define i128 @sink(i64* %mem1, i64* %mem2) { ; CHECK-LABEL: block1: ; CHECK-NEXT: load block1: - %l1 = load i64* %mem1 + %l1 = load i64, i64* %mem1 %s1 = sext i64 %l1 to i128 br label %block2 @@ -18,7 +18,7 @@ block1: ; CHECK-NEXT: load ; CHECK-NEXT: sext block2: - %l2 = load i64* %mem2 + %l2 = load i64, i64* %mem2 %s2 = sext i64 %l2 to i128 %res = mul i128 %s1, %s2 ret i128 %res @@ -31,7 +31,7 @@ define i64 @hoist(i32* %mem1, i32* %mem2) { ; CHECK-NEXT: load ; CHECK-NEXT: sext block1: - %l1 = load i32* %mem1 + %l1 = load i32, i32* %mem1 br label %block2 ; CHECK-LABEL: block2: @@ -39,7 +39,7 @@ block1: ; CHECK-NEXT: sext block2: %s1 = sext i32 %l1 to i64 - %l2 = load i32* %mem2 + %l2 = load i32, i32* %mem2 %s2 = sext i32 %l2 to i64 %res = mul i64 %s1, %s2 ret i64 %res diff --git a/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll b/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll index a985c36..c9f49b5 100644 --- a/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll +++ b/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll @@ -8,12 +8,12 @@ target triple = "x86_64-unknown-linux-gnu" ; CHECK: add i64 %sunkaddr, 40 define void @load_cast_gep(i1 %cond, i64* %base) { entry: - %addr = getelementptr inbounds i64* %base, i64 5 + %addr = getelementptr inbounds i64, i64* %base, i64 5 %casted = addrspacecast i64* %addr to i32 addrspace(1)* br i1 %cond, label %if.then, label %fallthrough if.then: - %v = load i32 addrspace(1)* %casted, align 4 + %v = load i32, i32 addrspace(1)* %casted, align 4 br label %fallthrough fallthrough: @@ -25,7 +25,7 @@ fallthrough: define void @store_gep_cast(i1 %cond, i64* %base) { entry: %casted = addrspacecast i64* %base to i32 addrspace(1)* - %addr = getelementptr inbounds i32 addrspace(1)* %casted, i64 5 + %addr = getelementptr inbounds i32, i32 addrspace(1)* %casted, i64 5 br i1 %cond, label %if.then, label %fallthrough if.then: diff --git a/test/Transforms/CodeGenPrepare/statepoint-relocate.ll b/test/Transforms/CodeGenPrepare/statepoint-relocate.ll index cf411bc..7aa526f 100644 --- a/test/Transforms/CodeGenPrepare/statepoint-relocate.ll +++ b/test/Transforms/CodeGenPrepare/statepoint-relocate.ll @@ -6,80 +6,80 @@ target triple = "x86_64-pc-linux-gnu" declare zeroext i1 @return_i1() define i32 @test_sor_basic(i32* %base) { -; CHECK: getelementptr i32* %base, i32 15 -; CHECK: getelementptr i32* %base-new, i32 15 +; CHECK: getelementptr i32, i32* %base, i32 15 +; CHECK: getelementptr i32, i32* %base-new, i32 15 entry: - %ptr = getelementptr i32* %base, i32 15 + %ptr = getelementptr i32, i32* %base, i32 15 %tok = call i32 (i1 ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_i1f(i1 ()* @return_i1, i32 0, i32 0, i32 0, i32* %base, i32* %ptr) %base-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 4) %ptr-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 5) - %ret = load i32* %ptr-new + %ret = load i32, i32* %ptr-new ret i32 %ret } define i32 @test_sor_two_derived(i32* %base) { -; CHECK: getelementptr i32* %base, i32 15 -; CHECK: getelementptr i32* %base, i32 12 -; CHECK: getelementptr i32* %base-new, i32 15 -; CHECK: getelementptr i32* %base-new, i32 12 +; CHECK: getelementptr i32, i32* %base, i32 15 +; CHECK: getelementptr i32, i32* %base, i32 12 +; CHECK: getelementptr i32, i32* %base-new, i32 15 +; CHECK: getelementptr i32, i32* %base-new, i32 12 entry: - %ptr = getelementptr i32* %base, i32 15 - %ptr2 = getelementptr i32* %base, i32 12 + %ptr = getelementptr i32, i32* %base, i32 15 + %ptr2 = getelementptr i32, i32* %base, i32 12 %tok = call i32 (i1 ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_i1f(i1 ()* @return_i1, i32 0, i32 0, i32 0, i32* %base, i32* %ptr, i32* %ptr2) %base-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 4) %ptr-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 5) %ptr2-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 6) - %ret = load i32* %ptr-new + %ret = load i32, i32* %ptr-new ret i32 %ret } define i32 @test_sor_ooo(i32* %base) { -; CHECK: getelementptr i32* %base, i32 15 -; CHECK: getelementptr i32* %base-new, i32 15 +; CHECK: getelementptr i32, i32* %base, i32 15 +; CHECK: getelementptr i32, i32* %base-new, i32 15 entry: - %ptr = getelementptr i32* %base, i32 15 + %ptr = getelementptr i32, i32* %base, i32 15 %tok = call i32 (i1 ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_i1f(i1 ()* @return_i1, i32 0, i32 0, i32 0, i32* %base, i32* %ptr) %ptr-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 5) %base-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 4) - %ret = load i32* %ptr-new + %ret = load i32, i32* %ptr-new ret i32 %ret } define i32 @test_sor_gep_smallint([3 x i32]* %base) { -; CHECK: getelementptr [3 x i32]* %base, i32 0, i32 2 -; CHECK: getelementptr [3 x i32]* %base-new, i32 0, i32 2 +; CHECK: getelementptr [3 x i32], [3 x i32]* %base, i32 0, i32 2 +; CHECK: getelementptr [3 x i32], [3 x i32]* %base-new, i32 0, i32 2 entry: - %ptr = getelementptr [3 x i32]* %base, i32 0, i32 2 + %ptr = getelementptr [3 x i32], [3 x i32]* %base, i32 0, i32 2 %tok = call i32 (i1 ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_i1f(i1 ()* @return_i1, i32 0, i32 0, i32 0, [3 x i32]* %base, i32* %ptr) %base-new = call [3 x i32]* @llvm.experimental.gc.relocate.p0a3i32(i32 %tok, i32 4, i32 4) %ptr-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 5) - %ret = load i32* %ptr-new + %ret = load i32, i32* %ptr-new ret i32 %ret } define i32 @test_sor_gep_largeint([3 x i32]* %base) { -; CHECK: getelementptr [3 x i32]* %base, i32 0, i32 21 -; CHECK-NOT: getelementptr [3 x i32]* %base-new, i32 0, i32 21 +; CHECK: getelementptr [3 x i32], [3 x i32]* %base, i32 0, i32 21 +; CHECK-NOT: getelementptr [3 x i32], [3 x i32]* %base-new, i32 0, i32 21 entry: - %ptr = getelementptr [3 x i32]* %base, i32 0, i32 21 + %ptr = getelementptr [3 x i32], [3 x i32]* %base, i32 0, i32 21 %tok = call i32 (i1 ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_i1f(i1 ()* @return_i1, i32 0, i32 0, i32 0, [3 x i32]* %base, i32* %ptr) %base-new = call [3 x i32]* @llvm.experimental.gc.relocate.p0a3i32(i32 %tok, i32 4, i32 4) %ptr-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 5) - %ret = load i32* %ptr-new + %ret = load i32, i32* %ptr-new ret i32 %ret } define i32 @test_sor_noop(i32* %base) { -; CHECK: getelementptr i32* %base, i32 15 +; CHECK: getelementptr i32, i32* %base, i32 15 ; CHECK: call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 5) ; CHECK: call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 6) entry: - %ptr = getelementptr i32* %base, i32 15 - %ptr2 = getelementptr i32* %base, i32 12 + %ptr = getelementptr i32, i32* %base, i32 15 + %ptr2 = getelementptr i32, i32* %base, i32 12 %tok = call i32 (i1 ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_i1f(i1 ()* @return_i1, i32 0, i32 0, i32 0, i32* %base, i32* %ptr, i32* %ptr2) %ptr-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 5) %ptr2-new = call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 6) - %ret = load i32* %ptr-new + %ret = load i32, i32* %ptr-new ret i32 %ret } diff --git a/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll b/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll index d68cb26..af7e8be 100644 --- a/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll +++ b/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll @@ -4,7 +4,7 @@ @b = external global [2 x { }] ; <[2 x { }]*> [#uses=2] define i1 @f() { - %tmp.2 = icmp eq { }* getelementptr ([2 x { }]* @b, i32 0, i32 0), getelementptr ([2 x { }]* @b, i32 0, i32 1) ; [#uses=1] + %tmp.2 = icmp eq { }* getelementptr ([2 x { }], [2 x { }]* @b, i32 0, i32 0), getelementptr ([2 x { }], [2 x { }]* @b, i32 0, i32 1) ; [#uses=1] ret i1 %tmp.2 } diff --git a/test/Transforms/ConstProp/2009-09-01-GEP-Crash.ll b/test/Transforms/ConstProp/2009-09-01-GEP-Crash.ll index fc7ff90..e93a2c0 100644 --- a/test/Transforms/ConstProp/2009-09-01-GEP-Crash.ll +++ b/test/Transforms/ConstProp/2009-09-01-GEP-Crash.ll @@ -18,7 +18,7 @@ target triple = "x86_64-unknown-linux-gnu" define void @init_hrtimers_cpu(i32 %cpu) nounwind noredzone section ".cpuinit.text" { entry: - %tmp3 = getelementptr %struct.hrtimer_cpu_base* bitcast (%1* @per_cpu__hrtimer_bases to %struct.hrtimer_cpu_base*), i32 0, i32 0 ; <%0*> [#uses=1] + %tmp3 = getelementptr %struct.hrtimer_cpu_base, %struct.hrtimer_cpu_base* bitcast (%1* @per_cpu__hrtimer_bases to %struct.hrtimer_cpu_base*), i32 0, i32 0 ; <%0*> [#uses=1] %tmp5 = bitcast %0* %tmp3 to i8* ; [#uses=0] unreachable } diff --git a/test/Transforms/ConstProp/div-zero.ll b/test/Transforms/ConstProp/div-zero.ll index a2c59d3..f4049a9 100644 --- a/test/Transforms/ConstProp/div-zero.ll +++ b/test/Transforms/ConstProp/div-zero.ll @@ -5,7 +5,7 @@ declare void @ext() define i32 @foo(i32 %ptr) { entry: %zero = sub i32 %ptr, %ptr ; [#uses=1] - %div_zero = sdiv i32 %zero, ptrtoint (i32* getelementptr (i32* null, + %div_zero = sdiv i32 %zero, ptrtoint (i32* getelementptr (i32, i32* null, i32 1) to i32) ; [#uses=1] ret i32 %div_zero } diff --git a/test/Transforms/ConstProp/loads.ll b/test/Transforms/ConstProp/loads.ll index 5a23dad..5426ad0 100644 --- a/test/Transforms/ConstProp/loads.ll +++ b/test/Transforms/ConstProp/loads.ll @@ -9,7 +9,7 @@ ; Simple load define i32 @test1() { - %r = load i32* getelementptr ({{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) + %r = load i32, i32* getelementptr ({{i32,i8},i32}, {{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) ret i32 %r ; 0xDEADBEEF @@ -24,7 +24,7 @@ define i32 @test1() { ; PR3152 ; Load of first 16 bits of 32-bit value. define i16 @test2() { - %r = load i16* bitcast(i32* getelementptr ({{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16*) + %r = load i16, i16* bitcast(i32* getelementptr ({{i32,i8},i32}, {{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16*) ret i16 %r ; 0xBEEF @@ -37,7 +37,7 @@ define i16 @test2() { } define i16 @test2_addrspacecast() { - %r = load i16 addrspace(1)* addrspacecast(i32* getelementptr ({{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16 addrspace(1)*) + %r = load i16, i16 addrspace(1)* addrspacecast(i32* getelementptr ({{i32,i8},i32}, {{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16 addrspace(1)*) ret i16 %r ; 0xBEEF @@ -51,7 +51,7 @@ define i16 @test2_addrspacecast() { ; Load of second 16 bits of 32-bit value. define i16 @test3() { - %r = load i16* getelementptr(i16* bitcast(i32* getelementptr ({{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16*), i32 1) + %r = load i16, i16* getelementptr(i16, i16* bitcast(i32* getelementptr ({{i32,i8},i32}, {{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16*), i32 1) ret i16 %r ; 0xDEAD @@ -65,7 +65,7 @@ define i16 @test3() { ; Load of 8 bit field + tail padding. define i16 @test4() { - %r = load i16* getelementptr(i16* bitcast(i32* getelementptr ({{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16*), i32 2) + %r = load i16, i16* getelementptr(i16, i16* bitcast(i32* getelementptr ({{i32,i8},i32}, {{i32,i8},i32}* @g1, i32 0, i32 0, i32 0) to i16*), i32 2) ret i16 %r ; 0x00BA @@ -79,7 +79,7 @@ define i16 @test4() { ; Load of double bits. define i64 @test6() { - %r = load i64* bitcast(double* @g2 to i64*) + %r = load i64, i64* bitcast(double* @g2 to i64*) ret i64 %r ; 0x3FF_0000000000000 @@ -93,7 +93,7 @@ define i64 @test6() { ; Load of double bits. define i16 @test7() { - %r = load i16* bitcast(double* @g2 to i16*) + %r = load i16, i16* bitcast(double* @g2 to i16*) ret i16 %r ; 0x0000 @@ -107,7 +107,7 @@ define i16 @test7() { ; Double load. define double @test8() { - %r = load double* bitcast({{i32,i8},i32}* @g1 to double*) + %r = load double, double* bitcast({{i32,i8},i32}* @g1 to double*) ret double %r ; LE-LABEL: @test8( @@ -120,7 +120,7 @@ define double @test8() { ; i128 load. define i128 @test9() { - %r = load i128* bitcast({i64, i64}* @g3 to i128*) + %r = load i128, i128* bitcast({i64, i64}* @g3 to i128*) ret i128 %r ; 0x00000000_06B1BFF8_00000000_0000007B @@ -134,7 +134,7 @@ define i128 @test9() { ; vector load. define <2 x i64> @test10() { - %r = load <2 x i64>* bitcast({i64, i64}* @g3 to <2 x i64>*) + %r = load <2 x i64>, <2 x i64>* bitcast({i64, i64}* @g3 to <2 x i64>*) ret <2 x i64> %r ; LE-LABEL: @test10( @@ -151,7 +151,7 @@ define <2 x i64> @test10() { define i16 @test11() nounwind { entry: - %a = load i16* bitcast ({ i8, i8 }* @g4 to i16*) + %a = load i16, i16* bitcast ({ i8, i8 }* @g4 to i16*) ret i16 %a ; 0x08A1 @@ -168,7 +168,7 @@ entry: @test12g = private constant [6 x i8] c"a\00b\00\00\00" define i16 @test12() { - %a = load i16* getelementptr inbounds ([3 x i16]* bitcast ([6 x i8]* @test12g to [3 x i16]*), i32 0, i64 1) + %a = load i16, i16* getelementptr inbounds ([3 x i16], [3 x i16]* bitcast ([6 x i8]* @test12g to [3 x i16]*), i32 0, i64 1) ret i16 %a ; 0x0062 @@ -184,7 +184,7 @@ define i16 @test12() { ; PR5978 @g5 = constant i8 4 define i1 @test13() { - %A = load i1* bitcast (i8* @g5 to i1*) + %A = load i1, i1* bitcast (i8* @g5 to i1*) ret i1 %A ; LE-LABEL: @test13( @@ -197,7 +197,7 @@ define i1 @test13() { @g6 = constant [2 x i8*] [i8* inttoptr (i64 1 to i8*), i8* inttoptr (i64 2 to i8*)] define i64 @test14() nounwind { entry: - %tmp = load i64* bitcast ([2 x i8*]* @g6 to i64*) + %tmp = load i64, i64* bitcast ([2 x i8*]* @g6 to i64*) ret i64 %tmp ; LE-LABEL: @test14( @@ -211,7 +211,7 @@ entry: @g6_as1 = constant [2 x i8 addrspace(1)*] [i8 addrspace(1)* inttoptr (i16 1 to i8 addrspace(1)*), i8 addrspace(1)* inttoptr (i16 2 to i8 addrspace(1)*)] define i16 @test14_as1() nounwind { entry: - %tmp = load i16* bitcast ([2 x i8 addrspace(1)*]* @g6_as1 to i16*) + %tmp = load i16, i16* bitcast ([2 x i8 addrspace(1)*]* @g6_as1 to i16*) ret i16 %tmp ; LE: @test14_as1 @@ -223,7 +223,7 @@ entry: define i64 @test15() nounwind { entry: - %tmp = load i64* bitcast (i8** getelementptr inbounds ([2 x i8*]* @g6, i32 0, i64 1) to i64*) + %tmp = load i64, i64* bitcast (i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @g6, i32 0, i64 1) to i64*) ret i64 %tmp ; LE-LABEL: @test15( @@ -235,7 +235,7 @@ entry: @gv7 = constant [4 x i8*] [i8* null, i8* inttoptr (i64 -14 to i8*), i8* null, i8* null] define i64 @test16.1() { - %v = load i64* bitcast ([4 x i8*]* @gv7 to i64*), align 8 + %v = load i64, i64* bitcast ([4 x i8*]* @gv7 to i64*), align 8 ret i64 %v ; LE-LABEL: @test16.1( @@ -246,7 +246,7 @@ define i64 @test16.1() { } define i64 @test16.2() { - %v = load i64* bitcast (i8** getelementptr inbounds ([4 x i8*]* @gv7, i64 0, i64 1) to i64*), align 8 + %v = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @gv7, i64 0, i64 1) to i64*), align 8 ret i64 %v ; LE-LABEL: @test16.2( @@ -257,7 +257,7 @@ define i64 @test16.2() { } define i64 @test16.3() { - %v = load i64* bitcast (i8** getelementptr inbounds ([4 x i8*]* @gv7, i64 0, i64 2) to i64*), align 8 + %v = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @gv7, i64 0, i64 2) to i64*), align 8 ret i64 %v ; LE-LABEL: @test16.3( diff --git a/test/Transforms/ConstProp/shift.ll b/test/Transforms/ConstProp/shift.ll new file mode 100644 index 0000000..de23fe9 --- /dev/null +++ b/test/Transforms/ConstProp/shift.ll @@ -0,0 +1,69 @@ +; RUN: opt < %s -constprop -S | FileCheck %s + +; CHECK-LABEL: shift_undef_64 +define void @shift_undef_64(i64* %p) { + %r1 = lshr i64 -1, 4294967296 ; 2^32 + ; CHECK: store i64 undef + store i64 %r1, i64* %p + + %r2 = ashr i64 -1, 4294967297 ; 2^32 + 1 + ; CHECK: store i64 undef + store i64 %r2, i64* %p + + %r3 = shl i64 -1, 4294967298 ; 2^32 + 2 + ; CHECK: store i64 undef + store i64 %r3, i64* %p + + ret void +} + +; CHECK-LABEL: shift_undef_65 +define void @shift_undef_65(i65* %p) { + %r1 = lshr i65 2, 18446744073709551617 + ; CHECK: store i65 undef + store i65 %r1, i65* %p + + %r2 = ashr i65 4, 18446744073709551617 + ; CHECK: store i65 undef + store i65 %r2, i65* %p + + %r3 = shl i65 1, 18446744073709551617 + ; CHECK: store i65 undef + store i65 %r3, i65* %p + + ret void +} + +; CHECK-LABEL: shift_undef_256 +define void @shift_undef_256(i256* %p) { + %r1 = lshr i256 2, 18446744073709551617 + ; CHECK: store i256 undef + store i256 %r1, i256* %p + + %r2 = ashr i256 4, 18446744073709551618 + ; CHECK: store i256 undef + store i256 %r2, i256* %p + + %r3 = shl i256 1, 18446744073709551619 + ; CHECK: store i256 undef + store i256 %r3, i256* %p + + ret void +} + +; CHECK-LABEL: shift_undef_511 +define void @shift_undef_511(i511* %p) { + %r1 = lshr i511 -1, 1208925819614629174706276 ; 2^80 + 100 + ; CHECK: store i511 undef + store i511 %r1, i511* %p + + %r2 = ashr i511 -2, 1208925819614629174706200 + ; CHECK: store i511 undef + store i511 %r2, i511* %p + + %r3 = shl i511 -3, 1208925819614629174706180 + ; CHECK: store i511 undef + store i511 %r3, i511* %p + + ret void +} diff --git a/test/Transforms/ConstantHoisting/AArch64/const-addr.ll b/test/Transforms/ConstantHoisting/AArch64/const-addr.ll index 89d5960..4c36d20 100644 --- a/test/Transforms/ConstantHoisting/AArch64/const-addr.ll +++ b/test/Transforms/ConstantHoisting/AArch64/const-addr.ll @@ -6,17 +6,17 @@ define i32 @test1() nounwind { ; CHECK-LABEL: test1 ; CHECK: %const = bitcast i64 68141056 to i64 ; CHECK: %1 = inttoptr i64 %const to %T* -; CHECK: %o1 = getelementptr %T* %1, i32 0, i32 1 -; CHECK: %o2 = getelementptr %T* %1, i32 0, i32 2 -; CHECK: %o3 = getelementptr %T* %1, i32 0, i32 3 +; CHECK: %o1 = getelementptr %T, %T* %1, i32 0, i32 1 +; CHECK: %o2 = getelementptr %T, %T* %1, i32 0, i32 2 +; CHECK: %o3 = getelementptr %T, %T* %1, i32 0, i32 3 %at = inttoptr i64 68141056 to %T* - %o1 = getelementptr %T* %at, i32 0, i32 1 - %t1 = load i32* %o1 - %o2 = getelementptr %T* %at, i32 0, i32 2 - %t2 = load i32* %o2 + %o1 = getelementptr %T, %T* %at, i32 0, i32 1 + %t1 = load i32, i32* %o1 + %o2 = getelementptr %T, %T* %at, i32 0, i32 2 + %t2 = load i32, i32* %o2 %a1 = add i32 %t1, %t2 - %o3 = getelementptr %T* %at, i32 0, i32 3 - %t3 = load i32* %o3 + %o3 = getelementptr %T, %T* %at, i32 0, i32 3 + %t3 = load i32, i32* %o3 %a2 = add i32 %a1, %t3 ret i32 %a2 } diff --git a/test/Transforms/ConstantHoisting/PowerPC/const-base-addr.ll b/test/Transforms/ConstantHoisting/PowerPC/const-base-addr.ll index b4337ee..69b13cf 100644 --- a/test/Transforms/ConstantHoisting/PowerPC/const-base-addr.ll +++ b/test/Transforms/ConstantHoisting/PowerPC/const-base-addr.ll @@ -9,13 +9,13 @@ define i32 @test1() nounwind { ; CHECK-LABEL: @test1 ; CHECK: %const = bitcast i32 12345678 to i32 ; CHECK: %1 = inttoptr i32 %const to %T* -; CHECK: %addr1 = getelementptr %T* %1, i32 0, i32 1 - %addr1 = getelementptr %T* inttoptr (i32 12345678 to %T*), i32 0, i32 1 - %tmp1 = load i32* %addr1 - %addr2 = getelementptr %T* inttoptr (i32 12345678 to %T*), i32 0, i32 2 - %tmp2 = load i32* %addr2 - %addr3 = getelementptr %T* inttoptr (i32 12345678 to %T*), i32 0, i32 3 - %tmp3 = load i32* %addr3 +; CHECK: %addr1 = getelementptr %T, %T* %1, i32 0, i32 1 + %addr1 = getelementptr %T, %T* inttoptr (i32 12345678 to %T*), i32 0, i32 1 + %tmp1 = load i32, i32* %addr1 + %addr2 = getelementptr %T, %T* inttoptr (i32 12345678 to %T*), i32 0, i32 2 + %tmp2 = load i32, i32* %addr2 + %addr3 = getelementptr %T, %T* inttoptr (i32 12345678 to %T*), i32 0, i32 3 + %tmp3 = load i32, i32* %addr3 %tmp4 = add i32 %tmp1, %tmp2 %tmp5 = add i32 %tmp3, %tmp4 ret i32 %tmp5 diff --git a/test/Transforms/ConstantHoisting/PowerPC/masks.ll b/test/Transforms/ConstantHoisting/PowerPC/masks.ll index d553182..4cc504f 100644 --- a/test/Transforms/ConstantHoisting/PowerPC/masks.ll +++ b/test/Transforms/ConstantHoisting/PowerPC/masks.ll @@ -19,7 +19,7 @@ if.then152: if.end167: ; CHECK: and i32 {{.*}}, 32768 %shl161 = shl nuw nsw i32 %conv121, 15 - %0 = load i8* undef, align 1 + %0 = load i8, i8* undef, align 1 %conv169 = zext i8 %0 to i32 %shl170 = shl nuw nsw i32 %conv169, 7 %shl161.masked = and i32 %shl161, 32768 @@ -49,7 +49,7 @@ if.then152: if.end167: ; CHECK: add i32 {{.*}}, -32758 %shl161 = shl nuw nsw i32 %conv121, 15 - %0 = load i8* undef, align 1 + %0 = load i8, i8* undef, align 1 %conv169 = zext i8 %0 to i32 %shl170 = shl nuw nsw i32 %conv169, 7 %shl161.masked = and i32 %shl161, 32773 diff --git a/test/Transforms/ConstantHoisting/X86/cast-inst.ll b/test/Transforms/ConstantHoisting/X86/cast-inst.ll index f490f4a..bd1e196 100644 --- a/test/Transforms/ConstantHoisting/X86/cast-inst.ll +++ b/test/Transforms/ConstantHoisting/X86/cast-inst.ll @@ -9,19 +9,19 @@ define i32 @cast_inst_test() { ; CHECK-LABEL: @cast_inst_test ; CHECK: %const = bitcast i64 4646526064 to i64 ; CHECK: %1 = inttoptr i64 %const to i32* -; CHECK: %v0 = load i32* %1, align 16 +; CHECK: %v0 = load i32, i32* %1, align 16 ; CHECK: %const_mat = add i64 %const, 16 ; CHECK-NEXT: %2 = inttoptr i64 %const_mat to i32* -; CHECK-NEXT: %v1 = load i32* %2, align 16 +; CHECK-NEXT: %v1 = load i32, i32* %2, align 16 ; CHECK: %const_mat1 = add i64 %const, 32 ; CHECK-NEXT: %3 = inttoptr i64 %const_mat1 to i32* -; CHECK-NEXT: %v2 = load i32* %3, align 16 +; CHECK-NEXT: %v2 = load i32, i32* %3, align 16 %a0 = inttoptr i64 4646526064 to i32* - %v0 = load i32* %a0, align 16 + %v0 = load i32, i32* %a0, align 16 %a1 = inttoptr i64 4646526080 to i32* - %v1 = load i32* %a1, align 16 + %v1 = load i32, i32* %a1, align 16 %a2 = inttoptr i64 4646526096 to i32* - %v2 = load i32* %a2, align 16 + %v2 = load i32, i32* %a2, align 16 %r0 = add i32 %v0, %v1 %r1 = add i32 %r0, %v2 ret i32 %r1 diff --git a/test/Transforms/ConstantHoisting/X86/const-base-addr.ll b/test/Transforms/ConstantHoisting/X86/const-base-addr.ll index 01e6cdf..db5dfdd 100644 --- a/test/Transforms/ConstantHoisting/X86/const-base-addr.ll +++ b/test/Transforms/ConstantHoisting/X86/const-base-addr.ll @@ -10,13 +10,13 @@ define i32 @test1() nounwind { ; CHECK-LABEL: @test1 ; CHECK: %const = bitcast i32 12345678 to i32 ; CHECK: %1 = inttoptr i32 %const to %T* -; CHECK: %addr1 = getelementptr %T* %1, i32 0, i32 1 - %addr1 = getelementptr %T* inttoptr (i32 12345678 to %T*), i32 0, i32 1 - %tmp1 = load i32* %addr1 - %addr2 = getelementptr %T* inttoptr (i32 12345678 to %T*), i32 0, i32 2 - %tmp2 = load i32* %addr2 - %addr3 = getelementptr %T* inttoptr (i32 12345678 to %T*), i32 0, i32 3 - %tmp3 = load i32* %addr3 +; CHECK: %addr1 = getelementptr %T, %T* %1, i32 0, i32 1 + %addr1 = getelementptr %T, %T* inttoptr (i32 12345678 to %T*), i32 0, i32 1 + %tmp1 = load i32, i32* %addr1 + %addr2 = getelementptr %T, %T* inttoptr (i32 12345678 to %T*), i32 0, i32 2 + %tmp2 = load i32, i32* %addr2 + %addr3 = getelementptr %T, %T* inttoptr (i32 12345678 to %T*), i32 0, i32 3 + %tmp3 = load i32, i32* %addr3 %tmp4 = add i32 %tmp1, %tmp2 %tmp5 = add i32 %tmp3, %tmp4 ret i32 %tmp5 diff --git a/test/Transforms/ConstantHoisting/X86/delete-dead-cast-inst.ll b/test/Transforms/ConstantHoisting/X86/delete-dead-cast-inst.ll index d352386..5df4c1a 100644 --- a/test/Transforms/ConstantHoisting/X86/delete-dead-cast-inst.ll +++ b/test/Transforms/ConstantHoisting/X86/delete-dead-cast-inst.ll @@ -10,13 +10,13 @@ define i32 @test1() nounwind { ; CHECK: %const = bitcast i32 12345678 to i32 ; CHECK-NOT: %base = inttoptr i32 12345678 to %T* ; CHECK-NEXT: %1 = inttoptr i32 %const to %T* -; CHECK-NEXT: %addr1 = getelementptr %T* %1, i32 0, i32 1 -; CHECK-NEXT: %addr2 = getelementptr %T* %1, i32 0, i32 2 -; CHECK-NEXT: %addr3 = getelementptr %T* %1, i32 0, i32 3 +; CHECK-NEXT: %addr1 = getelementptr %T, %T* %1, i32 0, i32 1 +; CHECK-NEXT: %addr2 = getelementptr %T, %T* %1, i32 0, i32 2 +; CHECK-NEXT: %addr3 = getelementptr %T, %T* %1, i32 0, i32 3 %base = inttoptr i32 12345678 to %T* - %addr1 = getelementptr %T* %base, i32 0, i32 1 - %addr2 = getelementptr %T* %base, i32 0, i32 2 - %addr3 = getelementptr %T* %base, i32 0, i32 3 + %addr1 = getelementptr %T, %T* %base, i32 0, i32 1 + %addr2 = getelementptr %T, %T* %base, i32 0, i32 2 + %addr3 = getelementptr %T, %T* %base, i32 0, i32 3 ret i32 12345678 } diff --git a/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll b/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll index b7b05cf..2e83503 100644 --- a/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll +++ b/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll @@ -6,8 +6,8 @@ declare i32 @test(i32*) define void @foo() { - call i32 @test( i32* getelementptr ({ i32 }* @foo.upgrd.1, i64 0, i32 0) ) ; :1 [#uses=0] - call i32 @test( i32* getelementptr ({ i32 }* @bar, i64 0, i32 0) ) ; :2 [#uses=0] + call i32 @test( i32* getelementptr ({ i32 }, { i32 }* @foo.upgrd.1, i64 0, i32 0) ) ; :1 [#uses=0] + call i32 @test( i32* getelementptr ({ i32 }, { i32 }* @bar, i64 0, i32 0) ) ; :2 [#uses=0] ret void } diff --git a/test/Transforms/ConstantMerge/merge-both.ll b/test/Transforms/ConstantMerge/merge-both.ll index 3162676..11b0621 100644 --- a/test/Transforms/ConstantMerge/merge-both.ll +++ b/test/Transforms/ConstantMerge/merge-both.ll @@ -1,7 +1,6 @@ ; RUN: opt -constmerge -S < %s | FileCheck %s ; Test that in one run var3 is merged into var2 and var1 into var4. -; Test that we merge @var5 and @var6 into one with the higher alignment, and -; don't merge var7/var8 into var5/var6. +; Test that we merge @var5 and @var6 into one with the higher alignment declare void @zed(%struct.foobar*, %struct.foobar*) @@ -23,8 +22,8 @@ declare void @helper([16 x i8]*) @var7 = internal constant [16 x i8] c"foo1bar2foo3bar\00" @var8 = private unnamed_addr constant [16 x i8] c"foo1bar2foo3bar\00" -; CHECK-NEXT: @var6 = private constant [16 x i8] c"foo1bar2foo3bar\00", align 16 -; CHECK-NEXT: @var8 = private constant [16 x i8] c"foo1bar2foo3bar\00" +; CHECK-NEXT: @var7 = internal constant [16 x i8] c"foo1bar2foo3bar\00" +; CHECK-NEXT: @var8 = private constant [16 x i8] c"foo1bar2foo3bar\00", align 16 @var4a = alias %struct.foobar* @var4 @llvm.used = appending global [1 x %struct.foobar*] [%struct.foobar* @var4a], section "llvm.metadata" diff --git a/test/Transforms/CorrelatedValuePropagation/basic.ll b/test/Transforms/CorrelatedValuePropagation/basic.ll index 9a22647..9d1253a 100644 --- a/test/Transforms/CorrelatedValuePropagation/basic.ll +++ b/test/Transforms/CorrelatedValuePropagation/basic.ll @@ -52,8 +52,8 @@ bb: ; preds = %entry ret i8 0 bb2: ; preds = %entry -; CHECK: %should_be_const = load i8* @gv - %should_be_const = load i8* %a +; CHECK: %should_be_const = load i8, i8* @gv + %should_be_const = load i8, i8* %a ret i8 %should_be_const } diff --git a/test/Transforms/CorrelatedValuePropagation/non-null.ll b/test/Transforms/CorrelatedValuePropagation/non-null.ll index b14abd8..6bb8bb0 100644 --- a/test/Transforms/CorrelatedValuePropagation/non-null.ll +++ b/test/Transforms/CorrelatedValuePropagation/non-null.ll @@ -2,7 +2,7 @@ define void @test1(i8* %ptr) { ; CHECK: test1 - %A = load i8* %ptr + %A = load i8, i8* %ptr br label %bb bb: icmp ne i8* %ptr, null diff --git a/test/Transforms/DeadArgElim/2008-01-16-VarargsParamAttrs.ll b/test/Transforms/DeadArgElim/2008-01-16-VarargsParamAttrs.ll index 93282f7..a7cfe68 100644 --- a/test/Transforms/DeadArgElim/2008-01-16-VarargsParamAttrs.ll +++ b/test/Transforms/DeadArgElim/2008-01-16-VarargsParamAttrs.ll @@ -22,7 +22,7 @@ declare void @llvm.va_end(i8*) nounwind define i32 @main() { entry: %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - %tmp = getelementptr [4 x %struct.point]* @pts, i32 0, i32 0 ; <%struct.point*> [#uses=1] + %tmp = getelementptr [4 x %struct.point], [4 x %struct.point]* @pts, i32 0, i32 0 ; <%struct.point*> [#uses=1] %tmp1 = call i32 (i32, ...)* @va1( i32 1, %struct.point* byval %tmp ) nounwind ; [#uses=0] call void @exit( i32 0 ) noreturn nounwind unreachable diff --git a/test/Transforms/DeadArgElim/2010-04-30-DbgInfo.ll b/test/Transforms/DeadArgElim/2010-04-30-DbgInfo.ll index dd283ae..730a3f3 100644 --- a/test/Transforms/DeadArgElim/2010-04-30-DbgInfo.ll +++ b/test/Transforms/DeadArgElim/2010-04-30-DbgInfo.ll @@ -4,10 +4,10 @@ define i8* @vfs_addname(i8* %name, i32 %len, i32 %hash, i32 %flags) nounwind ssp { entry: - call void @llvm.dbg.value(metadata i8* %name, i64 0, metadata !0, metadata !{}) - call void @llvm.dbg.value(metadata i32 %len, i64 0, metadata !10, metadata !{}) - call void @llvm.dbg.value(metadata i32 %hash, i64 0, metadata !11, metadata !{}) - call void @llvm.dbg.value(metadata i32 %flags, i64 0, metadata !12, metadata !{}) + call void @llvm.dbg.value(metadata i8* %name, i64 0, metadata !0, metadata !MDExpression()) + call void @llvm.dbg.value(metadata i32 %len, i64 0, metadata !10, metadata !MDExpression()) + call void @llvm.dbg.value(metadata i32 %hash, i64 0, metadata !11, metadata !MDExpression()) + call void @llvm.dbg.value(metadata i32 %flags, i64 0, metadata !12, metadata !MDExpression()) ; CHECK: call fastcc i8* @add_name_internal(i8* %name, i32 %hash) [[NUW:#[0-9]+]], !dbg !{{[0-9]+}} %0 = call fastcc i8* @add_name_internal(i8* %name, i32 %len, i32 %hash, i8 zeroext 0, i32 %flags) nounwind, !dbg !13 ; [#uses=1] ret i8* %0, !dbg !13 @@ -17,11 +17,11 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone define internal fastcc i8* @add_name_internal(i8* %name, i32 %len, i32 %hash, i8 zeroext %extra, i32 %flags) noinline nounwind ssp { entry: - call void @llvm.dbg.value(metadata i8* %name, i64 0, metadata !15, metadata !{}) - call void @llvm.dbg.value(metadata i32 %len, i64 0, metadata !20, metadata !{}) - call void @llvm.dbg.value(metadata i32 %hash, i64 0, metadata !21, metadata !{}) - call void @llvm.dbg.value(metadata i8 %extra, i64 0, metadata !22, metadata !{}) - call void @llvm.dbg.value(metadata i32 %flags, i64 0, metadata !23, metadata !{}) + call void @llvm.dbg.value(metadata i8* %name, i64 0, metadata !15, metadata !MDExpression()) + call void @llvm.dbg.value(metadata i32 %len, i64 0, metadata !20, metadata !MDExpression()) + call void @llvm.dbg.value(metadata i32 %hash, i64 0, metadata !21, metadata !MDExpression()) + call void @llvm.dbg.value(metadata i8 %extra, i64 0, metadata !22, metadata !MDExpression()) + call void @llvm.dbg.value(metadata i32 %flags, i64 0, metadata !23, metadata !MDExpression()) %0 = icmp eq i32 %hash, 0, !dbg !24 ; [#uses=1] br i1 %0, label %bb, label %bb1, !dbg !24 @@ -32,7 +32,7 @@ bb1: ; preds = %entry br label %bb2, !dbg !27 bb2: ; preds = %bb1, %bb - %.0 = phi i8* [ getelementptr inbounds ([1 x i8]* @.str, i64 0, i64 0), %bb ], [ %name, %bb1 ] ; [#uses=1] + %.0 = phi i8* [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0), %bb ], [ %name, %bb1 ] ; [#uses=1] ret i8* %.0, !dbg !27 } @@ -45,34 +45,34 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon !llvm.dbg.cu = !{!3} !llvm.module.flags = !{!30} -!0 = !{!"0x101\00name\008\000", !1, !2, !6} ; [ DW_TAG_arg_variable ] -!1 = !{!"0x2e\00vfs_addname\00vfs_addname\00vfs_addname\0012\000\001\000\006\000\000\000", !28, !2, !4, null, null, null, null, null} ; [ DW_TAG_subprogram ] -!2 = !{!"0x29", !28} ; [ DW_TAG_file_type ] -!3 = !{!"0x11\001\004.2.1 (Based on Apple Inc. build 5658) (LLVM build 9999)\001\00\000\00\000", !28, !29, !29, null, null, null} ; [ DW_TAG_compile_unit ] -!4 = !{!"0x15\00\000\000\000\000\000\000", !28, !2, null, !5, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!0 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "name", line: 8, arg: 0, scope: !1, file: !2, type: !6) +!1 = !MDSubprogram(name: "vfs_addname", linkageName: "vfs_addname", line: 12, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !28, scope: !2, type: !4) +!2 = !MDFile(filename: "tail.c", directory: "/Users/echeng/LLVM/radars/r7927803/") +!3 = !MDCompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 9999)", isOptimized: true, emissionKind: 0, file: !28, enums: !29, retainedTypes: !29) +!4 = !MDSubroutineType(types: !5) !5 = !{!6, !6, !9, !9, !9} -!6 = !{!"0xf\00\000\0064\0064\000\000", !28, !2, !7} ; [ DW_TAG_pointer_type ] -!7 = !{!"0x26\00\000\008\008\000\000", !28, !2, !8} ; [ DW_TAG_const_type ] -!8 = !{!"0x24\00char\000\008\008\000\000\006", !28, !2} ; [ DW_TAG_base_type ] -!9 = !{!"0x24\00unsigned int\000\0032\0032\000\000\007", !28, !2} ; [ DW_TAG_base_type ] -!10 = !{!"0x101\00len\009\000", !1, !2, !9} ; [ DW_TAG_arg_variable ] -!11 = !{!"0x101\00hash\0010\000", !1, !2, !9} ; [ DW_TAG_arg_variable ] -!12 = !{!"0x101\00flags\0011\000", !1, !2, !9} ; [ DW_TAG_arg_variable ] +!6 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !28, scope: !2, baseType: !7) +!7 = !MDDerivedType(tag: DW_TAG_const_type, size: 8, align: 8, file: !28, scope: !2, baseType: !8) +!8 = !MDBasicType(tag: DW_TAG_base_type, name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char) +!9 = !MDBasicType(tag: DW_TAG_base_type, name: "unsigned int", size: 32, align: 32, encoding: DW_ATE_unsigned) +!10 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "len", line: 9, arg: 0, scope: !1, file: !2, type: !9) +!11 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "hash", line: 10, arg: 0, scope: !1, file: !2, type: !9) +!12 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "flags", line: 11, arg: 0, scope: !1, file: !2, type: !9) !13 = !MDLocation(line: 13, scope: !14) -!14 = !{!"0xb\0012\000\000", !28, !1} ; [ DW_TAG_lexical_block ] -!15 = !{!"0x101\00name\0017\000", !16, !2, !6} ; [ DW_TAG_arg_variable ] -!16 = !{!"0x2e\00add_name_internal\00add_name_internal\00add_name_internal\0022\001\001\000\006\000\000\000", !28, !2, !17, null, null, null, null, null} ; [ DW_TAG_subprogram ] -!17 = !{!"0x15\00\000\000\000\000\000\000", !28, !2, null, !18, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!14 = distinct !MDLexicalBlock(line: 12, column: 0, file: !28, scope: !1) +!15 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "name", line: 17, arg: 0, scope: !16, file: !2, type: !6) +!16 = !MDSubprogram(name: "add_name_internal", linkageName: "add_name_internal", line: 22, isLocal: true, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !28, scope: !2, type: !17) +!17 = !MDSubroutineType(types: !18) !18 = !{!6, !6, !9, !9, !19, !9} -!19 = !{!"0x24\00unsigned char\000\008\008\000\000\008", !28, !2} ; [ DW_TAG_base_type ] -!20 = !{!"0x101\00len\0018\000", !16, !2, !9} ; [ DW_TAG_arg_variable ] -!21 = !{!"0x101\00hash\0019\000", !16, !2, !9} ; [ DW_TAG_arg_variable ] -!22 = !{!"0x101\00extra\0020\000", !16, !2, !19} ; [ DW_TAG_arg_variable ] -!23 = !{!"0x101\00flags\0021\000", !16, !2, !9} ; [ DW_TAG_arg_variable ] +!19 = !MDBasicType(tag: DW_TAG_base_type, name: "unsigned char", size: 8, align: 8, encoding: DW_ATE_unsigned_char) +!20 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "len", line: 18, arg: 0, scope: !16, file: !2, type: !9) +!21 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "hash", line: 19, arg: 0, scope: !16, file: !2, type: !9) +!22 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "extra", line: 20, arg: 0, scope: !16, file: !2, type: !19) +!23 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "flags", line: 21, arg: 0, scope: !16, file: !2, type: !9) !24 = !MDLocation(line: 23, scope: !25) -!25 = !{!"0xb\0022\000\000", !28, !16} ; [ DW_TAG_lexical_block ] +!25 = distinct !MDLexicalBlock(line: 22, column: 0, file: !28, scope: !16) !26 = !MDLocation(line: 24, scope: !25) !27 = !MDLocation(line: 26, scope: !25) -!28 = !{!"tail.c", !"/Users/echeng/LLVM/radars/r7927803/"} +!28 = !MDFile(filename: "tail.c", directory: "/Users/echeng/LLVM/radars/r7927803/") !29 = !{i32 0} -!30 = !{i32 1, !"Debug Info Version", i32 2} +!30 = !{i32 1, !"Debug Info Version", i32 3} diff --git a/test/Transforms/DeadArgElim/aggregates.ll b/test/Transforms/DeadArgElim/aggregates.ll index f54c6c9..68d2534 100644 --- a/test/Transforms/DeadArgElim/aggregates.ll +++ b/test/Transforms/DeadArgElim/aggregates.ll @@ -157,6 +157,6 @@ define internal i8 @outer() { %res = call {i8*, i32} @mid() %resptr = extractvalue {i8*, i32} %res, 0 - %val = load i8* %resptr + %val = load i8, i8* %resptr ret i8 %val } \ No newline at end of file diff --git a/test/Transforms/DeadArgElim/dbginfo.ll b/test/Transforms/DeadArgElim/dbginfo.ll index 5bbf821..462ae91 100644 --- a/test/Transforms/DeadArgElim/dbginfo.ll +++ b/test/Transforms/DeadArgElim/dbginfo.ll @@ -14,7 +14,7 @@ ; the function->debug info mapping on update to ensure it's accurate when used ; again for the next removal. -; CHECK: void ()* @_ZL2f1iz, {{.*}} ; [ DW_TAG_subprogram ] {{.*}} [f1] +; CHECK: !MDSubprogram(name: "f1",{{.*}} function: void ()* @_ZL2f1iz ; Check that debug info metadata for subprograms stores pointers to ; updated LLVM functions. @@ -47,24 +47,24 @@ attributes #2 = { nounwind readnone } !llvm.module.flags = !{!12, !13} !llvm.ident = !{!14} -!0 = !{!"0x11\004\00clang version 3.6.0 \000\00\000\00\001", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [/tmp/dbginfo/dbg.cpp] [DW_LANG_C_plus_plus] -!1 = !{!"dbg.cpp", !"/tmp/dbginfo"} +!0 = !MDCompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.6.0 ", isOptimized: false, emissionKind: 1, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) +!1 = !MDFile(filename: "dbg.cpp", directory: "/tmp/dbginfo") !2 = !{} !3 = !{!4, !8} -!4 = !{!"0x2e\00f2\00f2\00_Z2f2v\004\000\001\000\000\00256\000\004", !1, !5, !6, null, void ()* @_Z2f2v, null, null, !2} ; [ DW_TAG_subprogram ] [line 4] [def] [f2] -!5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [/tmp/dbginfo/dbg.cpp] -!6 = !{!"0x15\00\000\000\000\000\000\000", null, null, null, !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!4 = !MDSubprogram(name: "f2", linkageName: "_Z2f2v", line: 4, isLocal: false, isDefinition: true, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 4, file: !1, scope: !5, type: !6, function: void ()* @_Z2f2v, variables: !2) +!5 = !MDFile(filename: "dbg.cpp", directory: "/tmp/dbginfo") +!6 = !MDSubroutineType(types: !7) !7 = !{null} -!8 = !{!"0x2e\00f1\00f1\00_ZL2f1iz\001\001\001\000\000\00256\000\001", !1, !5, !9, null, void (i32, ...)* @_ZL2f1iz, null, null, !2} ; [ DW_TAG_subprogram ] [line 1] [local] [def] [f1] -!9 = !{!"0x15\00\000\000\000\000\000\000", null, null, null, !10, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!8 = !MDSubprogram(name: "f1", linkageName: "_ZL2f1iz", line: 1, isLocal: true, isDefinition: true, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !9, function: void (i32, ...)* @_ZL2f1iz, variables: !2) +!9 = !MDSubroutineType(types: !10) !10 = !{null, !11, null} -!11 = !{!"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed] +!11 = !MDBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !12 = !{i32 2, !"Dwarf Version", i32 4} -!13 = !{i32 2, !"Debug Info Version", i32 2} +!13 = !{i32 2, !"Debug Info Version", i32 3} !14 = !{!"clang version 3.6.0 "} !15 = !MDLocation(line: 5, column: 3, scope: !4) !16 = !MDLocation(line: 6, column: 1, scope: !4) -!17 = !{!"0x101\00\0016777217\000", !8, !5, !11} ; [ DW_TAG_arg_variable ] [line 1] -!18 = !{!"0x102"} ; [ DW_TAG_expression ] +!17 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "", line: 1, arg: 1, scope: !8, file: !5, type: !11) +!18 = !MDExpression() !19 = !MDLocation(line: 1, column: 19, scope: !8) !20 = !MDLocation(line: 2, column: 1, scope: !8) diff --git a/test/Transforms/DeadArgElim/deadexternal.ll b/test/Transforms/DeadArgElim/deadexternal.ll index 665d7db..21cbc37 100644 --- a/test/Transforms/DeadArgElim/deadexternal.ll +++ b/test/Transforms/DeadArgElim/deadexternal.ll @@ -31,9 +31,9 @@ define void @h() { entry: %i = alloca i32, align 4 store volatile i32 10, i32* %i, align 4 -; CHECK: %tmp = load volatile i32* %i, align 4 +; CHECK: %tmp = load volatile i32, i32* %i, align 4 ; CHECK-NEXT: call void @f(i32 undef) - %tmp = load volatile i32* %i, align 4 + %tmp = load volatile i32, i32* %i, align 4 call void @f(i32 %tmp) ret void } diff --git a/test/Transforms/DeadArgElim/deadretval2.ll b/test/Transforms/DeadArgElim/deadretval2.ll index dcdc36e..b0d2428 100644 --- a/test/Transforms/DeadArgElim/deadretval2.ll +++ b/test/Transforms/DeadArgElim/deadretval2.ll @@ -20,7 +20,7 @@ define void @test3(i32 %X) { } define internal i32 @foo() { - %DEAD = load i32* @P ; [#uses=1] + %DEAD = load i32, i32* @P ; [#uses=1] ret i32 %DEAD } diff --git a/test/Transforms/DeadArgElim/keepalive.ll b/test/Transforms/DeadArgElim/keepalive.ll index 16569db..d8a0993 100644 --- a/test/Transforms/DeadArgElim/keepalive.ll +++ b/test/Transforms/DeadArgElim/keepalive.ll @@ -31,7 +31,7 @@ define void @caller() { ; We can't remove 'this' here, as that would put argmem in ecx instead of ; memory. define internal x86_thiscallcc i32 @unused_this(i32* %this, i32* inalloca %argmem) { - %v = load i32* %argmem + %v = load i32, i32* %argmem ret i32 %v } ; CHECK-LABEL: define internal x86_thiscallcc i32 @unused_this(i32* %this, i32* inalloca %argmem) diff --git a/test/Transforms/DeadStoreElimination/2011-03-25-DSEMiscompile.ll b/test/Transforms/DeadStoreElimination/2011-03-25-DSEMiscompile.ll index 39d5358..7746cce 100644 --- a/test/Transforms/DeadStoreElimination/2011-03-25-DSEMiscompile.ll +++ b/test/Transforms/DeadStoreElimination/2011-03-25-DSEMiscompile.ll @@ -11,10 +11,10 @@ define ghccc void @Func1(i32* noalias %Arg1, i32* noalias %Arg2, i32* %Arg3, i32 entry: store i32 add (i32 ptrtoint ([0 x i32]* @A to i32), i32 1), i32* %Arg2 ; CHECK: store i32 add (i32 ptrtoint ([0 x i32]* @A to i32), i32 1), i32* %Arg2 - %ln2gz = getelementptr i32* %Arg1, i32 14 + %ln2gz = getelementptr i32, i32* %Arg1, i32 14 %ln2gA = bitcast i32* %ln2gz to double* - %ln2gB = load double* %ln2gA - %ln2gD = getelementptr i32* %Arg2, i32 -3 + %ln2gB = load double, double* %ln2gA + %ln2gD = getelementptr i32, i32* %Arg2, i32 -3 %ln2gE = bitcast i32* %ln2gD to double* store double %ln2gB, double* %ln2gE ; CHECK: store double %ln2gB, double* %ln2gE diff --git a/test/Transforms/DeadStoreElimination/2011-09-06-EndOfFunction.ll b/test/Transforms/DeadStoreElimination/2011-09-06-EndOfFunction.ll index 95253f6..7e46d28 100644 --- a/test/Transforms/DeadStoreElimination/2011-09-06-EndOfFunction.ll +++ b/test/Transforms/DeadStoreElimination/2011-09-06-EndOfFunction.ll @@ -10,11 +10,11 @@ define void @_Z3foov(%"class.std::auto_ptr"* noalias nocapture sret %agg.result) _ZNSt8auto_ptrIiED1Ev.exit: %temp.lvalue = alloca %"class.std::auto_ptr", align 8 call void @_Z3barv(%"class.std::auto_ptr"* sret %temp.lvalue) - %_M_ptr.i.i = getelementptr inbounds %"class.std::auto_ptr"* %temp.lvalue, i64 0, i32 0 - %tmp.i.i = load i32** %_M_ptr.i.i, align 8 + %_M_ptr.i.i = getelementptr inbounds %"class.std::auto_ptr", %"class.std::auto_ptr"* %temp.lvalue, i64 0, i32 0 + %tmp.i.i = load i32*, i32** %_M_ptr.i.i, align 8 ; CHECK-NOT: store i32* null store i32* null, i32** %_M_ptr.i.i, align 8 - %_M_ptr.i.i4 = getelementptr inbounds %"class.std::auto_ptr"* %agg.result, i64 0, i32 0 + %_M_ptr.i.i4 = getelementptr inbounds %"class.std::auto_ptr", %"class.std::auto_ptr"* %agg.result, i64 0, i32 0 store i32* %tmp.i.i, i32** %_M_ptr.i.i4, align 8 ; CHECK: ret void ret void diff --git a/test/Transforms/DeadStoreElimination/2011-09-06-MemCpy.ll b/test/Transforms/DeadStoreElimination/2011-09-06-MemCpy.ll index 22b8786..d30e9a2 100644 --- a/test/Transforms/DeadStoreElimination/2011-09-06-MemCpy.ll +++ b/test/Transforms/DeadStoreElimination/2011-09-06-MemCpy.ll @@ -68,13 +68,13 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, define void @_ZSt9iter_swapIPSt4pairIPN4llvm10BasicBlockEjES5_EvT_T0_(%struct.pair.162* %__a, %struct.pair.162* %__b) nounwind uwtable inlinehint { entry: %memtmp = alloca %struct.pair.162, align 8 - %0 = getelementptr inbounds %struct.pair.162* %memtmp, i64 0, i32 0 - %1 = getelementptr inbounds %struct.pair.162* %__a, i64 0, i32 0 - %2 = load %struct.BasicBlock** %1, align 8 + %0 = getelementptr inbounds %struct.pair.162, %struct.pair.162* %memtmp, i64 0, i32 0 + %1 = getelementptr inbounds %struct.pair.162, %struct.pair.162* %__a, i64 0, i32 0 + %2 = load %struct.BasicBlock*, %struct.BasicBlock** %1, align 8 store %struct.BasicBlock* %2, %struct.BasicBlock** %0, align 8 - %3 = getelementptr inbounds %struct.pair.162* %memtmp, i64 0, i32 1 - %4 = getelementptr inbounds %struct.pair.162* %__a, i64 0, i32 1 - %5 = load i32* %4, align 4 + %3 = getelementptr inbounds %struct.pair.162, %struct.pair.162* %memtmp, i64 0, i32 1 + %4 = getelementptr inbounds %struct.pair.162, %struct.pair.162* %__a, i64 0, i32 1 + %5 = load i32, i32* %4, align 4 store i32 %5, i32* %3, align 8 %6 = bitcast %struct.pair.162* %__a to i8* %7 = bitcast %struct.pair.162* %__b to i8* diff --git a/test/Transforms/DeadStoreElimination/OverwriteStoreEnd.ll b/test/Transforms/DeadStoreElimination/OverwriteStoreEnd.ll index 968d608..de7a4cc 100644 --- a/test/Transforms/DeadStoreElimination/OverwriteStoreEnd.ll +++ b/test/Transforms/DeadStoreElimination/OverwriteStoreEnd.ll @@ -10,11 +10,11 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 define void @write24to28(i32* nocapture %p) nounwind uwtable ssp { ; CHECK-LABEL: @write24to28( entry: - %arrayidx0 = getelementptr inbounds i32* %p, i64 1 + %arrayidx0 = getelementptr inbounds i32, i32* %p, i64 1 %p3 = bitcast i32* %arrayidx0 to i8* ; CHECK: call void @llvm.memset.p0i8.i64(i8* %p3, i8 0, i64 24, i32 4, i1 false) call void @llvm.memset.p0i8.i64(i8* %p3, i8 0, i64 28, i32 4, i1 false) - %arrayidx1 = getelementptr inbounds i32* %p, i64 7 + %arrayidx1 = getelementptr inbounds i32, i32* %p, i64 7 store i32 1, i32* %arrayidx1, align 4 ret void } @@ -25,7 +25,7 @@ entry: %p3 = bitcast i32* %p to i8* ; CHECK: call void @llvm.memset.p0i8.i64(i8* %p3, i8 0, i64 28, i32 4, i1 false) call void @llvm.memset.p0i8.i64(i8* %p3, i8 0, i64 32, i32 4, i1 false) - %arrayidx1 = getelementptr inbounds i32* %p, i64 7 + %arrayidx1 = getelementptr inbounds i32, i32* %p, i64 7 store i32 1, i32* %arrayidx1, align 4 ret void } @@ -36,7 +36,7 @@ entry: %p3 = bitcast i32* %p to i8* ; CHECK: call void @llvm.memset.p0i8.i64(i8* %p3, i8 0, i64 32, i32 16, i1 false) call void @llvm.memset.p0i8.i64(i8* %p3, i8 0, i64 32, i32 16, i1 false) - %arrayidx1 = getelementptr inbounds i32* %p, i64 7 + %arrayidx1 = getelementptr inbounds i32, i32* %p, i64 7 store i32 1, i32* %arrayidx1, align 4 ret void } @@ -47,7 +47,7 @@ entry: %0 = bitcast %struct.vec2plusi* %p to i8* ; CHECK: tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%struct.vec2plusi* @glob2 to i8*), i64 32, i32 16, i1 false) tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%struct.vec2plusi* @glob2 to i8*), i64 36, i32 16, i1 false) - %c = getelementptr inbounds %struct.vec2plusi* %p, i64 0, i32 2 + %c = getelementptr inbounds %struct.vec2plusi, %struct.vec2plusi* %p, i64 0, i32 2 store i32 1, i32* %c, align 4 ret void } @@ -58,7 +58,7 @@ entry: %0 = bitcast %struct.vec2* %p to i8* ; CHECK: tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%struct.vec2* @glob1 to i8*), i64 16, i32 16, i1 false) tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%struct.vec2* @glob1 to i8*), i64 32, i32 16, i1 false) - %c = getelementptr inbounds %struct.vec2* %p, i64 0, i32 1 + %c = getelementptr inbounds %struct.vec2, %struct.vec2* %p, i64 0, i32 1 store <4 x i32> , <4 x i32>* %c, align 4 ret void } @@ -69,7 +69,7 @@ entry: %0 = bitcast %struct.vec2* %p to i8* ; CHECK: tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%struct.vec2* @glob1 to i8*), i64 32, i32 16, i1 false) tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%struct.vec2* @glob1 to i8*), i64 32, i32 16, i1 false) - %arrayidx1 = getelementptr inbounds %struct.vec2* %p, i64 0, i32 0, i64 7 + %arrayidx1 = getelementptr inbounds %struct.vec2, %struct.vec2* %p, i64 0, i32 0, i64 7 store i32 1, i32* %arrayidx1, align 4 ret void } @@ -84,12 +84,12 @@ declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind define void @cpu_lwp_fork(%struct.trapframe* %md_regs, i64 %pcb_rsp0) nounwind uwtable noinline ssp { entry: %0 = inttoptr i64 %pcb_rsp0 to %struct.trapframe* - %add.ptr = getelementptr inbounds %struct.trapframe* %0, i64 -1 + %add.ptr = getelementptr inbounds %struct.trapframe, %struct.trapframe* %0, i64 -1 %1 = bitcast %struct.trapframe* %add.ptr to i8* %2 = bitcast %struct.trapframe* %md_regs to i8* ; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 24, i32 1, i1 false) call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 24, i32 1, i1 false) - %tf_trapno = getelementptr inbounds %struct.trapframe* %0, i64 -1, i32 1 + %tf_trapno = getelementptr inbounds %struct.trapframe, %struct.trapframe* %0, i64 -1, i32 1 store i64 3, i64* %tf_trapno, align 8 ret void } diff --git a/test/Transforms/DeadStoreElimination/PartialStore.ll b/test/Transforms/DeadStoreElimination/PartialStore.ll index 80c2bfa..d85b4de 100644 --- a/test/Transforms/DeadStoreElimination/PartialStore.ll +++ b/test/Transforms/DeadStoreElimination/PartialStore.ll @@ -30,8 +30,8 @@ define i32 @test3(double %__x) { %__u = alloca { [3 x i32] } %tmp.1 = bitcast { [3 x i32] }* %__u to double* store double %__x, double* %tmp.1 - %tmp.4 = getelementptr { [3 x i32] }* %__u, i32 0, i32 0, i32 1 - %tmp.5 = load i32* %tmp.4 + %tmp.4 = getelementptr { [3 x i32] }, { [3 x i32] }* %__u, i32 0, i32 0, i32 1 + %tmp.5 = load i32, i32* %tmp.4 %tmp.6 = icmp slt i32 %tmp.5, 0 %tmp.7 = zext i1 %tmp.6 to i32 ret i32 %tmp.7 @@ -44,7 +44,7 @@ define void @test4(i8* %P) { ; CHECK-NEXT: store double store i8 19, i8* %P ;; dead - %A = getelementptr i8* %P, i32 3 + %A = getelementptr i8, i8* %P, i32 3 store i8 42, i8* %A ;; dead @@ -58,7 +58,7 @@ declare void @test5a(i32*) define void @test5(i32 %i) nounwind ssp { %A = alloca i32 %B = bitcast i32* %A to i8* - %C = getelementptr i8* %B, i32 %i + %C = getelementptr i8, i8* %B, i32 %i store i8 10, i8* %C ;; Dead store to variable index. store i32 20, i32* %A @@ -74,7 +74,7 @@ declare void @test5a_as1(i32*) define void @test5_addrspacecast(i32 %i) nounwind ssp { %A = alloca i32 %B = addrspacecast i32* %A to i8 addrspace(1)* - %C = getelementptr i8 addrspace(1)* %B, i32 %i + %C = getelementptr i8, i8 addrspace(1)* %B, i32 %i store i8 10, i8 addrspace(1)* %C ;; Dead store to variable index. store i32 20, i32* %A diff --git a/test/Transforms/DeadStoreElimination/atomic.ll b/test/Transforms/DeadStoreElimination/atomic.ll index af303fa..79beee8 100644 --- a/test/Transforms/DeadStoreElimination/atomic.ll +++ b/test/Transforms/DeadStoreElimination/atomic.ll @@ -23,28 +23,6 @@ define void @test1() { ret void } -; DSE across seq_cst load (allowed) -define i32 @test2() { -; CHECK-LABEL: test2 -; CHECK-NOT: store i32 0 -; CHECK: store i32 1 - store i32 0, i32* @x - %x = load atomic i32* @y seq_cst, align 4 - store i32 1, i32* @x - ret i32 %x -} - -; DSE across seq_cst store (allowed) -define void @test3() { -; CHECK-LABEL: test3 -; CHECK-NOT: store i32 0 -; CHECK: store atomic i32 2 - store i32 0, i32* @x - store atomic i32 2, i32* @y seq_cst, align 4 - store i32 1, i32* @x - ret void -} - ; DSE remove unordered store (allowed) define void @test4() { ; CHECK-LABEL: test4 @@ -69,7 +47,7 @@ define void @test6() { ; CHECK-LABEL: test6 ; CHECK-NOT: store ; CHECK: ret void - %x = load atomic i32* @x unordered, align 4 + %x = load atomic i32, i32* @x unordered, align 4 store atomic i32 %x, i32* @x unordered, align 4 ret void } @@ -93,7 +71,7 @@ define i32 @test8() { %a = alloca i32 call void @randomop(i32* %a) store i32 0, i32* %a, align 4 - %x = load atomic i32* @x seq_cst, align 4 + %x = load atomic i32, i32* @x seq_cst, align 4 ret i32 %x } @@ -103,7 +81,7 @@ define i32 @test9() { ; CHECK-NOT: store i32 0 ; CHECK: store i32 1 store i32 0, i32* @x - %x = load atomic i32* @y monotonic, align 4 + %x = load atomic i32, i32* @y monotonic, align 4 store i32 1, i32* @x ret i32 %x } @@ -125,7 +103,7 @@ define i32 @test11() { ; CHECK: store atomic i32 0 ; CHECK: store atomic i32 1 store atomic i32 0, i32* @x monotonic, align 4 - %x = load atomic i32* @y monotonic, align 4 + %x = load atomic i32, i32* @y monotonic, align 4 store atomic i32 1, i32* @x monotonic, align 4 ret i32 %x } @@ -141,30 +119,6 @@ define void @test12() { ret void } -; DSE is allowed across a pair of an atomic read and then write. -define i32 @test13() { -; CHECK-LABEL: test13 -; CHECK-NOT: store i32 0 -; CHECK: store i32 1 - store i32 0, i32* @x - %x = load atomic i32* @y seq_cst, align 4 - store atomic i32 %x, i32* @y seq_cst, align 4 - store i32 1, i32* @x - ret i32 %x -} - -; Same if it is acquire-release instead of seq_cst/seq_cst -define i32 @test14() { -; CHECK-LABEL: test14 -; CHECK-NOT: store i32 0 -; CHECK: store i32 1 - store i32 0, i32* @x - %x = load atomic i32* @y acquire, align 4 - store atomic i32 %x, i32* @y release, align 4 - store i32 1, i32* @x - ret i32 %x -} - ; But DSE is not allowed across a release-acquire pair. define i32 @test15() { ; CHECK-LABEL: test15 @@ -172,7 +126,7 @@ define i32 @test15() { ; CHECK: store i32 1 store i32 0, i32* @x store atomic i32 0, i32* @y release, align 4 - %x = load atomic i32* @y acquire, align 4 + %x = load atomic i32, i32* @y acquire, align 4 store i32 1, i32* @x ret i32 %x } diff --git a/test/Transforms/DeadStoreElimination/const-pointers.ll b/test/Transforms/DeadStoreElimination/const-pointers.ll index 3e772d7..e4403ed 100644 --- a/test/Transforms/DeadStoreElimination/const-pointers.ll +++ b/test/Transforms/DeadStoreElimination/const-pointers.ll @@ -6,10 +6,10 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" @g = global i32 42 define void @test1(%t* noalias %pp) { - %p = getelementptr inbounds %t* %pp, i32 0, i32 0 + %p = getelementptr inbounds %t, %t* %pp, i32 0, i32 0 store i32 1, i32* %p; <-- This is dead - %x = load i32* inttoptr (i32 12345 to i32*) + %x = load i32, i32* inttoptr (i32 12345 to i32*) store i32 %x, i32* %p ret void ; CHECK-LABEL: define void @test1( @@ -30,7 +30,7 @@ define void @test3() { define void @test4(i32* %p) { store i32 1, i32* %p - %x = load i32* @g; <-- %p and @g could alias + %x = load i32, i32* @g; <-- %p and @g could alias store i32 %x, i32* %p ret void ; CHECK-LABEL: define void @test4( diff --git a/test/Transforms/DeadStoreElimination/crash.ll b/test/Transforms/DeadStoreElimination/crash.ll index 148695f..78cb842 100644 --- a/test/Transforms/DeadStoreElimination/crash.ll +++ b/test/Transforms/DeadStoreElimination/crash.ll @@ -28,14 +28,14 @@ bb: ; preds = %bb, %entry define fastcc i32 @test2() nounwind ssp { bb14: ; preds = %bb4 %0 = bitcast i8* undef to i8** ; [#uses=1] - %1 = getelementptr inbounds i8** %0, i64 undef ; [#uses=1] + %1 = getelementptr inbounds i8*, i8** %0, i64 undef ; [#uses=1] %2 = bitcast i8** %1 to i16* ; [#uses=2] - %3 = getelementptr inbounds i16* %2, i64 undef ; [#uses=1] + %3 = getelementptr inbounds i16, i16* %2, i64 undef ; [#uses=1] %4 = bitcast i16* %3 to i8* ; [#uses=1] - %5 = getelementptr inbounds i8* %4, i64 undef ; [#uses=1] - %6 = getelementptr inbounds i16* %2, i64 undef ; [#uses=1] + %5 = getelementptr inbounds i8, i8* %4, i64 undef ; [#uses=1] + %6 = getelementptr inbounds i16, i16* %2, i64 undef ; [#uses=1] store i16 undef, i16* %6, align 2 - %7 = getelementptr inbounds i8* %5, i64 undef ; [#uses=1] + %7 = getelementptr inbounds i8, i8* %5, i64 undef ; [#uses=1] call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* undef, i64 undef, i32 1, i1 false) unreachable } @@ -49,8 +49,8 @@ entry: ret i32 0 dead: - %P2 = getelementptr i32 *%P2, i32 52 - %Q2 = getelementptr i32 *%Q2, i32 52 + %P2 = getelementptr i32, i32 *%P2, i32 52 + %Q2 = getelementptr i32, i32 *%Q2, i32 52 store i32 4, i32* %P2 store i32 4, i32* %Q2 br label %dead @@ -65,9 +65,9 @@ dead: define void @test4(%struct.f393a00_2__windmill* %a, %struct.f393a00_2__windmill* %b) { entry: %t = alloca %struct.f393a00_2__windmill ; <%struct.f393a00_2__windmill*> [#uses=1] - %0 = getelementptr %struct.f393a00_2__windmill* %t, i32 0, i32 0, i32 0 ; <%struct.ada__tags__dispatch_table**> [#uses=1] - %1 = load %struct.ada__tags__dispatch_table** null, align 4 ; <%struct.ada__tags__dispatch_table*> [#uses=1] - %2 = load %struct.ada__tags__dispatch_table** %0, align 8 ; <%struct.ada__tags__dispatch_table*> [#uses=1] + %0 = getelementptr %struct.f393a00_2__windmill, %struct.f393a00_2__windmill* %t, i32 0, i32 0, i32 0 ; <%struct.ada__tags__dispatch_table**> [#uses=1] + %1 = load %struct.ada__tags__dispatch_table*, %struct.ada__tags__dispatch_table** null, align 4 ; <%struct.ada__tags__dispatch_table*> [#uses=1] + %2 = load %struct.ada__tags__dispatch_table*, %struct.ada__tags__dispatch_table** %0, align 8 ; <%struct.ada__tags__dispatch_table*> [#uses=1] store %struct.ada__tags__dispatch_table* %2, %struct.ada__tags__dispatch_table** null, align 4 store %struct.ada__tags__dispatch_table* %1, %struct.ada__tags__dispatch_table** null, align 4 ret void diff --git a/test/Transforms/DeadStoreElimination/cs-cs-aliasing.ll b/test/Transforms/DeadStoreElimination/cs-cs-aliasing.ll index 8953f9c..30bb96f 100644 --- a/test/Transforms/DeadStoreElimination/cs-cs-aliasing.ll +++ b/test/Transforms/DeadStoreElimination/cs-cs-aliasing.ll @@ -22,18 +22,18 @@ define weak_odr zeroext i1 @test() #2 align 2 { bb: %tmp = alloca %class.basic_string, align 8 %tmp1 = alloca %class.basic_string, align 8 - %tmp3 = getelementptr inbounds %class.basic_string* %tmp, i64 0, i32 0, i32 0, i32 2 + %tmp3 = getelementptr inbounds %class.basic_string, %class.basic_string* %tmp, i64 0, i32 0, i32 0, i32 2 %tmp4 = bitcast %union.anon* %tmp3 to i8* - %tmp5 = getelementptr inbounds %class.basic_string* %tmp, i64 0, i32 0, i32 0, i32 0, i32 0 - %tmp6 = getelementptr inbounds %class.basic_string* %tmp, i64 0, i32 0, i32 0, i32 1 - %tmp7 = getelementptr inbounds i8* %tmp4, i64 1 + %tmp5 = getelementptr inbounds %class.basic_string, %class.basic_string* %tmp, i64 0, i32 0, i32 0, i32 0, i32 0 + %tmp6 = getelementptr inbounds %class.basic_string, %class.basic_string* %tmp, i64 0, i32 0, i32 0, i32 1 + %tmp7 = getelementptr inbounds i8, i8* %tmp4, i64 1 %tmp8 = bitcast %class.basic_string* %tmp to i8* %tmp9 = bitcast i64 0 to i64 - %tmp10 = getelementptr inbounds %class.basic_string* %tmp1, i64 0, i32 0, i32 0, i32 2 + %tmp10 = getelementptr inbounds %class.basic_string, %class.basic_string* %tmp1, i64 0, i32 0, i32 0, i32 2 %tmp11 = bitcast %union.anon* %tmp10 to i8* - %tmp12 = getelementptr inbounds %class.basic_string* %tmp1, i64 0, i32 0, i32 0, i32 0, i32 0 - %tmp13 = getelementptr inbounds %class.basic_string* %tmp1, i64 0, i32 0, i32 0, i32 1 - %tmp14 = getelementptr inbounds i8* %tmp11, i64 1 + %tmp12 = getelementptr inbounds %class.basic_string, %class.basic_string* %tmp1, i64 0, i32 0, i32 0, i32 0, i32 0 + %tmp13 = getelementptr inbounds %class.basic_string, %class.basic_string* %tmp1, i64 0, i32 0, i32 0, i32 1 + %tmp14 = getelementptr inbounds i8, i8* %tmp11, i64 1 %tmp15 = bitcast %class.basic_string* %tmp1 to i8* br label %_ZN12basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS2_.exit diff --git a/test/Transforms/DeadStoreElimination/dominate.ll b/test/Transforms/DeadStoreElimination/dominate.ll index 38cf1a0..638992b 100644 --- a/test/Transforms/DeadStoreElimination/dominate.ll +++ b/test/Transforms/DeadStoreElimination/dominate.ll @@ -5,7 +5,7 @@ declare void @bar() define void @foo() { bb1: %memtmp3.i = alloca [21 x i8], align 1 - %0 = getelementptr inbounds [21 x i8]* %memtmp3.i, i64 0, i64 0 + %0 = getelementptr inbounds [21 x i8], [21 x i8]* %memtmp3.i, i64 0, i64 0 br label %bb3 bb2: diff --git a/test/Transforms/DeadStoreElimination/free.ll b/test/Transforms/DeadStoreElimination/free.ll index 1d273d6..6b69ec8 100644 --- a/test/Transforms/DeadStoreElimination/free.ll +++ b/test/Transforms/DeadStoreElimination/free.ll @@ -10,7 +10,7 @@ declare noalias i8* @malloc(i64) ; CHECK-NEXT: @free ; CHECK-NEXT: ret void define void @test(i32* %Q, i32* %P) { - %DEAD = load i32* %Q ; [#uses=1] + %DEAD = load i32, i32* %Q ; [#uses=1] store i32 %DEAD, i32* %P %1 = bitcast i32* %P to i8* tail call void @free(i8* %1) @@ -22,7 +22,7 @@ define void @test(i32* %Q, i32* %P) { ; CHECK-NEXT: @free ; CHECK-NEXT: ret void define void @test2({i32, i32}* %P) { - %Q = getelementptr {i32, i32} *%P, i32 0, i32 1 + %Q = getelementptr {i32, i32}, {i32, i32} *%P, i32 0, i32 1 store i32 4, i32* %Q %1 = bitcast {i32, i32}* %P to i8* tail call void @free(i8* %1) @@ -35,7 +35,7 @@ define void @test2({i32, i32}* %P) { define void @test3() { %m = call i8* @malloc(i64 24) store i8 0, i8* %m - %m1 = getelementptr i8* %m, i64 1 + %m1 = getelementptr i8, i8* %m, i64 1 store i8 1, i8* %m1 call void @free(i8* %m) ret void diff --git a/test/Transforms/DeadStoreElimination/inst-limits.ll b/test/Transforms/DeadStoreElimination/inst-limits.ll index 3ef5607..a7b0aeb 100644 --- a/test/Transforms/DeadStoreElimination/inst-limits.ll +++ b/test/Transforms/DeadStoreElimination/inst-limits.ll @@ -118,7 +118,7 @@ entry: ; Insert a meaningless dbg.value intrinsic; it should have no ; effect on the working of DSE in any way. - call void @llvm.dbg.value(metadata i32* undef, i64 0, metadata !10, metadata !{}) + call void @llvm.dbg.value(metadata i32* undef, i64 0, metadata !10, metadata !MDExpression()) ; CHECK: store i32 -1, i32* @x, align 4 store i32 -1, i32* @x, align 4 @@ -245,18 +245,18 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) !llvm.dbg.cu = !{!0} !llvm.module.flags = !{!11, !13} -!0 = !{!"0x11\004\00clang version 3.4\001\00\000\00\000", !1, !2, !2, !3, !9, !2} ; [ DW_TAG_compile_unit ] [/home/tmp/test.c] [DW_LANG_C99] -!1 = !{!"test.c", !"/home/tmp"} -!2 = !{i32 0} +!0 = !MDCompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.4", isOptimized: true, emissionKind: 0, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) +!1 = !MDFile(filename: "test.c", directory: "/home/tmp") +!2 = !{} !3 = !{!4} -!4 = !{!"0x2e\00test_within_limit\00test_within_limit\00\003\000\001\000\006\00256\000\004", !1, !5, !6, null, i32 ()* @test_within_limit, null, null, !2} ; [ DW_TAG_subprogram ] [line 3] [def] [scope 4] [test] -!5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [/home/tmp/test.c] -!6 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!4 = !MDSubprogram(name: "test_within_limit", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 4, file: !1, scope: !5, type: !6, function: i32 ()* @test_within_limit, variables: !2) +!5 = !MDFile(filename: "test.c", directory: "/home/tmp") +!6 = !MDSubroutineType(types: !7) !7 = !{!8} -!8 = !{!"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed] +!8 = !MDBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !9 = !{!10} -!10 = !{!"0x34\00x\00x\00\001\000\001", null, !5, !8, i32* @x, null} ; [ DW_TAG_variable ] [x] [line 1] [def] +!10 = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "x", scope: !4, type: !8) !11 = !{i32 2, !"Dwarf Version", i32 4} !12 = !{i32* undef} -!13 = !{i32 1, !"Debug Info Version", i32 2} +!13 = !{i32 1, !"Debug Info Version", i32 3} diff --git a/test/Transforms/DeadStoreElimination/libcalls.ll b/test/Transforms/DeadStoreElimination/libcalls.ll index 6539694..8afa148 100644 --- a/test/Transforms/DeadStoreElimination/libcalls.ll +++ b/test/Transforms/DeadStoreElimination/libcalls.ll @@ -4,7 +4,7 @@ declare i8* @strcpy(i8* %dest, i8* %src) nounwind define void @test1(i8* %src) { ; CHECK-LABEL: @test1( %B = alloca [16 x i8] - %dest = getelementptr inbounds [16 x i8]* %B, i64 0, i64 0 + %dest = getelementptr inbounds [16 x i8], [16 x i8]* %B, i64 0, i64 0 ; CHECK-NOT: @strcpy %call = call i8* @strcpy(i8* %dest, i8* %src) ; CHECK: ret void @@ -15,7 +15,7 @@ declare i8* @strncpy(i8* %dest, i8* %src, i32 %n) nounwind define void @test2(i8* %src) { ; CHECK-LABEL: @test2( %B = alloca [16 x i8] - %dest = getelementptr inbounds [16 x i8]* %B, i64 0, i64 0 + %dest = getelementptr inbounds [16 x i8], [16 x i8]* %B, i64 0, i64 0 ; CHECK-NOT: @strncpy %call = call i8* @strncpy(i8* %dest, i8* %src, i32 12) ; CHECK: ret void @@ -26,7 +26,7 @@ declare i8* @strcat(i8* %dest, i8* %src) nounwind define void @test3(i8* %src) { ; CHECK-LABEL: @test3( %B = alloca [16 x i8] - %dest = getelementptr inbounds [16 x i8]* %B, i64 0, i64 0 + %dest = getelementptr inbounds [16 x i8], [16 x i8]* %B, i64 0, i64 0 ; CHECK-NOT: @strcat %call = call i8* @strcat(i8* %dest, i8* %src) ; CHECK: ret void @@ -37,7 +37,7 @@ declare i8* @strncat(i8* %dest, i8* %src, i32 %n) nounwind define void @test4(i8* %src) { ; CHECK-LABEL: @test4( %B = alloca [16 x i8] - %dest = getelementptr inbounds [16 x i8]* %B, i64 0, i64 0 + %dest = getelementptr inbounds [16 x i8], [16 x i8]* %B, i64 0, i64 0 ; CHECK-NOT: @strncat %call = call i8* @strncat(i8* %dest, i8* %src, i32 12) ; CHECK: ret void @@ -47,10 +47,10 @@ define void @test4(i8* %src) { define void @test5(i8* nocapture %src) { ; CHECK-LABEL: @test5( %dest = alloca [100 x i8], align 16 - %arraydecay = getelementptr inbounds [100 x i8]* %dest, i64 0, i64 0 + %arraydecay = getelementptr inbounds [100 x i8], [100 x i8]* %dest, i64 0, i64 0 %call = call i8* @strcpy(i8* %arraydecay, i8* %src) ; CHECK: %call = call i8* @strcpy - %arrayidx = getelementptr inbounds i8* %call, i64 10 + %arrayidx = getelementptr inbounds i8, i8* %call, i64 10 store i8 97, i8* %arrayidx, align 1 ret void } @@ -59,7 +59,7 @@ declare void @user(i8* %p) define void @test6(i8* %src) { ; CHECK-LABEL: @test6( %B = alloca [16 x i8] - %dest = getelementptr inbounds [16 x i8]* %B, i64 0, i64 0 + %dest = getelementptr inbounds [16 x i8], [16 x i8]* %B, i64 0, i64 0 ; CHECK: @strcpy %call = call i8* @strcpy(i8* %dest, i8* %src) ; CHECK: @user diff --git a/test/Transforms/DeadStoreElimination/lifetime.ll b/test/Transforms/DeadStoreElimination/lifetime.ll index 7fe7fbf..305c916 100644 --- a/test/Transforms/DeadStoreElimination/lifetime.ll +++ b/test/Transforms/DeadStoreElimination/lifetime.ll @@ -23,7 +23,7 @@ define void @test1() { define void @test2(i32* %P) { ; CHECK: test2 - %Q = getelementptr i32* %P, i32 1 + %Q = getelementptr i32, i32* %P, i32 1 %R = bitcast i32* %Q to i8* call void @llvm.lifetime.start(i64 4, i8* %R) ; CHECK: lifetime.start diff --git a/test/Transforms/DeadStoreElimination/no-targetdata.ll b/test/Transforms/DeadStoreElimination/no-targetdata.ll index 2539533..f9262ed 100644 --- a/test/Transforms/DeadStoreElimination/no-targetdata.ll +++ b/test/Transforms/DeadStoreElimination/no-targetdata.ll @@ -12,7 +12,7 @@ entry: ; CHECK: tail call void @llvm.memcpy.p0i8.p0i8.i64 ; CHECK: ret void - %arrayidx = getelementptr i8* %buf, i64 18 + %arrayidx = getelementptr i8, i8* %buf, i64 18 tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arrayidx, i8* %buf, i64 18, i32 1, i1 false) store i8 1, i8* %arrayidx, align 1 tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %buf, i8* %arrayidx, i64 18, i32 1, i1 false) diff --git a/test/Transforms/DeadStoreElimination/pr11390.ll b/test/Transforms/DeadStoreElimination/pr11390.ll index f63aa1e..faf3b8b 100644 --- a/test/Transforms/DeadStoreElimination/pr11390.ll +++ b/test/Transforms/DeadStoreElimination/pr11390.ll @@ -18,12 +18,12 @@ entry: if.end: ; preds = %entry tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call4, i8* %name, i64 %call, i32 1, i1 false) - %arrayidx = getelementptr inbounds i8* %call4, i64 %call + %arrayidx = getelementptr inbounds i8, i8* %call4, i64 %call store i8 46, i8* %arrayidx, align 1 ; CHECK: store i8 46 - %add.ptr5 = getelementptr inbounds i8* %call4, i64 %add + %add.ptr5 = getelementptr inbounds i8, i8* %call4, i64 %add tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %add.ptr5, i8* %domain, i64 %call1, i32 1, i1 false) - %arrayidx8 = getelementptr inbounds i8* %call4, i64 %add2 + %arrayidx8 = getelementptr inbounds i8, i8* %call4, i64 %add2 store i8 0, i8* %arrayidx8, align 1 br label %return diff --git a/test/Transforms/DeadStoreElimination/simple.ll b/test/Transforms/DeadStoreElimination/simple.ll index 1e81385..dd1443e 100644 --- a/test/Transforms/DeadStoreElimination/simple.ll +++ b/test/Transforms/DeadStoreElimination/simple.ll @@ -6,7 +6,7 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, declare i8* @llvm.init.trampoline(i8*, i8*, i8*) define void @test1(i32* %Q, i32* %P) { - %DEAD = load i32* %Q + %DEAD = load i32, i32* %Q store i32 %DEAD, i32* %P store i32 0, i32* %P ret void @@ -31,17 +31,17 @@ define void @test2(i32 *%p, i32 *%q) { define i32 @test3(i32* %g_addr) nounwind { ; CHECK-LABEL: @test3( -; CHECK: load i32* %g_addr - %g_value = load i32* %g_addr, align 4 +; CHECK: load i32, i32* %g_addr + %g_value = load i32, i32* %g_addr, align 4 store i32 -1, i32* @g, align 4 store i32 %g_value, i32* %g_addr, align 4 - %tmp3 = load i32* @g, align 4 + %tmp3 = load i32, i32* @g, align 4 ret i32 %tmp3 } define void @test4(i32* %Q) { - %a = load i32* %Q + %a = load i32, i32* %Q store volatile i32 %a, i32* %Q ret void ; CHECK-LABEL: @test4( @@ -51,7 +51,7 @@ define void @test4(i32* %Q) { } define void @test5(i32* %Q) { - %a = load volatile i32* %Q + %a = load volatile i32, i32* %Q store i32 %a, i32* %Q ret void ; CHECK-LABEL: @test5( @@ -87,7 +87,7 @@ define i32 @test8() { store i32 1234567, i32* %V %V2 = bitcast i32* %V to i8* store i8 0, i8* %V2 - %X = load i32* %V + %X = load i32, i32* %V ret i32 %X ; CHECK-LABEL: @test8( @@ -98,7 +98,7 @@ define i32 @test8() { ; Test for byval handling. %struct.x = type { i32, i32, i32, i32 } define void @test9(%struct.x* byval %a) nounwind { - %tmp2 = getelementptr %struct.x* %a, i32 0, i32 0 + %tmp2 = getelementptr %struct.x, %struct.x* %a, i32 0, i32 0 store i32 1, i32* %tmp2, align 4 ret void ; CHECK-LABEL: @test9( @@ -107,7 +107,7 @@ define void @test9(%struct.x* byval %a) nounwind { ; Test for inalloca handling. define void @test9_2(%struct.x* inalloca %a) nounwind { - %tmp2 = getelementptr %struct.x* %a, i32 0, i32 0 + %tmp2 = getelementptr %struct.x, %struct.x* %a, i32 0, i32 0 store i32 1, i32* %tmp2, align 4 ret void ; CHECK-LABEL: @test9_2( @@ -131,7 +131,7 @@ define void @test11() { ; CHECK-LABEL: @test11( %storage = alloca [10 x i8], align 16 ; <[10 x i8]*> [#uses=1] ; CHECK-NOT: alloca - %cast = getelementptr [10 x i8]* %storage, i32 0, i32 0 ; [#uses=1] + %cast = getelementptr [10 x i8], [10 x i8]* %storage, i32 0, i32 0 ; [#uses=1] %tramp = call i8* @llvm.init.trampoline( i8* %cast, i8* bitcast (void ()* @test11f to i8*), i8* null ) ; [#uses=1] ; CHECK-NOT: trampoline ret void @@ -141,10 +141,10 @@ define void @test11() { ; PR2599 - load -> store to same address. define void @test12({ i32, i32 }* %x) nounwind { - %tmp4 = getelementptr { i32, i32 }* %x, i32 0, i32 0 - %tmp5 = load i32* %tmp4, align 4 - %tmp7 = getelementptr { i32, i32 }* %x, i32 0, i32 1 - %tmp8 = load i32* %tmp7, align 4 + %tmp4 = getelementptr { i32, i32 }, { i32, i32 }* %x, i32 0, i32 0 + %tmp5 = load i32, i32* %tmp4, align 4 + %tmp7 = getelementptr { i32, i32 }, { i32, i32 }* %x, i32 0, i32 1 + %tmp8 = load i32, i32* %tmp7, align 4 %tmp17 = sub i32 0, %tmp8 store i32 %tmp5, i32* %tmp4, align 4 store i32 %tmp17, i32* %tmp7, align 4 @@ -160,7 +160,7 @@ declare void @test13f() define i32* @test13() { %p = tail call i8* @malloc(i32 4) %P = bitcast i8* %p to i32* - %DEAD = load i32* %P + %DEAD = load i32, i32* %P %DEAD2 = add i32 %DEAD, 1 store i32 %DEAD2, i32* %P call void @test13f( ) @@ -176,7 +176,7 @@ define i32 addrspace(1)* @test13_addrspacecast() { %p = tail call i8* @malloc(i32 4) %p.bc = bitcast i8* %p to i32* %P = addrspacecast i32* %p.bc to i32 addrspace(1)* - %DEAD = load i32 addrspace(1)* %P + %DEAD = load i32, i32 addrspace(1)* %P %DEAD2 = add i32 %DEAD, 1 store i32 %DEAD2, i32 addrspace(1)* %P call void @test13f( ) @@ -195,7 +195,7 @@ declare noalias i8* @calloc(i32, i32) define void @test14(i32* %Q) { %P = alloca i32 - %DEAD = load i32* %Q + %DEAD = load i32, i32* %Q store i32 %DEAD, i32* %P ret void @@ -267,7 +267,7 @@ declare void @test19f({i32}* byval align 4 %P) define void @test19({i32} * nocapture byval align 4 %arg5) nounwind ssp { bb: - %tmp7 = getelementptr inbounds {i32}* %arg5, i32 0, i32 0 + %tmp7 = getelementptr inbounds {i32}, {i32}* %arg5, i32 0, i32 0 store i32 912, i32* %tmp7 call void @test19f({i32}* byval align 4 %arg5) ret void @@ -310,9 +310,9 @@ define void @test22(i1 %i, i32 %k, i32 %m) nounwind { declare noalias i8* @strdup(i8* nocapture) nounwind define noalias i8* @test23() nounwind uwtable ssp { %x = alloca [2 x i8], align 1 - %arrayidx = getelementptr inbounds [2 x i8]* %x, i64 0, i64 0 + %arrayidx = getelementptr inbounds [2 x i8], [2 x i8]* %x, i64 0, i64 0 store i8 97, i8* %arrayidx, align 1 - %arrayidx1 = getelementptr inbounds [2 x i8]* %x, i64 0, i64 1 + %arrayidx1 = getelementptr inbounds [2 x i8], [2 x i8]* %x, i64 0, i64 1 store i8 0, i8* %arrayidx1, align 1 %call = call i8* @strdup(i8* %arrayidx) nounwind ret i8* %call @@ -326,13 +326,13 @@ define noalias i8* @test23() nounwind uwtable ssp { ; CHECK: store i32 %c ; CHECK: ret void define void @test24([2 x i32]* %a, i32 %b, i32 %c) nounwind { - %1 = getelementptr inbounds [2 x i32]* %a, i64 0, i64 0 + %1 = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 0 store i32 0, i32* %1, align 4 - %2 = getelementptr inbounds [2 x i32]* %a, i64 0, i64 1 + %2 = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 1 store i32 0, i32* %2, align 4 - %3 = getelementptr inbounds [2 x i32]* %a, i64 0, i64 0 + %3 = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 0 store i32 %b, i32* %3, align 4 - %4 = getelementptr inbounds [2 x i32]* %a, i64 0, i64 1 + %4 = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 1 store i32 %c, i32* %4, align 4 ret void } @@ -343,8 +343,8 @@ define void @test24([2 x i32]* %a, i32 %b, i32 %c) nounwind { ; CHECK: store i8 0 ; CHECK: store i8 %tmp define i8* @test25(i8* %p) nounwind { - %p.4 = getelementptr i8* %p, i64 4 - %tmp = load i8* %p.4, align 1 + %p.4 = getelementptr i8, i8* %p, i64 4 + %tmp = load i8, i8* %p.4, align 1 store i8 0, i8* %p.4, align 1 %q = call i8* @strdup(i8* %p) nounwind optsize store i8 %tmp, i8* %p.4, align 1 diff --git a/test/Transforms/EarlyCSE/basic.ll b/test/Transforms/EarlyCSE/basic.ll index a36a103..43b5e60 100644 --- a/test/Transforms/EarlyCSE/basic.ll +++ b/test/Transforms/EarlyCSE/basic.ll @@ -37,8 +37,8 @@ define void @test1(i8 %V, i32 *%P) { ;; Simple load value numbering. ; CHECK-LABEL: @test2( define i32 @test2(i32 *%P) { - %V1 = load i32* %P - %V2 = load i32* %P + %V1 = load i32, i32* %P + %V2 = load i32, i32* %P %Diff = sub i32 %V1, %V2 ret i32 %Diff ; CHECK: ret i32 0 @@ -46,9 +46,9 @@ define i32 @test2(i32 *%P) { ; CHECK-LABEL: @test2a( define i32 @test2a(i32 *%P, i1 %b) { - %V1 = load i32* %P + %V1 = load i32, i32* %P tail call void @llvm.assume(i1 %b) - %V2 = load i32* %P + %V2 = load i32, i32* %P %Diff = sub i32 %V1, %V2 ret i32 %Diff ; CHECK: ret i32 0 @@ -57,13 +57,13 @@ define i32 @test2a(i32 *%P, i1 %b) { ;; Cross block load value numbering. ; CHECK-LABEL: @test3( define i32 @test3(i32 *%P, i1 %Cond) { - %V1 = load i32* %P + %V1 = load i32, i32* %P br i1 %Cond, label %T, label %F T: store i32 4, i32* %P ret i32 42 F: - %V2 = load i32* %P + %V2 = load i32, i32* %P %Diff = sub i32 %V1, %V2 ret i32 %Diff ; CHECK: F: @@ -72,14 +72,14 @@ F: ; CHECK-LABEL: @test3a( define i32 @test3a(i32 *%P, i1 %Cond, i1 %b) { - %V1 = load i32* %P + %V1 = load i32, i32* %P br i1 %Cond, label %T, label %F T: store i32 4, i32* %P ret i32 42 F: tail call void @llvm.assume(i1 %b) - %V2 = load i32* %P + %V2 = load i32, i32* %P %Diff = sub i32 %V1, %V2 ret i32 %Diff ; CHECK: F: @@ -89,7 +89,7 @@ F: ;; Cross block load value numbering stops when stores happen. ; CHECK-LABEL: @test4( define i32 @test4(i32 *%P, i1 %Cond) { - %V1 = load i32* %P + %V1 = load i32, i32* %P br i1 %Cond, label %T, label %F T: ret i32 42 @@ -97,7 +97,7 @@ F: ; Clobbers V1 store i32 42, i32* %P - %V2 = load i32* %P + %V2 = load i32, i32* %P %Diff = sub i32 %V1, %V2 ret i32 %Diff ; CHECK: F: @@ -120,7 +120,7 @@ define i32 @test5(i32 *%P) { ; CHECK-LABEL: @test6( define i32 @test6(i32 *%P) { store i32 42, i32* %P - %V1 = load i32* %P + %V1 = load i32, i32* %P ret i32 %V1 ; CHECK: ret i32 42 } @@ -129,7 +129,7 @@ define i32 @test6(i32 *%P) { define i32 @test6a(i32 *%P, i1 %b) { store i32 42, i32* %P tail call void @llvm.assume(i1 %b) - %V1 = load i32* %P + %V1 = load i32, i32* %P ret i32 %V1 ; CHECK: ret i32 42 } @@ -195,11 +195,11 @@ define void @test11(i32 *%P) { ; CHECK-LABEL: @test12( define i32 @test12(i1 %B, i32* %P1, i32* %P2) { - %load0 = load i32* %P1 - %1 = load atomic i32* %P2 seq_cst, align 4 - %load1 = load i32* %P1 + %load0 = load i32, i32* %P1 + %1 = load atomic i32, i32* %P2 seq_cst, align 4 + %load1 = load i32, i32* %P1 %sel = select i1 %B, i32 %load0, i32 %load1 ret i32 %sel - ; CHECK: load i32* %P1 - ; CHECK: load i32* %P1 + ; CHECK: load i32, i32* %P1 + ; CHECK: load i32, i32* %P1 } diff --git a/test/Transforms/FunctionAttrs/2008-09-03-ReadNone.ll b/test/Transforms/FunctionAttrs/2008-09-03-ReadNone.ll index 36a7658..ca05d63 100644 --- a/test/Transforms/FunctionAttrs/2008-09-03-ReadNone.ll +++ b/test/Transforms/FunctionAttrs/2008-09-03-ReadNone.ll @@ -17,7 +17,7 @@ define i32 @g() readonly { ; CHECK: define i32 @h() #0 define i32 @h() readnone { - %tmp = load i32* @x ; [#uses=1] + %tmp = load i32, i32* @x ; [#uses=1] ret i32 %tmp } diff --git a/test/Transforms/FunctionAttrs/2008-09-13-VolatileRead.ll b/test/Transforms/FunctionAttrs/2008-09-13-VolatileRead.ll index b7e4d1f..fef872c 100644 --- a/test/Transforms/FunctionAttrs/2008-09-13-VolatileRead.ll +++ b/test/Transforms/FunctionAttrs/2008-09-13-VolatileRead.ll @@ -4,6 +4,6 @@ @g = global i32 0 ; [#uses=1] define i32 @f() { - %t = load volatile i32* @g ; [#uses=1] + %t = load volatile i32, i32* @g ; [#uses=1] ret i32 %t } diff --git a/test/Transforms/FunctionAttrs/2008-12-29-Constant.ll b/test/Transforms/FunctionAttrs/2008-12-29-Constant.ll index 9655da4..e3a8f01 100644 --- a/test/Transforms/FunctionAttrs/2008-12-29-Constant.ll +++ b/test/Transforms/FunctionAttrs/2008-12-29-Constant.ll @@ -3,6 +3,6 @@ @s = external constant i8 ; [#uses=1] define i8 @f() { - %tmp = load i8* @s ; [#uses=1] + %tmp = load i8, i8* @s ; [#uses=1] ret i8 %tmp } diff --git a/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll b/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll index 0cf1cb7..ec1db09 100644 --- a/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll +++ b/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll @@ -2,7 +2,7 @@ ; CHECK: define i32* @a(i32** nocapture readonly %p) define i32* @a(i32** %p) { - %tmp = load i32** %p + %tmp = load i32*, i32** %p ret i32* %tmp } diff --git a/test/Transforms/FunctionAttrs/2010-10-30-volatile.ll b/test/Transforms/FunctionAttrs/2010-10-30-volatile.ll index 93991d2..1a64a83 100644 --- a/test/Transforms/FunctionAttrs/2010-10-30-volatile.ll +++ b/test/Transforms/FunctionAttrs/2010-10-30-volatile.ll @@ -5,6 +5,6 @@ define void @foo() { ; CHECK: void @foo() { - %tmp = load volatile i32* @g + %tmp = load volatile i32, i32* @g ret void } diff --git a/test/Transforms/FunctionAttrs/atomic.ll b/test/Transforms/FunctionAttrs/atomic.ll index d5a8db7..bb86701 100644 --- a/test/Transforms/FunctionAttrs/atomic.ll +++ b/test/Transforms/FunctionAttrs/atomic.ll @@ -7,7 +7,7 @@ define i32 @test1(i32 %x) uwtable ssp { entry: %x.addr = alloca i32, align 4 store atomic i32 %x, i32* %x.addr seq_cst, align 4 - %r = load atomic i32* %x.addr seq_cst, align 4 + %r = load atomic i32, i32* %x.addr seq_cst, align 4 ret i32 %r } @@ -15,7 +15,7 @@ entry: define i32 @test2(i32* %x) uwtable ssp { ; CHECK: define i32 @test2(i32* nocapture readonly %x) #1 { entry: - %r = load atomic i32* %x seq_cst, align 4 + %r = load atomic i32, i32* %x seq_cst, align 4 ret i32 %r } diff --git a/test/Transforms/FunctionAttrs/nocapture.ll b/test/Transforms/FunctionAttrs/nocapture.ll index d3842c8..23cbc85 100644 --- a/test/Transforms/FunctionAttrs/nocapture.ll +++ b/test/Transforms/FunctionAttrs/nocapture.ll @@ -39,8 +39,8 @@ define i1 @c5(i32* %q, i32 %bitno) { %tmp2 = lshr i32 %tmp, %bitno %bit = and i32 %tmp2, 1 ; subtle escape mechanism follows - %lookup = getelementptr [2 x i1]* @lookup_table, i32 0, i32 %bit - %val = load i1* %lookup + %lookup = getelementptr [2 x i1], [2 x i1]* @lookup_table, i32 0, i32 %bit + %val = load i1, i1* %lookup ret i1 %val } @@ -64,14 +64,14 @@ define i1* @lookup_bit(i32* %q, i32 %bitno) readnone nounwind { %tmp = ptrtoint i32* %q to i32 %tmp2 = lshr i32 %tmp, %bitno %bit = and i32 %tmp2, 1 - %lookup = getelementptr [2 x i1]* @lookup_table, i32 0, i32 %bit + %lookup = getelementptr [2 x i1], [2 x i1]* @lookup_table, i32 0, i32 %bit ret i1* %lookup } ; CHECK: define i1 @c7(i32* readonly %q, i32 %bitno) define i1 @c7(i32* %q, i32 %bitno) { %ptr = call i1* @lookup_bit(i32* %q, i32 %bitno) - %val = load i1* %ptr + %val = load i1, i1* %ptr ret i1 %val } @@ -85,7 +85,7 @@ l: %y = phi i32* [ %q, %e ] %tmp = bitcast i32* %x to i32* ; [#uses=2] %tmp2 = select i1 %b, i32* %tmp, i32* %y - %val = load i32* %tmp2 ; [#uses=1] + %val = load i32, i32* %tmp2 ; [#uses=1] store i32 0, i32* %tmp store i32* %y, i32** @g ret i32 %val @@ -100,7 +100,7 @@ l: %y = phi i32* [ %q, %e ] %tmp = addrspacecast i32 addrspace(1)* %x to i32* ; [#uses=2] %tmp2 = select i1 %b, i32* %tmp, i32* %y - %val = load i32* %tmp2 ; [#uses=1] + %val = load i32, i32* %tmp2 ; [#uses=1] store i32 0, i32* %tmp store i32* %y, i32** @g ret i32 %val diff --git a/test/Transforms/FunctionAttrs/optnone-simple.ll b/test/Transforms/FunctionAttrs/optnone-simple.ll index 9d0f8e3..beaa588 100644 --- a/test/Transforms/FunctionAttrs/optnone-simple.ll +++ b/test/Transforms/FunctionAttrs/optnone-simple.ll @@ -15,8 +15,8 @@ entry: %b.addr = alloca i32, align 4 store i32 %a, i32* %a.addr, align 4 store i32 %b, i32* %b.addr, align 4 - %0 = load i32* %a.addr, align 4 - %1 = load i32* %b.addr, align 4 + %0 = load i32, i32* %a.addr, align 4 + %1 = load i32, i32* %b.addr, align 4 %add = add nsw i32 %0, %1 ret i32 %add } @@ -33,8 +33,8 @@ entry: %b.addr = alloca i32, align 4 store i32 %a, i32* %a.addr, align 4 store i32 %b, i32* %b.addr, align 4 - %0 = load i32* %a.addr, align 4 - %1 = load i32* %b.addr, align 4 + %0 = load i32, i32* %a.addr, align 4 + %1 = load i32, i32* %b.addr, align 4 %add = add nsw i32 %0, %1 ret i32 %add } @@ -57,8 +57,8 @@ entry: %b.addr = alloca float, align 4 store float %a, float* %a.addr, align 4 store float %b, float* %b.addr, align 4 - %0 = load float* %a.addr, align 4 - %1 = load float* %b.addr, align 4 + %0 = load float, float* %a.addr, align 4 + %1 = load float, float* %b.addr, align 4 %sub = fsub float %0, %1 ret float %sub } @@ -75,8 +75,8 @@ entry: %b.addr = alloca float, align 4 store float %a, float* %a.addr, align 4 store float %b, float* %b.addr, align 4 - %0 = load float* %a.addr, align 4 - %1 = load float* %b.addr, align 4 + %0 = load float, float* %a.addr, align 4 + %1 = load float, float* %b.addr, align 4 %sub = fsub float %0, %1 ret float %sub } @@ -100,8 +100,8 @@ entry: %b.addr = alloca <4 x float>, align 16 store <4 x float> %a, <4 x float>* %a.addr, align 16 store <4 x float> %b, <4 x float>* %b.addr, align 16 - %0 = load <4 x float>* %a.addr, align 16 - %1 = load <4 x float>* %b.addr, align 16 + %0 = load <4 x float>, <4 x float>* %a.addr, align 16 + %1 = load <4 x float>, <4 x float>* %b.addr, align 16 %mul = fmul <4 x float> %0, %1 ret <4 x float> %mul } @@ -118,8 +118,8 @@ entry: %b.addr = alloca <4 x float>, align 16 store <4 x float> %a, <4 x float>* %a.addr, align 16 store <4 x float> %b, <4 x float>* %b.addr, align 16 - %0 = load <4 x float>* %a.addr, align 16 - %1 = load <4 x float>* %b.addr, align 16 + %0 = load <4 x float>, <4 x float>* %a.addr, align 16 + %1 = load <4 x float>, <4 x float>* %b.addr, align 16 %mul = fmul <4 x float> %0, %1 ret <4 x float> %mul } diff --git a/test/Transforms/GCOVProfiling/function-numbering.ll b/test/Transforms/GCOVProfiling/function-numbering.ll index 487f4ca..d39a7e1 100644 --- a/test/Transforms/GCOVProfiling/function-numbering.ll +++ b/test/Transforms/GCOVProfiling/function-numbering.ll @@ -6,7 +6,7 @@ ; RUN: cat %s %t1 > %t2 ; RUN: opt -insert-gcov-profiling -S < %t2 | FileCheck --check-prefix GCDA %s -; RUN: llvm-cov -n -dump %T/function-numbering.gcno 2>&1 | FileCheck --check-prefix GCNO %s +; RUN: llvm-cov gcov -n -dump %T/function-numbering.gcno 2>&1 | FileCheck --check-prefix GCNO %s target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-apple-macosx10.10.0" @@ -15,8 +15,8 @@ target triple = "x86_64-apple-macosx10.10.0" ; GCDA-NOT: @{{[0-9]+}} = private unnamed_addr constant .* c"bar\00" ; GCDA: @[[BAZ:[0-9]+]] = private unnamed_addr constant [4 x i8] c"baz\00" ; GCDA: define internal void @__llvm_gcov_writeout() -; GCDA: call void @llvm_gcda_emit_function(i32 0, i8* getelementptr inbounds ([4 x i8]* @[[FOO]] -; GCDA: call void @llvm_gcda_emit_function(i32 1, i8* getelementptr inbounds ([4 x i8]* @[[BAZ]] +; GCDA: call void @llvm_gcda_emit_function(i32 0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @[[FOO]] +; GCDA: call void @llvm_gcda_emit_function(i32 1, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @[[BAZ]] ; GCNO: == foo (0) @ ; GCNO-NOT: == bar ({{[0-9]+}}) @ @@ -40,17 +40,17 @@ define void @baz() { !llvm.module.flags = !{!9, !10} !llvm.ident = !{!11} -!0 = !{!"0x11\0012\00clang version 3.6.0 \000\00\000\00\002", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [function-numbering.ll] [DW_LANG_C99] -!1 = !{!".../llvm/test/Transforms/GCOVProfiling/function-numbering.ll", !""} +!0 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 3.6.0 ", isOptimized: false, emissionKind: 2, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) +!1 = !MDFile(filename: ".../llvm/test/Transforms/GCOVProfiling/function-numbering.ll", directory: "") !2 = !{} !3 = !{!4, !7, !8} -!4 = !{!"0x2e\00foo\00foo\00\001\000\001\000\000\000\000\001", !1, !5, !6, null, void ()* @foo, null, null, !2} ; [ DW_TAG_subprogram ] [line 1] [def] [foo] -!5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [/Users/bogner/build/llvm-debug//tmp/foo.c] -!6 = !{!"0x15\00\000\000\000\000\000\000", null, null, null, !2, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] -!7 = !{!"0x2e\00bar\00bar\00\002\000\001\000\000\000\000\002", !1, !5, !6, null, void ()* @bar, null, null, !2} ; [ DW_TAG_subprogram ] [line 2] [def] [bar] -!8 = !{!"0x2e\00baz\00baz\00\003\000\001\000\000\000\000\003", !1, !5, !6, null, void ()* @baz, null, null, !2} ; [ DW_TAG_subprogram ] [line 3] [def] [baz] +!4 = !MDSubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !6, function: void ()* @foo, variables: !2) +!5 = !MDFile(filename: ".../llvm/test/Transforms/GCOVProfiling/function-numbering.ll", directory: "") +!6 = !MDSubroutineType(types: !2) +!7 = !MDSubprogram(name: "bar", line: 2, isLocal: false, isDefinition: true, isOptimized: false, scopeLine: 2, file: !1, scope: !5, type: !6, function: void ()* @bar, variables: !2) +!8 = !MDSubprogram(name: "baz", line: 3, isLocal: false, isDefinition: true, isOptimized: false, scopeLine: 3, file: !1, scope: !5, type: !6, function: void ()* @baz, variables: !2) !9 = !{i32 2, !"Dwarf Version", i32 2} -!10 = !{i32 2, !"Debug Info Version", i32 2} +!10 = !{i32 2, !"Debug Info Version", i32 3} !11 = !{!"clang version 3.6.0 "} !12 = !MDLocation(line: 1, column: 13, scope: !4) !13 = !MDLocation(line: 3, column: 13, scope: !8) diff --git a/test/Transforms/GCOVProfiling/global-ctor.ll b/test/Transforms/GCOVProfiling/global-ctor.ll index 9a9b7ce..c064d9a 100644 --- a/test/Transforms/GCOVProfiling/global-ctor.ll +++ b/test/Transforms/GCOVProfiling/global-ctor.ll @@ -38,19 +38,19 @@ attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" " !llvm.gcov = !{!16} !llvm.ident = !{!12} -!0 = !{!"0x11\004\00clang version 3.5.0 (trunk 210217)\000\00\000\00\002", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [/home/nlewycky/] [DW_LANG_C_plus_plus] -!1 = !{!"", !"/home/nlewycky"} +!0 = !MDCompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5.0 (trunk 210217)", isOptimized: false, emissionKind: 2, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2) +!1 = !MDFile(filename: "", directory: "/home/nlewycky") !2 = !{} !3 = !{!4, !8} -!4 = !{!"0x2e\00__cxx_global_var_init\00__cxx_global_var_init\00\002\001\001\000\006\00256\000\002", !5, !6, !7, null, void ()* @__cxx_global_var_init, null, null, !2} ; [ DW_TAG_subprogram ] [line 2] [local] [def] [__cxx_global_var_init] -!5 = !{!"global-ctor.ll", !"/home/nlewycky"} -!6 = !{!"0x29", !5} ; [ DW_TAG_file_type ] [/home/nlewycky/global-ctor.ll] -!7 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !2, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] -!8 = !{!"0x2e\00\00\00_GLOBAL__sub_I_global-ctor.ll\000\001\001\000\006\0064\000\000", !1, !9, !7, null, void ()* @_GLOBAL__sub_I_global-ctor.ll, null, null, !2} ; [ DW_TAG_subprogram ] [line 0] [local] [def] -!9 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [/home/nlewycky/] +!4 = !MDSubprogram(name: "__cxx_global_var_init", line: 2, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 2, file: !5, scope: !6, type: !7, function: void ()* @__cxx_global_var_init, variables: !2) +!5 = !MDFile(filename: "global-ctor.ll", directory: "/home/nlewycky") +!6 = !MDFile(filename: "global-ctor.ll", directory: "/home/nlewycky") +!7 = !MDSubroutineType(types: !2) +!8 = !MDSubprogram(name: "", linkageName: "_GLOBAL__sub_I_global-ctor.ll", isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagArtificial, isOptimized: false, file: !1, scope: !9, type: !7, function: void ()* @_GLOBAL__sub_I_global-ctor.ll, variables: !2) +!9 = !MDFile(filename: "", directory: "/home/nlewycky") !10 = !{i32 2, !"Dwarf Version", i32 4} -!11 = !{i32 2, !"Debug Info Version", i32 2} +!11 = !{i32 2, !"Debug Info Version", i32 3} !12 = !{!"clang version 3.5.0 (trunk 210217)"} !13 = !MDLocation(line: 2, scope: !4) !14 = !MDLocation(line: 0, scope: !15) -!15 = !{!"0xb\000", !5, !8} ; [ DW_TAG_lexical_block ] [/home/nlewycky/global-ctor.ll] +!15 = !MDLexicalBlockFile(discriminator: 0, file: !5, scope: !8) diff --git a/test/Transforms/GCOVProfiling/linezero.ll b/test/Transforms/GCOVProfiling/linezero.ll index cf0fcd2..d562282 100644 --- a/test/Transforms/GCOVProfiling/linezero.ll +++ b/test/Transforms/GCOVProfiling/linezero.ll @@ -1,6 +1,5 @@ -; RUN: sed -e 's|PATTERN|%/T|g' < %s > %t1 -; RUN: opt -insert-gcov-profiling -disable-output < %t1 -; RUN: rm %T/linezero.gcno %t1 +; RUN: sed -e 's|PATTERN|%/T|g' %s | opt -insert-gcov-profiling -disable-output +; RUN: rm %T/linezero.gcno ; This is a crash test. @@ -19,38 +18,38 @@ entry: %__begin = alloca i8*, align 8 %__end = alloca i8*, align 8 %spec = alloca i8, align 1 - call void @llvm.dbg.declare(metadata %struct.vector** %__range, metadata !27, metadata !{}), !dbg !30 + call void @llvm.dbg.declare(metadata %struct.vector** %__range, metadata !27, metadata !MDExpression()), !dbg !30 br label %0 ;