From f8af5cf600354830d4ccf59732403f0f073eccb9 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sun, 22 Dec 2013 00:04:03 +0000 Subject: Vendor import of llvm release_34 branch r197841 (effectively, 3.4 RC3): https://llvm.org/svn/llvm-project/llvm/branches/release_34@197841 --- test/.clang-format | 2 + test/Analysis/BasicAA/full-store-partial-alias.ll | 6 +- test/Analysis/BasicAA/gep-alias.ll | 61 +- test/Analysis/BasicAA/global-size.ll | 18 +- test/Analysis/BasicAA/lit.local.cfg | 1 - test/Analysis/BasicAA/noalias-geps.ll | 2 + test/Analysis/BasicAA/noalias-param.ll | 23 + test/Analysis/BlockFrequencyInfo/basic.ll | 74 +- test/Analysis/BlockFrequencyInfo/lit.local.cfg | 1 - test/Analysis/BranchProbabilityInfo/basic.ll | 97 + test/Analysis/BranchProbabilityInfo/lit.local.cfg | 1 - test/Analysis/CallGraph/lit.local.cfg | 1 - test/Analysis/CallGraph/no-intrinsics.ll | 2 +- test/Analysis/CostModel/ARM/lit.local.cfg | 2 - test/Analysis/CostModel/ARM/select.ll | 8 + test/Analysis/CostModel/PowerPC/lit.local.cfg | 2 - test/Analysis/CostModel/X86/cast.ll | 8 +- test/Analysis/CostModel/X86/div.ll | 32 + test/Analysis/CostModel/X86/intrinsic-cost.ll | 28 + test/Analysis/CostModel/X86/lit.local.cfg | 2 - test/Analysis/CostModel/X86/load_store.ll | 19 + test/Analysis/CostModel/X86/reduction.ll | 365 + test/Analysis/CostModel/lit.local.cfg | 1 - test/Analysis/Delinearization/a.ll | 74 + test/Analysis/Delinearization/himeno_1.ll | 102 + test/Analysis/Delinearization/himeno_2.ll | 102 + test/Analysis/Delinearization/lit.local.cfg | 1 + .../multidim_ivs_and_integer_offsets_3d.ll | 68 + .../multidim_ivs_and_integer_offsets_nts_3d.ll | 72 + .../multidim_ivs_and_parameteric_offsets_3d.ll | 68 + .../Delinearization/multidim_only_ivs_2d.ll | 46 + .../Delinearization/multidim_only_ivs_2d_nested.ll | 78 + .../Delinearization/multidim_only_ivs_3d.ll | 65 + .../Delinearization/multidim_only_ivs_3d_cast.ll | 75 + test/Analysis/DependenceAnalysis/Banerjee.ll | 14 +- test/Analysis/DependenceAnalysis/GCD.ll | 10 + test/Analysis/DependenceAnalysis/Invariant.ll | 40 + test/Analysis/DependenceAnalysis/SymbolicRDIV.ll | 7 + test/Analysis/DependenceAnalysis/lit.local.cfg | 1 - test/Analysis/Dominators/lit.local.cfg | 1 - test/Analysis/GlobalsModRef/lit.local.cfg | 1 - test/Analysis/Lint/check-zero-divide.ll | 78 + test/Analysis/Lint/lit.local.cfg | 1 + .../Analysis/LoopInfo/2003-05-15-NestingProblem.ll | 5 +- test/Analysis/LoopInfo/lit.local.cfg | 1 - .../MemoryDependenceAnalysis/lit.local.cfg | 1 - test/Analysis/PostDominators/lit.local.cfg | 1 - test/Analysis/PostDominators/pr1098.ll | 3 +- test/Analysis/Profiling/edge-profiling.ll | 139 - test/Analysis/Profiling/lit.local.cfg | 11 - test/Analysis/Profiling/load-branch-weights-ifs.ll | 122 - .../Profiling/load-branch-weights-loops.ll | 188 - .../Profiling/load-branch-weights-switches.ll | 165 - test/Analysis/Profiling/profiling-tool-chain.ll | 212 - test/Analysis/RegionInfo/lit.local.cfg | 1 - .../ScalarEvolution/2007-07-15-NegativeStride.ll | 5 +- .../2007-08-06-MisinterpretBranch.ll | 4 +- .../ScalarEvolution/2007-08-06-Unsigned.ll | 4 +- .../ScalarEvolution/2007-09-27-LargeStepping.ll | 5 +- .../ScalarEvolution/2007-11-14-SignedAddRec.ll | 4 +- .../2008-02-11-ReversedCondition.ll | 4 +- test/Analysis/ScalarEvolution/2008-02-15-UMax.ll | 4 +- .../2008-05-25-NegativeStepToZero.ll | 5 +- .../ScalarEvolution/2008-07-12-UnneededSelect1.ll | 5 +- .../ScalarEvolution/2008-07-12-UnneededSelect2.ll | 5 +- .../ScalarEvolution/2008-07-19-InfiniteLoop.ll | 5 +- .../ScalarEvolution/2008-07-19-WrappingIV.ll | 5 +- .../ScalarEvolution/2008-11-18-LessThanOrEqual.ll | 5 +- .../Analysis/ScalarEvolution/2008-11-18-Stride1.ll | 7 +- .../Analysis/ScalarEvolution/2008-11-18-Stride2.ll | 7 +- .../ScalarEvolution/2008-12-08-FiniteSGE.ll | 4 +- .../ScalarEvolution/2008-12-14-StrideAndSigned.ll | 5 +- .../ScalarEvolution/2008-12-15-DontUseSDiv.ll | 5 +- .../2009-01-02-SignedNegativeStride.ll | 5 +- .../ScalarEvolution/2009-04-22-TruncCast.ll | 18 + .../ScalarEvolution/2009-05-09-PointerEdgeCount.ll | 5 +- .../ScalarEvolution/2011-04-26-FoldAddRec.ll | 2 +- .../ScalarEvolution/SolveQuadraticEquation.ll | 3 +- test/Analysis/ScalarEvolution/and-xor.ll | 7 +- test/Analysis/ScalarEvolution/avoid-smax-0.ll | 4 +- test/Analysis/ScalarEvolution/div-overflow.ll | 5 +- test/Analysis/ScalarEvolution/do-loop.ll | 4 +- test/Analysis/ScalarEvolution/lit.local.cfg | 1 - .../max-trip-count-address-space.ll | 68 + test/Analysis/ScalarEvolution/nsw.ll | 40 +- test/Analysis/ScalarEvolution/smax.ll | 8 +- test/Analysis/ScalarEvolution/trip-count.ll | 4 +- test/Analysis/ScalarEvolution/trip-count10.ll | 31 +- test/Analysis/ScalarEvolution/trip-count11.ll | 28 +- test/Analysis/ScalarEvolution/trip-count2.ll | 4 +- test/Analysis/ScalarEvolution/trip-count3.ll | 6 +- test/Analysis/ScalarEvolution/trip-count4.ll | 5 +- test/Analysis/ScalarEvolution/trip-count6.ll | 5 +- test/Analysis/ScalarEvolution/trip-count7.ll | 5 +- test/Analysis/ScalarEvolution/trip-count8.ll | 5 +- test/Analysis/ScalarEvolution/trip-count9.ll | 47 +- test/Analysis/ScalarEvolution/xor-and.ll | 5 +- test/Analysis/ScalarEvolution/zext-wrap.ll | 3 +- test/Analysis/TypeBasedAliasAnalysis/PR17620.ll | 45 + test/Analysis/TypeBasedAliasAnalysis/aliastest.ll | 17 +- .../TypeBasedAliasAnalysis/argument-promotion.ll | 14 +- test/Analysis/TypeBasedAliasAnalysis/dse.ll | 17 +- .../TypeBasedAliasAnalysis/dynamic-indices.ll | 16 +- .../TypeBasedAliasAnalysis/functionattrs.ll | 7 +- .../gvn-nonlocal-type-mismatch.ll | 12 +- test/Analysis/TypeBasedAliasAnalysis/intrinsics.ll | 6 +- test/Analysis/TypeBasedAliasAnalysis/licm.ll | 14 +- test/Analysis/TypeBasedAliasAnalysis/lit.local.cfg | 1 - test/Analysis/TypeBasedAliasAnalysis/memcpyopt.ll | 10 +- .../TypeBasedAliasAnalysis/placement-tbaa.ll | 44 +- test/Analysis/TypeBasedAliasAnalysis/precedence.ll | 12 +- test/Analysis/TypeBasedAliasAnalysis/sink.ll | 10 +- test/Analysis/TypeBasedAliasAnalysis/tbaa-path.ll | 4 +- test/Archive/GNU.a | Bin 4210 -> 0 bytes test/Archive/IsNAN.o | Bin 2280 -> 0 bytes test/Archive/MacOSX.a | Bin 4166 -> 0 bytes test/Archive/README.txt | 24 - test/Archive/SVR4.a | Bin 4214 -> 0 bytes test/Archive/check_binary_output.ll | 4 - test/Archive/evenlen | 1 - test/Archive/extract.ll | 16 - test/Archive/lit.local.cfg | 1 - test/Archive/oddlen | 1 - test/Archive/toc_GNU.ll | 8 - test/Archive/toc_MacOSX.ll | 9 - test/Archive/toc_SVR4.ll | 8 - test/Archive/toc_xpg4.ll | 8 - test/Archive/very_long_bytecode_file_name.bc | Bin 1465 -> 0 bytes test/Archive/xpg4.a | Bin 4214 -> 0 bytes .../2010-02-05-FunctionLocalMetadataBecomesNull.ll | 14 +- test/Assembler/ConstantExprFoldCast.ll | 2 + test/Assembler/ConstantExprNoFold.ll | 3 + test/Assembler/attribute-builtin.ll | 50 + test/Assembler/auto_upgrade_intrinsics.ll | 15 + test/Assembler/functionlocal-metadata.ll | 32 +- test/Assembler/lit.local.cfg | 1 - test/Bindings/Ocaml/analysis.ml | 5 +- test/Bindings/Ocaml/bitreader.ml | 5 +- test/Bindings/Ocaml/bitwriter.ml | 5 +- test/Bindings/Ocaml/executionengine.ml | 11 +- test/Bindings/Ocaml/ext_exc.ml | 5 +- test/Bindings/Ocaml/ipo_opts.ml | 13 +- test/Bindings/Ocaml/irreader.ml | 59 + test/Bindings/Ocaml/linker.ml | 63 + test/Bindings/Ocaml/lit.local.cfg | 3 +- test/Bindings/Ocaml/passmgr_builder.ml | 64 + test/Bindings/Ocaml/scalar_opts.ml | 13 +- test/Bindings/Ocaml/target.ml | 104 +- test/Bindings/Ocaml/vectorize_opts.ml | 56 + test/Bindings/Ocaml/vmcore.ml | 744 +- test/Bindings/llvm-c/calc.test | 15 + test/Bindings/llvm-c/disassemble.test | 29 + test/Bindings/llvm-c/functions.ll | 31 + test/Bindings/llvm-c/globals.ll | 7 + test/Bindings/llvm-c/lit.local.cfg | 5 + test/Bitcode/2012-05-07-SwitchInstRangesSupport.ll | 33 - test/Bitcode/attributes-3.3.ll | 236 + test/Bitcode/attributes-3.3.ll.bc | Bin 0 -> 1592 bytes test/Bitcode/attributes.ll | 39 + test/Bitcode/case-ranges-3.3.ll | 67 + test/Bitcode/case-ranges-3.3.ll.bc | Bin 0 -> 560 bytes test/Bitcode/drop-debug-info.ll | 26 + test/Bitcode/extractelement.ll | 2 +- test/Bitcode/invalid.ll | 7 + test/Bitcode/invalid.ll.bc | Bin 0 -> 332 bytes test/Bitcode/lit.local.cfg | 1 - test/Bitcode/metadata-2.ll | 2 +- test/Bitcode/metadata.ll | 3 +- test/Bitcode/null-type.ll | 5 +- test/Bitcode/select.ll | 9 + test/Bitcode/shuffle.ll | 2 +- test/Bitcode/upgrade-tbaa.ll | 23 + test/BugPoint/crash-narrowfunctiontest.ll | 1 - test/BugPoint/lit.local.cfg | 1 - test/BugPoint/metadata.ll | 18 +- test/BugPoint/remove_arguments_test.ll | 1 - test/CMakeLists.txt | 34 +- test/CodeGen/AArch64/adc.ll | 8 +- test/CodeGen/AArch64/addsub-shifted.ll | 10 +- test/CodeGen/AArch64/addsub.ll | 10 +- test/CodeGen/AArch64/addsub_ext.ll | 8 +- test/CodeGen/AArch64/adrp-relocation.ll | 27 - test/CodeGen/AArch64/alloca.ll | 43 +- test/CodeGen/AArch64/analyze-branch.ll | 20 +- test/CodeGen/AArch64/atomic-ops-not-barriers.ll | 2 +- test/CodeGen/AArch64/atomic-ops.ll | 116 +- test/CodeGen/AArch64/basic-pic.ll | 28 +- test/CodeGen/AArch64/bitfield-insert-0.ll | 2 +- test/CodeGen/AArch64/bitfield-insert.ll | 20 +- test/CodeGen/AArch64/bitfield.ll | 22 +- test/CodeGen/AArch64/blockaddress.ll | 2 +- test/CodeGen/AArch64/breg.ll | 2 +- test/CodeGen/AArch64/callee-save.ll | 2 +- test/CodeGen/AArch64/code-model-large-abs.ll | 10 +- test/CodeGen/AArch64/compare-branch.ll | 4 +- test/CodeGen/AArch64/complex-copy-noneon.ll | 21 + test/CodeGen/AArch64/cond-sel.ll | 25 +- test/CodeGen/AArch64/directcond.ll | 16 +- test/CodeGen/AArch64/dp-3source.ll | 36 +- test/CodeGen/AArch64/dp1.ll | 28 +- test/CodeGen/AArch64/dp2.ll | 30 +- test/CodeGen/AArch64/elf-extern.ll | 17 - test/CodeGen/AArch64/extern-weak.ll | 2 +- test/CodeGen/AArch64/extract.ll | 10 +- test/CodeGen/AArch64/fastcc-reserved.ll | 4 +- test/CodeGen/AArch64/fastcc.ll | 12 +- test/CodeGen/AArch64/fcmp.ll | 4 +- test/CodeGen/AArch64/fcvt-fixed.ll | 8 +- test/CodeGen/AArch64/fcvt-int.ll | 56 +- test/CodeGen/AArch64/flags-multiuse.ll | 2 +- test/CodeGen/AArch64/floatdp_1source.ll | 6 +- test/CodeGen/AArch64/floatdp_2source.ll | 4 +- test/CodeGen/AArch64/fp-cond-sel.ll | 2 +- test/CodeGen/AArch64/fp-dp3.ll | 59 +- test/CodeGen/AArch64/fp128-folding.ll | 4 +- test/CodeGen/AArch64/fp128.ll | 47 +- test/CodeGen/AArch64/fpimm.ll | 14 +- test/CodeGen/AArch64/frameaddr.ll | 20 + test/CodeGen/AArch64/func-argpassing.ll | 52 +- test/CodeGen/AArch64/func-calls.ll | 30 +- test/CodeGen/AArch64/global-alignment.ll | 10 +- test/CodeGen/AArch64/got-abuse.ll | 2 +- test/CodeGen/AArch64/i128-align.ll | 6 +- test/CodeGen/AArch64/illegal-float-ops.ll | 46 +- test/CodeGen/AArch64/init-array.ll | 2 +- .../CodeGen/AArch64/inline-asm-constraints-badI.ll | 2 +- .../CodeGen/AArch64/inline-asm-constraints-badK.ll | 2 +- .../AArch64/inline-asm-constraints-badK2.ll | 2 +- .../CodeGen/AArch64/inline-asm-constraints-badL.ll | 2 +- test/CodeGen/AArch64/inline-asm-constraints.ll | 48 +- test/CodeGen/AArch64/inline-asm-modifiers.ll | 64 +- test/CodeGen/AArch64/jump-table.ll | 17 - test/CodeGen/AArch64/large-consts.ll | 13 + test/CodeGen/AArch64/large-frame.ll | 11 +- test/CodeGen/AArch64/ldst-regoffset.ll | 33 +- test/CodeGen/AArch64/ldst-unscaledimm.ll | 15 +- test/CodeGen/AArch64/ldst-unsignedimm.ll | 15 +- test/CodeGen/AArch64/lit.local.cfg | 2 - test/CodeGen/AArch64/literal_pools.ll | 20 +- test/CodeGen/AArch64/local_vars.ll | 4 +- test/CodeGen/AArch64/logical-imm.ll | 8 +- test/CodeGen/AArch64/logical_shifted_reg.ll | 6 +- test/CodeGen/AArch64/logical_shifted_reg.s | 208 - test/CodeGen/AArch64/movw-consts.ll | 36 +- test/CodeGen/AArch64/movw-shift-encoding.ll | 14 + test/CodeGen/AArch64/neon-2velem-high.ll | 331 + test/CodeGen/AArch64/neon-2velem.ll | 2550 ++ test/CodeGen/AArch64/neon-3vdiff.ll | 1806 ++ test/CodeGen/AArch64/neon-aba-abd.ll | 236 + test/CodeGen/AArch64/neon-across.ll | 476 + test/CodeGen/AArch64/neon-add-pairwise.ll | 92 + test/CodeGen/AArch64/neon-add-sub.ll | 237 + test/CodeGen/AArch64/neon-bitcast.ll | 574 + test/CodeGen/AArch64/neon-bitwise-instructions.ll | 594 + test/CodeGen/AArch64/neon-bsl.ll | 222 + test/CodeGen/AArch64/neon-compare-instructions.ll | 1926 ++ test/CodeGen/AArch64/neon-copy.ll | 615 + test/CodeGen/AArch64/neon-crypto.ll | 149 + test/CodeGen/AArch64/neon-diagnostics.ll | 24 + test/CodeGen/AArch64/neon-extract.ll | 190 + test/CodeGen/AArch64/neon-facge-facgt.ll | 56 + test/CodeGen/AArch64/neon-fma.ll | 112 + test/CodeGen/AArch64/neon-frsqrt-frecp.ll | 54 + test/CodeGen/AArch64/neon-halving-add-sub.ll | 207 + test/CodeGen/AArch64/neon-max-min-pairwise.ll | 310 + test/CodeGen/AArch64/neon-max-min.ll | 310 + test/CodeGen/AArch64/neon-misc-scalar.ll | 60 + test/CodeGen/AArch64/neon-misc.ll | 1799 ++ test/CodeGen/AArch64/neon-mla-mls.ll | 88 + test/CodeGen/AArch64/neon-mov.ll | 217 + test/CodeGen/AArch64/neon-mul-div.ll | 181 + test/CodeGen/AArch64/neon-perm.ll | 1693 ++ test/CodeGen/AArch64/neon-rounding-halving-add.ll | 105 + test/CodeGen/AArch64/neon-rounding-shift.ll | 121 + test/CodeGen/AArch64/neon-saturating-add-sub.ll | 241 + .../AArch64/neon-saturating-rounding-shift.ll | 121 + test/CodeGen/AArch64/neon-saturating-shift.ll | 121 + test/CodeGen/AArch64/neon-scalar-abs.ll | 61 + test/CodeGen/AArch64/neon-scalar-add-sub.ll | 50 + test/CodeGen/AArch64/neon-scalar-by-elem-fma.ll | 108 + test/CodeGen/AArch64/neon-scalar-by-elem-mul.ll | 124 + test/CodeGen/AArch64/neon-scalar-compare.ll | 343 + test/CodeGen/AArch64/neon-scalar-copy.ll | 88 + test/CodeGen/AArch64/neon-scalar-cvt.ll | 137 + test/CodeGen/AArch64/neon-scalar-extract-narrow.ll | 104 + test/CodeGen/AArch64/neon-scalar-fabd.ll | 26 + test/CodeGen/AArch64/neon-scalar-fcvt.ll | 255 + test/CodeGen/AArch64/neon-scalar-fp-compare.ll | 328 + test/CodeGen/AArch64/neon-scalar-mul.ll | 143 + test/CodeGen/AArch64/neon-scalar-neg.ll | 61 + test/CodeGen/AArch64/neon-scalar-recip.ll | 116 + .../CodeGen/AArch64/neon-scalar-reduce-pairwise.ll | 247 + test/CodeGen/AArch64/neon-scalar-rounding-shift.ll | 39 + .../AArch64/neon-scalar-saturating-add-sub.ll | 242 + .../neon-scalar-saturating-rounding-shift.ll | 94 + .../AArch64/neon-scalar-saturating-shift.ll | 88 + test/CodeGen/AArch64/neon-scalar-shift-imm.ll | 531 + test/CodeGen/AArch64/neon-scalar-shift.ll | 38 + test/CodeGen/AArch64/neon-shift-left-long.ll | 193 + test/CodeGen/AArch64/neon-shift.ll | 171 + test/CodeGen/AArch64/neon-simd-ldst-multi-elem.ll | 2314 ++ test/CodeGen/AArch64/neon-simd-ldst-one.ll | 2113 ++ test/CodeGen/AArch64/neon-simd-ldst.ll | 164 + .../AArch64/neon-simd-post-ldst-multi-elem.ll | 354 + test/CodeGen/AArch64/neon-simd-post-ldst-one.ll | 319 + test/CodeGen/AArch64/neon-simd-shift.ll | 1556 ++ test/CodeGen/AArch64/neon-simd-tbl.ll | 828 + test/CodeGen/AArch64/neon-simd-vget.ll | 225 + test/CodeGen/AArch64/pic-eh-stubs.ll | 2 +- test/CodeGen/AArch64/regress-bitcast-formals.ll | 2 +- test/CodeGen/AArch64/regress-fp128-livein.ll | 17 + test/CodeGen/AArch64/regress-tail-livereg.ll | 4 +- test/CodeGen/AArch64/regress-tblgen-chains.ll | 2 +- .../AArch64/regress-w29-reserved-with-fp.ll | 17 +- test/CodeGen/AArch64/returnaddr.ll | 21 + test/CodeGen/AArch64/setcc-takes-i32.ll | 4 +- test/CodeGen/AArch64/sibling-call.ll | 20 +- test/CodeGen/AArch64/sincos-expansion.ll | 8 +- test/CodeGen/AArch64/tail-call.ll | 14 +- test/CodeGen/AArch64/tls-dynamic-together.ll | 2 +- test/CodeGen/AArch64/tls-dynamics.ll | 46 +- test/CodeGen/AArch64/tls-execs.ll | 12 +- test/CodeGen/AArch64/tst-br.ll | 2 +- test/CodeGen/AArch64/variadic.ll | 78 +- test/CodeGen/AArch64/zero-reg.ll | 6 +- test/CodeGen/ARM/2007-01-19-InfiniteLoop.ll | 2 +- test/CodeGen/ARM/2009-08-31-TwoRegShuffle.ll | 2 +- test/CodeGen/ARM/2009-09-28-LdStOptiBug.ll | 2 +- test/CodeGen/ARM/2009-10-16-Scope.ll | 12 +- test/CodeGen/ARM/2009-11-07-SubRegAsmPrinting.ll | 2 +- test/CodeGen/ARM/2010-04-15-ScavengerDebugValue.ll | 22 +- test/CodeGen/ARM/2010-05-18-PostIndexBug.ll | 4 +- .../ARM/2010-06-25-Thumb2ITInvalidIterator.ll | 19 +- test/CodeGen/ARM/2010-08-04-StackVariable.ll | 50 +- test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll | 290 +- test/CodeGen/ARM/2010-10-19-mc-elf-objheader.ll | 48 - test/CodeGen/ARM/2010-11-29-PrologueBug.ll | 4 +- test/CodeGen/ARM/2010-11-30-reloc-movt.ll | 27 - test/CodeGen/ARM/2010-12-07-PEIBug.ll | 2 +- test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll | 29 +- test/CodeGen/ARM/2011-03-15-LdStMultipleBug.ll | 13 +- test/CodeGen/ARM/2011-03-23-PeepholeBug.ll | 2 +- test/CodeGen/ARM/2011-04-07-schediv.ll | 2 +- test/CodeGen/ARM/2011-04-11-MachineLICMBug.ll | 9 +- test/CodeGen/ARM/2011-04-26-SchedTweak.ll | 2 +- test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll | 27 +- test/CodeGen/ARM/2011-08-25-ldmia_ret.ll | 2 +- test/CodeGen/ARM/2011-10-26-memset-inline.ll | 4 +- test/CodeGen/ARM/2011-10-26-memset-with-neon.ll | 4 +- .../ARM/2011-11-07-PromoteVectorLoadStore.ll | 4 +- test/CodeGen/ARM/2011-11-09-BitcastVectorDouble.ll | 2 +- test/CodeGen/ARM/2011-11-28-DAGCombineBug.ll | 2 +- test/CodeGen/ARM/2011-11-29-128bitArithmetics.ll | 22 +- test/CodeGen/ARM/2012-03-26-FoldImmBug.ll | 2 +- test/CodeGen/ARM/2012-05-04-vmov.ll | 5 +- test/CodeGen/ARM/2012-08-09-neon-extload.ll | 12 +- test/CodeGen/ARM/2012-08-23-legalize-vmull.ll | 18 +- test/CodeGen/ARM/2012-08-30-select.ll | 11 +- test/CodeGen/ARM/2012-09-18-ARMv4ISelBug.ll | 2 +- .../ARM/2012-09-25-InlineAsmScalarToVectorConv.ll | 2 +- .../ARM/2012-09-25-InlineAsmScalarToVectorConv2.ll | 2 +- test/CodeGen/ARM/2012-10-04-AAPCS-byval-align8.ll | 21 +- test/CodeGen/ARM/2012-10-04-FixedFrame-vs-byval.ll | 2 +- test/CodeGen/ARM/2012-10-04-LDRB_POST_IMM-Crash.ll | 2 +- .../ARM/2012-10-18-PR14099-ByvalFrameAddress.ll | 4 +- test/CodeGen/ARM/2012-11-14-subs_carry.ll | 2 +- test/CodeGen/ARM/2013-01-21-PR14992.ll | 4 +- test/CodeGen/ARM/2013-02-27-expand-vfma.ll | 6 +- .../ARM/2013-04-05-Small-ByVal-Structs-PR15293.ll | 24 +- test/CodeGen/ARM/2013-04-16-AAPCS-C4-vs-VFP.ll | 4 +- test/CodeGen/ARM/2013-04-21-AAPCS-VA-C.1.cp.ll | 2 +- test/CodeGen/ARM/2013-05-05-IfConvertBug.ll | 88 +- test/CodeGen/ARM/2013-05-07-ByteLoadSameAddress.ll | 64 + test/CodeGen/ARM/2013-05-13-AAPCS-byval-padding.ll | 31 + .../CodeGen/ARM/2013-05-13-AAPCS-byval-padding2.ll | 25 + .../ARM/2013-05-13-DAGCombiner-undef-mask.ll | 10 + test/CodeGen/ARM/2013-05-31-char-shift-crash.ll | 21 + test/CodeGen/ARM/2013-06-03-ByVal-2Kbytes.ll | 30 + test/CodeGen/ARM/2013-07-29-vector-or-combine.ll | 32 + test/CodeGen/ARM/2013-10-11-select-stalls.ll | 16 + .../ARM/2013-11-08-inline-asm-neon-array.ll | 16 + test/CodeGen/ARM/a15-SD-dep.ll | 24 +- test/CodeGen/ARM/a15-mla.ll | 26 +- test/CodeGen/ARM/a15-partial-update.ll | 4 +- test/CodeGen/ARM/addrspacecast.ll | 7 + test/CodeGen/ARM/aliases.ll | 27 +- test/CodeGen/ARM/alloc-no-stack-realign.ll | 50 +- test/CodeGen/ARM/arguments.ll | 12 +- test/CodeGen/ARM/arm-and-tst-peephole.ll | 23 + test/CodeGen/ARM/arm-frameaddr.ll | 4 +- test/CodeGen/ARM/arm-modifier.ll | 8 +- test/CodeGen/ARM/arm-returnaddr.ll | 4 +- test/CodeGen/ARM/atomic-64bit.ll | 170 +- test/CodeGen/ARM/atomic-cmp.ll | 4 +- test/CodeGen/ARM/atomic-load-store.ll | 29 +- test/CodeGen/ARM/atomic-op.ll | 25 + test/CodeGen/ARM/atomic-ops-v8.ll | 1344 + test/CodeGen/ARM/atomicrmw_minmax.ll | 4 +- test/CodeGen/ARM/avoid-cpsr-rmw.ll | 6 +- test/CodeGen/ARM/bfc.ll | 6 +- test/CodeGen/ARM/bfi.ll | 4 +- test/CodeGen/ARM/bswap-inline-asm.ll | 2 +- test/CodeGen/ARM/build-attributes-encoding.s | 85 + test/CodeGen/ARM/byval_load_align.ll | 27 + test/CodeGen/ARM/call-noret-minsize.ll | 8 +- test/CodeGen/ARM/call-noret.ll | 8 +- test/CodeGen/ARM/call-tc.ll | 47 +- test/CodeGen/ARM/call_nolink.ll | 4 +- test/CodeGen/ARM/carry.ll | 10 +- test/CodeGen/ARM/coalesce-dbgvalue.ll | 111 + test/CodeGen/ARM/code-placement.ll | 4 +- test/CodeGen/ARM/constantfp.ll | 68 + test/CodeGen/ARM/copy-paired-reg.ll | 17 + test/CodeGen/ARM/crash-greedy-v6.ll | 20 + test/CodeGen/ARM/crash-shufflevector.ll | 2 +- test/CodeGen/ARM/ctz.ll | 2 +- test/CodeGen/ARM/dagcombine-anyexttozeroext.ll | 2 +- test/CodeGen/ARM/dagcombine-concatvector.ll | 4 +- test/CodeGen/ARM/darwin-eabi.ll | 24 + test/CodeGen/ARM/data-in-code-annotations.ll | 4 +- test/CodeGen/ARM/debug-info-arg.ll | 12 +- test/CodeGen/ARM/debug-info-blocks.ll | 68 +- test/CodeGen/ARM/debug-info-branch-folding.ll | 21 +- test/CodeGen/ARM/debug-info-d16-reg.ll | 35 +- test/CodeGen/ARM/debug-info-qreg.ll | 34 +- test/CodeGen/ARM/debug-info-s16-reg.ll | 33 +- test/CodeGen/ARM/debug-info-sreg2.ll | 17 +- test/CodeGen/ARM/div.ll | 23 +- test/CodeGen/ARM/divmod-eabi.ll | 202 + test/CodeGen/ARM/divmod.ll | 20 +- test/CodeGen/ARM/domain-conv-vmovs.ll | 14 +- test/CodeGen/ARM/eh-dispcont.ll | 8 +- test/CodeGen/ARM/ehabi-filters.ll | 2 +- test/CodeGen/ARM/ehabi-mc-cantunwind.ll | 14 - test/CodeGen/ARM/ehabi-mc-compact-pr0.ll | 49 - test/CodeGen/ARM/ehabi-mc-compact-pr1.ll | 62 - test/CodeGen/ARM/ehabi-mc-section-group.ll | 88 - test/CodeGen/ARM/ehabi-mc-section.ll | 71 - test/CodeGen/ARM/ehabi-mc-sh_link.ll | 58 - test/CodeGen/ARM/ehabi-mc.ll | 71 - test/CodeGen/ARM/ehabi.ll | 298 + test/CodeGen/ARM/emit-big-cst.ll | 18 + test/CodeGen/ARM/extload-knownzero.ll | 2 +- test/CodeGen/ARM/fabs-neon.ll | 4 +- test/CodeGen/ARM/fabss.ll | 10 +- test/CodeGen/ARM/fadds.ll | 12 +- test/CodeGen/ARM/fast-isel-GEP-coalesce.ll | 5 +- test/CodeGen/ARM/fast-isel-align.ll | 144 + test/CodeGen/ARM/fast-isel-binary.ll | 5 +- test/CodeGen/ARM/fast-isel-br-const.ll | 17 +- test/CodeGen/ARM/fast-isel-br-phi.ll | 2 +- .../CodeGen/ARM/fast-isel-call-multi-reg-return.ll | 5 +- test/CodeGen/ARM/fast-isel-call.ll | 178 +- test/CodeGen/ARM/fast-isel-cmp-imm.ll | 5 +- test/CodeGen/ARM/fast-isel-conversion.ll | 13 +- test/CodeGen/ARM/fast-isel-crash.ll | 3 +- test/CodeGen/ARM/fast-isel-crash2.ll | 3 +- test/CodeGen/ARM/fast-isel-deadcode.ll | 2 +- test/CodeGen/ARM/fast-isel-ext.ll | 137 + test/CodeGen/ARM/fast-isel-fold.ll | 5 + test/CodeGen/ARM/fast-isel-frameaddr.ll | 30 +- test/CodeGen/ARM/fast-isel-icmp.ll | 13 +- test/CodeGen/ARM/fast-isel-indirectbr.ll | 1 + test/CodeGen/ARM/fast-isel-intrinsic.ll | 100 +- test/CodeGen/ARM/fast-isel-ldr-str-arm.ll | 2 +- .../ARM/fast-isel-ldr-str-thumb-neg-index.ll | 43 +- test/CodeGen/ARM/fast-isel-ldrh-strh-arm.ll | 3 +- test/CodeGen/ARM/fast-isel-load-store-verify.ll | 70 + test/CodeGen/ARM/fast-isel-mvn.ll | 5 +- test/CodeGen/ARM/fast-isel-pic.ll | 26 +- test/CodeGen/ARM/fast-isel-pred.ll | 1 + test/CodeGen/ARM/fast-isel-redefinition.ll | 2 +- test/CodeGen/ARM/fast-isel-ret.ll | 7 +- test/CodeGen/ARM/fast-isel-select.ll | 17 +- test/CodeGen/ARM/fast-isel-shifter.ll | 3 +- test/CodeGen/ARM/fast-isel-static.ll | 8 +- test/CodeGen/ARM/fast-isel-vararg.ll | 47 + test/CodeGen/ARM/fast-isel.ll | 172 +- test/CodeGen/ARM/fast-tail-call.ll | 16 + .../CodeGen/ARM/fastisel-gep-promote-before-add.ll | 18 + test/CodeGen/ARM/fcopysign.ll | 12 +- test/CodeGen/ARM/fdivs.ll | 10 +- test/CodeGen/ARM/fmacs.ll | 30 +- test/CodeGen/ARM/fmscs.ll | 12 +- test/CodeGen/ARM/fmuls.ll | 12 +- test/CodeGen/ARM/fnegs.ll | 24 +- test/CodeGen/ARM/fnmacs.ll | 12 +- test/CodeGen/ARM/fnmscs.ll | 32 +- test/CodeGen/ARM/fold-stack-adjust.ll | 164 + test/CodeGen/ARM/fp.ll | 16 +- test/CodeGen/ARM/fp16.ll | 4 +- test/CodeGen/ARM/fp_convert.ll | 16 +- test/CodeGen/ARM/fparith.ll | 24 +- test/CodeGen/ARM/fpcmp-opt.ll | 11 +- test/CodeGen/ARM/fpcmp.ll | 14 +- test/CodeGen/ARM/fpcmp_ueq.ll | 2 +- test/CodeGen/ARM/fpconsts.ll | 8 +- test/CodeGen/ARM/fpconv.ll | 40 +- test/CodeGen/ARM/fpmem.ll | 10 +- test/CodeGen/ARM/fptoint.ll | 2 +- test/CodeGen/ARM/fusedMAC.ll | 24 +- test/CodeGen/ARM/globals.ll | 2 +- test/CodeGen/ARM/hidden-vis-2.ll | 2 +- test/CodeGen/ARM/hidden-vis.ll | 8 +- test/CodeGen/ARM/ifconv-kills.ll | 30 + test/CodeGen/ARM/ifconv-regmask.ll | 35 + test/CodeGen/ARM/ifcvt1.ll | 4 +- test/CodeGen/ARM/ifcvt10.ll | 2 +- test/CodeGen/ARM/ifcvt11.ll | 2 +- test/CodeGen/ARM/ifcvt12.ll | 2 +- test/CodeGen/ARM/ifcvt2.ll | 4 +- test/CodeGen/ARM/ifcvt3.ll | 2 +- test/CodeGen/ARM/ifcvt4.ll | 2 +- test/CodeGen/ARM/ifcvt5.ll | 4 +- test/CodeGen/ARM/indirect-reg-input.ll | 2 +- test/CodeGen/ARM/indirectbr-2.ll | 2 +- test/CodeGen/ARM/indirectbr-3.ll | 32 + test/CodeGen/ARM/indirectbr.ll | 16 +- test/CodeGen/ARM/inlineasm-64bit.ll | 64 +- test/CodeGen/ARM/inlineasm4.ll | 4 +- test/CodeGen/ARM/interrupt-attr.ll | 130 + test/CodeGen/ARM/intrinsics-crypto.ll | 57 + test/CodeGen/ARM/intrinsics-v8.ll | 19 + test/CodeGen/ARM/ldm.ll | 12 +- test/CodeGen/ARM/ldr.ll | 14 +- test/CodeGen/ARM/ldr_post.ll | 4 +- test/CodeGen/ARM/ldr_pre.ll | 4 +- test/CodeGen/ARM/ldrd.ll | 32 +- test/CodeGen/ARM/ldst-f32-2-i32.ll | 2 +- test/CodeGen/ARM/ldstrex.ll | 139 + test/CodeGen/ARM/ldstrexd.ll | 33 - test/CodeGen/ARM/lit.local.cfg | 2 - test/CodeGen/ARM/load-address-masked.ll | 14 + test/CodeGen/ARM/load-global.ll | 2 +- test/CodeGen/ARM/load_i1_select.ll | 2 +- test/CodeGen/ARM/long.ll | 22 +- test/CodeGen/ARM/longMAC.ll | 8 +- test/CodeGen/ARM/long_shift.ll | 8 +- test/CodeGen/ARM/lsr-icmp-imm.ll | 2 +- test/CodeGen/ARM/lsr-unfolded-offset.ll | 3 +- test/CodeGen/ARM/machine-cse-cmp.ll | 6 +- test/CodeGen/ARM/machine-licm.ll | 8 +- test/CodeGen/ARM/memcpy-inline.ll | 14 +- test/CodeGen/ARM/memset-inline.ll | 4 +- test/CodeGen/ARM/misched-copy-arm.ll | 51 +- test/CodeGen/ARM/mls.ll | 8 +- test/CodeGen/ARM/movt.ll | 4 +- test/CodeGen/ARM/mul_const.ll | 20 +- test/CodeGen/ARM/mulhi.ll | 18 +- test/CodeGen/ARM/mvn.ll | 2 +- test/CodeGen/ARM/neon-spfp.ll | 60 +- test/CodeGen/ARM/neon_minmax.ll | 20 +- test/CodeGen/ARM/neon_spill.ll | 11 +- test/CodeGen/ARM/neon_vabs.ll | 20 +- test/CodeGen/ARM/no-fpu.ll | 33 + test/CodeGen/ARM/noreturn.ll | 50 + test/CodeGen/ARM/optselect-regclass.ll | 23 + test/CodeGen/ARM/pack.ll | 25 +- test/CodeGen/ARM/peephole-bitcast.ll | 2 +- test/CodeGen/ARM/pic.ll | 23 + test/CodeGen/ARM/popcnt.ll | 36 +- test/CodeGen/ARM/prefetch-thumb.ll | 22 + test/CodeGen/ARM/prefetch.ll | 22 +- test/CodeGen/ARM/private.ll | 2 +- test/CodeGen/ARM/readcyclecounter.ll | 24 + test/CodeGen/ARM/reg_sequence.ll | 25 +- test/CodeGen/ARM/ret_sret_vector.ll | 2 +- test/CodeGen/ARM/returned-ext.ll | 28 +- test/CodeGen/ARM/returned-trunc-tail-calls.ll | 111 + test/CodeGen/ARM/rev.ll | 4 +- test/CodeGen/ARM/sbfx.ll | 10 +- test/CodeGen/ARM/section-name.ll | 25 + test/CodeGen/ARM/select-imm.ll | 68 +- test/CodeGen/ARM/select-undef.ll | 7 + test/CodeGen/ARM/select.ll | 28 +- test/CodeGen/ARM/select_xform.ll | 48 +- test/CodeGen/ARM/setcc-sentinals.ll | 14 + test/CodeGen/ARM/shifter_operand.ll | 16 +- test/CodeGen/ARM/sincos.ll | 38 + test/CodeGen/ARM/spill-q.ll | 2 +- test/CodeGen/ARM/stack-protector-bmovpcb_call.ll | 32 + test/CodeGen/ARM/str_post.ll | 4 +- test/CodeGen/ARM/struct-byval-frame-index.ll | 219 + test/CodeGen/ARM/struct_byval.ll | 53 +- test/CodeGen/ARM/struct_byval_arm_t1_t2.ll | 1523 ++ test/CodeGen/ARM/sub-cmp-peephole.ll | 70 +- test/CodeGen/ARM/swift-atomics.ll | 45 + test/CodeGen/ARM/swift-vldm.ll | 29 + test/CodeGen/ARM/tail-dup.ll | 2 +- test/CodeGen/ARM/tail-opts.ll | 2 +- test/CodeGen/ARM/test-sharedidx.ll | 2 +- test/CodeGen/ARM/this-return.ll | 24 +- test/CodeGen/ARM/thumb1-varalloc.ll | 2 +- test/CodeGen/ARM/thumb2-it-block.ll | 5 +- test/CodeGen/ARM/tls-models.ll | 32 +- test/CodeGen/ARM/tls2.ll | 8 +- test/CodeGen/ARM/trap.ll | 12 +- test/CodeGen/ARM/twoaddrinstr.ll | 2 +- test/CodeGen/ARM/umulo-32.ll | 8 +- test/CodeGen/ARM/unaligned_load_store.ll | 16 +- test/CodeGen/ARM/unaligned_load_store_vector.ll | 54 +- test/CodeGen/ARM/undef-sext.ll | 2 +- test/CodeGen/ARM/unwind-init.ll | 18 + test/CodeGen/ARM/v1-constant-fold.ll | 2 +- test/CodeGen/ARM/va_arg.ll | 4 +- test/CodeGen/ARM/vaba.ll | 36 +- test/CodeGen/ARM/vabd.ll | 40 +- test/CodeGen/ARM/vabs.ll | 28 +- test/CodeGen/ARM/vadd.ll | 108 +- test/CodeGen/ARM/vbits.ll | 114 +- test/CodeGen/ARM/vbsl-constant.ll | 16 +- test/CodeGen/ARM/vbsl.ll | 40 +- test/CodeGen/ARM/vceq.ll | 18 +- test/CodeGen/ARM/vcge.ll | 38 +- test/CodeGen/ARM/vcgt.ll | 38 +- test/CodeGen/ARM/vcnt.ll | 28 +- test/CodeGen/ARM/vcvt-cost.ll | 20 +- test/CodeGen/ARM/vcvt-v8.ll | 145 + test/CodeGen/ARM/vcvt.ll | 77 +- test/CodeGen/ARM/vdiv_combine.ll | 41 + test/CodeGen/ARM/vdup.ll | 64 +- test/CodeGen/ARM/vector-DAGCombine.ll | 90 +- test/CodeGen/ARM/vector-extend-narrow.ll | 10 +- test/CodeGen/ARM/vext.ll | 59 +- test/CodeGen/ARM/vfcmp.ll | 22 +- test/CodeGen/ARM/vfp.ll | 24 +- test/CodeGen/ARM/vget_lane.ll | 34 +- test/CodeGen/ARM/vhadd.ll | 48 +- test/CodeGen/ARM/vhsub.ll | 24 +- test/CodeGen/ARM/vicmp.ll | 20 +- test/CodeGen/ARM/vld1.ll | 26 +- test/CodeGen/ARM/vld2.ll | 22 +- test/CodeGen/ARM/vld3.ll | 22 +- test/CodeGen/ARM/vld4.ll | 22 +- test/CodeGen/ARM/vlddup.ll | 28 +- test/CodeGen/ARM/vldlane.ll | 68 +- test/CodeGen/ARM/vldm-liveness.ll | 40 + test/CodeGen/ARM/vldm-sched-a9.ll | 71 + test/CodeGen/ARM/vminmax.ll | 56 +- test/CodeGen/ARM/vminmaxnm.ll | 88 + test/CodeGen/ARM/vmla.ll | 28 +- test/CodeGen/ARM/vmls.ll | 28 +- test/CodeGen/ARM/vmov.ll | 104 +- test/CodeGen/ARM/vmul.ll | 89 +- test/CodeGen/ARM/vneg.ll | 28 +- test/CodeGen/ARM/vpadal.ll | 24 +- test/CodeGen/ARM/vpadd.ll | 32 +- test/CodeGen/ARM/vpminmax.ll | 28 +- test/CodeGen/ARM/vqadd.ll | 32 +- test/CodeGen/ARM/vqdmul.ll | 124 +- test/CodeGen/ARM/vqshl.ll | 112 +- test/CodeGen/ARM/vqshrn.ll | 36 +- test/CodeGen/ARM/vqsub.ll | 32 +- test/CodeGen/ARM/vrec.ll | 24 +- test/CodeGen/ARM/vrev.ll | 36 +- test/CodeGen/ARM/vsel.ll | 309 + test/CodeGen/ARM/vselect_imax.ll | 58 +- test/CodeGen/ARM/vshift.ll | 96 +- test/CodeGen/ARM/vshiftins.ll | 32 +- test/CodeGen/ARM/vshl.ll | 144 +- test/CodeGen/ARM/vshll.ll | 18 +- test/CodeGen/ARM/vshrn.ll | 12 +- test/CodeGen/ARM/vsra.ll | 64 +- test/CodeGen/ARM/vst1.ll | 24 +- test/CodeGen/ARM/vst2.ll | 26 +- test/CodeGen/ARM/vst3.ll | 22 +- test/CodeGen/ARM/vst4.ll | 22 +- test/CodeGen/ARM/vstlane.ll | 72 +- test/CodeGen/ARM/vsub.ll | 96 +- test/CodeGen/ARM/vtbl.ll | 16 +- test/CodeGen/ARM/vtrn.ll | 20 +- test/CodeGen/ARM/vuzp.ll | 16 +- test/CodeGen/ARM/vzip.ll | 16 +- test/CodeGen/ARM/warn-stack.ll | 24 + test/CodeGen/CPP/lit.local.cfg | 2 - test/CodeGen/Generic/2009-03-17-LSR-APInt.ll | 56 +- test/CodeGen/Generic/crash.ll | 4 +- test/CodeGen/Generic/dbg_value.ll | 3 +- test/CodeGen/Generic/lit.local.cfg | 1 - test/CodeGen/Hexagon/BranchPredict.ll | 76 + test/CodeGen/Hexagon/adde.ll | 2 +- test/CodeGen/Hexagon/args.ll | 9 +- test/CodeGen/Hexagon/combine_ir.ll | 15 +- test/CodeGen/Hexagon/extload-combine.ll | 80 + test/CodeGen/Hexagon/hwloop-dbg.ll | 27 +- test/CodeGen/Hexagon/i16_VarArg.ll | 2 +- test/CodeGen/Hexagon/i1_VarArg.ll | 2 +- test/CodeGen/Hexagon/i8_VarArg.ll | 2 +- test/CodeGen/Hexagon/indirect-br.ll | 2 +- test/CodeGen/Hexagon/lit.local.cfg | 2 - test/CodeGen/Hexagon/memops.ll | 509 +- test/CodeGen/Hexagon/packetize_cond_inst.ll | 32 + test/CodeGen/Hexagon/pred-gp.ll | 28 + test/CodeGen/Hexagon/pred-instrs.ll | 30 + test/CodeGen/Hexagon/split-const32-const64.ll | 26 + test/CodeGen/Hexagon/sube.ll | 2 +- test/CodeGen/Hexagon/tail-call-trunc.ll | 28 + test/CodeGen/Hexagon/tfr-to-combine.ll | 35 + test/CodeGen/Hexagon/union-1.ll | 8 +- test/CodeGen/Hexagon/zextloadi1.ll | 2 +- test/CodeGen/Inputs/DbgValueOtherTargets.ll | 12 +- test/CodeGen/MBlaze/DbgValueOtherTargets.test | 1 - test/CodeGen/MBlaze/brind.ll | 72 - test/CodeGen/MBlaze/callind.ll | 80 - test/CodeGen/MBlaze/cc.ll | 266 - test/CodeGen/MBlaze/div.ll | 75 - test/CodeGen/MBlaze/fpu.ll | 66 - test/CodeGen/MBlaze/fsl.ll | 319 - test/CodeGen/MBlaze/imm.ll | 70 - test/CodeGen/MBlaze/intr.ll | 48 - test/CodeGen/MBlaze/jumptable.ll | 79 - test/CodeGen/MBlaze/lit.local.cfg | 6 - test/CodeGen/MBlaze/loop.ll | 44 - test/CodeGen/MBlaze/mul.ll | 51 - test/CodeGen/MBlaze/mul64.ll | 23 - test/CodeGen/MBlaze/select.ll | 15 - test/CodeGen/MBlaze/shift.ll | 115 - test/CodeGen/MBlaze/svol.ll | 80 - test/CodeGen/MSP430/2009-11-05-8BitLibcalls.ll | 2 +- test/CodeGen/MSP430/AddrMode-bis-rx.ll | 14 +- test/CodeGen/MSP430/AddrMode-bis-xr.ll | 14 +- test/CodeGen/MSP430/AddrMode-mov-rx.ll | 14 +- test/CodeGen/MSP430/AddrMode-mov-xr.ll | 14 +- test/CodeGen/MSP430/Inst16mi.ll | 10 +- test/CodeGen/MSP430/Inst16mm.ll | 12 +- test/CodeGen/MSP430/Inst16mr.ll | 12 +- test/CodeGen/MSP430/Inst16ri.ll | 10 +- test/CodeGen/MSP430/Inst16rm.ll | 10 +- test/CodeGen/MSP430/Inst16rr.ll | 12 +- test/CodeGen/MSP430/Inst8mi.ll | 10 +- test/CodeGen/MSP430/Inst8mm.ll | 10 +- test/CodeGen/MSP430/Inst8mr.ll | 12 +- test/CodeGen/MSP430/Inst8ri.ll | 10 +- test/CodeGen/MSP430/Inst8rm.ll | 10 +- test/CodeGen/MSP430/Inst8rr.ll | 12 +- test/CodeGen/MSP430/bit.ll | 32 +- test/CodeGen/MSP430/byval.ll | 4 +- test/CodeGen/MSP430/cc_args.ll | 118 + test/CodeGen/MSP430/cc_ret.ll | 61 + test/CodeGen/MSP430/fp.ll | 2 +- test/CodeGen/MSP430/indirectbr2.ll | 2 +- test/CodeGen/MSP430/jumptable.ll | 54 + test/CodeGen/MSP430/lit.local.cfg | 2 - test/CodeGen/MSP430/postinc.ll | 10 +- test/CodeGen/MSP430/setcc.ll | 34 +- test/CodeGen/MSP430/shifts.ll | 10 +- test/CodeGen/MSP430/transient-stack-alignment.ll | 17 + test/CodeGen/MSP430/vararg.ll | 6 +- test/CodeGen/Mips/2008-07-16-SignExtInReg.ll | 1 + test/CodeGen/Mips/2008-08-01-AsmInline.ll | 18 + test/CodeGen/Mips/2013-11-18-fp64-const0.ll | 31 + test/CodeGen/Mips/align16.ll | 8 +- test/CodeGen/Mips/alloca16.ll | 4 +- test/CodeGen/Mips/atomic.ll | 495 +- test/CodeGen/Mips/atomicops.ll | 4 +- test/CodeGen/Mips/beqzc.ll | 20 + test/CodeGen/Mips/beqzc1.ll | 24 + test/CodeGen/Mips/biggot.ll | 4 +- test/CodeGen/Mips/blez_bgez.ll | 36 + test/CodeGen/Mips/blockaddr.ll | 10 + test/CodeGen/Mips/brdelayslot.ll | 31 +- test/CodeGen/Mips/brsize3.ll | 33 + test/CodeGen/Mips/brsize3a.ll | 26 + test/CodeGen/Mips/bswap.ll | 7 +- test/CodeGen/Mips/buildpairextractelementf64.ll | 23 +- test/CodeGen/Mips/check-noat.ll | 2 +- test/CodeGen/Mips/cmov.ll | 44 +- test/CodeGen/Mips/cmplarge.ll | 38 + test/CodeGen/Mips/const-mult.ll | 49 + test/CodeGen/Mips/const1.ll | 35 + test/CodeGen/Mips/const4a.ll | 180 + test/CodeGen/Mips/const6.ll | 164 + test/CodeGen/Mips/const6a.ll | 29 + test/CodeGen/Mips/ctlz.ll | 27 + test/CodeGen/Mips/disable-tail-merge.ll | 33 + test/CodeGen/Mips/divrem.ll | 48 +- test/CodeGen/Mips/dsp-patterns-cmp-vselect.ll | 80 +- test/CodeGen/Mips/dsp-patterns.ll | 46 +- test/CodeGen/Mips/dsp-vec-load-store.ll | 11 + test/CodeGen/Mips/eh-return64.ll | 12 +- test/CodeGen/Mips/emit-big-cst.ll | 17 + test/CodeGen/Mips/ex2.ll | 11 +- test/CodeGen/Mips/extins.ll | 9 +- test/CodeGen/Mips/f16abs.ll | 37 + test/CodeGen/Mips/fcopysign-f32-f64.ll | 35 +- test/CodeGen/Mips/fixdfsf.ll | 18 + test/CodeGen/Mips/fp16instrinsmc.ll | 391 + test/CodeGen/Mips/fp16mix.ll | 92 + test/CodeGen/Mips/fpneeded.ll | 2 +- test/CodeGen/Mips/fpnotneeded.ll | 2 +- test/CodeGen/Mips/fptr2.ll | 20 + test/CodeGen/Mips/frame-address.ll | 7 +- test/CodeGen/Mips/helloworld.ll | 26 +- test/CodeGen/Mips/hf16call32.ll | 1030 + test/CodeGen/Mips/hf16call32_body.ll | 294 + test/CodeGen/Mips/hf1_body.ll | 21 + test/CodeGen/Mips/hfptrcall.ll | 125 + test/CodeGen/Mips/i32k.ll | 19 +- test/CodeGen/Mips/i64arg.ll | 32 +- test/CodeGen/Mips/inlineasm-operand-code.ll | 24 +- test/CodeGen/Mips/int-to-float-conversion.ll | 48 + test/CodeGen/Mips/largefr1.ll | 41 +- test/CodeGen/Mips/largeimmprinting.ll | 4 +- test/CodeGen/Mips/lazy-binding.ll | 41 + test/CodeGen/Mips/lit.local.cfg | 2 - test/CodeGen/Mips/longbranch.ll | 8 +- test/CodeGen/Mips/mips16_32_1.ll | 2 +- test/CodeGen/Mips/mips16_32_10.ll | 6 +- test/CodeGen/Mips/mips16_32_3.ll | 6 +- test/CodeGen/Mips/mips16_32_4.ll | 6 +- test/CodeGen/Mips/mips16_32_5.ll | 6 +- test/CodeGen/Mips/mips16_32_6.ll | 6 +- test/CodeGen/Mips/mips16_32_7.ll | 6 +- test/CodeGen/Mips/mips16_32_8.ll | 8 +- test/CodeGen/Mips/mips16_32_9.ll | 6 +- test/CodeGen/Mips/mips16_fpret.ll | 76 + test/CodeGen/Mips/mips16fpe.ll | 56 +- test/CodeGen/Mips/mips64-f128.ll | 146 +- test/CodeGen/Mips/mips64-libcall.ll | 4 +- test/CodeGen/Mips/mips64instrs.ll | 32 +- test/CodeGen/Mips/misha.ll | 4 +- test/CodeGen/Mips/mno-ldc1-sdc1.ll | 93 + test/CodeGen/Mips/msa/2r.ll | 257 + test/CodeGen/Mips/msa/2r_vector_scalar.ll | 87 + test/CodeGen/Mips/msa/2rf.ll | 323 + test/CodeGen/Mips/msa/2rf_exup.ll | 82 + test/CodeGen/Mips/msa/2rf_float_int.ll | 90 + test/CodeGen/Mips/msa/2rf_fq.ll | 82 + test/CodeGen/Mips/msa/2rf_int_float.ll | 217 + test/CodeGen/Mips/msa/2rf_tq.ll | 50 + test/CodeGen/Mips/msa/3r-a.ll | 1191 + test/CodeGen/Mips/msa/3r-b.ll | 494 + test/CodeGen/Mips/msa/3r-c.ll | 446 + test/CodeGen/Mips/msa/3r-d.ll | 478 + test/CodeGen/Mips/msa/3r-i.ll | 358 + test/CodeGen/Mips/msa/3r-m.ll | 862 + test/CodeGen/Mips/msa/3r-p.ll | 182 + test/CodeGen/Mips/msa/3r-s.ll | 1353 + test/CodeGen/Mips/msa/3r-v.ll | 105 + test/CodeGen/Mips/msa/3r_4r.ll | 206 + test/CodeGen/Mips/msa/3r_4r_widen.ll | 307 + test/CodeGen/Mips/msa/3r_splat.ll | 94 + test/CodeGen/Mips/msa/3rf.ll | 485 + test/CodeGen/Mips/msa/3rf_4rf.ll | 106 + test/CodeGen/Mips/msa/3rf_4rf_q.ll | 206 + test/CodeGen/Mips/msa/3rf_exdo.ll | 50 + test/CodeGen/Mips/msa/3rf_float_int.ll | 50 + test/CodeGen/Mips/msa/3rf_int_float.ll | 974 + test/CodeGen/Mips/msa/3rf_q.ll | 94 + test/CodeGen/Mips/msa/arithmetic.ll | 726 + test/CodeGen/Mips/msa/arithmetic_float.ll | 456 + test/CodeGen/Mips/msa/basic_operations.ll | 481 + test/CodeGen/Mips/msa/basic_operations_float.ll | 207 + test/CodeGen/Mips/msa/bit.ll | 537 + test/CodeGen/Mips/msa/bitcast.ll | 1210 + test/CodeGen/Mips/msa/bitwise.ll | 1639 ++ test/CodeGen/Mips/msa/compare.ll | 2079 ++ test/CodeGen/Mips/msa/compare_float.ll | 663 + test/CodeGen/Mips/msa/elm_copy.ll | 162 + test/CodeGen/Mips/msa/elm_cxcmsa.ll | 168 + test/CodeGen/Mips/msa/elm_insv.ll | 192 + test/CodeGen/Mips/msa/elm_move.ll | 25 + test/CodeGen/Mips/msa/elm_shift_slide.ll | 158 + test/CodeGen/Mips/msa/endian.ll | 107 + test/CodeGen/Mips/msa/frameindex.ll | 85 + test/CodeGen/Mips/msa/i10.ll | 89 + test/CodeGen/Mips/msa/i5-a.ll | 82 + test/CodeGen/Mips/msa/i5-b.ll | 439 + test/CodeGen/Mips/msa/i5-c.ll | 386 + test/CodeGen/Mips/msa/i5-m.ll | 310 + test/CodeGen/Mips/msa/i5-s.ll | 82 + test/CodeGen/Mips/msa/i5_ld_st.ll | 150 + test/CodeGen/Mips/msa/i8.ll | 211 + test/CodeGen/Mips/msa/inline-asm.ll | 34 + test/CodeGen/Mips/msa/llvm-stress-s1704963983.ll | 134 + test/CodeGen/Mips/msa/llvm-stress-s1935737938.ll | 138 + .../Mips/msa/llvm-stress-s2090927243-simplified.ll | 31 + .../Mips/msa/llvm-stress-s2501752154-simplified.ll | 27 + test/CodeGen/Mips/msa/llvm-stress-s2704903805.ll | 141 + test/CodeGen/Mips/msa/llvm-stress-s3861334421.ll | 149 + test/CodeGen/Mips/msa/llvm-stress-s3926023935.ll | 143 + test/CodeGen/Mips/msa/llvm-stress-s3997499501.ll | 152 + .../Mips/msa/llvm-stress-s449609655-simplified.ll | 33 + test/CodeGen/Mips/msa/llvm-stress-s525530439.ll | 139 + test/CodeGen/Mips/msa/llvm-stress-s997348632.ll | 143 + .../CodeGen/Mips/msa/llvm-stress-sz1-s742806235.ll | 23 + test/CodeGen/Mips/msa/shift-dagcombine.ll | 70 + test/CodeGen/Mips/msa/shuffle.ll | 803 + test/CodeGen/Mips/msa/special.ll | 26 + test/CodeGen/Mips/msa/spill.ll | 601 + test/CodeGen/Mips/msa/vec.ll | 946 + test/CodeGen/Mips/msa/vecs10.ll | 47 + test/CodeGen/Mips/nomips16.ll | 38 + test/CodeGen/Mips/o32_cc.ll | 242 +- test/CodeGen/Mips/o32_cc_byval.ll | 62 +- test/CodeGen/Mips/o32_cc_vararg.ll | 20 +- test/CodeGen/Mips/optimize-fp-math.ll | 32 + test/CodeGen/Mips/powif64_16.ll | 26 + test/CodeGen/Mips/private.ll | 4 +- test/CodeGen/Mips/ra-allocatable.ll | 367 +- test/CodeGen/Mips/return-vector.ll | 42 +- test/CodeGen/Mips/rotate.ll | 5 + test/CodeGen/Mips/sel1c.ll | 21 + test/CodeGen/Mips/sel2c.ll | 21 + test/CodeGen/Mips/selectcc.ll | 16 + test/CodeGen/Mips/selnek.ll | 2 +- test/CodeGen/Mips/setcc-se.ll | 155 + test/CodeGen/Mips/simplebr.ll | 37 + test/CodeGen/Mips/sint-fp-store_pattern.ll | 52 + test/CodeGen/Mips/stack-alignment.ll | 13 + test/CodeGen/Mips/stackcoloring.ll | 39 + test/CodeGen/Mips/stchar.ll | 4 +- test/CodeGen/Mips/tailcall.ll | 13 + test/CodeGen/Mips/tls-alias.ll | 4 +- test/CodeGen/Mips/tls-models.ll | 32 +- test/CodeGen/Mips/tls.ll | 34 +- test/CodeGen/Mips/tnaked.ll | 8 +- test/CodeGen/Mips/trap.ll | 11 + test/CodeGen/Mips/trap1.ll | 13 + test/CodeGen/Mips/unalignedload.ll | 20 +- test/CodeGen/NVPTX/add-128bit.ll | 19 + test/CodeGen/NVPTX/bug17709.ll | 26 + test/CodeGen/NVPTX/callchain.ll | 10 + test/CodeGen/NVPTX/compare-int.ll | 60 +- test/CodeGen/NVPTX/constant-vectors.ll | 6 + test/CodeGen/NVPTX/convert-int-sm20.ll | 8 +- test/CodeGen/NVPTX/ctlz.ll | 44 + test/CodeGen/NVPTX/ctpop.ll | 25 + test/CodeGen/NVPTX/cttz.ll | 45 + test/CodeGen/NVPTX/fast-math.ll | 43 + test/CodeGen/NVPTX/fp-literals.ll | 18 + test/CodeGen/NVPTX/generic-to-nvvm.ll | 3 +- test/CodeGen/NVPTX/i1-global.ll | 4 +- test/CodeGen/NVPTX/i1-int-to-fp.ll | 37 + test/CodeGen/NVPTX/i1-param.ll | 3 +- test/CodeGen/NVPTX/i8-param.ll | 23 + test/CodeGen/NVPTX/implicit-def.ll | 9 + test/CodeGen/NVPTX/inline-asm.ll | 9 + test/CodeGen/NVPTX/intrinsic-old.ll | 66 +- test/CodeGen/NVPTX/intrinsics.ll | 4 +- test/CodeGen/NVPTX/ld-addrspace.ll | 24 +- test/CodeGen/NVPTX/ld-generic.ll | 8 +- test/CodeGen/NVPTX/ldu-i8.ll | 14 + test/CodeGen/NVPTX/ldu-reg-plus-offset.ll | 21 + test/CodeGen/NVPTX/lit.local.cfg | 2 - test/CodeGen/NVPTX/load-sext-i1.ll | 14 + test/CodeGen/NVPTX/local-stack-frame.ll | 18 + test/CodeGen/NVPTX/module-inline-asm.ll | 10 + test/CodeGen/NVPTX/pr13291-i1-store.ll | 20 +- test/CodeGen/NVPTX/pr16278.ll | 10 + test/CodeGen/NVPTX/pr17529.ll | 38 + test/CodeGen/NVPTX/refl1.ll | 4 +- test/CodeGen/NVPTX/rsqrt.ll | 13 + test/CodeGen/NVPTX/sext-in-reg.ll | 111 + test/CodeGen/NVPTX/sext-params.ll | 16 + test/CodeGen/NVPTX/st-addrspace.ll | 12 +- test/CodeGen/NVPTX/st-generic.ll | 4 +- test/CodeGen/NVPTX/vec-param-load.ll | 13 + test/CodeGen/NVPTX/vec8.ll | 13 + test/CodeGen/NVPTX/vector-args.ll | 16 +- test/CodeGen/NVPTX/vector-stores.ll | 30 + .../CodeGen/PowerPC/2007-11-16-landingpad-split.ll | 16 +- test/CodeGen/PowerPC/2009-09-18-carrybit.ll | 2 +- test/CodeGen/PowerPC/2010-02-12-saveCR.ll | 2 +- test/CodeGen/PowerPC/2010-12-18-PPCStackRefs.ll | 2 +- .../PowerPC/2011-12-08-DemandedBitsMiscompile.ll | 2 +- test/CodeGen/PowerPC/2013-05-15-preinc-fold.ll | 33 + test/CodeGen/PowerPC/2013-07-01-PHIElimBug.ll | 28 + test/CodeGen/PowerPC/Frames-alloca.ll | 14 +- test/CodeGen/PowerPC/addc.ll | 6 +- test/CodeGen/PowerPC/addrfuncstr.ll | 27 + test/CodeGen/PowerPC/altivec-ord.ll | 17 + test/CodeGen/PowerPC/anon_aggr.ll | 108 +- test/CodeGen/PowerPC/ashr-neg1.ll | 18 + test/CodeGen/PowerPC/asm-dialect.ll | 18 + test/CodeGen/PowerPC/asym-regclass-copy.ll | 2 +- test/CodeGen/PowerPC/atomic-1.ll | 6 +- test/CodeGen/PowerPC/atomic-2.ll | 6 +- test/CodeGen/PowerPC/bdzlr.ll | 11 +- test/CodeGen/PowerPC/bv-pres-v8i1.ll | 39 + test/CodeGen/PowerPC/bv-widen-undef.ll | 23 + test/CodeGen/PowerPC/complex-return.ll | 4 +- test/CodeGen/PowerPC/copysignl.ll | 67 + test/CodeGen/PowerPC/cr-spills.ll | 107 +- test/CodeGen/PowerPC/crsave.ll | 27 +- test/CodeGen/PowerPC/ctr-cleanup.ll | 2 +- test/CodeGen/PowerPC/ctrloop-asm.ll | 38 + test/CodeGen/PowerPC/ctrloop-cpsgn.ll | 28 + test/CodeGen/PowerPC/ctrloop-fp64.ll | 60 + test/CodeGen/PowerPC/ctrloop-i64.ll | 93 + test/CodeGen/PowerPC/ctrloop-large-ec.ll | 23 + test/CodeGen/PowerPC/ctrloop-le.ll | 441 + test/CodeGen/PowerPC/ctrloop-lt.ll | 438 + test/CodeGen/PowerPC/ctrloop-ne.ll | 449 + test/CodeGen/PowerPC/ctrloops.ll | 6 +- test/CodeGen/PowerPC/dbg.ll | 24 +- test/CodeGen/PowerPC/dyn-alloca-aligned.ll | 35 + test/CodeGen/PowerPC/emptystruct.ll | 8 +- test/CodeGen/PowerPC/fast-isel-GEP-coalesce.ll | 48 + test/CodeGen/PowerPC/fast-isel-binary.ll | 137 + test/CodeGen/PowerPC/fast-isel-br-const.ll | 43 + test/CodeGen/PowerPC/fast-isel-call.ll | 132 + test/CodeGen/PowerPC/fast-isel-cmp-imm.ll | 289 + test/CodeGen/PowerPC/fast-isel-conversion.ll | 305 + test/CodeGen/PowerPC/fast-isel-crash.ll | 23 + test/CodeGen/PowerPC/fast-isel-ext.ll | 75 + test/CodeGen/PowerPC/fast-isel-fold.ll | 129 + test/CodeGen/PowerPC/fast-isel-indirectbr.ll | 15 + test/CodeGen/PowerPC/fast-isel-load-store.ll | 202 + test/CodeGen/PowerPC/fast-isel-redefinition.ll | 10 + test/CodeGen/PowerPC/fast-isel-ret.ll | 142 + test/CodeGen/PowerPC/fast-isel-shifter.ll | 50 + .../PowerPC/fastisel-gep-promote-before-add.ll | 17 + test/CodeGen/PowerPC/fcpsgn.ll | 52 + test/CodeGen/PowerPC/floatPSA.ll | 2 +- test/CodeGen/PowerPC/fma.ll | 16 +- test/CodeGen/PowerPC/frameaddr.ll | 4 +- test/CodeGen/PowerPC/glob-comp-aa-crash.ll | 139 + test/CodeGen/PowerPC/hello-reloc.s | 84 + test/CodeGen/PowerPC/i64_fp_round.ll | 2 +- test/CodeGen/PowerPC/indirectbr.ll | 6 +- test/CodeGen/PowerPC/inlineasm-i64-reg.ll | 108 + test/CodeGen/PowerPC/isel-rc-nox0.ll | 46 + test/CodeGen/PowerPC/jaggedstructs.ll | 28 +- test/CodeGen/PowerPC/lit.local.cfg | 2 - test/CodeGen/PowerPC/mcm-1.ll | 2 +- test/CodeGen/PowerPC/mcm-10.ll | 2 +- test/CodeGen/PowerPC/mcm-11.ll | 2 +- test/CodeGen/PowerPC/mcm-12.ll | 2 +- test/CodeGen/PowerPC/mcm-2.ll | 12 +- test/CodeGen/PowerPC/mcm-3.ll | 12 +- test/CodeGen/PowerPC/mcm-4.ll | 12 +- test/CodeGen/PowerPC/mcm-5.ll | 2 +- test/CodeGen/PowerPC/mcm-6.ll | 2 +- test/CodeGen/PowerPC/mcm-7.ll | 2 +- test/CodeGen/PowerPC/mcm-8.ll | 2 +- test/CodeGen/PowerPC/mcm-9.ll | 5 +- test/CodeGen/PowerPC/mcm-default.ll | 2 +- test/CodeGen/PowerPC/mcm-obj-2.ll | 2 +- test/CodeGen/PowerPC/mcm-obj.ll | 8 +- test/CodeGen/PowerPC/misched-inorder-latency.ll | 4 +- test/CodeGen/PowerPC/mulli64.ll | 16 + test/CodeGen/PowerPC/negctr.ll | 9 +- test/CodeGen/PowerPC/optcmp.ll | 39 +- test/CodeGen/PowerPC/ppc32-vacopy.ll | 24 + test/CodeGen/PowerPC/ppc64-align-long-double.ll | 2 +- test/CodeGen/PowerPC/ppc64-calls.ll | 10 +- test/CodeGen/PowerPC/ppc64-toc.ll | 8 +- test/CodeGen/PowerPC/pr13891.ll | 2 +- test/CodeGen/PowerPC/pr15031.ll | 26 +- test/CodeGen/PowerPC/pr16556-2.ll | 41 + test/CodeGen/PowerPC/pr16556.ll | 20 + test/CodeGen/PowerPC/pr16573.ll | 11 + test/CodeGen/PowerPC/pr17168.ll | 521 + test/CodeGen/PowerPC/pr17354.ll | 39 + test/CodeGen/PowerPC/recipest.ll | 37 +- test/CodeGen/PowerPC/reg-names.ll | 17 + test/CodeGen/PowerPC/reloc-align.ll | 34 + test/CodeGen/PowerPC/remap-crash.ll | 57 + test/CodeGen/PowerPC/rlwimi-and.ll | 43 + test/CodeGen/PowerPC/rounding-ops.ll | 91 +- test/CodeGen/PowerPC/rs-undef-use.ll | 48 + test/CodeGen/PowerPC/set0-v8i16.ll | 18 + test/CodeGen/PowerPC/sj-ctr-loop.ll | 50 + test/CodeGen/PowerPC/sjlj.ll | 66 +- test/CodeGen/PowerPC/stack-protector.ll | 5 +- test/CodeGen/PowerPC/stack-realign.ll | 147 + test/CodeGen/PowerPC/std-unal-fi.ll | 119 + test/CodeGen/PowerPC/store-update.ll | 56 +- test/CodeGen/PowerPC/structsinmem.ll | 2 +- test/CodeGen/PowerPC/structsinregs.ll | 2 +- test/CodeGen/PowerPC/sub-bv-types.ll | 17 + test/CodeGen/PowerPC/subsumes-pred-regs.ll | 65 + test/CodeGen/PowerPC/svr4-redzone.ll | 12 +- test/CodeGen/PowerPC/tls-2.ll | 2 +- test/CodeGen/PowerPC/tls-gd-obj.ll | 31 - test/CodeGen/PowerPC/tls-ie-obj.ll | 29 - test/CodeGen/PowerPC/tls-ld-obj.ll | 34 - test/CodeGen/PowerPC/tls.ll | 4 +- test/CodeGen/PowerPC/unal-altivec.ll | 52 + test/CodeGen/PowerPC/unal-altivec2.ll | 166 + test/CodeGen/PowerPC/unal4-std.ll | 2 +- test/CodeGen/PowerPC/unwind-dw2-g.ll | 35 + test/CodeGen/PowerPC/unwind-dw2.ll | 15 + test/CodeGen/PowerPC/vaddsplat.ll | 24 +- test/CodeGen/PowerPC/varargs.ll | 4 +- test/CodeGen/PowerPC/vec-abi-align.ll | 60 + test/CodeGen/PowerPC/vec_cmp.ll | 100 +- test/CodeGen/PowerPC/vec_constants.ll | 16 +- test/CodeGen/PowerPC/vec_conv.ll | 8 +- test/CodeGen/PowerPC/vec_extload.ll | 14 +- test/CodeGen/PowerPC/vec_fmuladd.ll | 56 + test/CodeGen/PowerPC/vec_mul.ll | 8 +- test/CodeGen/PowerPC/vec_rounding.ll | 32 +- test/CodeGen/PowerPC/vec_sqrt.ll | 10 +- test/CodeGen/PowerPC/vector.ll | 8 + test/CodeGen/PowerPC/vrspill.ll | 7 +- test/CodeGen/PowerPC/zero-not-run.ll | 27 + test/CodeGen/R600/128bit-kernel-args.ll | 22 +- test/CodeGen/R600/32-bit-local-address-space.ll | 88 + test/CodeGen/R600/64bit-kernel-args.ll | 11 + test/CodeGen/R600/add.ll | 57 +- test/CodeGen/R600/add_i64.ll | 59 + test/CodeGen/R600/address-space.ll | 31 + test/CodeGen/R600/alu-split.ll | 851 - test/CodeGen/R600/and.ll | 37 +- test/CodeGen/R600/array-ptr-calc-i64.ll | 18 + test/CodeGen/R600/atomic_load_add.ll | 23 + test/CodeGen/R600/atomic_load_sub.ll | 23 + test/CodeGen/R600/bfi_int.ll | 10 +- test/CodeGen/R600/big_alu.ll | 1174 + test/CodeGen/R600/bitcast.ll | 21 + test/CodeGen/R600/build_vector.ll | 34 + test/CodeGen/R600/call_fs.ll | 2 + test/CodeGen/R600/combine_vloads.ll | 42 + test/CodeGen/R600/complex-folding.ll | 19 + test/CodeGen/R600/dot4-folding.ll | 27 + test/CodeGen/R600/elf.ll | 4 +- test/CodeGen/R600/extload.ll | 51 + test/CodeGen/R600/fabs.ll | 56 +- test/CodeGen/R600/fadd.ll | 50 +- test/CodeGen/R600/fadd64.ll | 13 + test/CodeGen/R600/fcmp-cnd.ll | 2 +- test/CodeGen/R600/fcmp.ll | 2 +- test/CodeGen/R600/fcmp64.ll | 79 + test/CodeGen/R600/fconst64.ll | 12 + test/CodeGen/R600/fdiv.ll | 51 +- test/CodeGen/R600/fdiv64.ll | 14 + test/CodeGen/R600/fetch-limits.r600.ll | 48 + test/CodeGen/R600/fetch-limits.r700+.ll | 81 + test/CodeGen/R600/floor.ll | 14 +- test/CodeGen/R600/fma.ll | 31 + test/CodeGen/R600/fmad.ll | 22 +- test/CodeGen/R600/fmax.ll | 15 +- test/CodeGen/R600/fmin.ll | 13 +- test/CodeGen/R600/fmul.ll | 48 +- test/CodeGen/R600/fmul.v4f32.ll | 15 - test/CodeGen/R600/fmul64.ll | 13 + test/CodeGen/R600/fmuladd.ll | 31 + test/CodeGen/R600/fneg.ll | 61 + test/CodeGen/R600/fp64_to_sint.ll | 9 + test/CodeGen/R600/fp_to_sint.ll | 29 +- test/CodeGen/R600/fp_to_uint.ll | 31 +- test/CodeGen/R600/fpext.ll | 9 + test/CodeGen/R600/fptrunc.ll | 9 + test/CodeGen/R600/fsqrt.ll | 24 + test/CodeGen/R600/fsub.ll | 48 +- test/CodeGen/R600/fsub64.ll | 13 + test/CodeGen/R600/gep-address-space.ll | 40 + test/CodeGen/R600/icmp-select-sete-reverse-args.ll | 2 +- test/CodeGen/R600/imm.ll | 14 +- test/CodeGen/R600/indirect-addressing-si.ll | 48 + test/CodeGen/R600/insert_vector_elt.ll | 16 + test/CodeGen/R600/kcache-fold.ll | 18 +- test/CodeGen/R600/kernel-args.ll | 455 + test/CodeGen/R600/lds-output-queue.ll | 99 + test/CodeGen/R600/lds-size.ll | 26 + test/CodeGen/R600/lit.local.cfg | 12 +- test/CodeGen/R600/literals.ll | 191 +- test/CodeGen/R600/llvm.AMDGPU.barrier.local.ll | 24 + test/CodeGen/R600/llvm.AMDGPU.cube.ll | 59 + test/CodeGen/R600/llvm.AMDGPU.imax.ll | 21 + test/CodeGen/R600/llvm.AMDGPU.imin.ll | 21 + test/CodeGen/R600/llvm.AMDGPU.mul.ll | 16 +- test/CodeGen/R600/llvm.AMDGPU.tex.ll | 32 +- test/CodeGen/R600/llvm.AMDGPU.trunc.ll | 22 +- test/CodeGen/R600/llvm.AMDGPU.umax.ll | 21 + test/CodeGen/R600/llvm.AMDGPU.umin.ll | 21 + test/CodeGen/R600/llvm.SI.fs.interp.constant.ll | 2 +- test/CodeGen/R600/llvm.SI.imageload.ll | 131 + test/CodeGen/R600/llvm.SI.resinfo.ll | 110 + test/CodeGen/R600/llvm.SI.sample-masked.ll | 93 + test/CodeGen/R600/llvm.SI.sample.ll | 85 +- test/CodeGen/R600/llvm.SI.sampled.ll | 140 + test/CodeGen/R600/llvm.SI.tbuffer.store.ll | 44 + test/CodeGen/R600/llvm.SI.tid.ll | 16 + test/CodeGen/R600/llvm.cos.ll | 17 +- test/CodeGen/R600/llvm.floor.ll | 54 + test/CodeGen/R600/llvm.pow.ll | 20 +- test/CodeGen/R600/llvm.rint.ll | 54 + test/CodeGen/R600/llvm.round.ll | 41 + test/CodeGen/R600/llvm.sin.ll | 17 +- test/CodeGen/R600/llvm.sqrt.ll | 54 + test/CodeGen/R600/load-input-fold.ll | 118 + test/CodeGen/R600/load.ll | 669 +- test/CodeGen/R600/load.vec.ll | 24 + test/CodeGen/R600/load64.ll | 20 + test/CodeGen/R600/local-memory-two-objects.ll | 58 + test/CodeGen/R600/local-memory.ll | 50 + test/CodeGen/R600/loop-address.ll | 10 +- test/CodeGen/R600/lshl.ll | 4 +- test/CodeGen/R600/lshr.ll | 4 +- test/CodeGen/R600/mad_int24.ll | 20 + test/CodeGen/R600/mad_uint24.ll | 70 + test/CodeGen/R600/max-literals.ll | 67 + test/CodeGen/R600/mul.ll | 38 +- test/CodeGen/R600/mul_int24.ll | 19 + test/CodeGen/R600/mul_uint24.ll | 65 + test/CodeGen/R600/mulhu.ll | 8 +- test/CodeGen/R600/or.ll | 54 +- test/CodeGen/R600/packetizer.ll | 34 + test/CodeGen/R600/parallelandifcollapse.ll | 54 + test/CodeGen/R600/parallelorifcollapse.ll | 61 + test/CodeGen/R600/predicate-dp4.ll | 27 + test/CodeGen/R600/predicates.ll | 2 +- test/CodeGen/R600/private-memory.ll | 115 + test/CodeGen/R600/pv-packing.ll | 45 + test/CodeGen/R600/pv.ll | 63 +- test/CodeGen/R600/r600-encoding.ll | 19 +- test/CodeGen/R600/r600-export-fix.ll | 142 + test/CodeGen/R600/r600cfg.ll | 120 + test/CodeGen/R600/reciprocal.ll | 13 +- test/CodeGen/R600/rotr.ll | 37 + test/CodeGen/R600/rv7x0_count3.ll | 41 + test/CodeGen/R600/schedule-fs-loop-nested-if.ll | 15 +- test/CodeGen/R600/schedule-fs-loop-nested.ll | 2 +- test/CodeGen/R600/schedule-fs-loop.ll | 2 +- test/CodeGen/R600/schedule-if-2.ll | 2 +- test/CodeGen/R600/schedule-if.ll | 2 +- test/CodeGen/R600/schedule-vs-if-nested-loop.ll | 14 +- test/CodeGen/R600/select.ll | 46 + test/CodeGen/R600/selectcc-cnd.ll | 4 +- test/CodeGen/R600/selectcc-cnde-int.ll | 2 +- test/CodeGen/R600/selectcc-opt.ll | 5 +- test/CodeGen/R600/set-dx10.ll | 96 +- test/CodeGen/R600/setcc.ll | 327 +- test/CodeGen/R600/setcc64.ll | 263 + test/CodeGen/R600/seto.ll | 4 +- test/CodeGen/R600/setuo.ll | 4 +- test/CodeGen/R600/sgpr-copy-duplicate-operand.ll | 18 + test/CodeGen/R600/sgpr-copy.ll | 327 + test/CodeGen/R600/shared-op-cycle.ll | 32 + test/CodeGen/R600/shl.ll | 44 +- test/CodeGen/R600/short-args.ll | 41 - test/CodeGen/R600/si-annotate-cf-assertion.ll | 23 + test/CodeGen/R600/si-lod-bias.ll | 51 + test/CodeGen/R600/si-sgpr-spill.ll | 692 + test/CodeGen/R600/si-vector-hang.ll | 107 + test/CodeGen/R600/sign_extend.ll | 12 + test/CodeGen/R600/sint_to_fp.ll | 29 +- test/CodeGen/R600/sint_to_fp64.ll | 9 + test/CodeGen/R600/sra.ll | 55 +- test/CodeGen/R600/srl.ll | 42 +- test/CodeGen/R600/store-vector-ptrs.ll | 8 + test/CodeGen/R600/store.ll | 277 +- test/CodeGen/R600/store.r600.ll | 4 +- test/CodeGen/R600/structurize.ll | 83 + test/CodeGen/R600/structurize1.ll | 62 + test/CodeGen/R600/sub.ll | 37 +- test/CodeGen/R600/swizzle-export.ll | 129 + test/CodeGen/R600/tex-clause-antidep.ll | 25 + test/CodeGen/R600/texture-input-merge.ll | 31 + .../R600/trunc-vector-store-assertion-failure.ll | 20 + test/CodeGen/R600/trunc.ll | 30 + test/CodeGen/R600/udiv.ll | 38 +- test/CodeGen/R600/uint_to_fp.ll | 44 +- test/CodeGen/R600/unaligned-load-store.ll | 17 + test/CodeGen/R600/unsupported-cc.ll | 68 +- test/CodeGen/R600/urecip.ll | 2 +- test/CodeGen/R600/urem.ll | 27 +- test/CodeGen/R600/vertex-fetch-encoding.ll | 25 + test/CodeGen/R600/vselect.ll | 71 +- test/CodeGen/R600/vselect64.ll | 15 + test/CodeGen/R600/vtx-schedule.ll | 18 + test/CodeGen/R600/wait.ll | 37 + test/CodeGen/R600/work-item-intrinsics.ll | 211 + test/CodeGen/R600/wrong-transalu-pos-fix.ll | 86 + test/CodeGen/R600/xor.ll | 57 +- test/CodeGen/R600/zero_extend.ll | 18 + test/CodeGen/SI/sanity.ll | 37 - test/CodeGen/SPARC/2011-01-11-CC.ll | 110 +- test/CodeGen/SPARC/2011-01-11-Call.ll | 40 + test/CodeGen/SPARC/2011-01-11-FrameAddr.ll | 43 +- test/CodeGen/SPARC/2011-01-19-DelaySlot.ll | 105 +- test/CodeGen/SPARC/2011-01-21-ByValArgs.ll | 2 +- test/CodeGen/SPARC/2011-01-22-SRet.ll | 10 +- test/CodeGen/SPARC/2013-05-17-CallFrame.ll | 26 + test/CodeGen/SPARC/64abi.ll | 37 +- test/CodeGen/SPARC/64bit.ll | 135 +- test/CodeGen/SPARC/64cond.ll | 89 +- test/CodeGen/SPARC/basictest.ll | 24 +- test/CodeGen/SPARC/blockaddr.ll | 77 + test/CodeGen/SPARC/constpool.ll | 15 +- test/CodeGen/SPARC/exception.ll | 112 + test/CodeGen/SPARC/float.ll | 249 + test/CodeGen/SPARC/fp128.ll | 234 + test/CodeGen/SPARC/globals.ll | 19 +- test/CodeGen/SPARC/leafproc.ll | 80 + test/CodeGen/SPARC/lit.local.cfg | 2 - test/CodeGen/SPARC/rem.ll | 39 + test/CodeGen/SPARC/setjmp.ll | 72 + test/CodeGen/SPARC/tls.ll | 73 + test/CodeGen/SPARC/varargs.ll | 1 + test/CodeGen/SystemZ/Large/branch-range-01.py | 105 + test/CodeGen/SystemZ/Large/branch-range-02.py | 82 + test/CodeGen/SystemZ/Large/branch-range-03.py | 107 + test/CodeGen/SystemZ/Large/branch-range-04.py | 111 + test/CodeGen/SystemZ/Large/branch-range-05.py | 109 + test/CodeGen/SystemZ/Large/branch-range-06.py | 109 + test/CodeGen/SystemZ/Large/branch-range-07.py | 68 + test/CodeGen/SystemZ/Large/branch-range-08.py | 69 + test/CodeGen/SystemZ/Large/branch-range-09.py | 107 + test/CodeGen/SystemZ/Large/branch-range-10.py | 111 + test/CodeGen/SystemZ/Large/branch-range-11.py | 127 + test/CodeGen/SystemZ/Large/branch-range-12.py | 127 + test/CodeGen/SystemZ/Large/lit.local.cfg | 10 + test/CodeGen/SystemZ/Large/spill-01.py | 40 + test/CodeGen/SystemZ/Large/spill-02.py | 73 + test/CodeGen/SystemZ/addr-01.ll | 16 +- test/CodeGen/SystemZ/addr-02.ll | 16 +- test/CodeGen/SystemZ/addr-03.ll | 10 +- test/CodeGen/SystemZ/alias-01.ll | 19 + test/CodeGen/SystemZ/alloca-01.ll | 42 +- test/CodeGen/SystemZ/alloca-02.ll | 35 +- test/CodeGen/SystemZ/and-01.ll | 70 +- test/CodeGen/SystemZ/and-02.ll | 189 +- test/CodeGen/SystemZ/and-03.ll | 64 +- test/CodeGen/SystemZ/and-04.ll | 153 +- test/CodeGen/SystemZ/and-05.ll | 26 +- test/CodeGen/SystemZ/and-06.ll | 16 +- test/CodeGen/SystemZ/and-07.ll | 39 + test/CodeGen/SystemZ/and-08.ll | 378 + test/CodeGen/SystemZ/args-01.ll | 33 +- test/CodeGen/SystemZ/args-02.ll | 33 +- test/CodeGen/SystemZ/args-03.ll | 33 +- test/CodeGen/SystemZ/args-04.ll | 26 +- test/CodeGen/SystemZ/args-05.ll | 8 +- test/CodeGen/SystemZ/args-06.ll | 12 +- test/CodeGen/SystemZ/asm-01.ll | 10 +- test/CodeGen/SystemZ/asm-02.ll | 8 +- test/CodeGen/SystemZ/asm-03.ll | 2 +- test/CodeGen/SystemZ/asm-04.ll | 2 +- test/CodeGen/SystemZ/asm-05.ll | 2 +- test/CodeGen/SystemZ/asm-06.ll | 8 +- test/CodeGen/SystemZ/asm-07.ll | 8 +- test/CodeGen/SystemZ/asm-08.ll | 8 +- test/CodeGen/SystemZ/asm-09.ll | 16 +- test/CodeGen/SystemZ/asm-10.ll | 6 +- test/CodeGen/SystemZ/asm-11.ll | 8 +- test/CodeGen/SystemZ/asm-12.ll | 8 +- test/CodeGen/SystemZ/asm-13.ll | 8 +- test/CodeGen/SystemZ/asm-14.ll | 8 +- test/CodeGen/SystemZ/asm-15.ll | 6 +- test/CodeGen/SystemZ/asm-16.ll | 6 +- test/CodeGen/SystemZ/asm-17.ll | 105 + test/CodeGen/SystemZ/asm-18.ll | 745 + test/CodeGen/SystemZ/atomic-load-01.ll | 2 +- test/CodeGen/SystemZ/atomic-load-02.ll | 2 +- test/CodeGen/SystemZ/atomic-load-03.ll | 2 +- test/CodeGen/SystemZ/atomic-load-04.ll | 2 +- test/CodeGen/SystemZ/atomic-store-01.ll | 2 +- test/CodeGen/SystemZ/atomic-store-02.ll | 2 +- test/CodeGen/SystemZ/atomic-store-03.ll | 4 +- test/CodeGen/SystemZ/atomic-store-04.ll | 4 +- test/CodeGen/SystemZ/atomicrmw-add-01.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-add-02.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-add-03.ll | 24 +- test/CodeGen/SystemZ/atomicrmw-add-04.ll | 28 +- test/CodeGen/SystemZ/atomicrmw-and-01.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-and-02.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-and-03.ll | 22 +- test/CodeGen/SystemZ/atomicrmw-and-04.ll | 136 +- test/CodeGen/SystemZ/atomicrmw-minmax-01.ll | 84 +- test/CodeGen/SystemZ/atomicrmw-minmax-02.ll | 84 +- test/CodeGen/SystemZ/atomicrmw-minmax-03.ll | 60 +- test/CodeGen/SystemZ/atomicrmw-minmax-04.ll | 54 +- test/CodeGen/SystemZ/atomicrmw-nand-01.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-nand-02.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-nand-03.ll | 22 +- test/CodeGen/SystemZ/atomicrmw-nand-04.ll | 160 +- test/CodeGen/SystemZ/atomicrmw-or-01.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-or-02.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-or-03.ll | 22 +- test/CodeGen/SystemZ/atomicrmw-or-04.ll | 38 +- test/CodeGen/SystemZ/atomicrmw-sub-01.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-sub-02.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-sub-03.ll | 24 +- test/CodeGen/SystemZ/atomicrmw-sub-04.ll | 28 +- test/CodeGen/SystemZ/atomicrmw-xchg-01.ll | 10 +- test/CodeGen/SystemZ/atomicrmw-xchg-02.ll | 10 +- test/CodeGen/SystemZ/atomicrmw-xchg-03.ll | 24 +- test/CodeGen/SystemZ/atomicrmw-xchg-04.ll | 18 +- test/CodeGen/SystemZ/atomicrmw-xor-01.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-xor-02.ll | 40 +- test/CodeGen/SystemZ/atomicrmw-xor-03.ll | 14 +- test/CodeGen/SystemZ/atomicrmw-xor-04.ll | 20 +- test/CodeGen/SystemZ/branch-01.ll | 4 +- test/CodeGen/SystemZ/branch-02.ll | 27 +- test/CodeGen/SystemZ/branch-03.ll | 16 +- test/CodeGen/SystemZ/branch-04.ll | 56 +- test/CodeGen/SystemZ/branch-05.ll | 5 +- test/CodeGen/SystemZ/branch-06.ll | 190 + test/CodeGen/SystemZ/branch-07.ll | 157 + test/CodeGen/SystemZ/branch-08.ll | 46 + test/CodeGen/SystemZ/branch-09.ll | 62 + test/CodeGen/SystemZ/branch-10.ll | 62 + test/CodeGen/SystemZ/bswap-01.ll | 8 +- test/CodeGen/SystemZ/bswap-02.ll | 103 +- test/CodeGen/SystemZ/bswap-03.ll | 103 +- test/CodeGen/SystemZ/bswap-04.ll | 50 +- test/CodeGen/SystemZ/bswap-05.ll | 50 +- test/CodeGen/SystemZ/call-01.ll | 2 +- test/CodeGen/SystemZ/call-02.ll | 2 +- test/CodeGen/SystemZ/call-03.ll | 125 + test/CodeGen/SystemZ/cmpxchg-01.ll | 13 +- test/CodeGen/SystemZ/cmpxchg-02.ll | 13 +- test/CodeGen/SystemZ/cmpxchg-03.ll | 24 +- test/CodeGen/SystemZ/cmpxchg-04.ll | 18 +- test/CodeGen/SystemZ/cond-load-01.ll | 130 + test/CodeGen/SystemZ/cond-load-02.ll | 130 + test/CodeGen/SystemZ/cond-move-01.ll | 48 + test/CodeGen/SystemZ/cond-store-01.ll | 398 + test/CodeGen/SystemZ/cond-store-02.ll | 398 + test/CodeGen/SystemZ/cond-store-03.ll | 322 + test/CodeGen/SystemZ/cond-store-04.ll | 214 + test/CodeGen/SystemZ/cond-store-05.ll | 213 + test/CodeGen/SystemZ/cond-store-06.ll | 213 + test/CodeGen/SystemZ/cond-store-07.ll | 186 + test/CodeGen/SystemZ/cond-store-08.ll | 124 + test/CodeGen/SystemZ/fp-abs-01.ll | 6 +- test/CodeGen/SystemZ/fp-abs-02.ll | 6 +- test/CodeGen/SystemZ/fp-add-01.ll | 60 +- test/CodeGen/SystemZ/fp-add-02.ll | 60 +- test/CodeGen/SystemZ/fp-add-03.ll | 2 +- test/CodeGen/SystemZ/fp-cmp-01.ll | 258 +- test/CodeGen/SystemZ/fp-cmp-02.ll | 114 +- test/CodeGen/SystemZ/fp-cmp-03.ll | 24 +- test/CodeGen/SystemZ/fp-cmp-04.ll | 348 + test/CodeGen/SystemZ/fp-const-01.ll | 6 +- test/CodeGen/SystemZ/fp-const-02.ll | 6 +- test/CodeGen/SystemZ/fp-const-03.ll | 2 +- test/CodeGen/SystemZ/fp-const-04.ll | 2 +- test/CodeGen/SystemZ/fp-const-05.ll | 2 +- test/CodeGen/SystemZ/fp-const-06.ll | 2 +- test/CodeGen/SystemZ/fp-const-07.ll | 2 +- test/CodeGen/SystemZ/fp-const-08.ll | 2 +- test/CodeGen/SystemZ/fp-const-09.ll | 2 +- test/CodeGen/SystemZ/fp-conv-01.ll | 10 +- test/CodeGen/SystemZ/fp-conv-02.ll | 93 +- test/CodeGen/SystemZ/fp-conv-03.ll | 93 +- test/CodeGen/SystemZ/fp-conv-04.ll | 93 +- test/CodeGen/SystemZ/fp-conv-05.ll | 6 +- test/CodeGen/SystemZ/fp-conv-06.ll | 6 +- test/CodeGen/SystemZ/fp-conv-07.ll | 6 +- test/CodeGen/SystemZ/fp-conv-08.ll | 8 +- test/CodeGen/SystemZ/fp-conv-09.ll | 6 +- test/CodeGen/SystemZ/fp-conv-10.ll | 6 +- test/CodeGen/SystemZ/fp-conv-11.ll | 6 +- test/CodeGen/SystemZ/fp-conv-12.ll | 6 +- test/CodeGen/SystemZ/fp-copysign-01.ll | 18 +- test/CodeGen/SystemZ/fp-div-01.ll | 60 +- test/CodeGen/SystemZ/fp-div-02.ll | 60 +- test/CodeGen/SystemZ/fp-div-03.ll | 2 +- test/CodeGen/SystemZ/fp-move-01.ll | 6 +- test/CodeGen/SystemZ/fp-move-02.ll | 316 +- test/CodeGen/SystemZ/fp-move-03.ll | 20 +- test/CodeGen/SystemZ/fp-move-04.ll | 20 +- test/CodeGen/SystemZ/fp-move-05.ll | 22 +- test/CodeGen/SystemZ/fp-move-06.ll | 20 +- test/CodeGen/SystemZ/fp-move-07.ll | 20 +- test/CodeGen/SystemZ/fp-move-08.ll | 22 +- test/CodeGen/SystemZ/fp-move-09.ll | 62 + test/CodeGen/SystemZ/fp-mul-01.ll | 60 +- test/CodeGen/SystemZ/fp-mul-02.ll | 132 +- test/CodeGen/SystemZ/fp-mul-03.ll | 60 +- test/CodeGen/SystemZ/fp-mul-04.ll | 142 +- test/CodeGen/SystemZ/fp-mul-05.ll | 2 +- test/CodeGen/SystemZ/fp-mul-06.ll | 16 +- test/CodeGen/SystemZ/fp-mul-07.ll | 16 +- test/CodeGen/SystemZ/fp-mul-08.ll | 16 +- test/CodeGen/SystemZ/fp-mul-09.ll | 16 +- test/CodeGen/SystemZ/fp-neg-01.ll | 6 +- test/CodeGen/SystemZ/fp-round-01.ll | 132 +- test/CodeGen/SystemZ/fp-round-02.ll | 195 + test/CodeGen/SystemZ/fp-sqrt-01.ll | 110 +- test/CodeGen/SystemZ/fp-sqrt-02.ll | 108 +- test/CodeGen/SystemZ/fp-sqrt-03.ll | 2 +- test/CodeGen/SystemZ/fp-sub-01.ll | 60 +- test/CodeGen/SystemZ/fp-sub-02.ll | 60 +- test/CodeGen/SystemZ/fp-sub-03.ll | 2 +- test/CodeGen/SystemZ/frame-01.ll | 70 +- test/CodeGen/SystemZ/frame-02.ll | 8 +- test/CodeGen/SystemZ/frame-03.ll | 8 +- test/CodeGen/SystemZ/frame-04.ll | 8 +- test/CodeGen/SystemZ/frame-05.ll | 8 +- test/CodeGen/SystemZ/frame-06.ll | 8 +- test/CodeGen/SystemZ/frame-07.ll | 22 +- test/CodeGen/SystemZ/frame-08.ll | 44 +- test/CodeGen/SystemZ/frame-09.ll | 28 +- test/CodeGen/SystemZ/frame-10.ll | 2 +- test/CodeGen/SystemZ/frame-11.ll | 2 +- test/CodeGen/SystemZ/frame-13.ll | 182 +- test/CodeGen/SystemZ/frame-14.ll | 172 +- test/CodeGen/SystemZ/frame-15.ll | 203 +- test/CodeGen/SystemZ/frame-16.ll | 182 +- test/CodeGen/SystemZ/frame-17.ll | 6 +- test/CodeGen/SystemZ/frame-18.ll | 9 +- test/CodeGen/SystemZ/insert-01.ll | 34 +- test/CodeGen/SystemZ/insert-02.ll | 34 +- test/CodeGen/SystemZ/insert-03.ll | 12 +- test/CodeGen/SystemZ/insert-04.ll | 24 +- test/CodeGen/SystemZ/insert-05.ll | 38 +- test/CodeGen/SystemZ/insert-06.ll | 39 +- test/CodeGen/SystemZ/int-abs-01.ll | 83 + test/CodeGen/SystemZ/int-add-01.ll | 20 +- test/CodeGen/SystemZ/int-add-02.ll | 70 +- test/CodeGen/SystemZ/int-add-03.ll | 94 +- test/CodeGen/SystemZ/int-add-04.ll | 94 +- test/CodeGen/SystemZ/int-add-05.ll | 64 +- test/CodeGen/SystemZ/int-add-06.ll | 20 +- test/CodeGen/SystemZ/int-add-07.ll | 28 +- test/CodeGen/SystemZ/int-add-08.ll | 50 +- test/CodeGen/SystemZ/int-add-09.ll | 18 +- test/CodeGen/SystemZ/int-add-10.ll | 38 +- test/CodeGen/SystemZ/int-add-11.ll | 191 +- test/CodeGen/SystemZ/int-add-12.ll | 186 +- test/CodeGen/SystemZ/int-add-13.ll | 39 + test/CodeGen/SystemZ/int-add-14.ll | 67 + test/CodeGen/SystemZ/int-add-15.ll | 67 + test/CodeGen/SystemZ/int-add-16.ll | 93 + test/CodeGen/SystemZ/int-cmp-01.ll | 34 +- test/CodeGen/SystemZ/int-cmp-02.ll | 80 +- test/CodeGen/SystemZ/int-cmp-03.ll | 58 +- test/CodeGen/SystemZ/int-cmp-04.ll | 28 +- test/CodeGen/SystemZ/int-cmp-05.ll | 157 +- test/CodeGen/SystemZ/int-cmp-06.ll | 171 +- test/CodeGen/SystemZ/int-cmp-07.ll | 46 +- test/CodeGen/SystemZ/int-cmp-08.ll | 46 +- test/CodeGen/SystemZ/int-cmp-09.ll | 161 +- test/CodeGen/SystemZ/int-cmp-10.ll | 38 +- test/CodeGen/SystemZ/int-cmp-11.ll | 115 +- test/CodeGen/SystemZ/int-cmp-12.ll | 45 +- test/CodeGen/SystemZ/int-cmp-13.ll | 122 +- test/CodeGen/SystemZ/int-cmp-14.ll | 122 +- test/CodeGen/SystemZ/int-cmp-15.ll | 58 +- test/CodeGen/SystemZ/int-cmp-16.ll | 32 +- test/CodeGen/SystemZ/int-cmp-17.ll | 32 +- test/CodeGen/SystemZ/int-cmp-18.ll | 32 +- test/CodeGen/SystemZ/int-cmp-19.ll | 32 +- test/CodeGen/SystemZ/int-cmp-20.ll | 64 +- test/CodeGen/SystemZ/int-cmp-21.ll | 52 +- test/CodeGen/SystemZ/int-cmp-22.ll | 38 +- test/CodeGen/SystemZ/int-cmp-23.ll | 24 +- test/CodeGen/SystemZ/int-cmp-24.ll | 16 +- test/CodeGen/SystemZ/int-cmp-25.ll | 16 +- test/CodeGen/SystemZ/int-cmp-26.ll | 32 +- test/CodeGen/SystemZ/int-cmp-27.ll | 32 +- test/CodeGen/SystemZ/int-cmp-28.ll | 32 +- test/CodeGen/SystemZ/int-cmp-29.ll | 32 +- test/CodeGen/SystemZ/int-cmp-30.ll | 52 +- test/CodeGen/SystemZ/int-cmp-31.ll | 52 +- test/CodeGen/SystemZ/int-cmp-32.ll | 66 +- test/CodeGen/SystemZ/int-cmp-33.ll | 36 +- test/CodeGen/SystemZ/int-cmp-34.ll | 66 +- test/CodeGen/SystemZ/int-cmp-35.ll | 36 +- test/CodeGen/SystemZ/int-cmp-36.ll | 54 +- test/CodeGen/SystemZ/int-cmp-37.ll | 54 +- test/CodeGen/SystemZ/int-cmp-38.ll | 73 +- test/CodeGen/SystemZ/int-cmp-39.ll | 54 +- test/CodeGen/SystemZ/int-cmp-40.ll | 54 +- test/CodeGen/SystemZ/int-cmp-41.ll | 54 +- test/CodeGen/SystemZ/int-cmp-42.ll | 54 +- test/CodeGen/SystemZ/int-cmp-43.ll | 54 +- test/CodeGen/SystemZ/int-cmp-44.ll | 799 + test/CodeGen/SystemZ/int-cmp-45.ll | 115 + test/CodeGen/SystemZ/int-cmp-46.ll | 491 + test/CodeGen/SystemZ/int-cmp-47.ll | 234 + test/CodeGen/SystemZ/int-cmp-48.ll | 245 + test/CodeGen/SystemZ/int-cmp-49.ll | 49 + test/CodeGen/SystemZ/int-const-01.ll | 44 +- test/CodeGen/SystemZ/int-const-02.ll | 94 +- test/CodeGen/SystemZ/int-const-03.ll | 44 +- test/CodeGen/SystemZ/int-const-04.ll | 42 +- test/CodeGen/SystemZ/int-const-05.ll | 39 +- test/CodeGen/SystemZ/int-const-06.ll | 40 +- test/CodeGen/SystemZ/int-conv-01.ll | 116 +- test/CodeGen/SystemZ/int-conv-02.ll | 125 +- test/CodeGen/SystemZ/int-conv-03.ll | 116 +- test/CodeGen/SystemZ/int-conv-04.ll | 120 +- test/CodeGen/SystemZ/int-conv-05.ll | 122 +- test/CodeGen/SystemZ/int-conv-06.ll | 125 +- test/CodeGen/SystemZ/int-conv-07.ll | 116 +- test/CodeGen/SystemZ/int-conv-08.ll | 120 +- test/CodeGen/SystemZ/int-conv-09.ll | 22 +- test/CodeGen/SystemZ/int-conv-10.ll | 26 +- test/CodeGen/SystemZ/int-conv-11.ll | 350 + test/CodeGen/SystemZ/int-div-01.ll | 89 +- test/CodeGen/SystemZ/int-div-02.ll | 69 +- test/CodeGen/SystemZ/int-div-03.ll | 47 +- test/CodeGen/SystemZ/int-div-04.ll | 72 +- test/CodeGen/SystemZ/int-div-05.ll | 72 +- test/CodeGen/SystemZ/int-div-06.ll | 56 + test/CodeGen/SystemZ/int-move-01.ll | 8 +- test/CodeGen/SystemZ/int-move-02.ll | 20 +- test/CodeGen/SystemZ/int-move-03.ll | 14 +- test/CodeGen/SystemZ/int-move-04.ll | 24 +- test/CodeGen/SystemZ/int-move-05.ll | 24 +- test/CodeGen/SystemZ/int-move-06.ll | 20 +- test/CodeGen/SystemZ/int-move-07.ll | 14 +- test/CodeGen/SystemZ/int-move-08.ll | 93 +- test/CodeGen/SystemZ/int-move-09.ll | 99 +- test/CodeGen/SystemZ/int-mul-01.ll | 20 +- test/CodeGen/SystemZ/int-mul-02.ll | 67 +- test/CodeGen/SystemZ/int-mul-03.ll | 94 +- test/CodeGen/SystemZ/int-mul-04.ll | 61 +- test/CodeGen/SystemZ/int-mul-05.ll | 34 +- test/CodeGen/SystemZ/int-mul-06.ll | 34 +- test/CodeGen/SystemZ/int-mul-07.ll | 8 +- test/CodeGen/SystemZ/int-mul-08.ll | 110 +- test/CodeGen/SystemZ/int-neg-01.ll | 8 +- test/CodeGen/SystemZ/int-neg-02.ll | 91 + test/CodeGen/SystemZ/int-sub-01.ll | 70 +- test/CodeGen/SystemZ/int-sub-02.ll | 94 +- test/CodeGen/SystemZ/int-sub-03.ll | 94 +- test/CodeGen/SystemZ/int-sub-04.ll | 64 +- test/CodeGen/SystemZ/int-sub-05.ll | 53 +- test/CodeGen/SystemZ/int-sub-06.ll | 20 +- test/CodeGen/SystemZ/int-sub-07.ll | 131 + test/CodeGen/SystemZ/int-sub-08.ll | 39 + test/CodeGen/SystemZ/int-sub-09.ll | 22 + test/CodeGen/SystemZ/la-01.ll | 31 +- test/CodeGen/SystemZ/la-02.ll | 16 +- test/CodeGen/SystemZ/la-03.ll | 16 +- test/CodeGen/SystemZ/la-04.ll | 2 +- test/CodeGen/SystemZ/lit.local.cfg | 2 - test/CodeGen/SystemZ/loop-01.ll | 124 + test/CodeGen/SystemZ/memchr-01.ll | 21 + test/CodeGen/SystemZ/memchr-02.ll | 57 + test/CodeGen/SystemZ/memcmp-01.ll | 221 + test/CodeGen/SystemZ/memcmp-02.ll | 139 + test/CodeGen/SystemZ/memcpy-01.ll | 235 + test/CodeGen/SystemZ/memcpy-02.ll | 392 + test/CodeGen/SystemZ/memset-01.ll | 160 + test/CodeGen/SystemZ/memset-02.ll | 162 + test/CodeGen/SystemZ/memset-03.ll | 382 + test/CodeGen/SystemZ/memset-04.ll | 398 + test/CodeGen/SystemZ/or-01.ll | 70 +- test/CodeGen/SystemZ/or-02.ll | 14 +- test/CodeGen/SystemZ/or-03.ll | 64 +- test/CodeGen/SystemZ/or-04.ll | 38 +- test/CodeGen/SystemZ/or-05.ll | 26 +- test/CodeGen/SystemZ/or-06.ll | 16 +- test/CodeGen/SystemZ/or-07.ll | 39 + test/CodeGen/SystemZ/or-08.ll | 57 + test/CodeGen/SystemZ/prefetch-01.ll | 87 + test/CodeGen/SystemZ/risbg-01.ll | 472 + test/CodeGen/SystemZ/risbg-02.ll | 93 + test/CodeGen/SystemZ/rnsbg-01.ll | 257 + test/CodeGen/SystemZ/rosbg-01.ll | 110 + test/CodeGen/SystemZ/rxsbg-01.ll | 112 + test/CodeGen/SystemZ/setcc-01.ll | 74 + test/CodeGen/SystemZ/setcc-02.ll | 174 + test/CodeGen/SystemZ/shift-01.ll | 22 +- test/CodeGen/SystemZ/shift-02.ll | 22 +- test/CodeGen/SystemZ/shift-03.ll | 22 +- test/CodeGen/SystemZ/shift-04.ll | 28 +- test/CodeGen/SystemZ/shift-05.ll | 28 +- test/CodeGen/SystemZ/shift-06.ll | 28 +- test/CodeGen/SystemZ/shift-07.ll | 28 +- test/CodeGen/SystemZ/shift-08.ll | 28 +- test/CodeGen/SystemZ/shift-09.ll | 63 + test/CodeGen/SystemZ/shift-10.ll | 78 + test/CodeGen/SystemZ/spill-01.ll | 548 + test/CodeGen/SystemZ/strcmp-01.ll | 70 + test/CodeGen/SystemZ/strcmp-02.ll | 72 + test/CodeGen/SystemZ/strcpy-01.ll | 50 + test/CodeGen/SystemZ/strlen-01.ll | 39 + test/CodeGen/SystemZ/strlen-02.ll | 39 + test/CodeGen/SystemZ/tls-01.ll | 2 +- test/CodeGen/SystemZ/unaligned-01.ll | 62 + test/CodeGen/SystemZ/xor-01.ll | 70 +- test/CodeGen/SystemZ/xor-02.ll | 8 +- test/CodeGen/SystemZ/xor-03.ll | 64 +- test/CodeGen/SystemZ/xor-04.ll | 14 +- test/CodeGen/SystemZ/xor-05.ll | 26 +- test/CodeGen/SystemZ/xor-06.ll | 16 +- test/CodeGen/SystemZ/xor-07.ll | 39 + test/CodeGen/SystemZ/xor-08.ll | 57 + test/CodeGen/Thumb/2009-08-20-ISelBug.ll | 2 +- test/CodeGen/Thumb/2010-07-15-debugOrdering.ll | 150 +- test/CodeGen/Thumb/2012-04-26-M0ISelBug.ll | 2 +- test/CodeGen/Thumb/PR17309.ll | 57 + test/CodeGen/Thumb/barrier.ll | 6 +- test/CodeGen/Thumb/dyn-stackalloc.ll | 4 +- test/CodeGen/Thumb/ispositive.ll | 2 +- test/CodeGen/Thumb/large-stack.ll | 12 +- test/CodeGen/Thumb/ldr_frame.ll | 8 +- test/CodeGen/Thumb/lit.local.cfg | 2 - test/CodeGen/Thumb/pop.ll | 2 +- test/CodeGen/Thumb/push.ll | 2 +- test/CodeGen/Thumb/rev.ll | 4 +- test/CodeGen/Thumb/select.ll | 28 +- test/CodeGen/Thumb/trap.ll | 2 +- test/CodeGen/Thumb2/2009-07-21-ISelBug.ll | 2 +- test/CodeGen/Thumb2/2009-08-01-WrongLDRBOpc.ll | 2 +- test/CodeGen/Thumb2/2009-08-06-SpDecBug.ll | 2 +- test/CodeGen/Thumb2/2009-09-28-ITBlockBug.ll | 2 +- test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll | 2 +- test/CodeGen/Thumb2/2010-02-11-phi-cycle.ll | 4 +- test/CodeGen/Thumb2/2010-04-15-DynAllocBug.ll | 6 +- test/CodeGen/Thumb2/2010-06-21-TailMergeBug.ll | 2 +- .../CodeGen/Thumb2/2010-08-10-VarSizedAllocaBug.ll | 4 +- test/CodeGen/Thumb2/2010-11-22-EpilogueBug.ll | 2 +- test/CodeGen/Thumb2/2011-04-21-FILoweringBug.ll | 2 +- test/CodeGen/Thumb2/2012-01-13-CBNZBug.ll | 2 +- .../2013-03-06-vector-sext-operand-scalarize.ll | 4 +- test/CodeGen/Thumb2/buildvector-crash.ll | 2 +- test/CodeGen/Thumb2/carry.ll | 6 +- test/CodeGen/Thumb2/cross-rc-coalescing-2.ll | 2 +- test/CodeGen/Thumb2/div.ll | 20 +- test/CodeGen/Thumb2/large-call.ll | 2 +- test/CodeGen/Thumb2/large-stack.ll | 12 +- test/CodeGen/Thumb2/lit.local.cfg | 2 - test/CodeGen/Thumb2/longMACt.ll | 8 +- test/CodeGen/Thumb2/lsr-deficiency.ll | 2 +- test/CodeGen/Thumb2/machine-licm.ll | 6 +- test/CodeGen/Thumb2/mul_const.ll | 4 +- test/CodeGen/Thumb2/pic-load.ll | 2 +- test/CodeGen/Thumb2/tail-call-r9.ll | 14 + test/CodeGen/Thumb2/thumb2-adc.ll | 12 +- test/CodeGen/Thumb2/thumb2-add.ll | 16 +- test/CodeGen/Thumb2/thumb2-add2.ll | 10 +- test/CodeGen/Thumb2/thumb2-add3.ll | 2 +- test/CodeGen/Thumb2/thumb2-add4.ll | 10 +- test/CodeGen/Thumb2/thumb2-add5.ll | 10 +- test/CodeGen/Thumb2/thumb2-add6.ll | 2 +- test/CodeGen/Thumb2/thumb2-and.ll | 10 +- test/CodeGen/Thumb2/thumb2-and2.ll | 10 +- test/CodeGen/Thumb2/thumb2-asr.ll | 2 +- test/CodeGen/Thumb2/thumb2-asr2.ll | 2 +- test/CodeGen/Thumb2/thumb2-bcc.ll | 2 +- test/CodeGen/Thumb2/thumb2-bfc.ll | 8 +- test/CodeGen/Thumb2/thumb2-bic.ll | 24 +- test/CodeGen/Thumb2/thumb2-branch.ll | 30 +- test/CodeGen/Thumb2/thumb2-call-tc.ll | 12 +- test/CodeGen/Thumb2/thumb2-call.ll | 8 +- test/CodeGen/Thumb2/thumb2-clz.ll | 2 +- test/CodeGen/Thumb2/thumb2-cmn.ll | 18 +- test/CodeGen/Thumb2/thumb2-cmn2.ll | 8 +- test/CodeGen/Thumb2/thumb2-cmp.ll | 12 +- test/CodeGen/Thumb2/thumb2-cmp2.ll | 12 +- test/CodeGen/Thumb2/thumb2-eor.ll | 14 +- test/CodeGen/Thumb2/thumb2-eor2.ll | 10 +- test/CodeGen/Thumb2/thumb2-ifcvt1-tc.ll | 6 +- test/CodeGen/Thumb2/thumb2-ifcvt1.ll | 11 +- test/CodeGen/Thumb2/thumb2-ifcvt2.ll | 16 +- test/CodeGen/Thumb2/thumb2-ifcvt3.ll | 2 + test/CodeGen/Thumb2/thumb2-ldm.ll | 6 +- test/CodeGen/Thumb2/thumb2-ldr.ll | 14 +- test/CodeGen/Thumb2/thumb2-ldrb.ll | 14 +- test/CodeGen/Thumb2/thumb2-ldrh.ll | 14 +- test/CodeGen/Thumb2/thumb2-lsl.ll | 2 +- test/CodeGen/Thumb2/thumb2-lsl2.ll | 2 +- test/CodeGen/Thumb2/thumb2-lsr.ll | 2 +- test/CodeGen/Thumb2/thumb2-lsr2.ll | 2 +- test/CodeGen/Thumb2/thumb2-mla.ll | 8 +- test/CodeGen/Thumb2/thumb2-mls.ll | 4 +- test/CodeGen/Thumb2/thumb2-mov.ll | 60 +- test/CodeGen/Thumb2/thumb2-mul.ll | 4 +- test/CodeGen/Thumb2/thumb2-mvn.ll | 8 +- test/CodeGen/Thumb2/thumb2-mvn2.ll | 12 +- test/CodeGen/Thumb2/thumb2-neg.ll | 2 +- test/CodeGen/Thumb2/thumb2-orn.ll | 16 +- test/CodeGen/Thumb2/thumb2-orn2.ll | 8 +- test/CodeGen/Thumb2/thumb2-orr.ll | 10 +- test/CodeGen/Thumb2/thumb2-orr2.ll | 10 +- test/CodeGen/Thumb2/thumb2-pack.ll | 25 +- test/CodeGen/Thumb2/thumb2-rev.ll | 4 +- test/CodeGen/Thumb2/thumb2-ror.ll | 4 +- test/CodeGen/Thumb2/thumb2-rsb.ll | 8 +- test/CodeGen/Thumb2/thumb2-rsb2.ll | 10 +- test/CodeGen/Thumb2/thumb2-sbc.ll | 2 +- test/CodeGen/Thumb2/thumb2-select.ll | 41 +- test/CodeGen/Thumb2/thumb2-spill-q.ll | 2 +- test/CodeGen/Thumb2/thumb2-str.ll | 16 +- test/CodeGen/Thumb2/thumb2-str_post.ll | 4 +- test/CodeGen/Thumb2/thumb2-strb.ll | 16 +- test/CodeGen/Thumb2/thumb2-strh.ll | 16 +- test/CodeGen/Thumb2/thumb2-sub.ll | 12 +- test/CodeGen/Thumb2/thumb2-sub2.ll | 2 +- test/CodeGen/Thumb2/thumb2-sub4.ll | 10 +- test/CodeGen/Thumb2/thumb2-sub5.ll | 2 +- test/CodeGen/Thumb2/thumb2-sxt-uxt.ll | 8 +- test/CodeGen/Thumb2/thumb2-tbb.ll | 2 +- test/CodeGen/Thumb2/thumb2-tbh.ll | 2 +- test/CodeGen/Thumb2/thumb2-teq.ll | 10 +- test/CodeGen/Thumb2/thumb2-tst.ll | 10 +- test/CodeGen/Thumb2/thumb2-tst2.ll | 12 +- test/CodeGen/Thumb2/tls2.ll | 8 +- test/CodeGen/Thumb2/v8_IT_1.ll | 17 + test/CodeGen/Thumb2/v8_IT_2.ll | 38 + test/CodeGen/Thumb2/v8_IT_3.ll | 77 + test/CodeGen/Thumb2/v8_IT_4.ll | 45 + test/CodeGen/Thumb2/v8_IT_5.ll | 63 + test/CodeGen/X86/2006-05-02-InstrSched1.ll | 6 +- test/CodeGen/X86/2006-05-11-InstrSched.ll | 2 +- test/CodeGen/X86/2006-11-12-CSRetCC.ll | 2 +- test/CodeGen/X86/2007-01-08-InstrSched.ll | 4 +- test/CodeGen/X86/2007-02-04-OrAddrMode.ll | 4 +- .../X86/2007-02-23-DAGCombine-Miscompile.ll | 2 +- .../CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll | 2 +- test/CodeGen/X86/2007-05-07-InvokeSRet.ll | 19 - test/CodeGen/X86/2007-09-06-ExtWeakAliasee.ll | 13 +- test/CodeGen/X86/2007-09-27-LDIntrinsics.ll | 4 +- test/CodeGen/X86/2007-10-12-CoalesceExtSubReg.ll | 6 +- test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll | 2 +- test/CodeGen/X86/2008-01-08-SchedulerCrash.ll | 2 +- test/CodeGen/X86/2008-02-08-LoadFoldingBug.ll | 99 - test/CodeGen/X86/2008-03-14-SpillerCrash.ll | 4 +- test/CodeGen/X86/2008-04-24-pblendw-fold-crash.ll | 2 +- test/CodeGen/X86/2008-04-26-Asm-Optimize-Imm.ll | 2 +- test/CodeGen/X86/2008-05-22-FoldUnalignedLoad.ll | 2 +- test/CodeGen/X86/2008-07-19-movups-spills.ll | 673 +- test/CodeGen/X86/2008-08-19-SubAndFetch.ll | 2 +- test/CodeGen/X86/2008-08-31-EH_RETURN32.ll | 2 +- test/CodeGen/X86/2008-09-11-CoalescerBug2.ll | 12 + test/CodeGen/X86/2009-02-12-DebugInfoVLA.ll | 18 +- .../X86/2009-02-12-InlineAsm-nieZ-constraints.ll | 2 +- test/CodeGen/X86/2009-02-26-MachineLICMBug.ll | 10 +- test/CodeGen/X86/2009-03-23-MultiUseSched.ll | 2 +- test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll | 2 +- test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll | 2 +- test/CodeGen/X86/2009-09-21-NoSpillLoopCount.ll | 2 +- test/CodeGen/X86/2009-10-16-Scope.ll | 12 +- test/CodeGen/X86/2009-11-16-MachineLICM.ll | 2 +- test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll | 2 +- test/CodeGen/X86/2009-12-01-EarlyClobberBug.ll | 4 +- test/CodeGen/X86/2009-12-11-TLSNoRedZone.ll | 2 +- test/CodeGen/X86/2010-01-08-Atomic64Bug.ll | 2 +- test/CodeGen/X86/2010-01-18-DbgValue.ll | 15 +- test/CodeGen/X86/2010-02-01-DbgValueCrash.ll | 24 +- test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll | 6 +- test/CodeGen/X86/2010-02-23-DAGCombineBug.ll | 2 +- test/CodeGen/X86/2010-04-08-CoalescerBug.ll | 2 +- test/CodeGen/X86/2010-05-25-DotDebugLoc.ll | 11 +- test/CodeGen/X86/2010-05-26-DotDebugLoc.ll | 37 +- test/CodeGen/X86/2010-05-28-Crash.ll | 23 +- test/CodeGen/X86/2010-06-01-DeadArg-DbgInfo.ll | 43 +- test/CodeGen/X86/2010-07-06-DbgCrash.ll | 22 +- test/CodeGen/X86/2010-07-29-SetccSimplify.ll | 2 +- test/CodeGen/X86/2010-08-04-StackVariable.ll | 56 +- test/CodeGen/X86/2010-09-16-EmptyFilename.ll | 19 +- test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll | 8 +- test/CodeGen/X86/2010-11-02-DbgParameter.ll | 21 +- test/CodeGen/X86/2010-12-02-MC-Set.ll | 14 +- test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll | 19 +- test/CodeGen/X86/2011-04-19-sclr-bb.ll | 2 +- test/CodeGen/X86/2011-05-09-loaduse.ll | 2 +- .../CodeGen/X86/2011-05-26-UnreachableBlockElim.ll | 15 +- test/CodeGen/X86/2011-06-03-x87chain.ll | 18 + .../X86/2011-07-13-BadFrameIndexDisplacement.ll | 2 +- test/CodeGen/X86/2011-09-14-valcoalesce.ll | 37 +- test/CodeGen/X86/2011-09-18-sse2cmp.ll | 2 +- test/CodeGen/X86/2011-09-21-setcc-bug.ll | 2 +- test/CodeGen/X86/2011-10-11-srl.ll | 2 +- test/CodeGen/X86/2011-10-12-MachineCSE.ll | 29 +- .../X86/2011-10-18-FastISel-VectorParams.ll | 2 +- test/CodeGen/X86/2011-10-19-LegelizeLoad.ll | 3 +- test/CodeGen/X86/2011-10-27-tstore.ll | 2 +- test/CodeGen/X86/2011-10-30-padd.ll | 4 +- .../X86/2011-12-06-AVXVectorExtractCombine.ll | 2 +- test/CodeGen/X86/2011-12-15-vec_shift.ll | 4 +- .../2011-12-26-extractelement-duplicate-load.ll | 4 +- test/CodeGen/X86/2011-20-21-zext-ui2fp.ll | 2 +- test/CodeGen/X86/2012-01-11-split-cv.ll | 2 +- test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll | 2 +- test/CodeGen/X86/2012-01-18-vbitcast.ll | 2 +- test/CodeGen/X86/2012-02-20-MachineCPBug.ll | 78 - test/CodeGen/X86/2012-04-26-sdglue.ll | 6 +- test/CodeGen/X86/2012-05-17-TwoAddressBug.ll | 2 +- test/CodeGen/X86/2012-07-10-extload64.ll | 4 +- test/CodeGen/X86/2012-07-15-broadcastfold.ll | 2 +- test/CodeGen/X86/2012-08-07-CmpISelBug.ll | 2 +- test/CodeGen/X86/2012-08-16-setcc.ll | 8 +- test/CodeGen/X86/2012-08-17-legalizer-crash.ll | 3 +- test/CodeGen/X86/2012-1-10-buildvector.ll | 4 +- test/CodeGen/X86/2012-11-30-handlemove-dbg.ll | 8 +- test/CodeGen/X86/2012-11-30-misched-dbg.ll | 8 +- test/CodeGen/X86/2012-11-30-regpres-dbg.ll | 10 +- test/CodeGen/X86/2013-03-13-VEX-DestReg.ll | 2 +- .../X86/2013-10-14-FastISel-incorrect-vreg.ll | 132 + test/CodeGen/X86/3addr-16bit.ll | 23 +- test/CodeGen/X86/3addr-or.ll | 10 +- test/CodeGen/X86/GC/lit.local.cfg | 2 - test/CodeGen/X86/GC/ocaml-gc-assert.ll | 21 + test/CodeGen/X86/GC/ocaml-gc.ll | 20 +- test/CodeGen/X86/MachineSink-CritEdge.ll | 4 +- test/CodeGen/X86/MachineSink-DbgValue.ll | 15 +- test/CodeGen/X86/MergeConsecutiveStores.ll | 10 +- test/CodeGen/X86/StackColoring-dbg.ll | 9 +- test/CodeGen/X86/StackColoring.ll | 43 +- test/CodeGen/X86/WidenArith.ll | 2 +- test/CodeGen/X86/abi-isel.ll | 1224 +- test/CodeGen/X86/add-of-carry.ll | 6 +- test/CodeGen/X86/add.ll | 34 +- test/CodeGen/X86/aes_intrinsics.ll | 48 + test/CodeGen/X86/alias-error.ll | 5 + test/CodeGen/X86/aliases.ll | 26 +- test/CodeGen/X86/alloca-align-rounding-32.ll | 2 +- test/CodeGen/X86/alloca-align-rounding.ll | 2 +- test/CodeGen/X86/and-su.ll | 4 +- test/CodeGen/X86/anyregcc-crash.ll | 17 + test/CodeGen/X86/anyregcc.ll | 348 + test/CodeGen/X86/apm.ll | 8 +- test/CodeGen/X86/asm-global-imm.ll | 2 +- test/CodeGen/X86/asm-modifier-P.ll | 16 +- test/CodeGen/X86/asm-modifier.ll | 8 +- test/CodeGen/X86/atom-bypass-slow-division-64.ll | 21 +- test/CodeGen/X86/atom-bypass-slow-division.ll | 20 +- test/CodeGen/X86/atom-call-reg-indirect.ll | 14 +- test/CodeGen/X86/atom-lea-addw-bug.ll | 19 + test/CodeGen/X86/atom-lea-sp.ll | 12 +- test/CodeGen/X86/atom-sched.ll | 4 + test/CodeGen/X86/atomic-dagsched.ll | 8 +- test/CodeGen/X86/atomic-minmax-i6432.ll | 2 +- test/CodeGen/X86/atomic-or.ll | 4 +- test/CodeGen/X86/atomic_add.ll | 48 +- test/CodeGen/X86/avx-arith.ll | 5 +- test/CodeGen/X86/avx-basic.ll | 4 +- test/CodeGen/X86/avx-bitcast.ll | 2 +- test/CodeGen/X86/avx-blend.ll | 26 +- test/CodeGen/X86/avx-brcond.ll | 12 +- test/CodeGen/X86/avx-fp2int.ll | 4 +- test/CodeGen/X86/avx-intel-ocl.ll | 13 +- test/CodeGen/X86/avx-minmax.ll | 16 +- test/CodeGen/X86/avx-sext.ll | 11 + test/CodeGen/X86/avx-shift.ll | 3 +- test/CodeGen/X86/avx-shuffle-x86_32.ll | 2 +- test/CodeGen/X86/avx-shuffle.ll | 16 +- test/CodeGen/X86/avx-splat.ll | 2 +- test/CodeGen/X86/avx-trunc.ll | 7 +- test/CodeGen/X86/avx-varargs-x86_64.ll | 2 +- test/CodeGen/X86/avx-vextractf128.ll | 2 +- test/CodeGen/X86/avx-vpermil.ll | 2 +- test/CodeGen/X86/avx-zext.ll | 18 +- test/CodeGen/X86/avx2-arith.ll | 112 +- test/CodeGen/X86/avx2-conversions.ll | 28 + test/CodeGen/X86/avx2-gather.ll | 18 + test/CodeGen/X86/avx2-logic.ll | 4 +- test/CodeGen/X86/avx2-palignr.ll | 18 +- test/CodeGen/X86/avx2-phaddsub.ll | 16 +- test/CodeGen/X86/avx2-shift.ll | 8 +- test/CodeGen/X86/avx2-shuffle.ll | 8 +- test/CodeGen/X86/avx2-vbroadcast.ll | 24 +- test/CodeGen/X86/avx2-vector-shifts.ll | 247 + test/CodeGen/X86/avx512-arith.ll | 271 + test/CodeGen/X86/avx512-build-vector.ll | 18 + test/CodeGen/X86/avx512-cmp.ll | 27 + test/CodeGen/X86/avx512-cvt.ll | 217 + test/CodeGen/X86/avx512-fma-intrinsics.ll | 97 + test/CodeGen/X86/avx512-fma.ll | 83 + test/CodeGen/X86/avx512-gather-scatter-intrin.ll | 225 + test/CodeGen/X86/avx512-insert-extract.ll | 125 + test/CodeGen/X86/avx512-intrinsics.ll | 374 + test/CodeGen/X86/avx512-mask-op.ll | 57 + test/CodeGen/X86/avx512-mov.ll | 155 + test/CodeGen/X86/avx512-select.ll | 22 + test/CodeGen/X86/avx512-shift.ll | 108 + test/CodeGen/X86/avx512-shuffle.ll | 226 + test/CodeGen/X86/avx512-trunc-ext.ll | 127 + test/CodeGen/X86/avx512-vbroadcast.ll | 53 + test/CodeGen/X86/avx512-vec-cmp.ll | 113 + test/CodeGen/X86/bc-extract.ll | 2 +- test/CodeGen/X86/bigstructret2.ll | 10 +- test/CodeGen/X86/bitcast2.ll | 4 +- test/CodeGen/X86/blend-msb.ll | 8 +- test/CodeGen/X86/block-placement.ll | 50 +- test/CodeGen/X86/bmi.ll | 136 +- test/CodeGen/X86/bool-simplify.ll | 2 +- test/CodeGen/X86/brcond.ll | 18 +- test/CodeGen/X86/break-anti-dependencies.ll | 2 +- test/CodeGen/X86/break-avx-dep.ll | 29 + test/CodeGen/X86/break-sse-dep.ll | 12 +- test/CodeGen/X86/bswap-inline-asm.ll | 24 +- test/CodeGen/X86/bswap.ll | 113 +- test/CodeGen/X86/bt.ll | 54 +- test/CodeGen/X86/btq.ll | 4 +- test/CodeGen/X86/byval7.ll | 6 +- test/CodeGen/X86/call-push.ll | 2 +- test/CodeGen/X86/chain_order.ll | 37 + test/CodeGen/X86/change-compare-stride-1.ll | 2 +- .../X86/change-compare-stride-trickiness-0.ll | 2 +- .../X86/change-compare-stride-trickiness-1.ll | 2 +- test/CodeGen/X86/clz.ll | 24 +- test/CodeGen/X86/cmov-fp.ll | 192 +- test/CodeGen/X86/cmov-into-branch.ll | 10 +- test/CodeGen/X86/cmov.ll | 24 +- test/CodeGen/X86/cmp.ll | 27 +- test/CodeGen/X86/coalesce-implicitdef.ll | 35 +- test/CodeGen/X86/coalescer-commute1.ll | 2 +- test/CodeGen/X86/code_placement_align_all.ll | 2 +- test/CodeGen/X86/codegen-prepare.ll | 2 +- test/CodeGen/X86/codemodel.ll | 24 +- test/CodeGen/X86/coff-feat00.ll | 7 + test/CodeGen/X86/commute-two-addr.ll | 14 +- test/CodeGen/X86/compact-unwind.ll | 23 +- test/CodeGen/X86/compare-inf.ll | 114 +- test/CodeGen/X86/compiler_used.ll | 2 +- test/CodeGen/X86/conditional-indecrement.ll | 16 +- test/CodeGen/X86/crash-nosse.ll | 2 +- test/CodeGen/X86/crash.ll | 13 +- test/CodeGen/X86/critical-edge-split-2.ll | 2 +- test/CodeGen/X86/ctpop-combine.ll | 6 +- test/CodeGen/X86/dag-rauw-cse.ll | 2 +- test/CodeGen/X86/dagcombine-buildvector.ll | 4 +- test/CodeGen/X86/dagcombine-shifts.ll | 209 + test/CodeGen/X86/dagcombine-unsafe-math.ll | 56 + test/CodeGen/X86/dagcombine_unsafe_math.ll | 56 - test/CodeGen/X86/dbg-at-specficiation.ll | 20 - test/CodeGen/X86/dbg-byval-parameter.ll | 49 - test/CodeGen/X86/dbg-const-int.ll | 30 - test/CodeGen/X86/dbg-const.ll | 36 - test/CodeGen/X86/dbg-declare-arg.ll | 125 - test/CodeGen/X86/dbg-declare.ll | 55 - test/CodeGen/X86/dbg-file-name.ll | 21 - test/CodeGen/X86/dbg-i128-const.ll | 31 - test/CodeGen/X86/dbg-large-unsigned-const.ll | 58 - test/CodeGen/X86/dbg-merge-loc-entry.ll | 78 - test/CodeGen/X86/dbg-prolog-end.ll | 55 - test/CodeGen/X86/dbg-subrange.ll | 34 - test/CodeGen/X86/dbg-value-dag-combine.ll | 47 - test/CodeGen/X86/dbg-value-isel.ll | 103 - test/CodeGen/X86/dbg-value-location.ll | 74 - test/CodeGen/X86/dbg-value-range.ll | 60 - test/CodeGen/X86/divide-by-constant.ll | 18 +- test/CodeGen/X86/dwarf-comp-dir.ll | 5 +- test/CodeGen/X86/dyn_alloca_aligned.ll | 9 + test/CodeGen/X86/emit-big-cst.ll | 17 + test/CodeGen/X86/extended-fma-contraction.ll | 22 + test/CodeGen/X86/extractelement-load.ll | 4 +- test/CodeGen/X86/fabs.ll | 18 +- test/CodeGen/X86/fast-cc-merge-stack-adj.ll | 2 +- test/CodeGen/X86/fast-cc-pass-in-regs.ll | 8 +- test/CodeGen/X86/fast-isel-call.ll | 8 +- test/CodeGen/X86/fast-isel-divrem-x86-64.ll | 10 +- test/CodeGen/X86/fast-isel-divrem.ll | 28 +- test/CodeGen/X86/fast-isel-extract.ll | 4 +- test/CodeGen/X86/fast-isel-fneg.ll | 4 +- test/CodeGen/X86/fast-isel-gep.ll | 20 +- test/CodeGen/X86/fast-isel-i1.ll | 4 +- test/CodeGen/X86/fast-isel-mem.ll | 6 +- test/CodeGen/X86/fast-isel-ret-ext.ll | 12 +- test/CodeGen/X86/fast-isel-store.ll | 64 + test/CodeGen/X86/fast-isel-tls.ll | 4 +- test/CodeGen/X86/fast-isel-unaligned-store.ll | 18 - test/CodeGen/X86/fast-isel-x86-64.ll | 46 +- test/CodeGen/X86/fast-isel-x86.ll | 10 +- test/CodeGen/X86/fastcc.ll | 4 +- .../CodeGen/X86/fastisel-gep-promote-before-add.ll | 37 + test/CodeGen/X86/floor-soft-float.ll | 13 + test/CodeGen/X86/fma.ll | 8 + test/CodeGen/X86/fma_patterns.ll | 8 +- test/CodeGen/X86/fma_patterns_wide.ll | 84 + test/CodeGen/X86/fold-add.ll | 2 +- test/CodeGen/X86/fold-and-shift.ll | 8 +- test/CodeGen/X86/fold-load-vec.ll | 6 +- test/CodeGen/X86/fold-load.ll | 14 +- test/CodeGen/X86/fold-pcmpeqd-1.ll | 4 +- test/CodeGen/X86/fold-pcmpeqd-2.ll | 17 +- test/CodeGen/X86/force-align-stack-alloca.ll | 2 +- test/CodeGen/X86/fp-elim-and-no-fp-elim.ll | 4 +- test/CodeGen/X86/fp-elim.ll | 70 +- test/CodeGen/X86/fp-fast.ll | 83 +- test/CodeGen/X86/fp-select-cmp-and.ll | 185 + test/CodeGen/X86/fp-une-cmp.ll | 43 + test/CodeGen/X86/fp_constant_op.ll | 24 +- test/CodeGen/X86/frame-base.ll | 22 + test/CodeGen/X86/full-lsr.ll | 2 +- test/CodeGen/X86/gather-addresses.ll | 38 +- test/CodeGen/X86/gcc_except_table.ll | 6 + test/CodeGen/X86/ghc-cc.ll | 7 +- test/CodeGen/X86/ghc-cc64.ll | 31 +- test/CodeGen/X86/global-sections.ll | 8 +- test/CodeGen/X86/h-register-addressing-32.ll | 23 +- test/CodeGen/X86/h-register-addressing-64.ll | 23 +- test/CodeGen/X86/h-registers-0.ll | 42 +- test/CodeGen/X86/h-registers-1.ll | 15 +- test/CodeGen/X86/h-registers-2.ll | 2 +- test/CodeGen/X86/haddsub.ll | 92 +- test/CodeGen/X86/hidden-vis-4.ll | 2 +- test/CodeGen/X86/hidden-vis.ll | 6 +- test/CodeGen/X86/hipe-cc.ll | 6 +- test/CodeGen/X86/hipe-cc64.ll | 12 +- test/CodeGen/X86/hipe-prologue.ll | 12 +- test/CodeGen/X86/hoist-common.ll | 14 +- test/CodeGen/X86/i128-mul.ll | 36 +- test/CodeGen/X86/i128-sdiv.ll | 6 +- test/CodeGen/X86/i486-fence-loop.ll | 27 + test/CodeGen/X86/iabs.ll | 2 +- test/CodeGen/X86/ident-metadata.ll | 9 + test/CodeGen/X86/inline-asm-R-constraint.ll | 2 +- test/CodeGen/X86/inline-asm-error.ll | 2 +- test/CodeGen/X86/inline-asm-flag-clobber.ll | 31 +- test/CodeGen/X86/inline-asm-fpstack.ll | 2 +- test/CodeGen/X86/inreg.ll | 4 +- test/CodeGen/X86/ins_subreg_coalesce-1.ll | 4 +- test/CodeGen/X86/isel-optnone.ll | 42 + test/CodeGen/X86/isel-sink.ll | 2 +- test/CodeGen/X86/jump_sign.ll | 76 +- test/CodeGen/X86/large-gep-chain.ll | 25607 +++++++++++++++++++ test/CodeGen/X86/lea-2.ll | 2 +- test/CodeGen/X86/lea-recursion.ll | 3 +- test/CodeGen/X86/lea.ll | 10 +- test/CodeGen/X86/leaf-fp-elim.ll | 4 +- test/CodeGen/X86/legalize-shift-64.ll | 39 +- test/CodeGen/X86/licm-dominance.ll | 2 +- test/CodeGen/X86/licm-nested.ll | 2 +- test/CodeGen/X86/lit.local.cfg | 8 +- test/CodeGen/X86/load-slice.ll | 139 + test/CodeGen/X86/lock-inst-encoding.ll | 10 +- test/CodeGen/X86/long-extend.ll | 18 + test/CodeGen/X86/longlong-deadload.ll | 2 +- test/CodeGen/X86/loop-blocks.ll | 8 +- test/CodeGen/X86/lsr-interesting-step.ll | 2 +- test/CodeGen/X86/lsr-loop-exit-cond.ll | 15 +- test/CodeGen/X86/lsr-reuse.ll | 22 +- test/CodeGen/X86/lsr-static-addr.ll | 3 +- test/CodeGen/X86/lzcnt.ll | 16 +- test/CodeGen/X86/machine-cp.ll | 4 +- test/CodeGen/X86/machine-cse.ll | 11 +- test/CodeGen/X86/masked-iv-safe.ll | 50 +- test/CodeGen/X86/maskmovdqu.ll | 6 +- test/CodeGen/X86/mcinst-avx-lowering.ll | 4 +- test/CodeGen/X86/mcinst-lowering.ll | 18 + test/CodeGen/X86/memcmp.ll | 14 +- test/CodeGen/X86/memcpy-2.ll | 54 +- test/CodeGen/X86/memcpy.ll | 12 +- test/CodeGen/X86/memset-2.ll | 8 +- test/CodeGen/X86/memset-sse-stack-realignment.ll | 20 +- test/CodeGen/X86/merge_store.ll | 30 + test/CodeGen/X86/mingw-alloca.ll | 25 +- test/CodeGen/X86/misched-balance.ll | 59 +- test/CodeGen/X86/misched-copy.ll | 12 +- test/CodeGen/X86/misched-fusion.ll | 108 + test/CodeGen/X86/misched-matmul.ll | 11 +- test/CodeGen/X86/misched-matrix.ll | 12 +- test/CodeGen/X86/mmx-arg-passing.ll | 21 +- test/CodeGen/X86/mmx-builtins.ll | 12 +- test/CodeGen/X86/mmx-punpckhdq.ll | 2 +- test/CodeGen/X86/mmx-shift.ll | 15 +- test/CodeGen/X86/movbe.ll | 17 +- test/CodeGen/X86/movgs.ll | 20 +- test/CodeGen/X86/movmsk.ll | 6 +- test/CodeGen/X86/ms-inline-asm.ll | 4 +- test/CodeGen/X86/narrow-shl-cst.ll | 22 +- test/CodeGen/X86/narrow-shl-load.ll | 2 +- test/CodeGen/X86/narrow_op-1.ll | 13 +- test/CodeGen/X86/neg_cmp.ll | 2 +- test/CodeGen/X86/neg_fp.ll | 2 +- test/CodeGen/X86/newline-and-quote.ll | 6 + test/CodeGen/X86/no-cmov.ll | 2 +- test/CodeGen/X86/no-compact-unwind.ll | 24 +- test/CodeGen/X86/no-elf-compact-unwind.ll | 48 + test/CodeGen/X86/nocx16.ll | 21 + test/CodeGen/X86/non-lazy-bind.ll | 6 +- test/CodeGen/X86/nonconst-static-ev.ll | 9 + test/CodeGen/X86/nonconst-static-iv.ll | 9 + test/CodeGen/X86/nosse-error1.ll | 2 +- test/CodeGen/X86/nosse-error2.ll | 2 +- test/CodeGen/X86/object-size.ll | 8 +- test/CodeGen/X86/opt-shuff-tstore.ll | 2 +- test/CodeGen/X86/optimize-max-3.ll | 4 +- test/CodeGen/X86/or-address.ll | 2 +- test/CodeGen/X86/palignr-2.ll | 4 +- test/CodeGen/X86/palignr.ll | 20 +- test/CodeGen/X86/pass-three.ll | 2 +- test/CodeGen/X86/patchpoint.ll | 100 + test/CodeGen/X86/peep-setb.ll | 18 +- test/CodeGen/X86/peep-test-3.ll | 8 +- test/CodeGen/X86/peep-test-4.ll | 191 + test/CodeGen/X86/peep-vector-extract-concat.ll | 4 +- test/CodeGen/X86/phaddsub.ll | 56 +- test/CodeGen/X86/phys_subreg_coalesce-3.ll | 2 +- test/CodeGen/X86/pic.ll | 16 +- test/CodeGen/X86/pmovext.ll | 27 +- test/CodeGen/X86/pmovsx-inreg.ll | 51 +- test/CodeGen/X86/pmul.ll | 4 +- test/CodeGen/X86/pmulld.ll | 12 +- test/CodeGen/X86/popcnt.ll | 8 +- test/CodeGen/X86/postra-licm.ll | 4 +- test/CodeGen/X86/pr10523.ll | 2 +- test/CodeGen/X86/pr10524.ll | 2 +- test/CodeGen/X86/pr10525.ll | 2 +- test/CodeGen/X86/pr10526.ll | 2 +- test/CodeGen/X86/pr12312.ll | 2 +- test/CodeGen/X86/pr12360.ll | 8 +- test/CodeGen/X86/pr13209.ll | 2 +- test/CodeGen/X86/pr14088.ll | 15 +- test/CodeGen/X86/pr14090.ll | 10 +- test/CodeGen/X86/pr1505b.ll | 3 +- test/CodeGen/X86/pr16031.ll | 27 + test/CodeGen/X86/pr16360.ll | 16 + test/CodeGen/X86/pr16807.ll | 18 + test/CodeGen/X86/pr17546.ll | 10 + test/CodeGen/X86/pr17631.ll | 34 + test/CodeGen/X86/pr17764.ll | 10 + test/CodeGen/X86/pr18014.ll | 16 + test/CodeGen/X86/pr18023.ll | 31 + test/CodeGen/X86/pr18054.ll | 10 + test/CodeGen/X86/pr18162.ll | 27 + test/CodeGen/X86/pr2182.ll | 2 +- test/CodeGen/X86/pr3216.ll | 2 +- test/CodeGen/X86/pr3457.ll | 2 +- test/CodeGen/X86/pre-ra-sched.ll | 5 +- test/CodeGen/X86/prefetch.ll | 5 + test/CodeGen/X86/prefixdata.ll | 17 + test/CodeGen/X86/private.ll | 16 +- test/CodeGen/X86/promote-i16.ll | 4 +- test/CodeGen/X86/rd-mod-wr-eflags.ll | 2 +- test/CodeGen/X86/rdrand.ll | 18 +- test/CodeGen/X86/rdseed.ll | 14 +- test/CodeGen/X86/red-zone.ll | 4 +- test/CodeGen/X86/red-zone2.ll | 2 +- test/CodeGen/X86/rem-2.ll | 7 - test/CodeGen/X86/rem.ll | 17 +- test/CodeGen/X86/remat-mov-0.ll | 6 +- test/CodeGen/X86/remat-phys-dead.ll | 23 + test/CodeGen/X86/ret-mmx.ll | 8 +- test/CodeGen/X86/returned-trunc-tail-calls.ll | 97 + test/CodeGen/X86/reverse_branches.ll | 2 +- test/CodeGen/X86/rodata-relocs.ll | 37 +- test/CodeGen/X86/rot16.ll | 16 +- test/CodeGen/X86/rot32.ll | 24 +- test/CodeGen/X86/rot64.ll | 8 +- test/CodeGen/X86/rounding-ops.ll | 42 +- test/CodeGen/X86/sandybridge-loads.ll | 2 +- test/CodeGen/X86/scalar_widen_div.ll | 2 +- test/CodeGen/X86/sdiv-exact.ll | 4 +- test/CodeGen/X86/segmented-stacks-dynamic.ll | 8 +- test/CodeGen/X86/segmented-stacks.ll | 38 +- test/CodeGen/X86/select.ll | 96 +- test/CodeGen/X86/select_const.ll | 2 +- test/CodeGen/X86/setcc-narrowing.ll | 18 + test/CodeGen/X86/setcc-sentinals.ll | 13 + test/CodeGen/X86/setcc.ll | 6 +- test/CodeGen/X86/sext-i1.ll | 12 +- test/CodeGen/X86/sext-load.ll | 4 +- test/CodeGen/X86/sext-subreg.ll | 2 +- test/CodeGen/X86/sha.ll | 139 + test/CodeGen/X86/shift-and.ll | 18 +- test/CodeGen/X86/shift-bmi2.ll | 27 +- test/CodeGen/X86/shift-coalesce.ll | 4 +- test/CodeGen/X86/shift-codegen.ll | 4 +- test/CodeGen/X86/shift-combine.ll | 2 +- test/CodeGen/X86/shift-folding.ll | 10 +- test/CodeGen/X86/shl-anyext.ll | 2 +- test/CodeGen/X86/shl_elim.ll | 9 +- test/CodeGen/X86/shrink-compare.ll | 59 +- test/CodeGen/X86/sibcall-2.ll | 16 +- test/CodeGen/X86/sibcall-3.ll | 4 +- test/CodeGen/X86/sibcall-4.ll | 2 +- test/CodeGen/X86/sibcall-5.ll | 8 +- test/CodeGen/X86/sibcall-6.ll | 13 + test/CodeGen/X86/sibcall.ll | 86 +- test/CodeGen/X86/simple-zext.ll | 16 + test/CodeGen/X86/sincos-opt.ll | 14 +- test/CodeGen/X86/sincos.ll | 10 +- test/CodeGen/X86/sink-hoist.ll | 19 +- test/CodeGen/X86/smul-with-overflow.ll | 10 +- test/CodeGen/X86/splat-scalar-load.ll | 2 +- test/CodeGen/X86/sqrt-fastmath.ll | 60 + test/CodeGen/X86/sse-align-12.ll | 8 +- test/CodeGen/X86/sse-align-2.ll | 4 +- test/CodeGen/X86/sse-commute.ll | 2 +- test/CodeGen/X86/sse-intrinsics-x86.ll | 308 + test/CodeGen/X86/sse-minmax.ll | 407 +- test/CodeGen/X86/sse1.ll | 2 +- test/CodeGen/X86/sse2-blend.ll | 2 +- test/CodeGen/X86/sse2-intrinsics-x86.ll | 712 + test/CodeGen/X86/sse2-mul.ll | 2 +- test/CodeGen/X86/sse2-vector-shifts.ll | 247 + test/CodeGen/X86/sse2.ll | 51 +- test/CodeGen/X86/sse3-intrinsics-x86.ll | 57 + test/CodeGen/X86/sse3.ll | 56 +- test/CodeGen/X86/sse41-blend.ll | 16 +- test/CodeGen/X86/sse41-intrinsics-x86.ll | 326 + test/CodeGen/X86/sse41.ll | 16 +- test/CodeGen/X86/sse42-intrinsics-x86.ll | 182 + test/CodeGen/X86/sse42.ll | 4 +- test/CodeGen/X86/sse42_64.ll | 2 +- test/CodeGen/X86/sse4a.ll | 12 +- test/CodeGen/X86/sse_partial_update.ll | 4 +- test/CodeGen/X86/ssse3-intrinsics-x86.ll | 120 + test/CodeGen/X86/stack-align-memcpy.ll | 2 +- test/CodeGen/X86/stack-align.ll | 4 +- test/CodeGen/X86/stack-protector-dbginfo.ll | 97 + .../X86/stack-protector-vreg-to-vreg-copy.ll | 61 + test/CodeGen/X86/stack-protector.ll | 825 +- test/CodeGen/X86/stackmap.ll | 292 + test/CodeGen/X86/stdcall-notailcall.ll | 2 +- test/CodeGen/X86/store-narrow.ll | 56 +- test/CodeGen/X86/store_op_load_fold.ll | 4 +- test/CodeGen/X86/store_op_load_fold2.ll | 8 +- test/CodeGen/X86/sub-with-overflow.ll | 6 +- test/CodeGen/X86/sub.ll | 2 +- test/CodeGen/X86/subtarget-feature-change.ll | 62 - test/CodeGen/X86/switch-bt.ll | 4 +- test/CodeGen/X86/switch-order-weight.ll | 2 +- test/CodeGen/X86/tail-call-attrs.ll | 56 + test/CodeGen/X86/tail-call-got.ll | 4 +- test/CodeGen/X86/tail-call-legality.ll | 32 + test/CodeGen/X86/tail-opts.ll | 22 +- test/CodeGen/X86/tailcall-64.ll | 32 +- test/CodeGen/X86/tailcall-calleesave.ll | 19 + test/CodeGen/X86/tailcall-cgp-dup.ll | 4 +- test/CodeGen/X86/tailcall-disable.ll | 8 +- test/CodeGen/X86/tailcall-largecode.ll | 2 +- test/CodeGen/X86/tailcallbyval64.ll | 2 +- test/CodeGen/X86/tailcallfp2.ll | 2 +- test/CodeGen/X86/tbm-intrinsics-x86_64.ll | 43 + test/CodeGen/X86/tbm_patterns.ll | 253 + test/CodeGen/X86/test-nofold.ll | 9 +- test/CodeGen/X86/test-shrink.ll | 36 +- test/CodeGen/X86/testl-commute.ll | 6 +- test/CodeGen/X86/this-return-64.ll | 12 +- test/CodeGen/X86/tls-local-dynamic.ll | 4 +- test/CodeGen/X86/tls-models.ll | 80 +- test/CodeGen/X86/tls-pic.ll | 20 +- test/CodeGen/X86/tls-pie.ll | 16 +- test/CodeGen/X86/tls.ll | 109 +- test/CodeGen/X86/tlv-1.ll | 4 +- test/CodeGen/X86/tlv-3.ll | 10 + test/CodeGen/X86/trap.ll | 4 +- test/CodeGen/X86/trunc-ext-ld-st.ll | 14 +- test/CodeGen/X86/trunc-to-bool.ll | 12 +- test/CodeGen/X86/twoaddr-lea.ll | 6 +- test/CodeGen/X86/uint_to_fp-2.ll | 2 +- test/CodeGen/X86/umul-with-overflow.ll | 6 +- test/CodeGen/X86/unaligned-spill-folding.ll | 49 + test/CodeGen/X86/unknown-location.ll | 13 +- test/CodeGen/X86/unwind-init.ll | 36 + test/CodeGen/X86/use-add-flags.ll | 6 +- test/CodeGen/X86/v-binop-widen.ll | 3 +- test/CodeGen/X86/v-binop-widen2.ll | 2 +- test/CodeGen/X86/v2f32.ll | 30 +- test/CodeGen/X86/v4i32load-crash.ll | 27 + test/CodeGen/X86/v8i1-masks.ll | 2 +- test/CodeGen/X86/vec-sign.ll | 4 +- test/CodeGen/X86/vec_cast2.ll | 12 +- test/CodeGen/X86/vec_compare-sse4.ll | 16 +- test/CodeGen/X86/vec_compare.ll | 28 +- test/CodeGen/X86/vec_extract-sse4.ll | 2 +- test/CodeGen/X86/vec_extract.ll | 2 +- test/CodeGen/X86/vec_fpext.ll | 2 +- test/CodeGen/X86/vec_insert-2.ll | 14 +- test/CodeGen/X86/vec_insert-3.ll | 2 +- test/CodeGen/X86/vec_insert-5.ll | 44 +- test/CodeGen/X86/vec_insert-7.ll | 2 +- test/CodeGen/X86/vec_insert-8.ll | 2 +- test/CodeGen/X86/vec_insert-9.ll | 2 +- test/CodeGen/X86/vec_insert.ll | 4 +- test/CodeGen/X86/vec_round.ll | 22 + test/CodeGen/X86/vec_sdiv_to_shift.ll | 8 + test/CodeGen/X86/vec_set-8.ll | 4 +- test/CodeGen/X86/vec_set-9.ll | 2 +- test/CodeGen/X86/vec_set-C.ll | 6 +- test/CodeGen/X86/vec_set.ll | 2 +- test/CodeGen/X86/vec_setcc.ll | 187 + test/CodeGen/X86/vec_shift4.ll | 2 +- test/CodeGen/X86/vec_shuffle-14.ll | 38 +- test/CodeGen/X86/vec_shuffle-16.ll | 16 +- test/CodeGen/X86/vec_shuffle-17.ll | 4 +- test/CodeGen/X86/vec_shuffle-25.ll | 2 +- test/CodeGen/X86/vec_shuffle-26.ll | 2 +- test/CodeGen/X86/vec_shuffle-27.ll | 6 +- test/CodeGen/X86/vec_shuffle-36.ll | 2 +- test/CodeGen/X86/vec_shuffle-39.ll | 18 +- test/CodeGen/X86/vec_splat-2.ll | 2 +- test/CodeGen/X86/vec_splat-3.ll | 50 +- test/CodeGen/X86/vec_splat.ll | 8 +- test/CodeGen/X86/vec_split.ll | 42 + test/CodeGen/X86/vec_ss_load_fold.ll | 12 +- test/CodeGen/X86/vec_uint_to_fp.ll | 2 +- test/CodeGen/X86/vector-gep.ll | 14 +- test/CodeGen/X86/vector-variable-idx2.ll | 2 +- test/CodeGen/X86/viabs.ll | 50 +- test/CodeGen/X86/vselect-minmax.ll | 384 +- test/CodeGen/X86/vshift-1.ll | 24 +- test/CodeGen/X86/vshift-2.ll | 24 +- test/CodeGen/X86/vshift-3.ll | 22 +- test/CodeGen/X86/vshift-4.ll | 26 +- test/CodeGen/X86/vshift-5.ll | 8 +- test/CodeGen/X86/vsplit-and.ll | 2 +- test/CodeGen/X86/warn-stack.ll | 24 + test/CodeGen/X86/weak_def_can_be_hidden.ll | 26 + test/CodeGen/X86/wide-fma-contraction.ll | 19 +- test/CodeGen/X86/widen_arith-1.ll | 2 +- test/CodeGen/X86/widen_arith-2.ll | 2 +- test/CodeGen/X86/widen_arith-3.ll | 6 +- test/CodeGen/X86/widen_arith-4.ll | 4 +- test/CodeGen/X86/widen_arith-5.ll | 4 +- test/CodeGen/X86/widen_arith-6.ll | 2 +- test/CodeGen/X86/widen_cast-1.ll | 4 +- test/CodeGen/X86/widen_cast-2.ll | 2 +- test/CodeGen/X86/widen_cast-3.ll | 2 +- test/CodeGen/X86/widen_cast-4.ll | 2 +- test/CodeGen/X86/widen_cast-5.ll | 2 +- test/CodeGen/X86/widen_cast-6.ll | 2 +- test/CodeGen/X86/widen_conv-1.ll | 2 +- test/CodeGen/X86/widen_conv-2.ll | 6 +- test/CodeGen/X86/widen_conv-3.ll | 2 +- test/CodeGen/X86/widen_conv-4.ll | 2 +- test/CodeGen/X86/widen_extract-1.ll | 4 +- test/CodeGen/X86/widen_load-1.ll | 4 +- test/CodeGen/X86/widen_load-2.ll | 14 +- test/CodeGen/X86/widen_shuffle-1.ll | 12 +- test/CodeGen/X86/win32_sret.ll | 4 +- test/CodeGen/X86/win64_alloca_dynalloca.ll | 66 +- test/CodeGen/X86/win64_params.ll | 25 + test/CodeGen/X86/win64_vararg.ll | 66 +- test/CodeGen/X86/win_chkstk.ll | 13 + test/CodeGen/X86/x86-64-and-mask.ll | 12 +- test/CodeGen/X86/x86-64-pic-10.ll | 4 +- test/CodeGen/X86/x86-64-psub.ll | 220 + test/CodeGen/X86/x86-64-sret-return.ll | 8 +- test/CodeGen/X86/x86-64-tls-1.ll | 6 +- test/CodeGen/X86/x86-shifts.ll | 12 +- test/CodeGen/X86/xmulo.ll | 6 +- test/CodeGen/X86/xor-icmp.ll | 8 +- test/CodeGen/X86/xor.ll | 67 +- test/CodeGen/X86/zero-remat.ll | 8 +- test/CodeGen/X86/zext-extract_subreg.ll | 4 +- test/CodeGen/X86/zext-fold.ll | 6 +- test/CodeGen/X86/zext-sext.ll | 17 +- test/CodeGen/X86/zext-shl.ll | 4 +- test/CodeGen/X86/zext-trunc.ll | 2 +- test/CodeGen/XCore/2011-08-01-DynamicAllocBug.ll | 2 +- test/CodeGen/XCore/2011-08-01-VarargsBug.ll | 17 - test/CodeGen/XCore/addsub64.ll | 6 +- test/CodeGen/XCore/aliases.ll | 14 +- test/CodeGen/XCore/alignment.ll | 9 + test/CodeGen/XCore/ashr.ll | 32 +- test/CodeGen/XCore/atomic.ll | 16 + test/CodeGen/XCore/bigstructret.ll | 4 +- test/CodeGen/XCore/byVal.ll | 73 + test/CodeGen/XCore/constants.ll | 10 +- test/CodeGen/XCore/epilogue_prologue.ll | 26 + test/CodeGen/XCore/events.ll | 4 +- test/CodeGen/XCore/exception.ll | 129 + test/CodeGen/XCore/float-intrinsics.ll | 40 +- test/CodeGen/XCore/fneg.ll | 2 +- test/CodeGen/XCore/getid.ll | 2 +- test/CodeGen/XCore/globals.ll | 20 +- test/CodeGen/XCore/indirectbr.ll | 2 +- test/CodeGen/XCore/inline-asm.ll | 32 + test/CodeGen/XCore/ladd_lsub_combine.ll | 10 +- test/CodeGen/XCore/licm-ldwcp.ll | 2 +- test/CodeGen/XCore/linkage.ll | 38 + test/CodeGen/XCore/lit.local.cfg | 2 - test/CodeGen/XCore/load.ll | 17 +- test/CodeGen/XCore/misc-intrinsics.ll | 18 +- test/CodeGen/XCore/mkmsk.ll | 2 +- test/CodeGen/XCore/mul64.ll | 8 +- test/CodeGen/XCore/offset_folding.ll | 8 +- test/CodeGen/XCore/private.ll | 2 +- test/CodeGen/XCore/ps-intrinsics.ll | 4 +- test/CodeGen/XCore/resources.ll | 54 +- test/CodeGen/XCore/sext.ll | 8 +- test/CodeGen/XCore/shedulingPreference.ll | 25 + test/CodeGen/XCore/sr-intrinsics.ll | 4 +- test/CodeGen/XCore/store.ll | 8 +- test/CodeGen/XCore/threads.ll | 142 +- test/CodeGen/XCore/tls.ll | 2 +- test/CodeGen/XCore/trampoline.ll | 2 +- test/CodeGen/XCore/trap.ll | 2 +- test/CodeGen/XCore/unaligned_load.ll | 4 +- test/CodeGen/XCore/unaligned_store.ll | 2 +- test/CodeGen/XCore/unaligned_store_combine.ll | 2 +- test/CodeGen/XCore/varargs.ll | 55 + test/CodeGen/XCore/zext.ll | 10 + test/CodeGen/XCore/zextfree.ll | 15 + test/DebugInfo/2009-11-03-InsertExtractValue.ll | 15 +- test/DebugInfo/2009-11-05-DeadGlobalVariable.ll | 20 +- .../DebugInfo/2009-11-06-NamelessGlobalVariable.ll | 15 +- test/DebugInfo/2009-11-10-CurrentFn.ll | 21 +- test/DebugInfo/2010-01-05-DbgScope.ll | 17 +- test/DebugInfo/2010-01-19-DbgScope.ll | 23 +- test/DebugInfo/2010-03-12-llc-crash.ll | 16 +- test/DebugInfo/2010-03-19-DbgDeclare.ll | 2 + test/DebugInfo/2010-03-24-MemberFn.ll | 21 +- test/DebugInfo/2010-03-30-InvalidDbgInfoCrash.ll | 30 +- test/DebugInfo/2010-04-06-NestedFnDbgInfo.ll | 36 +- test/DebugInfo/2010-04-19-FramePtr.ll | 20 +- test/DebugInfo/2010-05-03-DisableFramePtr.ll | 34 +- test/DebugInfo/2010-05-03-OriginDIE.ll | 48 +- test/DebugInfo/2010-05-10-MultipleCU.ll | 29 +- test/DebugInfo/2010-06-29-InlinedFnLocalVar.ll | 18 +- test/DebugInfo/2010-07-19-Crash.ll | 24 +- test/DebugInfo/2010-10-01-crash.ll | 14 +- test/DebugInfo/AArch64/dwarfdump.ll | 8 +- test/DebugInfo/AArch64/lit.local.cfg | 2 - test/DebugInfo/AArch64/variable-loc.ll | 39 +- test/DebugInfo/ARM/PR16736.ll | 65 + test/DebugInfo/ARM/lit.local.cfg | 4 + test/DebugInfo/ARM/lowerbdgdeclare_vla.ll | 103 + test/DebugInfo/ARM/selectiondag-deadcode.ll | 27 + test/DebugInfo/Inputs/dwarfdump-inl-test.cc | 3 + .../Inputs/dwarfdump-inl-test.high_pc.elf-x86-64 | Bin 0 -> 7422 bytes .../Inputs/dwarfdump-test-loc-list-32bit.elf.cpp | 13 + .../Inputs/dwarfdump-test-loc-list-32bit.elf.o | Bin 0 -> 2604 bytes .../Inputs/dwarfdump-test.elf-x86-64.debuglink | Bin 0 -> 8668 bytes test/DebugInfo/Inputs/dwarfdump-type-units.cc | 15 + .../Inputs/dwarfdump-type-units.elf-x86-64 | Bin 0 -> 3928 bytes test/DebugInfo/Inputs/lit.local.cfg | 1 - test/DebugInfo/Inputs/macho-universal | Bin 0 -> 16660 bytes test/DebugInfo/Inputs/macho-universal.cc | 10 + test/DebugInfo/PowerPC/lit.local.cfg | 3 + test/DebugInfo/PowerPC/tls-fission.ll | 32 + test/DebugInfo/PowerPC/tls.ll | 29 + test/DebugInfo/SystemZ/lit.local.cfg | 2 - test/DebugInfo/SystemZ/variable-loc.ll | 26 +- test/DebugInfo/X86/2010-04-13-PubType.ll | 17 +- test/DebugInfo/X86/2010-08-10-DbgConstant.ll | 18 +- test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll | 14 +- test/DebugInfo/X86/2011-12-16-BadStructRef.ll | 38 +- test/DebugInfo/X86/DW_AT_byte_size.ll | 13 +- test/DebugInfo/X86/DW_AT_location-reference.ll | 12 +- test/DebugInfo/X86/DW_AT_object_pointer.ll | 18 +- test/DebugInfo/X86/DW_AT_specification.ll | 16 +- test/DebugInfo/X86/DW_AT_stmt_list_sec_offset.ll | 41 + test/DebugInfo/X86/DW_TAG_friend.ll | 22 +- test/DebugInfo/X86/aligned_stack_var.ll | 15 +- test/DebugInfo/X86/arguments.ll | 73 + test/DebugInfo/X86/block-capture.ll | 25 +- test/DebugInfo/X86/byvalstruct.ll | 127 + test/DebugInfo/X86/coff_relative_names.ll | 41 + test/DebugInfo/X86/concrete_out_of_line.ll | 36 +- test/DebugInfo/X86/data_member_location.ll | 44 + test/DebugInfo/X86/dbg-at-specficiation.ll | 21 + test/DebugInfo/X86/dbg-byval-parameter.ll | 52 + test/DebugInfo/X86/dbg-const-int.ll | 37 + test/DebugInfo/X86/dbg-const.ll | 51 + test/DebugInfo/X86/dbg-declare-arg.ll | 127 + test/DebugInfo/X86/dbg-declare.ll | 58 + test/DebugInfo/X86/dbg-file-name.ll | 24 + test/DebugInfo/X86/dbg-i128-const.ll | 34 + test/DebugInfo/X86/dbg-large-unsigned-const.ll | 62 + test/DebugInfo/X86/dbg-merge-loc-entry.ll | 75 + test/DebugInfo/X86/dbg-prolog-end.ll | 59 + test/DebugInfo/X86/dbg-subrange.ll | 37 + test/DebugInfo/X86/dbg-value-dag-combine.ll | 49 + test/DebugInfo/X86/dbg-value-inlined-parameter.ll | 19 +- test/DebugInfo/X86/dbg-value-isel.ll | 106 + test/DebugInfo/X86/dbg-value-location.ll | 77 + test/DebugInfo/X86/dbg-value-range.ll | 63 + test/DebugInfo/X86/dbg-value-terminator.ll | 133 + test/DebugInfo/X86/dbg_value_direct.ll | 177 + .../X86/debug-info-block-captured-self.ll | 14 +- test/DebugInfo/X86/debug-info-blocks.ll | 47 +- test/DebugInfo/X86/debug-info-static-member.ll | 17 +- test/DebugInfo/X86/debug_frame.ll | 11 +- .../DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll | 89 + test/DebugInfo/X86/dwarf-aranges.ll | 87 + test/DebugInfo/X86/dwarf-public-names.ll | 132 + test/DebugInfo/X86/dwarf-pubnames-split.ll | 38 + test/DebugInfo/X86/earlydup-crash.ll | 85 +- test/DebugInfo/X86/eh_symbol.ll | 16 +- test/DebugInfo/X86/elf-names.ll | 25 +- test/DebugInfo/X86/empty-and-one-elem-array.ll | 56 +- test/DebugInfo/X86/empty-array.ll | 34 +- test/DebugInfo/X86/ending-run.ll | 8 +- test/DebugInfo/X86/enum-class.ll | 20 +- test/DebugInfo/X86/enum-fwd-decl.ll | 9 +- test/DebugInfo/X86/fission-cu.ll | 24 +- test/DebugInfo/X86/fission-hash.ll | 16 + test/DebugInfo/X86/fission-ranges.ll | 151 + test/DebugInfo/X86/generate-odr-hash.ll | 196 + test/DebugInfo/X86/gnu-public-names-empty.ll | 19 + test/DebugInfo/X86/gnu-public-names.ll | 219 + test/DebugInfo/X86/instcombine-instrinsics.ll | 12 +- test/DebugInfo/X86/line-info.ll | 6 +- test/DebugInfo/X86/linkage-name.ll | 14 +- test/DebugInfo/X86/lit.local.cfg | 2 - test/DebugInfo/X86/low-pc-cu.ll | 15 +- test/DebugInfo/X86/misched-dbg-value.ll | 22 +- test/DebugInfo/X86/multiple-aranges.ll | 66 + test/DebugInfo/X86/multiple-at-const-val.ll | 16 +- test/DebugInfo/X86/nondefault-subrange-array.ll | 38 +- test/DebugInfo/X86/objc-fwd-decl.ll | 11 +- test/DebugInfo/X86/op_deref.ll | 29 +- test/DebugInfo/X86/parameters.ll | 116 + test/DebugInfo/X86/pointer-type-size.ll | 6 +- test/DebugInfo/X86/pr11300.ll | 21 +- test/DebugInfo/X86/pr12831.ll | 126 +- test/DebugInfo/X86/pr13303.ll | 15 +- test/DebugInfo/X86/pr9951.ll | 15 +- test/DebugInfo/X86/prologue-stack.ll | 15 +- test/DebugInfo/X86/ref_addr_relocation.ll | 71 + test/DebugInfo/X86/reference-argument.ll | 103 + test/DebugInfo/X86/rvalue-ref.ll | 12 +- .../X86/stmt-list-multiple-compile-units.ll | 13 +- test/DebugInfo/X86/stmt-list.ll | 11 +- test/DebugInfo/X86/stringpool.ll | 26 +- test/DebugInfo/X86/struct-loc.ll | 8 +- test/DebugInfo/X86/subrange-type.ll | 12 +- test/DebugInfo/X86/subreg.ll | 15 +- test/DebugInfo/X86/template.ll | 126 + test/DebugInfo/X86/tls-fission.ll | 32 + test/DebugInfo/X86/tls.ll | 35 + test/DebugInfo/X86/union-template.ll | 10 +- test/DebugInfo/X86/vector.ll | 6 +- test/DebugInfo/X86/vla.ll | 107 + test/DebugInfo/array.ll | 15 +- test/DebugInfo/bug_null_debuginfo.ll | 5 +- test/DebugInfo/debuginfofinder-multiple-cu.ll | 41 + test/DebugInfo/dwarf-public-names.ll | 17 +- test/DebugInfo/dwarfdump-debug-loc-simple.test | 26 + test/DebugInfo/dwarfdump-pubnames.test | 20 +- test/DebugInfo/dwarfdump-type-units.test | 32 + test/DebugInfo/enum.ll | 80 + test/DebugInfo/global.ll | 39 + test/DebugInfo/inheritance.ll | 53 +- test/DebugInfo/inline-debug-info-multiret.ll | 6 +- test/DebugInfo/inline-debug-info.ll | 6 +- test/DebugInfo/inlined-arguments.ll | 77 + test/DebugInfo/inlined-vars.ll | 12 +- test/DebugInfo/lit.local.cfg | 1 - test/DebugInfo/llvm-symbolizer.test | 40 +- test/DebugInfo/member-order.ll | 66 + test/DebugInfo/member-pointers.ll | 16 +- test/DebugInfo/namespace.ll | 220 +- test/DebugInfo/template-recursive-void.ll | 65 + test/DebugInfo/tu-composite.ll | 185 + test/DebugInfo/tu-member-pointer.ll | 30 + test/DebugInfo/two-cus-from-same-file.ll | 22 +- test/DebugInfo/version.ll | 32 + .../ExecutionEngine/MCJIT/Inputs/cross-module-b.ll | 7 + .../ExecutionEngine/MCJIT/Inputs/multi-module-b.ll | 7 + .../ExecutionEngine/MCJIT/Inputs/multi-module-c.ll | 4 + .../MCJIT/Inputs/multi-module-eh-b.ll | 30 + test/ExecutionEngine/MCJIT/cross-module-a.ll | 13 + .../ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll | 14 + test/ExecutionEngine/MCJIT/eh-lg-pic.ll | 32 + test/ExecutionEngine/MCJIT/eh-sm-pic.ll | 32 + test/ExecutionEngine/MCJIT/hello-sm-pic.ll | 12 + test/ExecutionEngine/MCJIT/lit.local.cfg | 23 +- test/ExecutionEngine/MCJIT/multi-module-a.ll | 9 + test/ExecutionEngine/MCJIT/multi-module-eh-a.ll | 35 + .../ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll | 10 + .../MCJIT/remote/Inputs/cross-module-b.ll | 7 + .../MCJIT/remote/Inputs/multi-module-b.ll | 7 + .../MCJIT/remote/Inputs/multi-module-c.ll | 4 + .../ExecutionEngine/MCJIT/remote/cross-module-a.ll | 13 + .../MCJIT/remote/cross-module-sm-pic-a.ll | 14 + test/ExecutionEngine/MCJIT/remote/lit.local.cfg | 3 + .../ExecutionEngine/MCJIT/remote/multi-module-a.ll | 9 + .../MCJIT/remote/multi-module-sm-pic-a.ll | 10 + .../MCJIT/remote/simpletest-remote.ll | 10 + test/ExecutionEngine/MCJIT/remote/stubs-remote.ll | 37 + test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll | 37 + .../MCJIT/remote/test-common-symbols-remote.ll | 88 + .../MCJIT/remote/test-data-align-remote.ll | 15 + .../remote/test-fp-no-external-funcs-remote.ll | 20 + .../remote/test-global-init-nonzero-remote.ll | 34 + .../remote/test-global-init-nonzero-sm-pic.ll | 35 + .../MCJIT/remote/test-ptr-reloc-remote.ll | 15 + .../MCJIT/remote/test-ptr-reloc-sm-pic.ll | 17 + test/ExecutionEngine/MCJIT/simpletest-remote.ll | 12 - test/ExecutionEngine/MCJIT/stubs-remote.ll | 36 - test/ExecutionEngine/MCJIT/stubs-sm-pic.ll | 36 + .../MCJIT/test-common-symbols-remote.ll | 89 - .../MCJIT/test-data-align-remote.ll | 16 - .../MCJIT/test-fp-no-external-funcs-remote.ll | 22 - .../MCJIT/test-global-init-nonzero-remote.ll | 35 - .../MCJIT/test-global-init-nonzero-sm-pic.ll | 35 + .../ExecutionEngine/MCJIT/test-ptr-reloc-remote.ll | 17 - .../ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll | 17 + .../RuntimeDyld/Inputs/arm_secdiff_reloc.o | Bin 0 -> 616 bytes .../RuntimeDyld/arm_secdiff_reloc.test | 1 + test/ExecutionEngine/fma3-jit.ll | 18 + test/ExecutionEngine/lit.local.cfg | 15 +- test/ExecutionEngine/mov64zext32.ll | 18 + test/ExecutionEngine/test-interp-vec-cast.ll | 146 + .../test-interp-vec-insertelement.ll | 41 + .../test-interp-vec-insertextractvalue.ll | 21 + test/ExecutionEngine/test-interp-vec-loadstore.ll | 190 +- test/ExecutionEngine/test-interp-vec-select.ll | 118 + test/ExecutionEngine/test-interp-vec-shift.ll | 32 + test/ExecutionEngine/test-interp-vec-shuffle.ll | 81 + test/Feature/cold.ll | 9 + test/Feature/lit.local.cfg | 1 - test/Feature/md_on_instruction.ll | 9 +- test/Feature/newcasts.ll | 3 + test/Feature/optnone.ll | 12 + test/Feature/prefixdata.ll | 18 + test/FileCheck/check-a-b-has-b.txt | 5 + test/FileCheck/check-b-a-has-b.txt | 5 + test/FileCheck/check-dag-multi-prefix-2.txt | 7 + test/FileCheck/check-dag-multi-prefix.txt | 27 + test/FileCheck/check-dag-substring-prefix.txt | 7 + test/FileCheck/check-dag-xfails.txt | 85 + test/FileCheck/check-dag.txt | 26 + test/FileCheck/check-label-dag-capture.txt | 11 + test/FileCheck/check-label-dag.txt | 11 + test/FileCheck/check-label.txt | 51 + test/FileCheck/check-multi-prefix-label.txt | 6 + test/FileCheck/check-multiple-prefixes-mixed.txt | 10 + test/FileCheck/check-multiple-prefixes-nomatch.txt | 10 + test/FileCheck/check-multiple-prefixes-substr.txt | 5 + test/FileCheck/check-not-diaginfo.txt | 2 +- test/FileCheck/check-prefixes.txt | 9 + test/FileCheck/check-substring-multi-prefix-2.txt | 11 + test/FileCheck/check-substring-multi-prefix.txt | 9 + test/FileCheck/first-character-match.txt | 2 + test/FileCheck/line-count-2.txt | 11 + test/FileCheck/line-count.txt | 15 + test/FileCheck/lit.local.cfg | 1 - test/FileCheck/multiple-missing-prefixes.txt | 9 + test/FileCheck/separate-multi-prefix.txt | 7 + test/FileCheck/validate-check-prefix.txt | 9 + .../AddressSanitizer/X86/bug_11395.ll | 6 +- .../AddressSanitizer/X86/lit.local.cfg | 11 +- .../AddressSanitizer/asan-vs-gvn.ll | 2 +- test/Instrumentation/AddressSanitizer/basic.ll | 19 + test/Instrumentation/AddressSanitizer/coverage.ll | 13 + .../Instrumentation/AddressSanitizer/debug_info.ll | 18 +- .../do-not-instrument-internal-globals.ll | 4 +- .../AddressSanitizer/instrument_global.ll | 65 +- .../keep-instrumented_functions.ll | 23 + .../AddressSanitizer/lifetime-uar.ll | 33 + test/Instrumentation/AddressSanitizer/lifetime.ll | 6 +- .../Instrumentation/AddressSanitizer/lit.local.cfg | 1 - test/Instrumentation/BoundsChecking/lit.local.cfg | 1 - test/Instrumentation/BoundsChecking/simple-32.ll | 29 + test/Instrumentation/BoundsChecking/simple.ll | 17 + .../DataFlowSanitizer/Inputs/abilist.txt | 8 + test/Instrumentation/DataFlowSanitizer/abilist.ll | 75 + .../DataFlowSanitizer/args-unreachable-bb.ll | 30 + test/Instrumentation/DataFlowSanitizer/arith.ll | 63 + test/Instrumentation/DataFlowSanitizer/call.ll | 23 + .../DataFlowSanitizer/debug-nonzero-labels.ll | 23 + test/Instrumentation/DataFlowSanitizer/load.ll | 81 + test/Instrumentation/DataFlowSanitizer/memset.ll | 11 + .../DataFlowSanitizer/prefix-rename.ll | 14 + test/Instrumentation/DataFlowSanitizer/store.ll | 75 + test/Instrumentation/MemorySanitizer/X86/vararg.ll | 15 + test/Instrumentation/MemorySanitizer/atomics.ll | 189 + test/Instrumentation/MemorySanitizer/lit.local.cfg | 1 - test/Instrumentation/MemorySanitizer/msan_basic.ll | 190 +- .../MemorySanitizer/return_from_main.ll | 18 + test/Instrumentation/MemorySanitizer/vector_cvt.ll | 66 + .../MemorySanitizer/wrap_indirect_calls.ll | 34 + test/Instrumentation/ThreadSanitizer/lit.local.cfg | 1 - .../ThreadSanitizer/no_sanitize_thread.ll | 36 + .../ThreadSanitizer/read_before_write.ll | 4 +- .../ThreadSanitizer/read_from_global.ll | 18 +- test/Instrumentation/ThreadSanitizer/tsan_basic.ll | 4 +- test/Instrumentation/ThreadSanitizer/vptr_read.ll | 6 +- .../Instrumentation/ThreadSanitizer/vptr_update.ll | 6 +- test/Integer/lit.local.cfg | 1 - test/JitListener/lit.local.cfg | 10 +- test/JitListener/test-common-symbols.ll | 38 +- test/JitListener/test-inline.ll | 64 +- test/JitListener/test-parameters.ll | 64 +- test/LTO/cfi_endproc.ll | 37 + test/LTO/linkonce_odr_func.ll | 45 + test/LTO/lit.local.cfg | 3 + test/LTO/runtime-library.ll | 27 + test/Linker/2011-08-04-DebugLoc.ll | 17 +- test/Linker/2011-08-04-DebugLoc2.ll | 17 +- test/Linker/2011-08-04-Metadata.ll | 16 +- test/Linker/2011-08-04-Metadata2.ll | 16 +- test/Linker/2011-08-18-unique-class-type.ll | 23 +- test/Linker/2011-08-18-unique-class-type2.ll | 23 +- test/Linker/2011-08-18-unique-debug-type.ll | 19 +- test/Linker/2011-08-18-unique-debug-type2.ll | 18 +- test/Linker/DbgDeclare.ll | 26 +- test/Linker/DbgDeclare2.ll | 31 +- test/Linker/Inputs/type-unique-inheritance-a.ll | 94 + test/Linker/Inputs/type-unique-inheritance-b.ll | 81 + test/Linker/Inputs/type-unique-simple2-a.ll | 88 + test/Linker/Inputs/type-unique-simple2-b.ll | 67 + test/Linker/lit.local.cfg | 1 - test/Linker/prefixdata.ll | 9 + test/Linker/transitive-lazy-link.ll | 20 + test/Linker/type-unique-inheritance.ll | 1 + test/Linker/type-unique-simple-a.ll | 91 + test/Linker/type-unique-simple-b.ll | 67 + test/Linker/type-unique-simple2.ll | 6 + test/Linker/unnamed-addr-err-a.ll | 4 + test/Linker/unnamed-addr-err-b.ll | 4 + test/Linker/unnamed-addr1-a.ll | 61 +- test/Linker/unnamed-addr1-b.ll | 26 +- test/MC/AArch64/adrp-relocation.s | 18 + test/MC/AArch64/basic-a64-diagnostics.s | 8 +- test/MC/AArch64/basic-a64-instructions.s | 2 +- test/MC/AArch64/basic-pic.s | 98 + test/MC/AArch64/elf-extern.s | 33 + test/MC/AArch64/elf-globaladdress.ll | 2 +- test/MC/AArch64/elf-objdump.s | 2 +- test/MC/AArch64/elf-reloc-addend.s | 8 + test/MC/AArch64/elf-reloc-addsubimm.s | 2 +- test/MC/AArch64/elf-reloc-condbr.s | 2 +- test/MC/AArch64/elf-reloc-ldrlit.s | 2 +- test/MC/AArch64/elf-reloc-ldstunsimm.s | 4 +- test/MC/AArch64/elf-reloc-movw.s | 2 +- test/MC/AArch64/elf-reloc-pcreladdressing.s | 2 +- test/MC/AArch64/elf-reloc-tstb.s | 2 +- test/MC/AArch64/elf-reloc-uncondbrimm.s | 2 +- test/MC/AArch64/gicv3-regs-diagnostics.s | 2 +- test/MC/AArch64/inline-asm-modifiers.s | 209 + test/MC/AArch64/jump-table.s | 59 + test/MC/AArch64/lit.local.cfg | 2 - test/MC/AArch64/neon-2velem.s | 271 + test/MC/AArch64/neon-3vdiff.s | 415 + test/MC/AArch64/neon-aba-abd.s | 78 + test/MC/AArch64/neon-across.s | 101 + test/MC/AArch64/neon-add-pairwise.s | 34 + test/MC/AArch64/neon-add-sub-instructions.s | 68 + test/MC/AArch64/neon-bitwise-instructions.s | 60 + test/MC/AArch64/neon-compare-instructions.s | 405 + test/MC/AArch64/neon-crypto.s | 44 + test/MC/AArch64/neon-diagnostics.s | 7318 ++++++ test/MC/AArch64/neon-extract.s | 13 + test/MC/AArch64/neon-facge-facgt.s | 41 + test/MC/AArch64/neon-frsqrt-frecp.s | 27 + test/MC/AArch64/neon-halving-add-sub.s | 74 + test/MC/AArch64/neon-max-min-pairwise.s | 110 + test/MC/AArch64/neon-max-min.s | 110 + test/MC/AArch64/neon-mla-mls-instructions.s | 61 + test/MC/AArch64/neon-mov.s | 209 + test/MC/AArch64/neon-mul-div-instructions.s | 86 + test/MC/AArch64/neon-perm.s | 103 + test/MC/AArch64/neon-rounding-halving-add.s | 39 + test/MC/AArch64/neon-rounding-shift.s | 45 + test/MC/AArch64/neon-saturating-add-sub.s | 82 + test/MC/AArch64/neon-saturating-rounding-shift.s | 43 + test/MC/AArch64/neon-saturating-shift.s | 43 + test/MC/AArch64/neon-scalar-abs.s | 35 + test/MC/AArch64/neon-scalar-add-sub.s | 16 + test/MC/AArch64/neon-scalar-by-elem-mla.s | 44 + test/MC/AArch64/neon-scalar-by-elem-mul.s | 37 + .../AArch64/neon-scalar-by-elem-saturating-mla.s | 46 + .../AArch64/neon-scalar-by-elem-saturating-mul.s | 58 + test/MC/AArch64/neon-scalar-compare.s | 90 + test/MC/AArch64/neon-scalar-cvt.s | 181 + test/MC/AArch64/neon-scalar-dup.s | 55 + test/MC/AArch64/neon-scalar-extract-narrow.s | 40 + test/MC/AArch64/neon-scalar-fp-compare.s | 103 + test/MC/AArch64/neon-scalar-mul.s | 63 + test/MC/AArch64/neon-scalar-neg.s | 25 + test/MC/AArch64/neon-scalar-recip.s | 53 + test/MC/AArch64/neon-scalar-reduce-pairwise.s | 16 + test/MC/AArch64/neon-scalar-rounding-shift.s | 17 + test/MC/AArch64/neon-scalar-saturating-add-sub.s | 81 + .../neon-scalar-saturating-rounding-shift.s | 28 + test/MC/AArch64/neon-scalar-saturating-shift.s | 29 + test/MC/AArch64/neon-scalar-shift-imm.s | 186 + test/MC/AArch64/neon-scalar-shift.s | 16 + test/MC/AArch64/neon-shift-left-long.s | 37 + test/MC/AArch64/neon-shift.s | 61 + test/MC/AArch64/neon-simd-copy.s | 135 + test/MC/AArch64/neon-simd-ldst-multi-elem.s | 463 + test/MC/AArch64/neon-simd-ldst-one-elem.s | 325 + test/MC/AArch64/neon-simd-misc.s | 646 + test/MC/AArch64/neon-simd-post-ldst-multi-elem.s | 389 + test/MC/AArch64/neon-simd-shift.s | 434 + test/MC/AArch64/neon-tbl.s | 56 + test/MC/AArch64/noneon-diagnostics.s | 28 + test/MC/AArch64/tls-relocs.s | 8 +- test/MC/AArch64/trace-regs-diagnostics.s | 2 +- test/MC/ARM/2010-11-30-reloc-movt.s | 41 + test/MC/ARM/AlignedBundling/lit.local.cfg | 2 - test/MC/ARM/align_arm_2_thumb.s | 15 + test/MC/ARM/align_thumb_2_arm.s | 15 + test/MC/ARM/arm-ldrd.s | 57 + test/MC/ARM/arm-memory-instructions.s | 45 +- test/MC/ARM/arm-thumb-cpus-default.s | 13 + test/MC/ARM/arm-thumb-cpus.s | 20 + test/MC/ARM/arm-thumb-trustzone.s | 2 +- test/MC/ARM/arm-trustzone.s | 2 +- test/MC/ARM/basic-arm-instructions-v8.s | 59 + test/MC/ARM/basic-arm-instructions.s | 111 +- test/MC/ARM/basic-thumb-instructions.s | 22 +- test/MC/ARM/basic-thumb2-instructions-v8.s | 87 + test/MC/ARM/basic-thumb2-instructions.s | 220 +- test/MC/ARM/crc32-thumb.s | 30 + test/MC/ARM/crc32.s | 30 + test/MC/ARM/data-in-code.ll | 14 +- test/MC/ARM/deprecated-v8.s | 51 + test/MC/ARM/diagnostics-noneon.s | 7 + test/MC/ARM/diagnostics.s | 94 + test/MC/ARM/directive-cpu.s | 26 + test/MC/ARM/directive-eabi_attribute.s | 56 + test/MC/ARM/directive-fpu-multiple.s | 26 + test/MC/ARM/directive-fpu.s | 26 + test/MC/ARM/eh-compact-pr0.s | 104 + test/MC/ARM/eh-compact-pr1.s | 74 + test/MC/ARM/eh-directive-cantunwind-diagnostics.s | 106 + test/MC/ARM/eh-directive-cantunwind.s | 51 + test/MC/ARM/eh-directive-fnend-diagnostics.s | 17 + test/MC/ARM/eh-directive-fnstart-diagnostics.s | 31 + test/MC/ARM/eh-directive-handlerdata.s | 107 + test/MC/ARM/eh-directive-integrated-test.s | 93 + test/MC/ARM/eh-directive-multiple-offsets.s | 168 + test/MC/ARM/eh-directive-pad-diagnostics.s | 39 + test/MC/ARM/eh-directive-pad.s | 226 + test/MC/ARM/eh-directive-personality-diagnostics.s | 39 + test/MC/ARM/eh-directive-personality.s | 89 + test/MC/ARM/eh-directive-save-diagnoatics.s | 41 + test/MC/ARM/eh-directive-save.s | 343 + test/MC/ARM/eh-directive-section-comdat.s | 126 + test/MC/ARM/eh-directive-section-multiple-func.s | 128 + test/MC/ARM/eh-directive-section.s | 163 + test/MC/ARM/eh-directive-setfp-diagnostics.s | 87 + test/MC/ARM/eh-directive-setfp.s | 239 + .../ARM/eh-directive-text-section-multiple-func.s | 81 + test/MC/ARM/eh-directive-text-section.s | 82 + test/MC/ARM/eh-directive-vsave-diagnostics.s | 41 + test/MC/ARM/eh-directive-vsave.s | 130 + test/MC/ARM/elf-eflags-eabi-cg.ll | 14 - test/MC/ARM/elf-movt.s | 24 +- test/MC/ARM/elf-reloc-01.ll | 2 +- test/MC/ARM/elf-reloc-02.ll | 2 +- test/MC/ARM/elf-reloc-03.ll | 2 +- test/MC/ARM/elf-reloc-condcall.s | 2 +- test/MC/ARM/elf-thumbfunc-reloc.ll | 2 +- test/MC/ARM/elf-thumbfunc-reloc.s | 4 +- test/MC/ARM/elf-thumbfunc.s | 2 +- test/MC/ARM/fp-armv8.s | 129 + test/MC/ARM/idiv.s | 33 + test/MC/ARM/invalid-barrier.s | 28 + test/MC/ARM/invalid-crc32.s | 16 + test/MC/ARM/invalid-fp-armv8.s | 89 + test/MC/ARM/invalid-hint-arm.s | 11 +- test/MC/ARM/invalid-hint-thumb.s | 13 +- test/MC/ARM/invalid-idiv.s | 28 + test/MC/ARM/invalid-neon-v8.s | 70 + test/MC/ARM/lit.local.cfg | 2 - test/MC/ARM/load-store-acquire-release-v8-thumb.s | 48 + test/MC/ARM/load-store-acquire-release-v8.s | 48 + test/MC/ARM/mapping-within-section.s | 2 +- test/MC/ARM/multi-section-mapping.s | 2 +- test/MC/ARM/neon-convert-encoding.s | 16 + test/MC/ARM/neon-crypto.s | 51 + test/MC/ARM/neon-mov-encoding.s | 39 + test/MC/ARM/neon-v8.s | 83 + test/MC/ARM/neon-vst-encoding.s | 2 +- test/MC/ARM/neont2-vld-encoding.s | 103 +- test/MC/ARM/neont2-vst-encoding.s | 93 +- test/MC/ARM/obsolete-v8.s | 7 + test/MC/ARM/simple-fp-encoding.s | 22 + test/MC/ARM/single-precision-fp.s | 194 + test/MC/ARM/thumb-diagnostics.s | 72 +- test/MC/ARM/thumb-fp-armv8.s | 130 + test/MC/ARM/thumb-hints.s | 64 + test/MC/ARM/thumb-invalid-crypto.txt | 42 + test/MC/ARM/thumb-neon-crypto.s | 35 + test/MC/ARM/thumb-neon-v8.s | 83 + test/MC/ARM/thumb-nop.s | 9 - test/MC/ARM/thumb-only-conditionals.s | 54 + test/MC/ARM/thumb.s | 2 +- test/MC/ARM/thumb2-b.w-encodingT4.s | 2 +- test/MC/ARM/thumb2-branches.s | 286 + test/MC/ARM/thumb2-diagnostics.s | 28 + test/MC/ARM/thumb2-ldrd.s | 9 + test/MC/ARM/thumb2-pldw.s | 7 + test/MC/ARM/v8_IT_manual.s | 6739 +++++ test/MC/ARM/vfp4.s | 21 +- test/MC/ARM/xscale-attributes.ll | 7 +- test/MC/AsmParser/align_invalid.s | 4 +- test/MC/AsmParser/cfi-window-save.s | 15 + test/MC/AsmParser/directive_align.s | 2 +- test/MC/AsmParser/directive_file.s | 2 +- test/MC/AsmParser/directive_fill.s | 16 + test/MC/AsmParser/directive_incbin.s | 2 +- test/MC/AsmParser/directive_include.s | 2 +- test/MC/AsmParser/directive_loc.s | 1 + test/MC/AsmParser/floating-literals.s | 40 +- test/MC/AsmParser/lit.local.cfg | 2 - test/MC/AsmParser/macros-darwin.s | 2 +- test/MC/AsmParser/secure_log_unique.s | 9 + test/MC/COFF/alias.s | 106 + test/MC/COFF/bss_section.ll | 6 + test/MC/COFF/eh-frame.s | 14 + test/MC/COFF/feat00.s | 14 + test/MC/COFF/linkonce-invalid.s | 40 + test/MC/COFF/linkonce.s | 179 + test/MC/COFF/lit.local.cfg | 2 - test/MC/COFF/lset0.s | 12 + test/MC/COFF/rdata.ll | 6 + test/MC/COFF/section-comdat.s | 188 + test/MC/COFF/section-invalid-flags.s | 8 + test/MC/COFF/section-name-encoding.s | 62 + test/MC/COFF/section.s | 170 + test/MC/COFF/seh-align1.s | 65 + test/MC/COFF/seh-align2.s | 78 + test/MC/COFF/seh-align3.s | 83 + test/MC/COFF/seh-section.s | 2 - test/MC/COFF/seh.s | 25 +- test/MC/COFF/tricky-names.ll | 38 + test/MC/COFF/weak-symbol-section-specification.ll | 25 - test/MC/COFF/weak-symbol.ll | 44 + .../MC/Disassembler/AArch64/a64-ignored-fields.txt | 2 +- .../AArch64/basic-a64-instructions.txt | 2 +- .../AArch64/basic-a64-unpredictable.txt | 2 +- .../AArch64/ldp-postind.predictable.txt | 2 +- .../AArch64/ldp-preind.predictable.txt | 2 +- test/MC/Disassembler/AArch64/lit.local.cfg | 2 - test/MC/Disassembler/AArch64/neon-instructions.txt | 2638 ++ test/MC/Disassembler/ARM/arm-LDREXD-reencoding.txt | 14 + test/MC/Disassembler/ARM/arm-STREXD-reencoding.txt | 14 + test/MC/Disassembler/ARM/arm-tests.txt | 4 - .../Disassembler/ARM/basic-arm-instructions-v8.txt | 58 + .../MC/Disassembler/ARM/basic-arm-instructions.txt | 35 + test/MC/Disassembler/ARM/crc32-thumb.txt | 15 + test/MC/Disassembler/ARM/crc32.txt | 15 + test/MC/Disassembler/ARM/fp-armv8.txt | 160 + test/MC/Disassembler/ARM/fp-encoding.txt | 26 +- test/MC/Disassembler/ARM/invalid-BFI-arm.txt | 10 - test/MC/Disassembler/ARM/invalid-Bcc-thumb.txt | 10 - test/MC/Disassembler/ARM/invalid-CPS2p-arm.txt | 4 - test/MC/Disassembler/ARM/invalid-CPS3p-arm.txt | 4 - test/MC/Disassembler/ARM/invalid-DMB-thumb.txt | 16 - test/MC/Disassembler/ARM/invalid-DSB-arm.txt | 16 - test/MC/Disassembler/ARM/invalid-FSTMX-arm.txt | 8 + test/MC/Disassembler/ARM/invalid-IT-CBNZ-thumb.txt | 5 - test/MC/Disassembler/ARM/invalid-IT-thumb.txt | 3 - test/MC/Disassembler/ARM/invalid-LDC-form-arm.txt | 11 - test/MC/Disassembler/ARM/invalid-LDM-thumb.txt | 5 - test/MC/Disassembler/ARM/invalid-LDRB_POST-arm.txt | 10 - .../MC/Disassembler/ARM/invalid-LDRD_PRE-thumb.txt | 13 - test/MC/Disassembler/ARM/invalid-LDR_POST-arm.txt | 4 - test/MC/Disassembler/ARM/invalid-LDR_PRE-arm.txt | 10 - test/MC/Disassembler/ARM/invalid-LDRrs-arm.txt | 4 - test/MC/Disassembler/ARM/invalid-MCR-arm.txt | 10 - test/MC/Disassembler/ARM/invalid-MOVTi16-arm.txt | 10 - test/MC/Disassembler/ARM/invalid-MOVr-arm.txt | 13 - test/MC/Disassembler/ARM/invalid-MOVs-LSL-arm.txt | 9 - test/MC/Disassembler/ARM/invalid-MOVs-arm.txt | 17 - test/MC/Disassembler/ARM/invalid-MRRC2-arm.txt | 4 - test/MC/Disassembler/ARM/invalid-MSRi-arm.txt | 12 - .../MC/Disassembler/ARM/invalid-RFEorLDMIA-arm.txt | 11 - test/MC/Disassembler/ARM/invalid-SBFX-arm.txt | 10 - test/MC/Disassembler/ARM/invalid-SMLAD-arm.txt | 11 - test/MC/Disassembler/ARM/invalid-SRS-arm.txt | 13 - .../Disassembler/ARM/invalid-STMIA_UPD-thumb.txt | 10 - test/MC/Disassembler/ARM/invalid-SXTB-arm.txt | 11 - test/MC/Disassembler/ARM/invalid-UMAAL-arm.txt | 11 - .../Disassembler/ARM/invalid-VLD1DUPq8_UPD-arm.txt | 11 - .../ARM/invalid-VLD1LNd32_UPD-thumb.txt | 4 - .../ARM/invalid-VLD3DUPd32_UPD-thumb.txt | 11 - .../ARM/invalid-VLD4DUPd32_UPD-thumb.txt | 4 - .../ARM/invalid-VLD4LNd32_UPD-thumb.txt | 4 - .../Disassembler/ARM/invalid-VLDMSDB_UPD-arm.txt | 4 - test/MC/Disassembler/ARM/invalid-VQADD-arm.txt | 11 - .../ARM/invalid-VST1LNd32_UPD-thumb.txt | 4 - .../ARM/invalid-VST1d8Twb_register-thumb.txt | 13 - .../Disassembler/ARM/invalid-VST2b32_UPD-arm.txt | 12 - .../ARM/invalid-VST4LNd32_UPD-thumb.txt | 4 - test/MC/Disassembler/ARM/invalid-armv7.txt | 502 + test/MC/Disassembler/ARM/invalid-armv8.txt | 167 + test/MC/Disassembler/ARM/invalid-because-armv7.txt | 26 + test/MC/Disassembler/ARM/invalid-hint-arm.txt | 13 - test/MC/Disassembler/ARM/invalid-hint-thumb.txt | 8 - test/MC/Disassembler/ARM/invalid-t2Bcc-thumb.txt | 11 - test/MC/Disassembler/ARM/invalid-t2LDRBT-thumb.txt | 10 - .../MC/Disassembler/ARM/invalid-t2LDREXD-thumb.txt | 11 - .../Disassembler/ARM/invalid-t2LDRSHi12-thumb.txt | 10 - .../Disassembler/ARM/invalid-t2LDRSHi8-thumb.txt | 10 - test/MC/Disassembler/ARM/invalid-t2PUSH-thumb.txt | 5 - .../Disassembler/ARM/invalid-t2STRD_PRE-thumb.txt | 11 - .../MC/Disassembler/ARM/invalid-t2STREXB-thumb.txt | 11 - .../MC/Disassembler/ARM/invalid-t2STREXD-thumb.txt | 10 - .../Disassembler/ARM/invalid-t2STR_POST-thumb.txt | 10 - test/MC/Disassembler/ARM/invalid-thumbv7-xfail.txt | 38 + test/MC/Disassembler/ARM/invalid-thumbv7.txt | 407 + test/MC/Disassembler/ARM/invalid-thumbv8.txt | 167 + test/MC/Disassembler/ARM/lit.local.cfg | 2 - .../ARM/load-store-acquire-release-v8-thumb.txt | 33 + .../ARM/load-store-acquire-release-v8.txt | 32 + test/MC/Disassembler/ARM/neon-crypto.txt | 35 + test/MC/Disassembler/ARM/neon-v8.txt | 71 + test/MC/Disassembler/ARM/neont2.txt | 3 - test/MC/Disassembler/ARM/thumb-fp-armv8.txt | 163 + test/MC/Disassembler/ARM/thumb-neon-crypto.txt | 43 + test/MC/Disassembler/ARM/thumb-neon-v8.txt | 71 + test/MC/Disassembler/ARM/thumb-tests.txt | 5 +- test/MC/Disassembler/ARM/thumb-v8.txt | 28 + test/MC/Disassembler/ARM/thumb1.txt | 16 +- test/MC/Disassembler/ARM/thumb2-v8.txt | 40 + test/MC/Disassembler/ARM/thumb2.txt | 116 +- test/MC/Disassembler/MBlaze/lit.local.cfg | 6 - test/MC/Disassembler/MBlaze/mblaze_branch.txt | 119 - test/MC/Disassembler/MBlaze/mblaze_fpu.txt | 47 - test/MC/Disassembler/MBlaze/mblaze_fsl.txt | 338 - test/MC/Disassembler/MBlaze/mblaze_imm.txt | 121 - test/MC/Disassembler/MBlaze/mblaze_mbar.txt | 14 - test/MC/Disassembler/MBlaze/mblaze_memory.txt | 65 - test/MC/Disassembler/MBlaze/mblaze_operands.txt | 197 - test/MC/Disassembler/MBlaze/mblaze_pattern.txt | 17 - test/MC/Disassembler/MBlaze/mblaze_shift.txt | 29 - test/MC/Disassembler/MBlaze/mblaze_special.txt | 105 - test/MC/Disassembler/MBlaze/mblaze_typea.txt | 74 - test/MC/Disassembler/MBlaze/mblaze_typeb.txt | 56 - test/MC/Disassembler/Mips/lit.local.cfg | 2 - test/MC/Disassembler/Mips/micromips.txt | 287 + test/MC/Disassembler/Mips/micromips_le.txt | 287 + test/MC/Disassembler/Mips/mips-dsp.txt | 9 + test/MC/Disassembler/Mips/mips32.txt | 24 + test/MC/Disassembler/Mips/mips32_le.txt | 30 + test/MC/Disassembler/Mips/mips32r2.txt | 18 + test/MC/Disassembler/Mips/mips32r2_le.txt | 18 + test/MC/Disassembler/Mips/mips64.txt | 21 + test/MC/Disassembler/Mips/mips64_le.txt | 18 + test/MC/Disassembler/SystemZ/insns-pcrel.txt | 1732 ++ test/MC/Disassembler/SystemZ/insns.txt | 7751 ++++++ test/MC/Disassembler/SystemZ/invalid-regs.txt | 22 + test/MC/Disassembler/SystemZ/lit.local.cfg | 4 + test/MC/Disassembler/SystemZ/trunc-01.txt | 5 + test/MC/Disassembler/SystemZ/trunc-02.txt | 5 + test/MC/Disassembler/SystemZ/trunc-03.txt | 5 + test/MC/Disassembler/SystemZ/unmapped.txt | 32 + test/MC/Disassembler/X86/intel-syntax-32.txt | 26 +- test/MC/Disassembler/X86/intel-syntax.txt | 85 +- test/MC/Disassembler/X86/lit.local.cfg | 2 - test/MC/Disassembler/X86/prefixes.txt | 59 + test/MC/Disassembler/X86/simple-tests.txt | 152 +- test/MC/Disassembler/X86/x86-32.txt | 48 + test/MC/Disassembler/X86/x86-64.txt | 114 + test/MC/Disassembler/XCore/lit.local.cfg | 2 - test/MC/ELF/alias-reloc.s | 13 +- test/MC/ELF/alias.s | 9 + test/MC/ELF/bad-relocation.s | 7 + test/MC/ELF/basic-elf-32.s | 2 +- test/MC/ELF/basic-elf-64.s | 2 +- test/MC/ELF/bss-large.ll | 13 + test/MC/ELF/cfi-adjust-cfa-offset.s | 2 +- test/MC/ELF/cfi-advance-loc2.s | 2 +- test/MC/ELF/cfi-def-cfa-offset.s | 2 +- test/MC/ELF/cfi-def-cfa-register.s | 2 +- test/MC/ELF/cfi-def-cfa.s | 2 +- test/MC/ELF/cfi-escape.s | 2 +- test/MC/ELF/cfi-offset.s | 2 +- test/MC/ELF/cfi-register.s | 2 +- test/MC/ELF/cfi-rel-offset.s | 2 +- test/MC/ELF/cfi-rel-offset2.s | 2 +- test/MC/ELF/cfi-remember.s | 2 +- test/MC/ELF/cfi-restore.s | 2 +- test/MC/ELF/cfi-same-value.s | 2 +- test/MC/ELF/cfi-undefined.s | 2 +- test/MC/ELF/cfi-window-save.s | 51 + test/MC/ELF/cfi-zero-addr-delta.s | 2 +- test/MC/ELF/cfi.s | 144 +- test/MC/ELF/comdat-dup-group-name.s | 41 + test/MC/ELF/comdat-reloc.s | 29 + test/MC/ELF/comdat.s | 4 +- test/MC/ELF/comp-dir.s | 10 + test/MC/ELF/debug-line.s | 29 +- test/MC/ELF/debug-line2.s | 32 + test/MC/ELF/file-double.s | 47 + test/MC/ELF/gen-dwarf.s | 4 +- test/MC/ELF/got.s | 2 +- test/MC/ELF/lit.local.cfg | 2 - test/MC/ELF/local-reloc.s | 2 +- test/MC/ELF/merge.s | 2 +- test/MC/ELF/relocation-386.s | 2 +- test/MC/ELF/relocation-pc.s | 4 +- test/MC/ELF/relocation.s | 19 +- test/MC/ELF/rename.s | 17 + test/MC/ELF/section.s | 27 +- test/MC/ELF/symbol-names.s | 12 + test/MC/ELF/symref.s | 2 +- test/MC/ELF/type.s | 28 + test/MC/ELF/weak-relocation.s | 2 +- test/MC/ELF/weakref.s | 9 + test/MC/ELF/x86_64-reloc-sizetest.s | 2 +- test/MC/MBlaze/lit.local.cfg | 6 - test/MC/MBlaze/mblaze_branch.s | 197 - test/MC/MBlaze/mblaze_fpu.s | 77 - test/MC/MBlaze/mblaze_fsl.s | 568 - test/MC/MBlaze/mblaze_imm.s | 194 - test/MC/MBlaze/mblaze_memory.s | 107 - test/MC/MBlaze/mblaze_operands.s | 328 - test/MC/MBlaze/mblaze_pattern.s | 22 - test/MC/MBlaze/mblaze_shift.s | 47 - test/MC/MBlaze/mblaze_special.s | 167 - test/MC/MBlaze/mblaze_typea.s | 122 - test/MC/MBlaze/mblaze_typeb.s | 92 - test/MC/MachO/ARM/lit.local.cfg | 2 - test/MC/MachO/bad-darwin-x86_64-32-bit-abs-addr.s | 5 + test/MC/MachO/bad-darwin-x86_64-diff-relocs.s | 5 + test/MC/MachO/bad-indirect-symbols.s | 5 + test/MC/MachO/bss.s | 17 + test/MC/MachO/darwin-x86_64-diff-reloc-assign-2.s | 38 + test/MC/MachO/lit.local.cfg | 2 - test/MC/MachO/tlv-bss.ll | 33 + test/MC/Mips/abicalls.ll | 15 + test/MC/Mips/eh-frame.s | 8 +- test/MC/Mips/elf-gprel-32-64.ll | 2 +- test/MC/Mips/elf-tls.ll | 2 +- test/MC/Mips/elf_eflags.ll | 51 +- test/MC/Mips/elf_eflags.s | 5 + test/MC/Mips/elf_st_other.ll | 5 +- test/MC/Mips/elf_st_other.s | 13 + test/MC/Mips/lit.local.cfg | 2 - test/MC/Mips/micromips-alu-instructions.s | 104 +- test/MC/Mips/micromips-branch-instructions.s | 65 + test/MC/Mips/micromips-branch16.s | 69 + test/MC/Mips/micromips-expansions.s | 57 + test/MC/Mips/micromips-expressions.s | 35 + test/MC/Mips/micromips-jump-instructions.s | 40 + test/MC/Mips/micromips-jump26.s | 23 + test/MC/Mips/micromips-loadstore-instructions.s | 32 +- test/MC/Mips/micromips-loadstore-unaligned.s | 26 + test/MC/Mips/micromips-long-branch.ll | 16437 ++++++++++++ test/MC/Mips/micromips-movcond-instructions.s | 26 + test/MC/Mips/micromips-multiply-instructions.s | 26 + test/MC/Mips/micromips-relocations.s | 99 + test/MC/Mips/micromips-shift-instructions.s | 32 +- test/MC/Mips/micromips-tailr.s | 26 + test/MC/Mips/micromips-trap-instructions.s | 50 + test/MC/Mips/mips-alu-instructions.s | 16 +- test/MC/Mips/mips-control-instructions.s | 106 + test/MC/Mips/mips-dsp-instructions.s | 97 + test/MC/Mips/mips-fpu-instructions.s | 35 +- test/MC/Mips/mips-jump-instructions.s | 16 +- test/MC/Mips/mips64-alu-instructions.s | 10 +- test/MC/Mips/mips64-instructions.s | 7 + test/MC/Mips/mips_directives.s | 14 +- test/MC/Mips/msa/test_2r.s | 51 + test/MC/Mips/msa/test_2rf.s | 102 + test/MC/Mips/msa/test_3r.s | 732 + test/MC/Mips/msa/test_3rf.s | 252 + test/MC/Mips/msa/test_bit.s | 150 + test/MC/Mips/msa/test_cbranch.s | 78 + test/MC/Mips/msa/test_ctrlregs.s | 105 + test/MC/Mips/msa/test_elm.s | 51 + test/MC/Mips/msa/test_elm_insert.s | 15 + test/MC/Mips/msa/test_elm_insve.s | 18 + test/MC/Mips/msa/test_i10.s | 19 + test/MC/Mips/msa/test_i5.s | 138 + test/MC/Mips/msa/test_i8.s | 36 + test/MC/Mips/msa/test_lsa.s | 18 + test/MC/Mips/msa/test_mi10.s | 30 + test/MC/Mips/msa/test_vec.s | 27 + test/MC/Mips/xgot.ll | 4 +- test/MC/PowerPC/deprecated-p7.s | 12 + test/MC/PowerPC/lit.local.cfg | 2 - test/MC/PowerPC/ppc-llong.s | 28 + test/MC/PowerPC/ppc-machine.s | 14 + test/MC/PowerPC/ppc-nop.s | 12 + test/MC/PowerPC/ppc-word.s | 28 + test/MC/PowerPC/ppc64-encoding-bookII.s | 48 +- test/MC/PowerPC/ppc64-encoding-bookIII.s | 107 + test/MC/PowerPC/ppc64-encoding-ext.s | 2154 +- test/MC/PowerPC/ppc64-encoding-fp.s | 18 +- test/MC/PowerPC/ppc64-encoding.s | 137 +- test/MC/PowerPC/ppc64-errors.s | 21 + test/MC/PowerPC/ppc64-fixup-apply.s | 100 + test/MC/PowerPC/ppc64-fixup-explicit.s | 46 + test/MC/PowerPC/ppc64-fixups.s | 399 +- test/MC/PowerPC/ppc64-initial-cfa.ll | 84 - test/MC/PowerPC/ppc64-initial-cfa.s | 84 + test/MC/PowerPC/ppc64-operands.s | 28 + test/MC/PowerPC/ppc64-regs.s | 235 + test/MC/PowerPC/ppc64-relocs-01.ll | 49 - test/MC/PowerPC/ppc64-relocs-01.s | 46 + test/MC/PowerPC/ppc64-tls-relocs-01.ll | 19 - test/MC/PowerPC/ppc64-tls-relocs-01.s | 22 + test/MC/PowerPC/tls-gd-obj.s | 56 + test/MC/PowerPC/tls-ie-obj.s | 44 + test/MC/PowerPC/tls-ld-obj.s | 61 + test/MC/SystemZ/insn-a-01.s | 17 - test/MC/SystemZ/insn-a-02.s | 10 - test/MC/SystemZ/insn-adb-01.s | 17 - test/MC/SystemZ/insn-adb-02.s | 10 - test/MC/SystemZ/insn-adbr-01.s | 11 - test/MC/SystemZ/insn-aeb-01.s | 17 - test/MC/SystemZ/insn-aeb-02.s | 10 - test/MC/SystemZ/insn-aebr-01.s | 11 - test/MC/SystemZ/insn-afi-01.s | 15 - test/MC/SystemZ/insn-afi-02.s | 10 - test/MC/SystemZ/insn-ag-01.s | 23 - test/MC/SystemZ/insn-ag-02.s | 10 - test/MC/SystemZ/insn-agf-01.s | 23 - test/MC/SystemZ/insn-agf-02.s | 10 - test/MC/SystemZ/insn-agfi-01.s | 15 - test/MC/SystemZ/insn-agfi-02.s | 10 - test/MC/SystemZ/insn-agfr-01.s | 11 - test/MC/SystemZ/insn-aghi-01.s | 15 - test/MC/SystemZ/insn-aghi-02.s | 13 - test/MC/SystemZ/insn-agr-01.s | 11 - test/MC/SystemZ/insn-agsi-01.s | 29 - test/MC/SystemZ/insn-agsi-02.s | 19 - test/MC/SystemZ/insn-ah-01.s | 17 - test/MC/SystemZ/insn-ah-02.s | 10 - test/MC/SystemZ/insn-ahi-01.s | 15 - test/MC/SystemZ/insn-ahi-02.s | 13 - test/MC/SystemZ/insn-ahy-01.s | 23 - test/MC/SystemZ/insn-ahy-02.s | 10 - test/MC/SystemZ/insn-al-01.s | 17 - test/MC/SystemZ/insn-al-02.s | 10 - test/MC/SystemZ/insn-alc-01.s | 23 - test/MC/SystemZ/insn-alc-02.s | 10 - test/MC/SystemZ/insn-alcg-01.s | 23 - test/MC/SystemZ/insn-alcg-02.s | 10 - test/MC/SystemZ/insn-alcgr-01.s | 11 - test/MC/SystemZ/insn-alcr-01.s | 11 - test/MC/SystemZ/insn-alfi-01.s | 9 - test/MC/SystemZ/insn-alfi-02.s | 10 - test/MC/SystemZ/insn-alg-01.s | 23 - test/MC/SystemZ/insn-alg-02.s | 10 - test/MC/SystemZ/insn-algf-01.s | 23 - test/MC/SystemZ/insn-algf-02.s | 10 - test/MC/SystemZ/insn-algfi-01.s | 9 - test/MC/SystemZ/insn-algfi-02.s | 10 - test/MC/SystemZ/insn-algfr-01.s | 11 - test/MC/SystemZ/insn-algr-01.s | 11 - test/MC/SystemZ/insn-alr-01.s | 11 - test/MC/SystemZ/insn-aly-01.s | 23 - test/MC/SystemZ/insn-aly-02.s | 10 - test/MC/SystemZ/insn-ar-01.s | 11 - test/MC/SystemZ/insn-asi-01.s | 29 - test/MC/SystemZ/insn-asi-02.s | 19 - test/MC/SystemZ/insn-axbr-01.s | 11 - test/MC/SystemZ/insn-axbr-02.s | 17 - test/MC/SystemZ/insn-ay-01.s | 23 - test/MC/SystemZ/insn-ay-02.s | 10 - test/MC/SystemZ/insn-bad-z196.s | 343 + test/MC/SystemZ/insn-bad.s | 3315 +++ test/MC/SystemZ/insn-basr-01.s | 12 - test/MC/SystemZ/insn-br-01.s | 9 - test/MC/SystemZ/insn-bras-01.s | 31 - test/MC/SystemZ/insn-brasl-01.s | 31 - test/MC/SystemZ/insn-brc-01.s | 238 - test/MC/SystemZ/insn-brc-02.s | 13 - test/MC/SystemZ/insn-brcl-01.s | 238 - test/MC/SystemZ/insn-brcl-02.s | 13 - test/MC/SystemZ/insn-c-01.s | 17 - test/MC/SystemZ/insn-c-02.s | 10 - test/MC/SystemZ/insn-cdb-01.s | 17 - test/MC/SystemZ/insn-cdb-02.s | 10 - test/MC/SystemZ/insn-cdbr-01.s | 11 - test/MC/SystemZ/insn-cdfbr-01.s | 13 - test/MC/SystemZ/insn-cdfbr-02.s | 16 - test/MC/SystemZ/insn-cdgbr-01.s | 13 - test/MC/SystemZ/insn-cdgbr-02.s | 16 - test/MC/SystemZ/insn-ceb-01.s | 17 - test/MC/SystemZ/insn-ceb-02.s | 10 - test/MC/SystemZ/insn-cebr-01.s | 11 - test/MC/SystemZ/insn-cefbr-01.s | 13 - test/MC/SystemZ/insn-cefbr-02.s | 16 - test/MC/SystemZ/insn-cegbr-01.s | 13 - test/MC/SystemZ/insn-cegbr-02.s | 16 - test/MC/SystemZ/insn-cfdbr-01.s | 13 - test/MC/SystemZ/insn-cfdbr-02.s | 16 - test/MC/SystemZ/insn-cfebr-01.s | 13 - test/MC/SystemZ/insn-cfebr-02.s | 16 - test/MC/SystemZ/insn-cfi-01.s | 15 - test/MC/SystemZ/insn-cfi-02.s | 10 - test/MC/SystemZ/insn-cfxbr-01.s | 13 - test/MC/SystemZ/insn-cfxbr-02.s | 23 - test/MC/SystemZ/insn-cg-01.s | 23 - test/MC/SystemZ/insn-cg-02.s | 10 - test/MC/SystemZ/insn-cgdbr-01.s | 13 - test/MC/SystemZ/insn-cgdbr-02.s | 16 - test/MC/SystemZ/insn-cgebr-01.s | 13 - test/MC/SystemZ/insn-cgebr-02.s | 16 - test/MC/SystemZ/insn-cgf-01.s | 23 - test/MC/SystemZ/insn-cgf-02.s | 10 - test/MC/SystemZ/insn-cgfi-01.s | 15 - test/MC/SystemZ/insn-cgfi-02.s | 10 - test/MC/SystemZ/insn-cgfr-01.s | 11 - test/MC/SystemZ/insn-cgfrl-01.s | 31 - test/MC/SystemZ/insn-cgh-01.s | 23 - test/MC/SystemZ/insn-cgh-02.s | 10 - test/MC/SystemZ/insn-cghi-01.s | 15 - test/MC/SystemZ/insn-cghi-02.s | 13 - test/MC/SystemZ/insn-cghrl-01.s | 31 - test/MC/SystemZ/insn-cghsi-01.s | 25 - test/MC/SystemZ/insn-cghsi-02.s | 19 - test/MC/SystemZ/insn-cgr-01.s | 11 - test/MC/SystemZ/insn-cgrl-01.s | 31 - test/MC/SystemZ/insn-cgxbr-01.s | 13 - test/MC/SystemZ/insn-cgxbr-02.s | 23 - test/MC/SystemZ/insn-ch-01.s | 17 - test/MC/SystemZ/insn-ch-02.s | 10 - test/MC/SystemZ/insn-chhsi-01.s | 25 - test/MC/SystemZ/insn-chhsi-02.s | 19 - test/MC/SystemZ/insn-chi-01.s | 15 - test/MC/SystemZ/insn-chi-02.s | 13 - test/MC/SystemZ/insn-chrl-01.s | 31 - test/MC/SystemZ/insn-chsi-01.s | 25 - test/MC/SystemZ/insn-chsi-02.s | 19 - test/MC/SystemZ/insn-chy-01.s | 23 - test/MC/SystemZ/insn-chy-02.s | 10 - test/MC/SystemZ/insn-cl-01.s | 17 - test/MC/SystemZ/insn-cl-02.s | 10 - test/MC/SystemZ/insn-clfhsi-01.s | 17 - test/MC/SystemZ/insn-clfhsi-02.s | 19 - test/MC/SystemZ/insn-clfi-01.s | 9 - test/MC/SystemZ/insn-clfi-02.s | 10 - test/MC/SystemZ/insn-clg-01.s | 23 - test/MC/SystemZ/insn-clg-02.s | 10 - test/MC/SystemZ/insn-clgf-01.s | 23 - test/MC/SystemZ/insn-clgf-02.s | 10 - test/MC/SystemZ/insn-clgfi-01.s | 9 - test/MC/SystemZ/insn-clgfi-02.s | 10 - test/MC/SystemZ/insn-clgfr-01.s | 11 - test/MC/SystemZ/insn-clgfrl-01.s | 31 - test/MC/SystemZ/insn-clghrl-01.s | 31 - test/MC/SystemZ/insn-clghsi-01.s | 17 - test/MC/SystemZ/insn-clghsi-02.s | 19 - test/MC/SystemZ/insn-clgr-01.s | 11 - test/MC/SystemZ/insn-clgrl-01.s | 31 - test/MC/SystemZ/insn-clhhsi-01.s | 17 - test/MC/SystemZ/insn-clhhsi-02.s | 19 - test/MC/SystemZ/insn-clhrl-01.s | 31 - test/MC/SystemZ/insn-cli-01.s | 17 - test/MC/SystemZ/insn-cli-02.s | 19 - test/MC/SystemZ/insn-cliy-01.s | 23 - test/MC/SystemZ/insn-cliy-02.s | 19 - test/MC/SystemZ/insn-clr-01.s | 11 - test/MC/SystemZ/insn-clrl-01.s | 31 - test/MC/SystemZ/insn-cly-01.s | 23 - test/MC/SystemZ/insn-cly-02.s | 10 - test/MC/SystemZ/insn-cpsdr-01.s | 16 - test/MC/SystemZ/insn-cr-01.s | 11 - test/MC/SystemZ/insn-crl-01.s | 31 - test/MC/SystemZ/insn-cs-01.s | 19 - test/MC/SystemZ/insn-cs-02.s | 13 - test/MC/SystemZ/insn-csg-01.s | 25 - test/MC/SystemZ/insn-csg-02.s | 13 - test/MC/SystemZ/insn-csy-01.s | 25 - test/MC/SystemZ/insn-csy-02.s | 13 - test/MC/SystemZ/insn-cxbr-01.s | 11 - test/MC/SystemZ/insn-cxbr-02.s | 17 - test/MC/SystemZ/insn-cxfbr-01.s | 13 - test/MC/SystemZ/insn-cxfbr-02.s | 22 - test/MC/SystemZ/insn-cxgbr-01.s | 13 - test/MC/SystemZ/insn-cxgbr-02.s | 22 - test/MC/SystemZ/insn-cy-01.s | 23 - test/MC/SystemZ/insn-cy-02.s | 10 - test/MC/SystemZ/insn-ddb-01.s | 17 - test/MC/SystemZ/insn-ddb-02.s | 10 - test/MC/SystemZ/insn-ddbr-01.s | 11 - test/MC/SystemZ/insn-deb-01.s | 17 - test/MC/SystemZ/insn-deb-02.s | 10 - test/MC/SystemZ/insn-debr-01.s | 11 - test/MC/SystemZ/insn-dl-01.s | 23 - test/MC/SystemZ/insn-dl-02.s | 16 - test/MC/SystemZ/insn-dlg-01.s | 23 - test/MC/SystemZ/insn-dlg-02.s | 16 - test/MC/SystemZ/insn-dlgr-01.s | 11 - test/MC/SystemZ/insn-dlgr-02.s | 10 - test/MC/SystemZ/insn-dlr-01.s | 11 - test/MC/SystemZ/insn-dlr-02.s | 10 - test/MC/SystemZ/insn-dsg-01.s | 23 - test/MC/SystemZ/insn-dsg-02.s | 16 - test/MC/SystemZ/insn-dsgf-01.s | 23 - test/MC/SystemZ/insn-dsgf-02.s | 16 - test/MC/SystemZ/insn-dsgfr-01.s | 11 - test/MC/SystemZ/insn-dsgfr-02.s | 10 - test/MC/SystemZ/insn-dsgr-01.s | 11 - test/MC/SystemZ/insn-dsgr-02.s | 10 - test/MC/SystemZ/insn-dxbr-01.s | 11 - test/MC/SystemZ/insn-dxbr-02.s | 17 - test/MC/SystemZ/insn-ear-01.s | 13 - test/MC/SystemZ/insn-ear-02.s | 13 - test/MC/SystemZ/insn-fidbr-01.s | 13 - test/MC/SystemZ/insn-fidbr-02.s | 16 - test/MC/SystemZ/insn-fiebr-01.s | 13 - test/MC/SystemZ/insn-fiebr-02.s | 16 - test/MC/SystemZ/insn-fixbr-01.s | 13 - test/MC/SystemZ/insn-fixbr-02.s | 28 - test/MC/SystemZ/insn-flogr-01.s | 11 - test/MC/SystemZ/insn-flogr-02.s | 10 - test/MC/SystemZ/insn-good-z196.s | 916 + test/MC/SystemZ/insn-good.s | 8580 +++++++ test/MC/SystemZ/insn-ic-01.s | 17 - test/MC/SystemZ/insn-ic-02.s | 10 - test/MC/SystemZ/insn-icy-01.s | 23 - test/MC/SystemZ/insn-icy-02.s | 10 - test/MC/SystemZ/insn-iihf-01.s | 9 - test/MC/SystemZ/insn-iihf-02.s | 10 - test/MC/SystemZ/insn-iihh-01.s | 11 - test/MC/SystemZ/insn-iihh-02.s | 10 - test/MC/SystemZ/insn-iihl-01.s | 11 - test/MC/SystemZ/insn-iihl-02.s | 10 - test/MC/SystemZ/insn-iilf-01.s | 9 - test/MC/SystemZ/insn-iilf-02.s | 10 - test/MC/SystemZ/insn-iilh-01.s | 11 - test/MC/SystemZ/insn-iilh-02.s | 10 - test/MC/SystemZ/insn-iill-01.s | 11 - test/MC/SystemZ/insn-iill-02.s | 10 - test/MC/SystemZ/insn-l-01.s | 17 - test/MC/SystemZ/insn-l-02.s | 10 - test/MC/SystemZ/insn-la-01.s | 17 - test/MC/SystemZ/insn-la-02.s | 10 - test/MC/SystemZ/insn-larl-01.s | 31 - test/MC/SystemZ/insn-lay-01.s | 23 - test/MC/SystemZ/insn-lay-02.s | 10 - test/MC/SystemZ/insn-lb-01.s | 23 - test/MC/SystemZ/insn-lb-02.s | 10 - test/MC/SystemZ/insn-lbr-01.s | 9 - test/MC/SystemZ/insn-lcdbr-01.s | 11 - test/MC/SystemZ/insn-lcebr-01.s | 11 - test/MC/SystemZ/insn-lcgfr-01.s | 11 - test/MC/SystemZ/insn-lcgr-01.s | 11 - test/MC/SystemZ/insn-lcr-01.s | 11 - test/MC/SystemZ/insn-lcxbr-01.s | 11 - test/MC/SystemZ/insn-lcxbr-02.s | 17 - test/MC/SystemZ/insn-ld-01.s | 17 - test/MC/SystemZ/insn-ld-02.s | 10 - test/MC/SystemZ/insn-ldeb-01.s | 17 - test/MC/SystemZ/insn-ldeb-02.s | 10 - test/MC/SystemZ/insn-ldebr-01.s | 9 - test/MC/SystemZ/insn-ldgr-01.s | 13 - test/MC/SystemZ/insn-ldgr-02.s | 16 - test/MC/SystemZ/insn-ldr-01.s | 11 - test/MC/SystemZ/insn-ldxbr-01.s | 13 - test/MC/SystemZ/insn-ldxbr-02.s | 16 - test/MC/SystemZ/insn-ldy-01.s | 23 - test/MC/SystemZ/insn-ldy-02.s | 10 - test/MC/SystemZ/insn-le-01.s | 17 - test/MC/SystemZ/insn-le-02.s | 10 - test/MC/SystemZ/insn-ledbr-01.s | 13 - test/MC/SystemZ/insn-ler-01.s | 11 - test/MC/SystemZ/insn-lexbr-01.s | 13 - test/MC/SystemZ/insn-lexbr-02.s | 16 - test/MC/SystemZ/insn-ley-01.s | 23 - test/MC/SystemZ/insn-ley-02.s | 10 - test/MC/SystemZ/insn-lg-01.s | 23 - test/MC/SystemZ/insn-lg-02.s | 10 - test/MC/SystemZ/insn-lgb-01.s | 24 - test/MC/SystemZ/insn-lgb-02.s | 10 - test/MC/SystemZ/insn-lgbr-01.s | 9 - test/MC/SystemZ/insn-lgdr-01.s | 13 - test/MC/SystemZ/insn-lgdr-02.s | 16 - test/MC/SystemZ/insn-lgf-01.s | 24 - test/MC/SystemZ/insn-lgf-02.s | 10 - test/MC/SystemZ/insn-lgfi-01.s | 15 - test/MC/SystemZ/insn-lgfi-02.s | 10 - test/MC/SystemZ/insn-lgfr-01.s | 9 - test/MC/SystemZ/insn-lgfrl-01.s | 31 - test/MC/SystemZ/insn-lgh-01.s | 24 - test/MC/SystemZ/insn-lgh-02.s | 10 - test/MC/SystemZ/insn-lghi-01.s | 15 - test/MC/SystemZ/insn-lghi-02.s | 13 - test/MC/SystemZ/insn-lghr-01.s | 9 - test/MC/SystemZ/insn-lghrl-01.s | 31 - test/MC/SystemZ/insn-lgr-01.s | 11 - test/MC/SystemZ/insn-lgrl-01.s | 31 - test/MC/SystemZ/insn-lh-01.s | 17 - test/MC/SystemZ/insn-lh-02.s | 10 - test/MC/SystemZ/insn-lhi-01.s | 15 - test/MC/SystemZ/insn-lhi-02.s | 13 - test/MC/SystemZ/insn-lhr-01.s | 9 - test/MC/SystemZ/insn-lhrl-01.s | 31 - test/MC/SystemZ/insn-lhy-01.s | 23 - test/MC/SystemZ/insn-lhy-02.s | 10 - test/MC/SystemZ/insn-llc-01.s | 23 - test/MC/SystemZ/insn-llc-02.s | 10 - test/MC/SystemZ/insn-llcr-01.s | 9 - test/MC/SystemZ/insn-llgc-01.s | 24 - test/MC/SystemZ/insn-llgc-02.s | 10 - test/MC/SystemZ/insn-llgcr-01.s | 9 - test/MC/SystemZ/insn-llgf-01.s | 24 - test/MC/SystemZ/insn-llgf-02.s | 10 - test/MC/SystemZ/insn-llgfr-01.s | 9 - test/MC/SystemZ/insn-llgfrl-01.s | 31 - test/MC/SystemZ/insn-llgh-01.s | 24 - test/MC/SystemZ/insn-llgh-02.s | 10 - test/MC/SystemZ/insn-llghr-01.s | 9 - test/MC/SystemZ/insn-llghrl-01.s | 31 - test/MC/SystemZ/insn-llh-01.s | 23 - test/MC/SystemZ/insn-llh-02.s | 10 - test/MC/SystemZ/insn-llhr-01.s | 9 - test/MC/SystemZ/insn-llhrl-01.s | 31 - test/MC/SystemZ/insn-llihf-01.s | 9 - test/MC/SystemZ/insn-llihf-02.s | 10 - test/MC/SystemZ/insn-llihh-01.s | 11 - test/MC/SystemZ/insn-llihh-02.s | 10 - test/MC/SystemZ/insn-llihl-01.s | 11 - test/MC/SystemZ/insn-llihl-02.s | 10 - test/MC/SystemZ/insn-llilf-01.s | 9 - test/MC/SystemZ/insn-llilf-02.s | 10 - test/MC/SystemZ/insn-llilh-01.s | 11 - test/MC/SystemZ/insn-llilh-02.s | 10 - test/MC/SystemZ/insn-llill-01.s | 11 - test/MC/SystemZ/insn-llill-02.s | 10 - test/MC/SystemZ/insn-lmg-01.s | 29 - test/MC/SystemZ/insn-lmg-02.s | 13 - test/MC/SystemZ/insn-lndbr-01.s | 11 - test/MC/SystemZ/insn-lnebr-01.s | 11 - test/MC/SystemZ/insn-lnxbr-01.s | 11 - test/MC/SystemZ/insn-lnxbr-02.s | 17 - test/MC/SystemZ/insn-lpdbr-01.s | 11 - test/MC/SystemZ/insn-lpebr-01.s | 11 - test/MC/SystemZ/insn-lpxbr-01.s | 11 - test/MC/SystemZ/insn-lpxbr-02.s | 17 - test/MC/SystemZ/insn-lr-01.s | 11 - test/MC/SystemZ/insn-lrl-01.s | 31 - test/MC/SystemZ/insn-lrv-01.s | 23 - test/MC/SystemZ/insn-lrv-02.s | 10 - test/MC/SystemZ/insn-lrvg-01.s | 23 - test/MC/SystemZ/insn-lrvg-02.s | 10 - test/MC/SystemZ/insn-lrvgr-01.s | 13 - test/MC/SystemZ/insn-lrvr-01.s | 13 - test/MC/SystemZ/insn-lxr-01.s | 11 - test/MC/SystemZ/insn-lxr-02.s | 16 - test/MC/SystemZ/insn-ly-01.s | 23 - test/MC/SystemZ/insn-ly-02.s | 10 - test/MC/SystemZ/insn-lzdr-01.s | 9 - test/MC/SystemZ/insn-lzer-01.s | 9 - test/MC/SystemZ/insn-lzxr-01.s | 9 - test/MC/SystemZ/insn-lzxr-02.s | 13 - test/MC/SystemZ/insn-madb-01.s | 21 - test/MC/SystemZ/insn-madb-02.s | 10 - test/MC/SystemZ/insn-madbr-01.s | 15 - test/MC/SystemZ/insn-maeb-01.s | 21 - test/MC/SystemZ/insn-maeb-02.s | 10 - test/MC/SystemZ/insn-maebr-01.s | 15 - test/MC/SystemZ/insn-mdb-01.s | 17 - test/MC/SystemZ/insn-mdb-02.s | 10 - test/MC/SystemZ/insn-mdbr-01.s | 11 - test/MC/SystemZ/insn-mdeb-01.s | 17 - test/MC/SystemZ/insn-mdeb-02.s | 10 - test/MC/SystemZ/insn-mdebr-01.s | 11 - test/MC/SystemZ/insn-meeb-01.s | 17 - test/MC/SystemZ/insn-meeb-02.s | 10 - test/MC/SystemZ/insn-meebr-01.s | 11 - test/MC/SystemZ/insn-mghi-01.s | 15 - test/MC/SystemZ/insn-mghi-02.s | 13 - test/MC/SystemZ/insn-mh-01.s | 17 - test/MC/SystemZ/insn-mh-02.s | 10 - test/MC/SystemZ/insn-mhi-01.s | 15 - test/MC/SystemZ/insn-mhi-02.s | 13 - test/MC/SystemZ/insn-mhy-01.s | 23 - test/MC/SystemZ/insn-mhy-02.s | 10 - test/MC/SystemZ/insn-mlg-01.s | 23 - test/MC/SystemZ/insn-mlg-02.s | 16 - test/MC/SystemZ/insn-mlgr-01.s | 11 - test/MC/SystemZ/insn-mlgr-02.s | 10 - test/MC/SystemZ/insn-ms-01.s | 17 - test/MC/SystemZ/insn-ms-02.s | 10 - test/MC/SystemZ/insn-msdb-01.s | 21 - test/MC/SystemZ/insn-msdb-02.s | 10 - test/MC/SystemZ/insn-msdbr-01.s | 15 - test/MC/SystemZ/insn-mseb-01.s | 21 - test/MC/SystemZ/insn-mseb-02.s | 10 - test/MC/SystemZ/insn-msebr-01.s | 15 - test/MC/SystemZ/insn-msfi-01.s | 15 - test/MC/SystemZ/insn-msfi-02.s | 10 - test/MC/SystemZ/insn-msg-01.s | 23 - test/MC/SystemZ/insn-msg-02.s | 10 - test/MC/SystemZ/insn-msgf-01.s | 23 - test/MC/SystemZ/insn-msgf-02.s | 10 - test/MC/SystemZ/insn-msgfi-01.s | 15 - test/MC/SystemZ/insn-msgfi-02.s | 10 - test/MC/SystemZ/insn-msgfr-01.s | 11 - test/MC/SystemZ/insn-msgr-01.s | 11 - test/MC/SystemZ/insn-msr-01.s | 11 - test/MC/SystemZ/insn-msy-01.s | 23 - test/MC/SystemZ/insn-msy-02.s | 10 - test/MC/SystemZ/insn-mvghi-01.s | 25 - test/MC/SystemZ/insn-mvghi-02.s | 19 - test/MC/SystemZ/insn-mvhhi-01.s | 25 - test/MC/SystemZ/insn-mvhhi-02.s | 19 - test/MC/SystemZ/insn-mvhi-01.s | 25 - test/MC/SystemZ/insn-mvhi-02.s | 19 - test/MC/SystemZ/insn-mvi-01.s | 17 - test/MC/SystemZ/insn-mvi-02.s | 19 - test/MC/SystemZ/insn-mviy-01.s | 23 - test/MC/SystemZ/insn-mviy-02.s | 19 - test/MC/SystemZ/insn-mxbr-01.s | 11 - test/MC/SystemZ/insn-mxbr-02.s | 17 - test/MC/SystemZ/insn-mxdb-01.s | 17 - test/MC/SystemZ/insn-mxdb-02.s | 16 - test/MC/SystemZ/insn-mxdbr-01.s | 11 - test/MC/SystemZ/insn-mxdbr-02.s | 10 - test/MC/SystemZ/insn-n-01.s | 17 - test/MC/SystemZ/insn-n-02.s | 10 - test/MC/SystemZ/insn-ng-01.s | 23 - test/MC/SystemZ/insn-ng-02.s | 10 - test/MC/SystemZ/insn-ngr-01.s | 11 - test/MC/SystemZ/insn-ni-01.s | 17 - test/MC/SystemZ/insn-ni-02.s | 19 - test/MC/SystemZ/insn-nihf-01.s | 9 - test/MC/SystemZ/insn-nihf-02.s | 10 - test/MC/SystemZ/insn-nihh-01.s | 11 - test/MC/SystemZ/insn-nihh-02.s | 10 - test/MC/SystemZ/insn-nihl-01.s | 11 - test/MC/SystemZ/insn-nihl-02.s | 10 - test/MC/SystemZ/insn-nilf-01.s | 9 - test/MC/SystemZ/insn-nilf-02.s | 10 - test/MC/SystemZ/insn-nilh-01.s | 11 - test/MC/SystemZ/insn-nilh-02.s | 10 - test/MC/SystemZ/insn-nill-01.s | 11 - test/MC/SystemZ/insn-nill-02.s | 10 - test/MC/SystemZ/insn-niy-01.s | 23 - test/MC/SystemZ/insn-niy-02.s | 19 - test/MC/SystemZ/insn-nr-01.s | 11 - test/MC/SystemZ/insn-ny-01.s | 23 - test/MC/SystemZ/insn-ny-02.s | 10 - test/MC/SystemZ/insn-o-01.s | 17 - test/MC/SystemZ/insn-o-02.s | 10 - test/MC/SystemZ/insn-og-01.s | 23 - test/MC/SystemZ/insn-og-02.s | 10 - test/MC/SystemZ/insn-ogr-01.s | 11 - test/MC/SystemZ/insn-oi-01.s | 17 - test/MC/SystemZ/insn-oi-02.s | 19 - test/MC/SystemZ/insn-oihf-01.s | 9 - test/MC/SystemZ/insn-oihf-02.s | 10 - test/MC/SystemZ/insn-oihh-01.s | 11 - test/MC/SystemZ/insn-oihh-02.s | 10 - test/MC/SystemZ/insn-oihl-01.s | 11 - test/MC/SystemZ/insn-oihl-02.s | 10 - test/MC/SystemZ/insn-oilf-01.s | 9 - test/MC/SystemZ/insn-oilf-02.s | 10 - test/MC/SystemZ/insn-oilh-01.s | 11 - test/MC/SystemZ/insn-oilh-02.s | 10 - test/MC/SystemZ/insn-oill-01.s | 11 - test/MC/SystemZ/insn-oill-02.s | 10 - test/MC/SystemZ/insn-oiy-01.s | 23 - test/MC/SystemZ/insn-oiy-02.s | 19 - test/MC/SystemZ/insn-or-01.s | 11 - test/MC/SystemZ/insn-oy-01.s | 23 - test/MC/SystemZ/insn-oy-02.s | 10 - test/MC/SystemZ/insn-risbg-01.s | 17 - test/MC/SystemZ/insn-risbg-02.s | 22 - test/MC/SystemZ/insn-rll-01.s | 27 - test/MC/SystemZ/insn-rll-02.s | 16 - test/MC/SystemZ/insn-rllg-01.s | 27 - test/MC/SystemZ/insn-rllg-02.s | 16 - test/MC/SystemZ/insn-s-01.s | 17 - test/MC/SystemZ/insn-s-02.s | 10 - test/MC/SystemZ/insn-sdb-01.s | 17 - test/MC/SystemZ/insn-sdb-02.s | 10 - test/MC/SystemZ/insn-sdbr-01.s | 11 - test/MC/SystemZ/insn-seb-01.s | 17 - test/MC/SystemZ/insn-seb-02.s | 10 - test/MC/SystemZ/insn-sebr-01.s | 11 - test/MC/SystemZ/insn-sg-01.s | 23 - test/MC/SystemZ/insn-sg-02.s | 10 - test/MC/SystemZ/insn-sgf-01.s | 23 - test/MC/SystemZ/insn-sgf-02.s | 10 - test/MC/SystemZ/insn-sgfr-01.s | 11 - test/MC/SystemZ/insn-sgr-01.s | 11 - test/MC/SystemZ/insn-sl-01.s | 17 - test/MC/SystemZ/insn-sl-02.s | 10 - test/MC/SystemZ/insn-slb-01.s | 23 - test/MC/SystemZ/insn-slb-02.s | 10 - test/MC/SystemZ/insn-slbg-01.s | 23 - test/MC/SystemZ/insn-slbg-02.s | 10 - test/MC/SystemZ/insn-slbgr-01.s | 11 - test/MC/SystemZ/insn-slbr-01.s | 11 - test/MC/SystemZ/insn-slfi-01.s | 9 - test/MC/SystemZ/insn-slfi-02.s | 10 - test/MC/SystemZ/insn-slg-01.s | 23 - test/MC/SystemZ/insn-slg-02.s | 10 - test/MC/SystemZ/insn-slgf-01.s | 23 - test/MC/SystemZ/insn-slgf-02.s | 10 - test/MC/SystemZ/insn-slgfi-01.s | 9 - test/MC/SystemZ/insn-slgfi-02.s | 10 - test/MC/SystemZ/insn-slgfr-01.s | 11 - test/MC/SystemZ/insn-slgr-01.s | 11 - test/MC/SystemZ/insn-sll-01.s | 19 - test/MC/SystemZ/insn-sll-02.s | 16 - test/MC/SystemZ/insn-sllg-01.s | 27 - test/MC/SystemZ/insn-sllg-02.s | 16 - test/MC/SystemZ/insn-slr-01.s | 11 - test/MC/SystemZ/insn-sly-01.s | 23 - test/MC/SystemZ/insn-sly-02.s | 10 - test/MC/SystemZ/insn-sqdb-01.s | 17 - test/MC/SystemZ/insn-sqdb-02.s | 10 - test/MC/SystemZ/insn-sqdbr-01.s | 11 - test/MC/SystemZ/insn-sqeb-01.s | 17 - test/MC/SystemZ/insn-sqeb-02.s | 10 - test/MC/SystemZ/insn-sqebr-01.s | 11 - test/MC/SystemZ/insn-sqxbr-01.s | 11 - test/MC/SystemZ/insn-sqxbr-02.s | 17 - test/MC/SystemZ/insn-sr-01.s | 11 - test/MC/SystemZ/insn-sra-01.s | 19 - test/MC/SystemZ/insn-sra-02.s | 16 - test/MC/SystemZ/insn-srag-01.s | 27 - test/MC/SystemZ/insn-srag-02.s | 16 - test/MC/SystemZ/insn-srl-01.s | 19 - test/MC/SystemZ/insn-srl-02.s | 16 - test/MC/SystemZ/insn-srlg-01.s | 27 - test/MC/SystemZ/insn-srlg-02.s | 16 - test/MC/SystemZ/insn-st-01.s | 17 - test/MC/SystemZ/insn-st-02.s | 10 - test/MC/SystemZ/insn-stc-01.s | 17 - test/MC/SystemZ/insn-stc-02.s | 10 - test/MC/SystemZ/insn-stcy-01.s | 23 - test/MC/SystemZ/insn-stcy-02.s | 10 - test/MC/SystemZ/insn-std-01.s | 17 - test/MC/SystemZ/insn-std-02.s | 10 - test/MC/SystemZ/insn-stdy-01.s | 23 - test/MC/SystemZ/insn-stdy-02.s | 10 - test/MC/SystemZ/insn-ste-01.s | 17 - test/MC/SystemZ/insn-ste-02.s | 10 - test/MC/SystemZ/insn-stey-01.s | 23 - test/MC/SystemZ/insn-stey-02.s | 10 - test/MC/SystemZ/insn-stg-01.s | 23 - test/MC/SystemZ/insn-stg-02.s | 10 - test/MC/SystemZ/insn-stgrl-01.s | 31 - test/MC/SystemZ/insn-sth-01.s | 17 - test/MC/SystemZ/insn-sth-02.s | 10 - test/MC/SystemZ/insn-sthrl-01.s | 31 - test/MC/SystemZ/insn-sthy-01.s | 23 - test/MC/SystemZ/insn-sthy-02.s | 10 - test/MC/SystemZ/insn-stmg-01.s | 29 - test/MC/SystemZ/insn-stmg-02.s | 13 - test/MC/SystemZ/insn-strl-01.s | 31 - test/MC/SystemZ/insn-strv-01.s | 23 - test/MC/SystemZ/insn-strv-02.s | 10 - test/MC/SystemZ/insn-strvg-01.s | 23 - test/MC/SystemZ/insn-strvg-02.s | 10 - test/MC/SystemZ/insn-sty-01.s | 23 - test/MC/SystemZ/insn-sty-02.s | 10 - test/MC/SystemZ/insn-sxbr-01.s | 11 - test/MC/SystemZ/insn-sxbr-02.s | 17 - test/MC/SystemZ/insn-sy-01.s | 23 - test/MC/SystemZ/insn-sy-02.s | 10 - test/MC/SystemZ/insn-x-01.s | 17 - test/MC/SystemZ/insn-x-02.s | 10 - test/MC/SystemZ/insn-xg-01.s | 23 - test/MC/SystemZ/insn-xg-02.s | 10 - test/MC/SystemZ/insn-xgr-01.s | 11 - test/MC/SystemZ/insn-xi-01.s | 17 - test/MC/SystemZ/insn-xi-02.s | 19 - test/MC/SystemZ/insn-xihf-01.s | 9 - test/MC/SystemZ/insn-xihf-02.s | 10 - test/MC/SystemZ/insn-xilf-01.s | 9 - test/MC/SystemZ/insn-xilf-02.s | 10 - test/MC/SystemZ/insn-xiy-01.s | 23 - test/MC/SystemZ/insn-xiy-02.s | 19 - test/MC/SystemZ/insn-xr-01.s | 11 - test/MC/SystemZ/insn-xy-01.s | 23 - test/MC/SystemZ/insn-xy-02.s | 10 - test/MC/SystemZ/lit.local.cfg | 2 - test/MC/SystemZ/regs-01.s | 19 - test/MC/SystemZ/regs-02.s | 19 - test/MC/SystemZ/regs-03.s | 19 - test/MC/SystemZ/regs-04.s | 19 - test/MC/SystemZ/regs-05.s | 19 - test/MC/SystemZ/regs-06.s | 11 - test/MC/SystemZ/regs-07.s | 28 - test/MC/SystemZ/regs-08.s | 28 - test/MC/SystemZ/regs-09.s | 31 - test/MC/SystemZ/regs-10.s | 28 - test/MC/SystemZ/regs-11.s | 28 - test/MC/SystemZ/regs-12.s | 31 - test/MC/SystemZ/regs-13.s | 69 - test/MC/SystemZ/regs-14.s | 18 - test/MC/SystemZ/regs-15.s | 19 - test/MC/SystemZ/regs-bad.s | 267 + test/MC/SystemZ/regs-good.s | 169 + test/MC/SystemZ/tokens.s | 79 + .../AlignedBundling/align-mode-argument-error.s | 2 +- .../AlignedBundling/bundle-group-too-large-error.s | 2 +- .../X86/AlignedBundling/bundle-lock-option-error.s | 2 +- test/MC/X86/AlignedBundling/lit.local.cfg | 2 - .../lock-without-bundle-mode-error.s | 2 +- .../AlignedBundling/switch-section-locked-error.s | 2 +- .../AlignedBundling/unlock-without-lock-error.s | 2 +- test/MC/X86/avx512-encodings.s | 45 + test/MC/X86/cfi_def_cfa-crash.s | 73 + test/MC/X86/intel-syntax.s | 261 + test/MC/X86/lit.local.cfg | 2 - test/MC/X86/x86-32-coverage.s | 38 +- test/MC/X86/x86-32.s | 6 +- test/MC/X86/x86-64.s | 232 +- test/MC/X86/x86_64-avx-encoding.s | 80 +- test/MC/X86/x86_64-encoding.s | 72 + test/MC/X86/x86_64-hle-encoding.s | 9 + test/MC/X86/x86_64-tbm-encoding.s | 196 + test/MC/X86/x86_errors.s | 3 + test/MC/X86/x86_nop.s | 43 +- test/Makefile | 28 +- test/Makefile.tests | 12 - test/Object/ARM/macho-data-in-code.test | 7 + test/Object/Inputs/COFF/i386.yaml | 6 +- test/Object/Inputs/COFF/x86-64.yaml | 6 +- test/Object/Inputs/ELF/BE32.yaml | 6 + test/Object/Inputs/ELF/BE64.yaml | 6 + test/Object/Inputs/ELF/LE32.yaml | 6 + test/Object/Inputs/ELF/LE64.yaml | 6 + test/Object/Inputs/GNU.a | Bin 0 -> 4210 bytes test/Object/Inputs/IsNAN.o | Bin 0 -> 2280 bytes test/Object/Inputs/MacOSX.a | Bin 0 -> 4166 bytes test/Object/Inputs/SVR4.a | Bin 0 -> 4214 bytes .../Inputs/archive-test.a-corrupt-symbol-table | Bin 0 -> 2792 bytes test/Object/Inputs/archive-test.a-empty | 1 + test/Object/Inputs/archive-test.a-gnu-minimal | 2 + test/Object/Inputs/archive-test.a-gnu-no-symtab | 5 + test/Object/Inputs/coff_archive_short.lib | Bin 0 -> 1336 bytes test/Object/Inputs/corrupt-version.elf-x86_64 | Bin 0 -> 5200 bytes test/Object/Inputs/corrupt.elf-x86-64 | Bin 0 -> 1024 bytes test/Object/Inputs/elf-reloc-no-sym.x86_64 | Bin 0 -> 1768 bytes test/Object/Inputs/evenlen | 1 + .../Object/Inputs/macho-data-in-code.macho-thumbv7 | Bin 0 -> 680 bytes test/Object/Inputs/macho-universal.x86_64.i386 | Bin 0 -> 16624 bytes test/Object/Inputs/oddlen | 1 + test/Object/Inputs/program-headers.mips | Bin 0 -> 648 bytes .../Inputs/trivial-executable-test.macho-x86-64 | Bin 0 -> 8512 bytes test/Object/Inputs/trivial-object-test2.elf-x86-64 | Bin 0 -> 1424 bytes test/Object/Inputs/very_long_bytecode_file_name.bc | Bin 0 -> 1465 bytes test/Object/Inputs/weak-global-symbol.macho-i386 | Bin 0 -> 344 bytes test/Object/Inputs/xpg4.a | Bin 0 -> 4214 bytes test/Object/Mips/lit.local.cfg | 2 - test/Object/X86/lit.local.cfg | 2 - test/Object/X86/objdump-cfg-invalid-opcode.yaml | 58 + test/Object/X86/objdump-cfg-textatomsize.yaml | 39 + test/Object/X86/objdump-cfg.yaml | 86 + .../objdump-disassembly-inline-relocations.test | 35 + test/Object/X86/objdump-disassembly-symbolic.test | 48 + test/Object/ar-create.test | 17 + test/Object/archive-delete.test | 30 + test/Object/archive-error-tmp.txt | 9 + test/Object/archive-extract-dir.test | 13 + test/Object/archive-format.test | 22 + test/Object/archive-move.test | 50 + test/Object/archive-replace-pos.test | 30 + test/Object/archive-symtab.test | 59 + test/Object/archive-toc.test | 28 + test/Object/archive-update.test | 37 + test/Object/check_binary_output.ll | 4 + test/Object/coff-archive-short.test | 26 + test/Object/corrupt.test | 24 + test/Object/directory.ll | 13 + test/Object/elf-reloc-no-sym.test | 7 + test/Object/extract.ll | 46 + test/Object/lit.local.cfg | 2 +- test/Object/nm-archive.test | 25 +- test/Object/nm-error.test | 17 + test/Object/nm-trivial-object.test | 9 +- test/Object/nm-universal-binary.test | 6 + test/Object/nm-weak-global-macho.test | 3 + test/Object/obj2yaml.test | 187 +- test/Object/relocation-executable.test | 14 +- test/Object/yaml2obj-elf-bits-endian.test | 16 + test/Object/yaml2obj-elf-file-headers.yaml | 11 + test/Object/yaml2obj-elf-section-basic.yaml | 35 + .../yaml2obj-elf-symbol-LocalGlobalWeak.yaml | 37 + test/Object/yaml2obj-elf-symbol-basic.yaml | 40 + test/Other/Inputs/TestProg/TestProg | 3 + test/Other/Inputs/llvm-cov.gcda | Bin 296 -> 0 bytes test/Other/Inputs/llvm-cov.gcno | Bin 984 -> 0 bytes test/Other/Inputs/llvm_cov.gcda | Bin 0 -> 296 bytes test/Other/Inputs/llvm_cov.gcno | Bin 0 -> 984 bytes test/Other/ResponseFile.ll | 8 +- test/Other/X86/lit.local.cfg | 2 - test/Other/attribute-comment.ll | 2 +- test/Other/can-execute.txt | 20 + test/Other/close-stderr.ll | 3 - test/Other/constant-fold-gep-address-spaces.ll | 235 + test/Other/constant-fold-gep.ll | 4 +- test/Other/extract-alias.ll | 2 +- test/Other/extract-linkonce.ll | 11 +- test/Other/lit.local.cfg | 1 - test/Other/llvm-cov.test | 5 +- test/Other/optimize-options.ll | 12 +- test/Other/pipefail.txt | 2 + test/Other/umask.ll | 14 + test/TableGen/2003-08-03-PassCode.td | 1 - test/TableGen/2006-09-18-LargeInt.td | 4 +- test/TableGen/2010-03-24-PrematureDefaults.td | 1 + test/TableGen/CStyleComment.td | 1 - test/TableGen/Dag.td | 1 + test/TableGen/DefmInherit.td | 9 +- test/TableGen/DefmInsideMultiClass.td | 6 +- test/TableGen/ForeachList.td | 1 + test/TableGen/ForeachLoop.td | 1 + test/TableGen/Include.td | 2 +- test/TableGen/IntBitInit.td | 2 +- test/TableGen/LazyChange.td | 4 +- test/TableGen/LetInsideMultiClasses.td | 8 +- test/TableGen/ListOfList.td | 6 +- test/TableGen/LoLoL.td | 1 + test/TableGen/MultiClass.td | 7 +- test/TableGen/MultiClassDefName.td | 6 +- test/TableGen/MultiClassInherit.td | 34 +- test/TableGen/MultiPat.td | 1 + test/TableGen/NestedForeach.td | 1 + test/TableGen/Paste.td | 1 + test/TableGen/SetTheory.td | 1 + test/TableGen/SiblingForeach.td | 1 + test/TableGen/Slice.td | 1 + test/TableGen/String.td | 2 +- test/TableGen/TargetInstrSpec.td | 10 +- test/TableGen/TwoLevelName.td | 1 + test/TableGen/cast.td | 8 +- test/TableGen/defmclass.td | 1 + test/TableGen/eq.td | 1 + test/TableGen/eqbit.td | 1 + test/TableGen/foreach.td | 14 +- test/TableGen/if.td | 1 + test/TableGen/ifbit.td | 1 + test/TableGen/intrinsic-order.td | 36 + test/TableGen/intrinsic-varargs.td | 30 + test/TableGen/lisp.td | 18 +- test/TableGen/list-element-bitref.td | 1 + test/TableGen/math.td | 1 + test/TableGen/nested-comment.td | 1 - test/TableGen/pr8330.td | 1 + test/TableGen/strconcat.td | 4 +- test/TableGen/subst.td | 61 +- test/TableGen/subst2.td | 1 + test/TableGen/usevalname.td | 1 + test/Transforms/ADCE/lit.local.cfg | 1 - test/Transforms/ArgumentPromotion/lit.local.cfg | 1 - test/Transforms/ArgumentPromotion/reserve-tbaa.ll | 52 + test/Transforms/BBVectorize/X86/cmp-types.ll | 2 +- test/Transforms/BBVectorize/X86/loop1.ll | 4 +- test/Transforms/BBVectorize/X86/pr15289.ll | 23 +- test/Transforms/BBVectorize/X86/sh-rec.ll | 2 +- test/Transforms/BBVectorize/X86/sh-rec2.ll | 2 +- test/Transforms/BBVectorize/X86/sh-rec3.ll | 2 +- test/Transforms/BBVectorize/X86/sh-types.ll | 2 +- test/Transforms/BBVectorize/X86/simple-int.ll | 10 +- test/Transforms/BBVectorize/X86/simple-ldstr.ll | 2 +- test/Transforms/BBVectorize/X86/simple.ll | 10 +- test/Transforms/BBVectorize/X86/vs-cast.ll | 2 +- test/Transforms/BBVectorize/X86/wr-aliases.ll | 144 + test/Transforms/BBVectorize/cycle.ll | 2 +- test/Transforms/BBVectorize/ld1.ll | 2 +- test/Transforms/BBVectorize/lit.local.cfg | 2 - test/Transforms/BBVectorize/loop1.ll | 4 +- test/Transforms/BBVectorize/mem-op-depth.ll | 2 +- test/Transforms/BBVectorize/metadata.ll | 4 +- test/Transforms/BBVectorize/no-ldstr-conn.ll | 2 +- test/Transforms/BBVectorize/req-depth.ll | 4 +- test/Transforms/BBVectorize/search-limit.ll | 4 +- test/Transforms/BBVectorize/simple-int.ll | 10 +- test/Transforms/BBVectorize/simple-ldstr-ptrs.ll | 12 +- test/Transforms/BBVectorize/simple-ldstr.ll | 20 +- test/Transforms/BBVectorize/simple-sel.ll | 6 +- test/Transforms/BBVectorize/simple-tst.ll | 2 +- test/Transforms/BBVectorize/simple.ll | 16 +- test/Transforms/BBVectorize/simple3.ll | 2 +- .../BBVectorize/xcore/no-vector-registers.ll | 18 + test/Transforms/BlockPlacement/basictest.ll | 15 - test/Transforms/BlockPlacement/lit.local.cfg | 1 - test/Transforms/CodeExtractor/lit.local.cfg | 1 - test/Transforms/CodeGenPrepare/basic.ll | 2 +- test/Transforms/CodeGenPrepare/lit.local.cfg | 1 - test/Transforms/ConstProp/basictest.ll | 10 +- test/Transforms/ConstProp/bitcast.ll | 2 +- test/Transforms/ConstProp/bswap.ll | 8 +- test/Transforms/ConstProp/calls.ll | 24 +- test/Transforms/ConstProp/extractvalue.ll | 6 +- test/Transforms/ConstProp/insertvalue.ll | 6 +- test/Transforms/ConstProp/lit.local.cfg | 1 - test/Transforms/ConstProp/loads.ll | 76 +- test/Transforms/ConstProp/overflow-ops.ll | 38 +- test/Transforms/ConstantMerge/align.ll | 28 + test/Transforms/ConstantMerge/lit.local.cfg | 1 - .../CorrelatedValuePropagation/2010-09-02-Trunc.ll | 4 +- .../Transforms/CorrelatedValuePropagation/basic.ll | 18 +- .../CorrelatedValuePropagation/lit.local.cfg | 1 - .../Transforms/CorrelatedValuePropagation/range.ll | 14 +- test/Transforms/DeadArgElim/2010-04-30-DbgInfo.ll | 33 +- .../2013-05-17-VarargsAndBlockAddress.ll | 25 + test/Transforms/DeadArgElim/dbginfo.ll | 18 +- test/Transforms/DeadArgElim/deadexternal.ll | 2 +- test/Transforms/DeadArgElim/keepalive.ll | 2 +- test/Transforms/DeadArgElim/linkage.ll | 21 + test/Transforms/DeadArgElim/lit.local.cfg | 1 - test/Transforms/DeadArgElim/returned.ll | 55 + test/Transforms/DeadArgElim/variadic_safety.ll | 38 + .../2011-09-06-EndOfFunction.ll | 2 +- .../DeadStoreElimination/OverwriteStoreEnd.ll | 14 +- .../DeadStoreElimination/PartialStore.ll | 10 +- .../DeadStoreElimination/const-pointers.ll | 6 +- test/Transforms/DeadStoreElimination/free.ll | 10 +- .../Transforms/DeadStoreElimination/inst-limits.ll | 261 + test/Transforms/DeadStoreElimination/libcalls.ll | 12 +- test/Transforms/DeadStoreElimination/lifetime.ll | 2 +- test/Transforms/DeadStoreElimination/lit.local.cfg | 1 - .../DeadStoreElimination/memintrinsics.ll | 6 +- .../DeadStoreElimination/no-targetdata.ll | 2 +- test/Transforms/DeadStoreElimination/simple.ll | 50 +- test/Transforms/DebugIR/crash.ll | 42 + test/Transforms/DebugIR/exception.ll | 127 + test/Transforms/DebugIR/function.ll | 51 + test/Transforms/DebugIR/simple-addrspace.ll | 13 + test/Transforms/DebugIR/simple.ll | 25 + test/Transforms/DebugIR/struct.ll | 24 + test/Transforms/DebugIR/vector.ll | 93 + test/Transforms/EarlyCSE/basic.ll | 16 +- test/Transforms/EarlyCSE/commute.ll | 10 +- test/Transforms/EarlyCSE/instsimplify-dom.ll | 2 +- test/Transforms/EarlyCSE/lit.local.cfg | 1 - .../FunctionAttrs/2009-01-02-LocalStores.ll | 13 +- .../FunctionAttrs/2009-01-04-Annotate.ll | 2 +- test/Transforms/FunctionAttrs/annotate-1.ll | 7 +- test/Transforms/FunctionAttrs/atomic.ll | 2 +- test/Transforms/FunctionAttrs/lit.local.cfg | 1 - test/Transforms/FunctionAttrs/nocapture.ll | 20 +- test/Transforms/FunctionAttrs/noreturn.ll | 2 +- test/Transforms/FunctionAttrs/readattrs.ll | 47 + test/Transforms/GCOVProfiling/linkagename.ll | 6 +- test/Transforms/GCOVProfiling/lit.local.cfg | 1 - test/Transforms/GCOVProfiling/version.ll | 15 +- .../Transforms/GVN/2007-07-26-InterlockingLoops.ll | 8 +- test/Transforms/GVN/2008-07-02-Unreachable.ll | 8 +- test/Transforms/GVN/2010-11-13-Simplify.ll | 2 +- .../GVN/2011-06-01-NonLocalMemdepMiscompile.ll | 6 +- .../GVN/2011-07-07-MatchIntrinsicExtract.ll | 12 +- test/Transforms/GVN/commute.ll | 4 +- test/Transforms/GVN/cond_br.ll | 55 + test/Transforms/GVN/cond_br2.ll | 140 + test/Transforms/GVN/condprop.ll | 22 +- test/Transforms/GVN/edge.ll | 8 +- test/Transforms/GVN/lit.local.cfg | 1 - test/Transforms/GVN/load-pre-align.ll | 2 +- test/Transforms/GVN/local-pre.ll | 6 +- test/Transforms/GVN/malloc-load-removal.ll | 31 +- test/Transforms/GVN/non-local-offset.ll | 4 +- test/Transforms/GVN/phi-translate.ll | 2 +- test/Transforms/GVN/pr14166.ll | 2 +- test/Transforms/GVN/pr17732.ll | 30 + test/Transforms/GVN/pr17852.ll | 66 + test/Transforms/GVN/pre-load.ll | 16 +- test/Transforms/GVN/preserve-tbaa.ll | 5 +- test/Transforms/GVN/readattrs.ll | 17 + test/Transforms/GVN/rle-nonlocal.ll | 5 +- test/Transforms/GVN/rle-phi-translate.ll | 10 +- test/Transforms/GVN/rle-semidominated.ll | 5 +- test/Transforms/GVN/rle.ll | 92 +- test/Transforms/GVN/tbaa.ll | 28 +- test/Transforms/GlobalDCE/lit.local.cfg | 1 - test/Transforms/GlobalOpt/2008-07-17-addrspace.ll | 2 +- .../GlobalOpt/2009-02-15-ResolveAlias.ll | 2 +- test/Transforms/GlobalOpt/2009-03-05-dbg.ll | 18 +- .../GlobalOpt/2012-05-11-blockaddress.ll | 2 +- test/Transforms/GlobalOpt/alias-resolve.ll | 35 +- test/Transforms/GlobalOpt/alias-used.ll | 13 +- test/Transforms/GlobalOpt/array-elem-refs.ll | 32 + test/Transforms/GlobalOpt/atexit.ll | 6 + test/Transforms/GlobalOpt/atomic.ll | 15 + test/Transforms/GlobalOpt/blockaddress.ll | 4 +- .../GlobalOpt/cleanup-pointer-root-users.ll | 8 +- test/Transforms/GlobalOpt/compiler-used.ll | 16 + .../GlobalOpt/ctor-list-opt-constexpr.ll | 4 +- test/Transforms/GlobalOpt/deadglobal.ll | 2 +- test/Transforms/GlobalOpt/integer-bool.ll | 2 +- .../Transforms/GlobalOpt/invariant-nodatalayout.ll | 17 + test/Transforms/GlobalOpt/lit.local.cfg | 1 - test/Transforms/GlobalOpt/load-store-global.ll | 6 +- test/Transforms/GlobalOpt/malloc-promote-3.ll | 18 + test/Transforms/GlobalOpt/metadata.ll | 2 +- test/Transforms/GlobalOpt/tls.ll | 4 +- .../GlobalOpt/zeroinitializer-gep-load.ll | 2 +- test/Transforms/IPConstantProp/lit.local.cfg | 1 - .../IndVarSimplify/2011-10-27-lftrnull.ll | 2 +- .../IndVarSimplify/2011-11-01-lftrptr.ll | 8 +- .../IndVarSimplify/2011-11-17-selfphi.ll | 2 +- .../IndVarSimplify/2012-07-17-lftr-undef.ll | 2 +- .../2012-10-19-congruent-constant.ll | 2 +- test/Transforms/IndVarSimplify/dont-recompute.ll | 4 +- .../IndVarSimplify/eliminate-comparison.ll | 10 +- test/Transforms/IndVarSimplify/eliminate-rem.ll | 4 +- .../Transforms/IndVarSimplify/floating-point-iv.ll | 10 +- test/Transforms/IndVarSimplify/iv-fold.ll | 4 +- .../IndVarSimplify/lftr-address-space-pointers.ll | 69 + .../Transforms/IndVarSimplify/lftr-extend-const.ll | 44 + test/Transforms/IndVarSimplify/lftr-reuse.ll | 4 +- test/Transforms/IndVarSimplify/lftr-zext.ll | 26 + test/Transforms/IndVarSimplify/lit.local.cfg | 1 - test/Transforms/IndVarSimplify/loop_evaluate_1.ll | 34 +- test/Transforms/IndVarSimplify/loop_evaluate_6.ll | 5 - test/Transforms/IndVarSimplify/no-iv-rewrite.ll | 9 +- .../Transforms/IndVarSimplify/tripcount_compute.ll | 14 +- .../IndVarSimplify/udiv-invariant-but-traps.ll | 32 + test/Transforms/IndVarSimplify/udiv.ll | 4 +- test/Transforms/IndVarSimplify/ult-sub-to-eq.ll | 2 +- test/Transforms/IndVarSimplify/widen-nsw.ll | 29 + test/Transforms/Inline/2010-05-31-ByvalTailcall.ll | 2 +- test/Transforms/Inline/alloca-bonus.ll | 10 +- test/Transforms/Inline/alloca-merge-align-nodl.ll | 88 + test/Transforms/Inline/alloca-merge-align.ll | 122 + test/Transforms/Inline/always-inline.ll | 14 +- test/Transforms/Inline/attributes.ll | 112 + test/Transforms/Inline/basictest.ll | 8 +- test/Transforms/Inline/byval.ll | 23 + test/Transforms/Inline/delete-call.ll | 2 +- test/Transforms/Inline/devirtualize-2.ll | 2 +- test/Transforms/Inline/devirtualize.ll | 2 +- test/Transforms/Inline/dynamic_alloca_test.ll | 2 +- test/Transforms/Inline/gvn-inline-iteration.ll | 4 +- test/Transforms/Inline/inline-byval-bonus.ll | 2 +- .../Inline/inline-invoke-with-asm-call.ll | 32 + test/Transforms/Inline/inline-optnone.ll | 52 + test/Transforms/Inline/inline_cleanup.ll | 8 +- test/Transforms/Inline/inline_constprop.ll | 41 +- test/Transforms/Inline/inline_minisize.ll | 4 +- test/Transforms/Inline/inline_returns_twice.ll | 71 +- test/Transforms/Inline/invoke-cost.ll | 45 + test/Transforms/Inline/lifetime-no-datalayout.ll | 2 +- test/Transforms/Inline/lifetime.ll | 8 +- test/Transforms/Inline/lit.local.cfg | 1 - test/Transforms/Inline/nested-inline.ll | 6 +- test/Transforms/Inline/noinline-recursive-fn.ll | 6 +- test/Transforms/Inline/ptr-diff.ll | 49 +- test/Transforms/Inline/recursive.ll | 4 +- .../InstCombine/2002-05-14-SubFailure.ll | 5 +- .../InstCombine/2002-12-05-MissedConstProp.ll | 4 +- .../InstCombine/2003-08-12-AllocaNonNull.ll | 5 +- test/Transforms/InstCombine/2006-10-20-mask.ll | 4 +- .../InstCombine/2006-10-26-VectorReassoc.ll | 5 +- .../InstCombine/2006-12-08-Select-ICmp.ll | 3 +- test/Transforms/InstCombine/2007-01-27-AndICmp.ll | 4 +- .../InstCombine/2008-01-06-BitCastAttributes.ll | 25 +- test/Transforms/InstCombine/2008-01-06-VoidCast.ll | 10 +- .../InstCombine/2008-01-27-FloatSelect.ll | 3 +- test/Transforms/InstCombine/2008-02-13-MulURem.ll | 4 +- test/Transforms/InstCombine/2008-05-31-AddBool.ll | 4 +- .../Transforms/InstCombine/2008-11-20-DivMulRem.ll | 12 +- .../InstCombine/2009-01-16-PointerAddrSpace.ll | 2 +- test/Transforms/InstCombine/2010-03-03-ExtElim.ll | 20 +- .../Transforms/InstCombine/2010-11-01-lshr-mask.ll | 4 +- .../InstCombine/2010-11-21-SizeZeroTypeGEP.ll | 4 +- .../InstCombine/2010-11-23-Distributed.ll | 4 +- .../InstCombine/2011-06-13-nsw-alloca.ll | 4 +- .../InstCombine/2012-03-10-InstCombine.ll | 2 +- test/Transforms/InstCombine/2012-04-24-vselect.ll | 2 +- .../InstCombine/2012-05-28-select-hang.ll | 2 +- .../InstCombine/2012-07-30-addrsp-bitcast.ll | 4 +- .../Transforms/InstCombine/2012-08-28-udiv_ashl.ll | 8 +- .../InstCombine/2012-09-17-ZeroSizedAlloca.ll | 2 +- .../2012-09-24-MemcpyFromGlobalCrash.ll | 2 +- .../InstCombine/2012-3-15-or-xor-constant.ll | 2 +- .../2013-03-05-Combine-BitcastTy-Into-Alloca.ll | 2 +- test/Transforms/InstCombine/ExtractCast.ll | 4 +- test/Transforms/InstCombine/LandingPadClauses.ll | 6 +- test/Transforms/InstCombine/PR7357.ll | 17 + test/Transforms/InstCombine/abs-1.ll | 6 +- test/Transforms/InstCombine/add2.ll | 8 +- test/Transforms/InstCombine/add4.ll | 45 +- test/Transforms/InstCombine/addrspacecast.ll | 69 + test/Transforms/InstCombine/align-addr.ll | 31 +- test/Transforms/InstCombine/align-external.ll | 2 +- test/Transforms/InstCombine/alloca.ll | 37 +- test/Transforms/InstCombine/and-xor-or.ll | 4 +- test/Transforms/InstCombine/and.ll | 6 +- test/Transforms/InstCombine/and2.ll | 18 +- .../InstCombine/apint-call-cast-target.ll | 7 +- test/Transforms/InstCombine/apint-select.ll | 5 +- .../Transforms/InstCombine/apint-shift-simplify.ll | 6 +- test/Transforms/InstCombine/apint-shift.ll | 60 +- test/Transforms/InstCombine/apint-shl-trunc.ll | 4 +- test/Transforms/InstCombine/atomic.ll | 4 +- test/Transforms/InstCombine/badmalloc.ll | 4 +- .../InstCombine/bitcast-alias-function.ll | 229 + test/Transforms/InstCombine/bitcast-bigendian.ll | 45 +- test/Transforms/InstCombine/bitcast-vec-uniform.ll | 16 +- test/Transforms/InstCombine/bitcast-vector-fold.ll | 2 +- test/Transforms/InstCombine/bitcast.ll | 32 +- test/Transforms/InstCombine/call-cast-target.ll | 9 +- test/Transforms/InstCombine/call.ll | 222 +- test/Transforms/InstCombine/canonicalize_branch.ll | 8 +- test/Transforms/InstCombine/cast.ll | 147 +- test/Transforms/InstCombine/cast_ptr.ll | 55 +- test/Transforms/InstCombine/compare-signs.ll | 12 +- .../constant-fold-address-space-pointer.ll | 232 + test/Transforms/InstCombine/constant-fold-gep.ll | 22 +- test/Transforms/InstCombine/cos-1.ll | 6 +- test/Transforms/InstCombine/cos-2.ll | 2 +- test/Transforms/InstCombine/debug-line.ll | 16 +- test/Transforms/InstCombine/debuginfo.ll | 27 +- .../InstCombine/disable-simplify-libcalls.ll | 74 +- test/Transforms/InstCombine/div-shift-crash.ll | 101 + test/Transforms/InstCombine/div-shift.ll | 38 + test/Transforms/InstCombine/div.ll | 30 +- .../InstCombine/double-float-shrink-1.ll | 13 + .../InstCombine/enforce-known-alignment.ll | 26 +- test/Transforms/InstCombine/err-rep-cold.ll | 77 + test/Transforms/InstCombine/exact.ll | 36 +- test/Transforms/InstCombine/exp2-1.ll | 16 +- test/Transforms/InstCombine/exp2-2.ll | 2 +- test/Transforms/InstCombine/extractvalue.ll | 6 +- test/Transforms/InstCombine/fast-math.ll | 84 +- test/Transforms/InstCombine/fcmp.ll | 32 +- test/Transforms/InstCombine/fdiv.ll | 6 +- test/Transforms/InstCombine/ffs-1.ll | 32 +- .../Transforms/InstCombine/float-shrink-compare.ll | 179 + test/Transforms/InstCombine/fmul.ll | 37 +- test/Transforms/InstCombine/fneg-ext.ll | 23 + test/Transforms/InstCombine/fold-bin-operand.ll | 4 +- test/Transforms/InstCombine/fold-calls.ll | 4 +- .../InstCombine/fold-fops-into-selects.ll | 71 + test/Transforms/InstCombine/fold-vector-select.ll | 4 +- test/Transforms/InstCombine/fpcast.ll | 12 + test/Transforms/InstCombine/fprintf-1.ll | 16 +- test/Transforms/InstCombine/fputs-1.ll | 6 +- test/Transforms/InstCombine/fwrite-1.ll | 10 +- test/Transforms/InstCombine/gep-addrspace.ll | 2 +- test/Transforms/InstCombine/getelementptr.ll | 438 +- test/Transforms/InstCombine/icmp-logical.ll | 152 + test/Transforms/InstCombine/icmp.ll | 604 +- test/Transforms/InstCombine/idioms.ll | 2 +- test/Transforms/InstCombine/intrinsics.ll | 40 +- test/Transforms/InstCombine/invoke.ll | 6 +- test/Transforms/InstCombine/isascii-1.ll | 6 +- test/Transforms/InstCombine/isdigit-1.ll | 10 +- test/Transforms/InstCombine/lit.local.cfg | 1 - test/Transforms/InstCombine/load-cmp.ll | 334 +- test/Transforms/InstCombine/load-select.ll | 2 +- test/Transforms/InstCombine/load3.ll | 6 +- test/Transforms/InstCombine/malloc-free-delete.ll | 36 +- test/Transforms/InstCombine/memcmp-1.ll | 12 +- test/Transforms/InstCombine/memcmp-2.ll | 2 +- test/Transforms/InstCombine/memcpy-1.ll | 2 +- test/Transforms/InstCombine/memcpy-2.ll | 2 +- test/Transforms/InstCombine/memcpy-from-global.ll | 18 +- test/Transforms/InstCombine/memcpy.ll | 6 +- test/Transforms/InstCombine/memcpy_chk-1.ll | 8 +- test/Transforms/InstCombine/memcpy_chk-2.ll | 2 +- test/Transforms/InstCombine/memmove-1.ll | 2 +- test/Transforms/InstCombine/memmove-2.ll | 2 +- test/Transforms/InstCombine/memmove_chk-1.ll | 8 +- test/Transforms/InstCombine/memmove_chk-2.ll | 2 +- test/Transforms/InstCombine/memset-1.ll | 2 +- test/Transforms/InstCombine/memset-2.ll | 2 +- test/Transforms/InstCombine/memset_chk-1.ll | 10 +- test/Transforms/InstCombine/memset_chk-2.ll | 2 +- test/Transforms/InstCombine/merge-icmp.ll | 4 +- test/Transforms/InstCombine/mul.ll | 38 +- .../multi-size-address-space-pointer.ll | 112 + test/Transforms/InstCombine/no-negzero.ll | 2 +- test/Transforms/InstCombine/nsw.ll | 18 +- test/Transforms/InstCombine/objsize-64.ll | 4 +- .../InstCombine/objsize-address-space.ll | 80 + test/Transforms/InstCombine/objsize.ll | 92 +- test/Transforms/InstCombine/onehot_merge.ll | 35 + test/Transforms/InstCombine/or-fcmp.ll | 10 +- test/Transforms/InstCombine/or-xor.ll | 18 +- test/Transforms/InstCombine/or.ll | 78 +- test/Transforms/InstCombine/osx-names.ll | 4 +- test/Transforms/InstCombine/overflow.ll | 14 +- .../Transforms/InstCombine/phi-select-constexpr.ll | 19 + test/Transforms/InstCombine/phi.ll | 54 +- test/Transforms/InstCombine/pow-1.ll | 45 +- test/Transforms/InstCombine/pow-2.ll | 2 +- test/Transforms/InstCombine/pow-3.ll | 12 + test/Transforms/InstCombine/pr17827.ll | 74 + test/Transforms/InstCombine/pr8547.ll | 2 +- test/Transforms/InstCombine/printf-1.ll | 22 +- test/Transforms/InstCombine/printf-2.ll | 6 +- test/Transforms/InstCombine/ptr-int-cast.ll | 8 +- test/Transforms/InstCombine/puts-1.ll | 4 +- test/Transforms/InstCombine/rem.ll | 122 +- test/Transforms/InstCombine/select-2.ll | 5 +- test/Transforms/InstCombine/select-crash.ll | 4 +- .../InstCombine/select-extractelement.ll | 102 + test/Transforms/InstCombine/select.ll | 220 +- test/Transforms/InstCombine/sext.ll | 34 +- test/Transforms/InstCombine/shift-sra.ll | 10 +- test/Transforms/InstCombine/shift.ll | 187 +- test/Transforms/InstCombine/sign-test-and-or.ll | 18 +- test/Transforms/InstCombine/signext.ll | 16 +- test/Transforms/InstCombine/simplify-libcalls.ll | 144 + test/Transforms/InstCombine/sincospi.ll | 91 + test/Transforms/InstCombine/sink_instruction.ll | 4 +- test/Transforms/InstCombine/sprintf-1.ll | 18 +- test/Transforms/InstCombine/sqrt.ll | 6 +- test/Transforms/InstCombine/store.ll | 15 +- test/Transforms/InstCombine/stpcpy-1.ll | 6 +- test/Transforms/InstCombine/stpcpy-2.ll | 2 +- test/Transforms/InstCombine/stpcpy_chk-1.ll | 20 +- test/Transforms/InstCombine/stpcpy_chk-2.ll | 2 +- test/Transforms/InstCombine/strcat-1.ll | 2 +- test/Transforms/InstCombine/strcat-2.ll | 4 +- test/Transforms/InstCombine/strcat-3.ll | 2 +- test/Transforms/InstCombine/strchr-1.ll | 11 + test/Transforms/InstCombine/strcmp-1.ll | 12 +- test/Transforms/InstCombine/strcmp-2.ll | 2 +- test/Transforms/InstCombine/strcpy-1.ll | 6 +- test/Transforms/InstCombine/strcpy-2.ll | 2 +- test/Transforms/InstCombine/strcpy_chk-1.ll | 20 +- test/Transforms/InstCombine/strcpy_chk-2.ll | 2 +- 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 | 18 +- test/Transforms/InstCombine/strlen-2.ll | 2 +- test/Transforms/InstCombine/strncat-1.ll | 2 +- test/Transforms/InstCombine/strncat-2.ll | 8 +- test/Transforms/InstCombine/strncat-3.ll | 2 +- test/Transforms/InstCombine/strncmp-1.ll | 16 +- test/Transforms/InstCombine/strncmp-2.ll | 2 +- test/Transforms/InstCombine/strncpy-1.ll | 12 +- test/Transforms/InstCombine/strncpy-2.ll | 2 +- test/Transforms/InstCombine/strncpy_chk-1.ll | 10 +- test/Transforms/InstCombine/strncpy_chk-2.ll | 2 +- test/Transforms/InstCombine/strpbrk-1.ll | 10 +- test/Transforms/InstCombine/strpbrk-2.ll | 2 +- test/Transforms/InstCombine/strrchr-1.ll | 13 +- test/Transforms/InstCombine/strspn-1.ll | 8 +- test/Transforms/InstCombine/strstr-1.ll | 10 +- test/Transforms/InstCombine/strstr-2.ll | 2 +- test/Transforms/InstCombine/strto-1.ll | 30 +- test/Transforms/InstCombine/struct-assign-tbaa.ll | 8 +- test/Transforms/InstCombine/sub-xor.ll | 8 +- test/Transforms/InstCombine/sub.ll | 237 +- test/Transforms/InstCombine/toascii-1.ll | 14 +- test/Transforms/InstCombine/trunc.ll | 20 +- .../Transforms/InstCombine/udivrem-change-width.ll | 12 +- test/Transforms/InstCombine/vec_demanded_elts.ll | 18 +- test/Transforms/InstCombine/vec_extract_elt.ll | 3 +- test/Transforms/InstCombine/vec_insertelt.ll | 3 +- test/Transforms/InstCombine/vec_phi_extract.ll | 25 + test/Transforms/InstCombine/vec_shuffle.ll | 105 +- test/Transforms/InstCombine/vector-casts.ll | 12 +- test/Transforms/InstCombine/vector-mul.ll | 408 + test/Transforms/InstCombine/vector_gep2.ll | 2 +- test/Transforms/InstCombine/weak-symbols.ll | 4 +- test/Transforms/InstCombine/win-math.ll | 295 + test/Transforms/InstCombine/xor2.ll | 14 +- test/Transforms/InstCombine/zext-bool-add-sub.ll | 2 +- test/Transforms/InstSimplify/2010-12-20-Boolean.ll | 8 +- .../InstSimplify/2010-12-20-Distribute.ll | 12 +- test/Transforms/InstSimplify/2011-01-14-Thread.ll | 2 +- test/Transforms/InstSimplify/2011-02-01-Vector.ll | 2 +- .../InstSimplify/2011-09-05-InsertExtractValue.ll | 4 +- test/Transforms/InstSimplify/AndOrXor.ll | 4 +- test/Transforms/InstSimplify/call.ll | 75 +- test/Transforms/InstSimplify/compare.ll | 180 +- test/Transforms/InstSimplify/exact-nsw-nuw.ll | 10 +- test/Transforms/InstSimplify/fast-math.ll | 4 +- test/Transforms/InstSimplify/fdiv.ll | 4 +- .../InstSimplify/floating-point-arithmetic.ll | 8 +- test/Transforms/InstSimplify/lit.local.cfg | 1 - test/Transforms/InstSimplify/maxmin.ll | 56 +- test/Transforms/InstSimplify/phi.ll | 2 +- test/Transforms/InstSimplify/ptr_diff.ll | 10 +- test/Transforms/InstSimplify/reassociate.ll | 42 +- test/Transforms/InstSimplify/rem.ll | 4 +- .../Internalize/2008-05-09-AllButMain.ll | 55 - .../Internalize/2008-05-09-AllButMain.ll.apifile | 2 - test/Transforms/Internalize/apifile | 2 + .../Transforms/Internalize/available_externally.ll | 16 - test/Transforms/Internalize/lists.ll | 50 + test/Transforms/Internalize/lit.local.cfg | 1 - test/Transforms/Internalize/used.ll | 20 + test/Transforms/JumpThreading/basic.ll | 30 +- test/Transforms/JumpThreading/indirectbr.ll | 2 +- test/Transforms/JumpThreading/landing-pad.ll | 203 + test/Transforms/JumpThreading/lit.local.cfg | 1 - test/Transforms/JumpThreading/select.ll | 71 +- test/Transforms/JumpThreading/thread-loads.ll | 8 +- test/Transforms/LCSSA/lit.local.cfg | 1 - .../LICM/2011-04-06-PromoteResultOfPromotion.ll | 6 +- test/Transforms/LICM/atomics.ll | 8 +- test/Transforms/LICM/debug-value.ll | 33 +- test/Transforms/LICM/hoisting.ll | 10 +- test/Transforms/LICM/lit.local.cfg | 1 - test/Transforms/LICM/promote-order.ll | 6 +- test/Transforms/LICM/scalar_promote.ll | 16 +- test/Transforms/LICM/sinking.ll | 22 +- test/Transforms/LICM/speculate.ll | 10 +- test/Transforms/LICM/volatile-alias.ll | 54 + test/Transforms/LoopDeletion/lit.local.cfg | 1 - test/Transforms/LoopIdiom/X86/lit.local.cfg | 2 - test/Transforms/LoopIdiom/basic-address-space.ll | 91 + test/Transforms/LoopIdiom/basic.ll | 32 +- test/Transforms/LoopIdiom/debug-line.ll | 21 +- test/Transforms/LoopIdiom/lit.local.cfg | 1 - test/Transforms/LoopIdiom/memset_noidiom.ll | 2 +- test/Transforms/LoopReroll/basic.ll | 327 + test/Transforms/LoopReroll/reduction.ll | 96 + test/Transforms/LoopRotate/basic.ll | 4 +- test/Transforms/LoopRotate/dbgvalue.ll | 24 +- test/Transforms/LoopRotate/lit.local.cfg | 1 - test/Transforms/LoopRotate/multiple-exits.ll | 4 +- test/Transforms/LoopRotate/phi-duplicate.ll | 2 +- test/Transforms/LoopRotate/simplifylatch.ll | 2 +- test/Transforms/LoopSimplify/dup-preds.ll | 46 + test/Transforms/LoopSimplify/lit.local.cfg | 1 - test/Transforms/LoopSimplify/preserve-scev.ll | 2 +- .../LoopStrengthReduce/2011-10-03-CritEdgeMerge.ll | 4 +- .../LoopStrengthReduce/2011-10-06-ReusePhi.ll | 2 +- .../LoopStrengthReduce/2011-10-13-SCEVChain.ll | 2 +- .../LoopStrengthReduce/2011-10-14-IntPtr.ll | 2 +- .../2011-12-19-PostincQuadratic.ll | 2 +- .../LoopStrengthReduce/2012-01-02-nopreheader.ll | 4 +- .../LoopStrengthReduce/2012-01-16-nopreheader.ll | 2 +- .../LoopStrengthReduce/2012-03-15-nopreheader.ll | 2 +- .../LoopStrengthReduce/2012-07-13-ExpandUDiv.ll | 2 +- .../LoopStrengthReduce/2013-01-05-IndBr.ll | 2 +- .../LoopStrengthReduce/2013-01-14-ReuseCast.ll | 12 +- .../LoopStrengthReduce/ARM/ivchain-ARM.ll | 2 +- .../LoopStrengthReduce/ARM/lit.local.cfg | 2 - .../LoopStrengthReduce/X86/2011-07-20-DoubleIV.ll | 4 +- .../X86/2011-11-29-postincphi.ll | 4 +- .../LoopStrengthReduce/X86/2011-12-04-loserreg.ll | 4 +- .../LoopStrengthReduce/X86/lit.local.cfg | 2 - .../LoopStrengthReduce/addrec-gep-address-space.ll | 88 + .../LoopStrengthReduce/address-space-loop.ll | 56 + .../LoopStrengthReduce/dominate-assert.ll | 43 + test/Transforms/LoopStrengthReduce/ivchain.ll | 2 +- test/Transforms/LoopStrengthReduce/lit.local.cfg | 1 - .../LoopStrengthReduce/lsr-expand-quadratic.ll | 42 + .../LoopStrengthReduce/quadradic-exit-value.ll | 44 +- .../scaling_factor_cost_crash.ll | 68 + .../LoopStrengthReduce/uglygep-address-space.ll | 56 + test/Transforms/LoopStrengthReduce/uglygep.ll | 58 +- test/Transforms/LoopUnroll/2011-08-08-PhiUpdate.ll | 4 +- test/Transforms/LoopUnroll/2011-08-09-PhiUpdate.ll | 4 +- test/Transforms/LoopUnroll/2011-10-01-NoopTrunc.ll | 2 +- test/Transforms/LoopUnroll/PowerPC/a2-unrolling.ll | 48 + test/Transforms/LoopUnroll/PowerPC/lit.local.cfg | 4 + test/Transforms/LoopUnroll/basic.ll | 4 +- test/Transforms/LoopUnroll/lit.local.cfg | 1 - test/Transforms/LoopUnroll/pr14167.ll | 2 +- test/Transforms/LoopUnroll/scevunroll.ll | 12 +- test/Transforms/LoopUnroll/unloop.ll | 12 +- test/Transforms/LoopUnswitch/basictest.ll | 2 +- test/Transforms/LoopUnswitch/infinite-loop.ll | 2 +- test/Transforms/LoopUnswitch/lit.local.cfg | 1 - test/Transforms/LoopVectorize/12-12-11-if-conv.ll | 4 +- test/Transforms/LoopVectorize/ARM/arm-unroll.ll | 4 +- test/Transforms/LoopVectorize/ARM/gather-cost.ll | 88 + test/Transforms/LoopVectorize/ARM/gcc-examples.ll | 4 +- test/Transforms/LoopVectorize/ARM/lit.local.cfg | 2 - test/Transforms/LoopVectorize/ARM/width-detect.ll | 18 +- .../LoopVectorize/X86/already-vectorized.ll | 46 + test/Transforms/LoopVectorize/X86/avx1.ll | 4 +- .../LoopVectorize/X86/conversion-cost.ll | 4 +- test/Transforms/LoopVectorize/X86/cost-model.ll | 2 +- test/Transforms/LoopVectorize/X86/gather-cost.ll | 86 + test/Transforms/LoopVectorize/X86/gcc-examples.ll | 8 +- .../X86/illegal-parallel-loop-uniform-write.ll | 6 +- test/Transforms/LoopVectorize/X86/lit.local.cfg | 2 - .../X86/parallel-loops-after-reg2mem.ll | 2 +- .../Transforms/LoopVectorize/X86/parallel-loops.ll | 10 +- test/Transforms/LoopVectorize/X86/rauw-bug.ll | 33 + .../LoopVectorize/X86/reduction-crash.ll | 2 +- test/Transforms/LoopVectorize/X86/small-size.ll | 10 +- test/Transforms/LoopVectorize/X86/tripcount.ll | 39 + test/Transforms/LoopVectorize/X86/unroll-pm.ll | 31 + .../LoopVectorize/X86/unroll-small-loops.ll | 4 +- .../LoopVectorize/X86/x86_fp80-vector-store.ll | 2 +- test/Transforms/LoopVectorize/XCore/lit.local.cfg | 3 + .../LoopVectorize/XCore/no-vector-registers.ll | 23 + test/Transforms/LoopVectorize/align.ll | 33 + test/Transforms/LoopVectorize/bsd_regex.ll | 2 +- test/Transforms/LoopVectorize/cast-induction.ll | 2 +- test/Transforms/LoopVectorize/cpp-new-array.ll | 2 +- test/Transforms/LoopVectorize/dbg.value.ll | 23 +- test/Transforms/LoopVectorize/debugloc.ll | 90 + test/Transforms/LoopVectorize/ee-crash.ll | 35 + test/Transforms/LoopVectorize/flags.ll | 4 +- test/Transforms/LoopVectorize/float-reduction.ll | 2 +- test/Transforms/LoopVectorize/funcall.ll | 32 + test/Transforms/LoopVectorize/gcc-examples.ll | 42 +- test/Transforms/LoopVectorize/global_alias.ll | 49 +- test/Transforms/LoopVectorize/hoist-loads.ll | 69 + test/Transforms/LoopVectorize/if-conv-crash.ll | 22 + .../LoopVectorize/if-conversion-edgemasks.ll | 243 + .../Transforms/LoopVectorize/if-conversion-nest.ll | 2 +- .../LoopVectorize/if-conversion-reduction.ll | 2 +- test/Transforms/LoopVectorize/if-conversion.ll | 67 +- test/Transforms/LoopVectorize/increment.ll | 4 +- test/Transforms/LoopVectorize/induction.ll | 110 + test/Transforms/LoopVectorize/induction_plus.ll | 4 +- test/Transforms/LoopVectorize/infiniteloop.ll | 34 + test/Transforms/LoopVectorize/intrinsic.ll | 229 +- test/Transforms/LoopVectorize/lifetime.ll | 96 + test/Transforms/LoopVectorize/lit.local.cfg | 1 - test/Transforms/LoopVectorize/memdep.ll | 222 + test/Transforms/LoopVectorize/metadata-unroll.ll | 41 + test/Transforms/LoopVectorize/metadata-width.ll | 31 + test/Transforms/LoopVectorize/minmax_reduction.ll | 124 +- .../LoopVectorize/multiple-address-spaces.ll | 44 + test/Transforms/LoopVectorize/no_idiv_reduction.ll | 2 +- test/Transforms/LoopVectorize/no_int_induction.ll | 33 +- test/Transforms/LoopVectorize/no_outside_user.ll | 30 + test/Transforms/LoopVectorize/nofloat.ll | 2 +- test/Transforms/LoopVectorize/non-const-n.ll | 2 +- test/Transforms/LoopVectorize/opt.ll | 28 + test/Transforms/LoopVectorize/ptr_loops.ll | 4 +- test/Transforms/LoopVectorize/read-only.ll | 2 +- test/Transforms/LoopVectorize/reduction.ll | 191 +- test/Transforms/LoopVectorize/reverse_induction.ll | 75 +- test/Transforms/LoopVectorize/reverse_iter.ll | 45 + .../LoopVectorize/runtime-check-address-space.ll | 235 + .../runtime-check-readonly-address-space.ll | 142 + .../LoopVectorize/runtime-check-readonly.ll | 2 +- test/Transforms/LoopVectorize/runtime-check.ll | 30 +- test/Transforms/LoopVectorize/runtime-limit.ll | 4 +- test/Transforms/LoopVectorize/safegep.ll | 61 + test/Transforms/LoopVectorize/same-base-access.ll | 4 +- test/Transforms/LoopVectorize/scalar-select.ll | 2 +- .../Transforms/LoopVectorize/scev-exitlim-crash.ll | 114 + test/Transforms/LoopVectorize/simple-unroll.ll | 2 +- test/Transforms/LoopVectorize/small-loop.ll | 2 +- test/Transforms/LoopVectorize/start-non-zero.ll | 2 +- test/Transforms/LoopVectorize/store-shuffle-bug.ll | 55 + test/Transforms/LoopVectorize/struct_access.ll | 44 +- test/Transforms/LoopVectorize/undef-inst-bug.ll | 36 + test/Transforms/LoopVectorize/unroll_novec.ll | 39 + test/Transforms/LoopVectorize/value-ptr-bug.ll | 2 +- test/Transforms/LoopVectorize/vectorize-once.ll | 19 +- test/Transforms/LoopVectorize/write-only.ll | 2 +- test/Transforms/LowerAtomic/atomic-load.ll | 6 +- test/Transforms/LowerAtomic/atomic-swap.ll | 4 +- test/Transforms/LowerAtomic/barrier.ll | 2 +- test/Transforms/LowerAtomic/lit.local.cfg | 1 - test/Transforms/LowerExpectIntrinsic/basic.ll | 16 +- test/Transforms/LowerExpectIntrinsic/lit.local.cfg | 1 - test/Transforms/LowerInvoke/lit.local.cfg | 1 - test/Transforms/LowerSwitch/feature.ll | 64 +- test/Transforms/LowerSwitch/lit.local.cfg | 1 - test/Transforms/Mem2Reg/ConvertDebugInfo.ll | 15 +- test/Transforms/Mem2Reg/ConvertDebugInfo2.ll | 20 +- test/Transforms/Mem2Reg/atomic.ll | 2 +- test/Transforms/Mem2Reg/lit.local.cfg | 1 - test/Transforms/MemCpyOpt/align.ll | 4 +- test/Transforms/MemCpyOpt/form-memset.ll | 18 +- test/Transforms/MemCpyOpt/lit.local.cfg | 1 - test/Transforms/MemCpyOpt/loadstore-sret.ll | 2 +- test/Transforms/MemCpyOpt/memcpy-to-memset.ll | 2 +- test/Transforms/MemCpyOpt/memcpy.ll | 31 +- test/Transforms/MemCpyOpt/memmove.ll | 6 +- test/Transforms/MergeFunc/address-spaces.ll | 35 + .../Transforms/MergeFunc/inttoptr-address-space.ll | 29 + test/Transforms/MergeFunc/inttoptr.ll | 1 + test/Transforms/MergeFunc/lit.local.cfg | 1 - test/Transforms/MergeFunc/merge-ptr-and-int.ll | 27 + .../Transforms/MergeFunc/ptr-int-transitivity-1.ll | 21 + .../Transforms/MergeFunc/ptr-int-transitivity-2.ll | 25 + .../Transforms/MergeFunc/ptr-int-transitivity-3.ll | 21 + test/Transforms/MergeFunc/too-small.ll | 14 + test/Transforms/MetaRenamer/lit.local.cfg | 1 - test/Transforms/ObjCARC/allocas.ll | 500 + test/Transforms/ObjCARC/arc-annotations.ll | 2 +- test/Transforms/ObjCARC/basic.ll | 294 +- test/Transforms/ObjCARC/cfg-hazards.ll | 6 +- test/Transforms/ObjCARC/contract-storestrong.ll | 6 +- test/Transforms/ObjCARC/contract-testcases.ll | 4 +- test/Transforms/ObjCARC/contract.ll | 26 +- test/Transforms/ObjCARC/empty-block.ll | 4 +- ...ensure-that-exception-unwind-path-is-visited.ll | 58 +- test/Transforms/ObjCARC/escape.ll | 4 +- test/Transforms/ObjCARC/gvn.ll | 25 +- test/Transforms/ObjCARC/intrinsic-use-isolated.ll | 2 +- test/Transforms/ObjCARC/intrinsic-use.ll | 4 +- test/Transforms/ObjCARC/invoke.ll | 12 +- test/Transforms/ObjCARC/lit.local.cfg | 1 - test/Transforms/ObjCARC/nested.ll | 24 +- test/Transforms/ObjCARC/no-objc-arc-exceptions.ll | 123 - test/Transforms/ObjCARC/path-overflow.ll | 1876 +- test/Transforms/ObjCARC/pointer-types.ll | 2 +- test/Transforms/ObjCARC/post-inlining.ll | 6 +- test/Transforms/ObjCARC/retain-block-alloca.ll | 94 - .../ObjCARC/retain-block-escape-analysis.ll | 215 - test/Transforms/ObjCARC/retain-block-load.ll | 51 - test/Transforms/ObjCARC/retain-block.ll | 140 - test/Transforms/ObjCARC/retain-not-declared.ll | 2 +- test/Transforms/ObjCARC/rv.ll | 22 +- test/Transforms/ObjCARC/split-backedge.ll | 2 +- test/Transforms/ObjCARC/weak.ll | 2 +- test/Transforms/PhaseOrdering/PR6627.ll | 4 +- test/Transforms/PhaseOrdering/basic.ll | 4 +- test/Transforms/PhaseOrdering/lit.local.cfg | 1 - test/Transforms/PruneEH/lit.local.cfg | 1 - .../Transforms/Reassociate/2012-05-08-UndefLeak.ll | 2 +- test/Transforms/Reassociate/absorption.ll | 2 +- test/Transforms/Reassociate/basictest.ll | 30 +- test/Transforms/Reassociate/inverses.ll | 6 +- test/Transforms/Reassociate/lit.local.cfg | 1 - test/Transforms/Reassociate/mulfactor.ll | 14 +- test/Transforms/Reassociate/multistep.ll | 4 +- test/Transforms/Reassociate/no-op.ll | 4 +- test/Transforms/Reassociate/optional-flags.ll | 4 +- test/Transforms/Reassociate/repeats.ll | 32 +- test/Transforms/Reassociate/xor_reassoc.ll | 22 +- test/Transforms/Reg2Mem/lit.local.cfg | 1 - test/Transforms/SCCP/atomic-load-store.ll | 4 +- test/Transforms/SCCP/ipsccp-addr-taken.ll | 2 +- test/Transforms/SCCP/ipsccp-basic.ll | 28 +- test/Transforms/SCCP/lit.local.cfg | 1 - test/Transforms/SCCP/sccptest.ll | 4 +- test/Transforms/SCCP/switch.ll | 2 +- test/Transforms/SCCP/undef-resolve.ll | 20 +- test/Transforms/SLPVectorizer/ARM/lit.local.cfg | 3 + test/Transforms/SLPVectorizer/ARM/memory.ll | 20 + test/Transforms/SLPVectorizer/ARM/sroa.ll | 52 + test/Transforms/SLPVectorizer/R600/lit.local.cfg | 4 + test/Transforms/SLPVectorizer/R600/simplebb.ll | 65 + test/Transforms/SLPVectorizer/X86/barriercall.ll | 2 +- test/Transforms/SLPVectorizer/X86/cast.ll | 2 +- test/Transforms/SLPVectorizer/X86/cmp_sel.ll | 32 + .../Transforms/SLPVectorizer/X86/compare-reduce.ll | 2 +- test/Transforms/SLPVectorizer/X86/crash_7zip.ll | 38 + test/Transforms/SLPVectorizer/X86/crash_bullet.ll | 128 + test/Transforms/SLPVectorizer/X86/crash_bullet3.ll | 84 + test/Transforms/SLPVectorizer/X86/crash_dequeue.ll | 40 + test/Transforms/SLPVectorizer/X86/crash_flop7.ll | 46 + test/Transforms/SLPVectorizer/X86/crash_lencod.ll | 91 + .../SLPVectorizer/X86/crash_mandeltext.ll | 107 + .../SLPVectorizer/X86/crash_netbsd_decompress.ll | 41 + test/Transforms/SLPVectorizer/X86/crash_sim4b1.ll | 113 + test/Transforms/SLPVectorizer/X86/crash_smallpt.ll | 105 + .../SLPVectorizer/X86/cross_block_slp.ll | 54 + test/Transforms/SLPVectorizer/X86/cse.ll | 219 + test/Transforms/SLPVectorizer/X86/cycle_dup.ll | 64 + test/Transforms/SLPVectorizer/X86/debug_info.ll | 89 + test/Transforms/SLPVectorizer/X86/diamond.ll | 47 +- test/Transforms/SLPVectorizer/X86/external_user.ll | 96 + test/Transforms/SLPVectorizer/X86/extract.ll | 59 + test/Transforms/SLPVectorizer/X86/horizontal.ll | 417 + test/Transforms/SLPVectorizer/X86/implicitfloat.ll | 25 + test/Transforms/SLPVectorizer/X86/in-tree-user.ll | 50 + .../X86/insert-element-build-vector.ll | 197 + test/Transforms/SLPVectorizer/X86/lit.local.cfg | 2 - test/Transforms/SLPVectorizer/X86/long_chains.ll | 47 + test/Transforms/SLPVectorizer/X86/loopinvariant.ll | 2 +- test/Transforms/SLPVectorizer/X86/multi_block.ll | 55 + test/Transforms/SLPVectorizer/X86/multi_user.ll | 2 +- test/Transforms/SLPVectorizer/X86/odd_store.ll | 46 + test/Transforms/SLPVectorizer/X86/operandorder.ll | 234 + test/Transforms/SLPVectorizer/X86/opt.ll | 30 + test/Transforms/SLPVectorizer/X86/ordering.ll | 81 + test/Transforms/SLPVectorizer/X86/phi.ll | 248 + test/Transforms/SLPVectorizer/X86/phi3.ll | 35 + .../Transforms/SLPVectorizer/X86/phi_landingpad.ll | 31 + .../SLPVectorizer/X86/phi_overalignedtype.ll | 45 + test/Transforms/SLPVectorizer/X86/pr16571.ll | 22 + test/Transforms/SLPVectorizer/X86/pr16628.ll | 27 + test/Transforms/SLPVectorizer/X86/pr16899.ll | 31 + test/Transforms/SLPVectorizer/X86/pr18060.ll | 47 + test/Transforms/SLPVectorizer/X86/reduction2.ll | 6 +- test/Transforms/SLPVectorizer/X86/rgb_phi.ll | 76 + test/Transforms/SLPVectorizer/X86/saxpy.ll | 16 + test/Transforms/SLPVectorizer/X86/simplebb.ll | 64 + test/Transforms/SLPVectorizer/X86/tiny-tree.ll | 140 + test/Transforms/SLPVectorizer/XCore/lit.local.cfg | 3 + .../SLPVectorizer/XCore/no-vector-registers.ll | 24 + test/Transforms/SLPVectorizer/lit.local.cfg | 1 - test/Transforms/SROA/alignment.ll | 14 +- test/Transforms/SROA/basictest.ll | 107 +- test/Transforms/SROA/big-endian.ll | 4 +- test/Transforms/SROA/fca.ll | 4 +- test/Transforms/SROA/lit.local.cfg | 1 - test/Transforms/SROA/phi-and-select.ll | 106 +- test/Transforms/SROA/vector-conversion.ll | 53 + test/Transforms/SROA/vector-promotion.ll | 22 +- test/Transforms/SampleProfile/Inputs/branch.prof | 11 + test/Transforms/SampleProfile/branch.ll | 143 + .../Transforms/ScalarRepl/2008-09-22-vector-gep.ll | 2 +- test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll | 4 +- test/Transforms/ScalarRepl/2010-01-18-SelfCopy.ll | 2 +- .../ScalarRepl/2011-09-22-PHISpeculateInvoke.ll | 2 +- .../ScalarRepl/2011-10-22-VectorCrash.ll | 2 +- test/Transforms/ScalarRepl/address-space.ll | 2 +- test/Transforms/ScalarRepl/badarray.ll | 6 +- test/Transforms/ScalarRepl/basictest.ll | 4 +- test/Transforms/ScalarRepl/debuginfo-preserved.ll | 13 +- test/Transforms/ScalarRepl/inline-vector.ll | 2 +- test/Transforms/ScalarRepl/lifetime.ll | 12 +- test/Transforms/ScalarRepl/lit.local.cfg | 1 - test/Transforms/ScalarRepl/memset-aggregate.ll | 2 +- test/Transforms/ScalarRepl/nonzero-first-index.ll | 8 +- test/Transforms/ScalarRepl/only-memcpy-uses.ll | 2 +- test/Transforms/ScalarRepl/phi-select.ll | 16 +- test/Transforms/ScalarRepl/union-pointer.ll | 43 +- test/Transforms/ScalarRepl/vector_promote.ll | 38 +- ...2009-01-19-UnconditionalTrappingConstantExpr.ll | 4 +- test/Transforms/SimplifyCFG/CoveredLookupTable.ll | 48 + .../SimplifyCFG/EqualPHIEdgeBlockMerge.ll | 240 +- test/Transforms/SimplifyCFG/MagicPointer.ll | 94 +- test/Transforms/SimplifyCFG/PR16069.ll | 28 + test/Transforms/SimplifyCFG/SPARC/lit.local.cfg | 2 - .../SimplifyCFG/SPARC/switch_to_lookup_table.ll | 2 +- test/Transforms/SimplifyCFG/SpeculativeExec.ll | 6 +- .../Transforms/SimplifyCFG/UnreachableEliminate.ll | 6 +- test/Transforms/SimplifyCFG/X86/lit.local.cfg | 2 - .../SimplifyCFG/X86/switch_to_lookup_table.ll | 29 +- test/Transforms/SimplifyCFG/attr-noduplicate.ll | 37 + test/Transforms/SimplifyCFG/basictest.ll | 8 +- test/Transforms/SimplifyCFG/branch-fold-dbg.ll | 17 +- test/Transforms/SimplifyCFG/common-dest-folding.ll | 57 + .../dce-cond-after-folding-terminator.ll | 6 +- test/Transforms/SimplifyCFG/hoist-dbgvalue.ll | 19 +- test/Transforms/SimplifyCFG/indirectbr.ll | 8 +- test/Transforms/SimplifyCFG/invoke.ll | 12 +- test/Transforms/SimplifyCFG/invoke_unwind.ll | 2 +- test/Transforms/SimplifyCFG/lit.local.cfg | 1 - test/Transforms/SimplifyCFG/phi-undef-loadstore.ll | 8 +- .../SimplifyCFG/preserve-branchweights-partial.ll | 2 +- .../SimplifyCFG/preserve-branchweights.ll | 16 +- test/Transforms/SimplifyCFG/select-gep.ll | 4 +- test/Transforms/SimplifyCFG/speculate-store.ll | 8 +- .../SimplifyCFG/speculate-with-offset.ll | 8 +- test/Transforms/SimplifyCFG/switch-masked-bits.ll | 4 +- .../SimplifyCFG/switch-on-const-select.ll | 10 +- test/Transforms/SimplifyCFG/switch-to-icmp.ll | 6 +- test/Transforms/SimplifyCFG/switch_create.ll | 121 +- test/Transforms/SimplifyCFG/trap-debugloc.ll | 15 +- .../SimplifyCFG/trapping-load-unreachable.ll | 12 +- test/Transforms/SimplifyCFG/volatile-phioper.ll | 6 +- .../SimplifyLibCalls/2005-05-20-sprintf-crash.ll | 11 - .../2007-04-06-strchr-miscompile.ll | 29 - .../SimplifyLibCalls/2008-05-19-memcmp.ll | 14 - .../SimplifyLibCalls/2009-05-30-memcmp-byte.ll | 14 - .../Transforms/SimplifyLibCalls/2009-07-28-Exit.ll | 22 - .../SimplifyLibCalls/2009-07-29-Exit2.ll | 24 - test/Transforms/SimplifyLibCalls/MemCpy.ll | 19 - test/Transforms/SimplifyLibCalls/PR7357.ll | 16 - .../SimplifyLibCalls/float-shrink-compare.ll | 179 - test/Transforms/SimplifyLibCalls/lit.local.cfg | 1 - test/Transforms/SimplifyLibCalls/win-math.ll | 275 - test/Transforms/Sink/basic.ll | 6 +- test/Transforms/Sink/lit.local.cfg | 1 - .../StripSymbols/2007-01-15-llvm.used.ll | 9 +- .../StripSymbols/2010-06-30-StripDebug.ll | 20 +- .../StripSymbols/2010-07-01-DeadDbgInfo.ll | 47 - test/Transforms/StripSymbols/2010-08-25-crash.ll | 25 +- test/Transforms/StripSymbols/lit.local.cfg | 1 - .../StripSymbols/strip-dead-debug-info.ll | 58 + .../StructurizeCFG/branch-on-argument.ll | 47 + .../StructurizeCFG/loop-multiple-exits.ll | 50 + .../StructurizeCFG/no-branch-to-entry.ll | 31 + test/Transforms/StructurizeCFG/switch.ll | 23 + .../2010-06-26-MultipleReturnValues.ll | 2 +- test/Transforms/TailCallElim/accum_recursion.ll | 6 +- test/Transforms/TailCallElim/basic.ll | 145 + .../TailCallElim/dont-tce-tail-marked-call.ll | 13 - test/Transforms/TailCallElim/inf-recursion.ll | 4 +- test/Transforms/TailCallElim/intervening-inst.ll | 18 - test/Transforms/TailCallElim/lit.local.cfg | 1 - .../TailCallElim/move_alloca_for_tail_call.ll | 15 - test/Transforms/TailCallElim/nocapture.ll | 25 - test/Transforms/TailCallElim/return_constant.ll | 18 - .../TailCallElim/trivial_codegen_tailcall.ll | 11 - test/Transforms/TailDup/X86/lit.local.cfg | 2 - test/Transforms/TailDup/lit.local.cfg | 2 - test/Unit/lit.cfg | 16 +- test/Unit/lit.site.cfg.in | 13 +- .../bitcast-address-space-nested-global-cycle.ll | 8 + .../bitcast-address-space-nested-global.ll | 11 + ...ugh-constant-inttoptr-inside-gep-instruction.ll | 10 + ...cast-address-space-through-constant-inttoptr.ll | 11 + .../bitcast-address-space-through-gep-2.ll | 17 + test/Verifier/bitcast-address-space-through-gep.ll | 13 + .../bitcast-address-space-through-inttoptr.ll | 9 + test/Verifier/bitcast-address-spaces.ll | 9 + test/Verifier/bitcast-alias-address-space.ll | 8 + test/Verifier/bitcast-vector-pointer-as.ll | 9 + test/Verifier/ident-meta1.ll | 12 + test/Verifier/ident-meta2.ll | 13 + test/Verifier/ident-meta3.ll | 10 + test/Verifier/lit.local.cfg | 1 - test/Verifier/llvm.compiler_used-invalid-type.ll | 4 +- test/Verifier/llvm.used-invalid-type2.ll | 2 +- test/Verifier/varargs-intrinsic.ll | 16 + test/YAMLParser/spec-02-24.data | 7 +- test/YAMLParser/spec-07-04.data | 4 +- test/YAMLParser/yaml.data | 8 +- test/lit.cfg | 158 +- test/lit.site.cfg.in | 12 +- test/tools/llvm-cov/Inputs/README | 7 + test/tools/llvm-cov/Inputs/test.cpp | 77 + test/tools/llvm-cov/Inputs/test.cpp.gcov | 82 + test/tools/llvm-cov/Inputs/test.gcda | Bin 0 -> 824 bytes test/tools/llvm-cov/Inputs/test.gcno | Bin 0 -> 3112 bytes test/tools/llvm-cov/Inputs/test_read_fail.gcno | Bin 0 -> 111 bytes test/tools/llvm-cov/lit.local.cfg | 1 + test/tools/llvm-cov/llvm-cov.test | 10 + test/tools/llvm-lit/lit.local.cfg | 1 - test/tools/llvm-objdump/Inputs/nop.exe.coff-i386 | Bin 0 -> 7680 bytes .../tools/llvm-objdump/Inputs/trivial.obj.elf-i386 | Bin 0 -> 449 bytes .../Inputs/win64-unwind.exe.coff-x86_64 | Bin 0 -> 698 bytes .../Inputs/win64-unwind.exe.coff-x86_64.asm | 53 + test/tools/llvm-objdump/coff-private-headers.test | 9 + test/tools/llvm-objdump/disassembly-show-raw.s | 15 - test/tools/llvm-objdump/disassembly-show-raw.test | 14 + test/tools/llvm-objdump/lit.local.cfg | 3 - test/tools/llvm-objdump/win64-unwind-data.s | 106 - test/tools/llvm-objdump/win64-unwind-data.test | 52 + test/tools/llvm-readobj/Inputs/dynamic-table.c | 7 + test/tools/llvm-readobj/Inputs/dynamic-table.mips | Bin 0 -> 5395 bytes .../tools/llvm-readobj/Inputs/magic.coff-importlib | Bin 0 -> 40 bytes test/tools/llvm-readobj/Inputs/magic.coff-unknown | Bin 0 -> 450 bytes test/tools/llvm-readobj/Inputs/relocs.py | 25 - .../tools/llvm-readobj/Inputs/rpath.exe.elf-x86_64 | Bin 0 -> 5632 bytes .../llvm-readobj/Inputs/trivial.exe.coff-i386 | Bin 0 -> 2560 bytes test/tools/llvm-readobj/dynamic.test | 33 + test/tools/llvm-readobj/file-headers.test | 118 + test/tools/llvm-readobj/lit.local.cfg | 1 - test/tools/llvm-readobj/program-headers.test | 30 + test/tools/llvm-readobj/reloc-types.test | 23 - test/tools/llvm-readobj/relocations.test | 2 +- test/tools/llvm-readobj/rpath.test | 4 + test/tools/llvm-readobj/sections-ext.test | 30 +- test/tools/llvm-readobj/symbols.test | 9 + 4893 files changed, 269937 insertions(+), 41511 deletions(-) create mode 100644 test/.clang-format delete mode 100644 test/Analysis/BasicAA/lit.local.cfg create mode 100644 test/Analysis/BasicAA/noalias-param.ll delete mode 100644 test/Analysis/BlockFrequencyInfo/lit.local.cfg delete mode 100644 test/Analysis/BranchProbabilityInfo/lit.local.cfg delete mode 100644 test/Analysis/CallGraph/lit.local.cfg create mode 100644 test/Analysis/CostModel/X86/div.ll create mode 100644 test/Analysis/CostModel/X86/reduction.ll delete mode 100644 test/Analysis/CostModel/lit.local.cfg create mode 100644 test/Analysis/Delinearization/a.ll create mode 100644 test/Analysis/Delinearization/himeno_1.ll create mode 100644 test/Analysis/Delinearization/himeno_2.ll create mode 100644 test/Analysis/Delinearization/lit.local.cfg create mode 100644 test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_3d.ll create mode 100644 test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_nts_3d.ll create mode 100644 test/Analysis/Delinearization/multidim_ivs_and_parameteric_offsets_3d.ll create mode 100644 test/Analysis/Delinearization/multidim_only_ivs_2d.ll create mode 100644 test/Analysis/Delinearization/multidim_only_ivs_2d_nested.ll create mode 100644 test/Analysis/Delinearization/multidim_only_ivs_3d.ll create mode 100644 test/Analysis/Delinearization/multidim_only_ivs_3d_cast.ll create mode 100644 test/Analysis/DependenceAnalysis/Invariant.ll delete mode 100644 test/Analysis/DependenceAnalysis/lit.local.cfg delete mode 100644 test/Analysis/Dominators/lit.local.cfg delete mode 100644 test/Analysis/GlobalsModRef/lit.local.cfg create mode 100644 test/Analysis/Lint/check-zero-divide.ll create mode 100644 test/Analysis/Lint/lit.local.cfg delete mode 100644 test/Analysis/LoopInfo/lit.local.cfg delete mode 100644 test/Analysis/MemoryDependenceAnalysis/lit.local.cfg delete mode 100644 test/Analysis/PostDominators/lit.local.cfg delete mode 100644 test/Analysis/Profiling/edge-profiling.ll delete mode 100644 test/Analysis/Profiling/lit.local.cfg delete mode 100644 test/Analysis/Profiling/load-branch-weights-ifs.ll delete mode 100644 test/Analysis/Profiling/load-branch-weights-loops.ll delete mode 100644 test/Analysis/Profiling/load-branch-weights-switches.ll delete mode 100644 test/Analysis/Profiling/profiling-tool-chain.ll delete mode 100644 test/Analysis/RegionInfo/lit.local.cfg delete mode 100644 test/Analysis/ScalarEvolution/lit.local.cfg create mode 100644 test/Analysis/ScalarEvolution/max-trip-count-address-space.ll create mode 100644 test/Analysis/TypeBasedAliasAnalysis/PR17620.ll delete mode 100644 test/Analysis/TypeBasedAliasAnalysis/lit.local.cfg delete mode 100644 test/Archive/GNU.a delete mode 100644 test/Archive/IsNAN.o delete mode 100644 test/Archive/MacOSX.a delete mode 100644 test/Archive/README.txt delete mode 100644 test/Archive/SVR4.a delete mode 100644 test/Archive/check_binary_output.ll delete mode 100644 test/Archive/evenlen delete mode 100644 test/Archive/extract.ll delete mode 100644 test/Archive/lit.local.cfg delete mode 100644 test/Archive/oddlen delete mode 100644 test/Archive/toc_GNU.ll delete mode 100644 test/Archive/toc_MacOSX.ll delete mode 100644 test/Archive/toc_SVR4.ll delete mode 100644 test/Archive/toc_xpg4.ll delete mode 100644 test/Archive/very_long_bytecode_file_name.bc delete mode 100644 test/Archive/xpg4.a create mode 100644 test/Assembler/attribute-builtin.ll delete mode 100644 test/Assembler/lit.local.cfg create mode 100644 test/Bindings/Ocaml/irreader.ml create mode 100644 test/Bindings/Ocaml/linker.ml create mode 100644 test/Bindings/Ocaml/passmgr_builder.ml create mode 100644 test/Bindings/Ocaml/vectorize_opts.ml create mode 100644 test/Bindings/llvm-c/calc.test create mode 100644 test/Bindings/llvm-c/disassemble.test create mode 100644 test/Bindings/llvm-c/functions.ll create mode 100644 test/Bindings/llvm-c/globals.ll create mode 100644 test/Bindings/llvm-c/lit.local.cfg delete mode 100644 test/Bitcode/2012-05-07-SwitchInstRangesSupport.ll create mode 100644 test/Bitcode/attributes-3.3.ll create mode 100644 test/Bitcode/attributes-3.3.ll.bc create mode 100644 test/Bitcode/case-ranges-3.3.ll create mode 100644 test/Bitcode/case-ranges-3.3.ll.bc create mode 100644 test/Bitcode/drop-debug-info.ll create mode 100644 test/Bitcode/invalid.ll create mode 100644 test/Bitcode/invalid.ll.bc delete mode 100644 test/Bitcode/lit.local.cfg create mode 100644 test/Bitcode/select.ll create mode 100644 test/Bitcode/upgrade-tbaa.ll delete mode 100644 test/BugPoint/lit.local.cfg delete mode 100644 test/CodeGen/AArch64/adrp-relocation.ll create mode 100644 test/CodeGen/AArch64/complex-copy-noneon.ll delete mode 100644 test/CodeGen/AArch64/elf-extern.ll create mode 100644 test/CodeGen/AArch64/frameaddr.ll create mode 100644 test/CodeGen/AArch64/large-consts.ll delete mode 100644 test/CodeGen/AArch64/logical_shifted_reg.s create mode 100644 test/CodeGen/AArch64/movw-shift-encoding.ll create mode 100644 test/CodeGen/AArch64/neon-2velem-high.ll create mode 100644 test/CodeGen/AArch64/neon-2velem.ll create mode 100644 test/CodeGen/AArch64/neon-3vdiff.ll create mode 100644 test/CodeGen/AArch64/neon-aba-abd.ll create mode 100644 test/CodeGen/AArch64/neon-across.ll create mode 100644 test/CodeGen/AArch64/neon-add-pairwise.ll create mode 100644 test/CodeGen/AArch64/neon-add-sub.ll create mode 100644 test/CodeGen/AArch64/neon-bitcast.ll create mode 100644 test/CodeGen/AArch64/neon-bitwise-instructions.ll create mode 100644 test/CodeGen/AArch64/neon-bsl.ll create mode 100644 test/CodeGen/AArch64/neon-compare-instructions.ll create mode 100644 test/CodeGen/AArch64/neon-copy.ll create mode 100644 test/CodeGen/AArch64/neon-crypto.ll create mode 100644 test/CodeGen/AArch64/neon-diagnostics.ll create mode 100644 test/CodeGen/AArch64/neon-extract.ll create mode 100644 test/CodeGen/AArch64/neon-facge-facgt.ll create mode 100644 test/CodeGen/AArch64/neon-fma.ll create mode 100644 test/CodeGen/AArch64/neon-frsqrt-frecp.ll create mode 100644 test/CodeGen/AArch64/neon-halving-add-sub.ll create mode 100644 test/CodeGen/AArch64/neon-max-min-pairwise.ll create mode 100644 test/CodeGen/AArch64/neon-max-min.ll create mode 100644 test/CodeGen/AArch64/neon-misc-scalar.ll create mode 100644 test/CodeGen/AArch64/neon-misc.ll create mode 100644 test/CodeGen/AArch64/neon-mla-mls.ll create mode 100644 test/CodeGen/AArch64/neon-mov.ll create mode 100644 test/CodeGen/AArch64/neon-mul-div.ll create mode 100644 test/CodeGen/AArch64/neon-perm.ll create mode 100644 test/CodeGen/AArch64/neon-rounding-halving-add.ll create mode 100644 test/CodeGen/AArch64/neon-rounding-shift.ll create mode 100644 test/CodeGen/AArch64/neon-saturating-add-sub.ll create mode 100644 test/CodeGen/AArch64/neon-saturating-rounding-shift.ll create mode 100644 test/CodeGen/AArch64/neon-saturating-shift.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-abs.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-add-sub.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-by-elem-fma.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-by-elem-mul.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-compare.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-copy.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-cvt.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-extract-narrow.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-fabd.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-fcvt.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-fp-compare.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-mul.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-neg.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-recip.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-reduce-pairwise.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-rounding-shift.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-saturating-add-sub.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-saturating-rounding-shift.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-saturating-shift.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-shift-imm.ll create mode 100644 test/CodeGen/AArch64/neon-scalar-shift.ll create mode 100644 test/CodeGen/AArch64/neon-shift-left-long.ll create mode 100644 test/CodeGen/AArch64/neon-shift.ll create mode 100644 test/CodeGen/AArch64/neon-simd-ldst-multi-elem.ll create mode 100644 test/CodeGen/AArch64/neon-simd-ldst-one.ll create mode 100644 test/CodeGen/AArch64/neon-simd-ldst.ll create mode 100644 test/CodeGen/AArch64/neon-simd-post-ldst-multi-elem.ll create mode 100644 test/CodeGen/AArch64/neon-simd-post-ldst-one.ll create mode 100644 test/CodeGen/AArch64/neon-simd-shift.ll create mode 100644 test/CodeGen/AArch64/neon-simd-tbl.ll create mode 100644 test/CodeGen/AArch64/neon-simd-vget.ll create mode 100644 test/CodeGen/AArch64/regress-fp128-livein.ll create mode 100644 test/CodeGen/AArch64/returnaddr.ll delete mode 100644 test/CodeGen/ARM/2010-10-19-mc-elf-objheader.ll delete mode 100644 test/CodeGen/ARM/2010-11-30-reloc-movt.ll create mode 100644 test/CodeGen/ARM/2013-05-07-ByteLoadSameAddress.ll create mode 100644 test/CodeGen/ARM/2013-05-13-AAPCS-byval-padding.ll create mode 100644 test/CodeGen/ARM/2013-05-13-AAPCS-byval-padding2.ll create mode 100644 test/CodeGen/ARM/2013-05-13-DAGCombiner-undef-mask.ll create mode 100644 test/CodeGen/ARM/2013-05-31-char-shift-crash.ll create mode 100644 test/CodeGen/ARM/2013-06-03-ByVal-2Kbytes.ll create mode 100644 test/CodeGen/ARM/2013-07-29-vector-or-combine.ll create mode 100644 test/CodeGen/ARM/2013-10-11-select-stalls.ll create mode 100644 test/CodeGen/ARM/2013-11-08-inline-asm-neon-array.ll create mode 100644 test/CodeGen/ARM/addrspacecast.ll create mode 100644 test/CodeGen/ARM/atomic-ops-v8.ll create mode 100644 test/CodeGen/ARM/build-attributes-encoding.s create mode 100644 test/CodeGen/ARM/byval_load_align.ll create mode 100644 test/CodeGen/ARM/coalesce-dbgvalue.ll create mode 100644 test/CodeGen/ARM/constantfp.ll create mode 100644 test/CodeGen/ARM/copy-paired-reg.ll create mode 100644 test/CodeGen/ARM/darwin-eabi.ll create mode 100644 test/CodeGen/ARM/divmod-eabi.ll delete mode 100644 test/CodeGen/ARM/ehabi-mc-cantunwind.ll delete mode 100644 test/CodeGen/ARM/ehabi-mc-compact-pr0.ll delete mode 100644 test/CodeGen/ARM/ehabi-mc-compact-pr1.ll delete mode 100644 test/CodeGen/ARM/ehabi-mc-section-group.ll delete mode 100644 test/CodeGen/ARM/ehabi-mc-section.ll delete mode 100644 test/CodeGen/ARM/ehabi-mc-sh_link.ll delete mode 100644 test/CodeGen/ARM/ehabi-mc.ll create mode 100644 test/CodeGen/ARM/ehabi.ll create mode 100644 test/CodeGen/ARM/emit-big-cst.ll create mode 100644 test/CodeGen/ARM/fast-isel-align.ll create mode 100644 test/CodeGen/ARM/fast-isel-ext.ll create mode 100644 test/CodeGen/ARM/fast-isel-load-store-verify.ll create mode 100644 test/CodeGen/ARM/fast-isel-vararg.ll create mode 100644 test/CodeGen/ARM/fast-tail-call.ll create mode 100644 test/CodeGen/ARM/fastisel-gep-promote-before-add.ll create mode 100644 test/CodeGen/ARM/fold-stack-adjust.ll create mode 100644 test/CodeGen/ARM/ifconv-kills.ll create mode 100644 test/CodeGen/ARM/ifconv-regmask.ll create mode 100644 test/CodeGen/ARM/indirectbr-3.ll create mode 100644 test/CodeGen/ARM/interrupt-attr.ll create mode 100644 test/CodeGen/ARM/intrinsics-crypto.ll create mode 100644 test/CodeGen/ARM/intrinsics-v8.ll create mode 100644 test/CodeGen/ARM/ldstrex.ll delete mode 100644 test/CodeGen/ARM/ldstrexd.ll create mode 100644 test/CodeGen/ARM/load-address-masked.ll create mode 100644 test/CodeGen/ARM/no-fpu.ll create mode 100644 test/CodeGen/ARM/noreturn.ll create mode 100644 test/CodeGen/ARM/optselect-regclass.ll create mode 100644 test/CodeGen/ARM/pic.ll create mode 100644 test/CodeGen/ARM/prefetch-thumb.ll create mode 100644 test/CodeGen/ARM/readcyclecounter.ll create mode 100644 test/CodeGen/ARM/returned-trunc-tail-calls.ll create mode 100644 test/CodeGen/ARM/section-name.ll create mode 100644 test/CodeGen/ARM/select-undef.ll create mode 100644 test/CodeGen/ARM/setcc-sentinals.ll create mode 100644 test/CodeGen/ARM/sincos.ll create mode 100644 test/CodeGen/ARM/stack-protector-bmovpcb_call.ll create mode 100644 test/CodeGen/ARM/struct-byval-frame-index.ll create mode 100644 test/CodeGen/ARM/struct_byval_arm_t1_t2.ll create mode 100644 test/CodeGen/ARM/swift-atomics.ll create mode 100644 test/CodeGen/ARM/swift-vldm.ll create mode 100644 test/CodeGen/ARM/unwind-init.ll create mode 100644 test/CodeGen/ARM/vcvt-v8.ll create mode 100644 test/CodeGen/ARM/vldm-liveness.ll create mode 100644 test/CodeGen/ARM/vldm-sched-a9.ll create mode 100644 test/CodeGen/ARM/vminmaxnm.ll create mode 100644 test/CodeGen/ARM/vsel.ll create mode 100644 test/CodeGen/ARM/warn-stack.ll delete mode 100644 test/CodeGen/Generic/lit.local.cfg create mode 100644 test/CodeGen/Hexagon/BranchPredict.ll create mode 100644 test/CodeGen/Hexagon/extload-combine.ll create mode 100644 test/CodeGen/Hexagon/packetize_cond_inst.ll create mode 100644 test/CodeGen/Hexagon/pred-gp.ll create mode 100644 test/CodeGen/Hexagon/pred-instrs.ll create mode 100644 test/CodeGen/Hexagon/split-const32-const64.ll create mode 100644 test/CodeGen/Hexagon/tail-call-trunc.ll create mode 100644 test/CodeGen/Hexagon/tfr-to-combine.ll delete mode 100644 test/CodeGen/MBlaze/DbgValueOtherTargets.test delete mode 100644 test/CodeGen/MBlaze/brind.ll delete mode 100644 test/CodeGen/MBlaze/callind.ll delete mode 100644 test/CodeGen/MBlaze/cc.ll delete mode 100644 test/CodeGen/MBlaze/div.ll delete mode 100644 test/CodeGen/MBlaze/fpu.ll delete mode 100644 test/CodeGen/MBlaze/fsl.ll delete mode 100644 test/CodeGen/MBlaze/imm.ll delete mode 100644 test/CodeGen/MBlaze/intr.ll delete mode 100644 test/CodeGen/MBlaze/jumptable.ll delete mode 100644 test/CodeGen/MBlaze/lit.local.cfg delete mode 100644 test/CodeGen/MBlaze/loop.ll delete mode 100644 test/CodeGen/MBlaze/mul.ll delete mode 100644 test/CodeGen/MBlaze/mul64.ll delete mode 100644 test/CodeGen/MBlaze/select.ll delete mode 100644 test/CodeGen/MBlaze/shift.ll delete mode 100644 test/CodeGen/MBlaze/svol.ll create mode 100644 test/CodeGen/MSP430/cc_args.ll create mode 100644 test/CodeGen/MSP430/cc_ret.ll create mode 100644 test/CodeGen/MSP430/jumptable.ll create mode 100644 test/CodeGen/MSP430/transient-stack-alignment.ll create mode 100644 test/CodeGen/Mips/2013-11-18-fp64-const0.ll create mode 100644 test/CodeGen/Mips/beqzc.ll create mode 100644 test/CodeGen/Mips/beqzc1.ll create mode 100644 test/CodeGen/Mips/blez_bgez.ll create mode 100644 test/CodeGen/Mips/brsize3.ll create mode 100644 test/CodeGen/Mips/brsize3a.ll create mode 100644 test/CodeGen/Mips/cmplarge.ll create mode 100644 test/CodeGen/Mips/const-mult.ll create mode 100644 test/CodeGen/Mips/const1.ll create mode 100644 test/CodeGen/Mips/const4a.ll create mode 100644 test/CodeGen/Mips/const6.ll create mode 100644 test/CodeGen/Mips/const6a.ll create mode 100644 test/CodeGen/Mips/ctlz.ll create mode 100644 test/CodeGen/Mips/disable-tail-merge.ll create mode 100644 test/CodeGen/Mips/dsp-vec-load-store.ll create mode 100644 test/CodeGen/Mips/emit-big-cst.ll create mode 100644 test/CodeGen/Mips/f16abs.ll create mode 100644 test/CodeGen/Mips/fixdfsf.ll create mode 100644 test/CodeGen/Mips/fp16instrinsmc.ll create mode 100644 test/CodeGen/Mips/fp16mix.ll create mode 100644 test/CodeGen/Mips/fptr2.ll create mode 100644 test/CodeGen/Mips/hf16call32.ll create mode 100644 test/CodeGen/Mips/hf16call32_body.ll create mode 100644 test/CodeGen/Mips/hf1_body.ll create mode 100644 test/CodeGen/Mips/hfptrcall.ll create mode 100644 test/CodeGen/Mips/int-to-float-conversion.ll create mode 100644 test/CodeGen/Mips/lazy-binding.ll create mode 100644 test/CodeGen/Mips/mips16_fpret.ll create mode 100644 test/CodeGen/Mips/mno-ldc1-sdc1.ll create mode 100644 test/CodeGen/Mips/msa/2r.ll create mode 100644 test/CodeGen/Mips/msa/2r_vector_scalar.ll create mode 100644 test/CodeGen/Mips/msa/2rf.ll create mode 100644 test/CodeGen/Mips/msa/2rf_exup.ll create mode 100644 test/CodeGen/Mips/msa/2rf_float_int.ll create mode 100644 test/CodeGen/Mips/msa/2rf_fq.ll create mode 100644 test/CodeGen/Mips/msa/2rf_int_float.ll create mode 100644 test/CodeGen/Mips/msa/2rf_tq.ll create mode 100644 test/CodeGen/Mips/msa/3r-a.ll create mode 100644 test/CodeGen/Mips/msa/3r-b.ll create mode 100644 test/CodeGen/Mips/msa/3r-c.ll create mode 100644 test/CodeGen/Mips/msa/3r-d.ll create mode 100644 test/CodeGen/Mips/msa/3r-i.ll create mode 100644 test/CodeGen/Mips/msa/3r-m.ll create mode 100644 test/CodeGen/Mips/msa/3r-p.ll create mode 100644 test/CodeGen/Mips/msa/3r-s.ll create mode 100644 test/CodeGen/Mips/msa/3r-v.ll create mode 100644 test/CodeGen/Mips/msa/3r_4r.ll create mode 100644 test/CodeGen/Mips/msa/3r_4r_widen.ll create mode 100644 test/CodeGen/Mips/msa/3r_splat.ll create mode 100644 test/CodeGen/Mips/msa/3rf.ll create mode 100644 test/CodeGen/Mips/msa/3rf_4rf.ll create mode 100644 test/CodeGen/Mips/msa/3rf_4rf_q.ll create mode 100644 test/CodeGen/Mips/msa/3rf_exdo.ll create mode 100644 test/CodeGen/Mips/msa/3rf_float_int.ll create mode 100644 test/CodeGen/Mips/msa/3rf_int_float.ll create mode 100644 test/CodeGen/Mips/msa/3rf_q.ll create mode 100644 test/CodeGen/Mips/msa/arithmetic.ll create mode 100644 test/CodeGen/Mips/msa/arithmetic_float.ll create mode 100644 test/CodeGen/Mips/msa/basic_operations.ll create mode 100644 test/CodeGen/Mips/msa/basic_operations_float.ll create mode 100644 test/CodeGen/Mips/msa/bit.ll create mode 100644 test/CodeGen/Mips/msa/bitcast.ll create mode 100644 test/CodeGen/Mips/msa/bitwise.ll create mode 100644 test/CodeGen/Mips/msa/compare.ll create mode 100644 test/CodeGen/Mips/msa/compare_float.ll create mode 100644 test/CodeGen/Mips/msa/elm_copy.ll create mode 100644 test/CodeGen/Mips/msa/elm_cxcmsa.ll create mode 100644 test/CodeGen/Mips/msa/elm_insv.ll create mode 100644 test/CodeGen/Mips/msa/elm_move.ll create mode 100644 test/CodeGen/Mips/msa/elm_shift_slide.ll create mode 100644 test/CodeGen/Mips/msa/endian.ll create mode 100644 test/CodeGen/Mips/msa/frameindex.ll create mode 100644 test/CodeGen/Mips/msa/i10.ll create mode 100644 test/CodeGen/Mips/msa/i5-a.ll create mode 100644 test/CodeGen/Mips/msa/i5-b.ll create mode 100644 test/CodeGen/Mips/msa/i5-c.ll create mode 100644 test/CodeGen/Mips/msa/i5-m.ll create mode 100644 test/CodeGen/Mips/msa/i5-s.ll create mode 100644 test/CodeGen/Mips/msa/i5_ld_st.ll create mode 100644 test/CodeGen/Mips/msa/i8.ll create mode 100644 test/CodeGen/Mips/msa/inline-asm.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s1704963983.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s1935737938.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s2090927243-simplified.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s2501752154-simplified.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s2704903805.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s3861334421.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s3926023935.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s3997499501.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s449609655-simplified.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s525530439.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-s997348632.ll create mode 100644 test/CodeGen/Mips/msa/llvm-stress-sz1-s742806235.ll create mode 100644 test/CodeGen/Mips/msa/shift-dagcombine.ll create mode 100644 test/CodeGen/Mips/msa/shuffle.ll create mode 100644 test/CodeGen/Mips/msa/special.ll create mode 100644 test/CodeGen/Mips/msa/spill.ll create mode 100644 test/CodeGen/Mips/msa/vec.ll create mode 100644 test/CodeGen/Mips/msa/vecs10.ll create mode 100644 test/CodeGen/Mips/nomips16.ll create mode 100644 test/CodeGen/Mips/optimize-fp-math.ll create mode 100644 test/CodeGen/Mips/powif64_16.ll create mode 100644 test/CodeGen/Mips/sel1c.ll create mode 100644 test/CodeGen/Mips/sel2c.ll create mode 100644 test/CodeGen/Mips/setcc-se.ll create mode 100644 test/CodeGen/Mips/simplebr.ll create mode 100644 test/CodeGen/Mips/sint-fp-store_pattern.ll create mode 100644 test/CodeGen/Mips/stack-alignment.ll create mode 100644 test/CodeGen/Mips/stackcoloring.ll create mode 100644 test/CodeGen/Mips/trap.ll create mode 100644 test/CodeGen/Mips/trap1.ll create mode 100644 test/CodeGen/NVPTX/add-128bit.ll create mode 100644 test/CodeGen/NVPTX/bug17709.ll create mode 100644 test/CodeGen/NVPTX/callchain.ll create mode 100644 test/CodeGen/NVPTX/constant-vectors.ll create mode 100644 test/CodeGen/NVPTX/ctlz.ll create mode 100644 test/CodeGen/NVPTX/ctpop.ll create mode 100644 test/CodeGen/NVPTX/cttz.ll create mode 100644 test/CodeGen/NVPTX/fast-math.ll create mode 100644 test/CodeGen/NVPTX/fp-literals.ll create mode 100644 test/CodeGen/NVPTX/i1-int-to-fp.ll create mode 100644 test/CodeGen/NVPTX/i8-param.ll create mode 100644 test/CodeGen/NVPTX/implicit-def.ll create mode 100644 test/CodeGen/NVPTX/inline-asm.ll create mode 100644 test/CodeGen/NVPTX/ldu-i8.ll create mode 100644 test/CodeGen/NVPTX/ldu-reg-plus-offset.ll create mode 100644 test/CodeGen/NVPTX/load-sext-i1.ll create mode 100644 test/CodeGen/NVPTX/local-stack-frame.ll create mode 100644 test/CodeGen/NVPTX/module-inline-asm.ll create mode 100644 test/CodeGen/NVPTX/pr16278.ll create mode 100644 test/CodeGen/NVPTX/pr17529.ll create mode 100644 test/CodeGen/NVPTX/rsqrt.ll create mode 100644 test/CodeGen/NVPTX/sext-in-reg.ll create mode 100644 test/CodeGen/NVPTX/sext-params.ll create mode 100644 test/CodeGen/NVPTX/vec-param-load.ll create mode 100644 test/CodeGen/NVPTX/vec8.ll create mode 100644 test/CodeGen/NVPTX/vector-stores.ll create mode 100644 test/CodeGen/PowerPC/2013-05-15-preinc-fold.ll create mode 100644 test/CodeGen/PowerPC/2013-07-01-PHIElimBug.ll create mode 100644 test/CodeGen/PowerPC/addrfuncstr.ll create mode 100644 test/CodeGen/PowerPC/altivec-ord.ll create mode 100644 test/CodeGen/PowerPC/ashr-neg1.ll create mode 100644 test/CodeGen/PowerPC/asm-dialect.ll create mode 100644 test/CodeGen/PowerPC/bv-pres-v8i1.ll create mode 100644 test/CodeGen/PowerPC/bv-widen-undef.ll create mode 100644 test/CodeGen/PowerPC/copysignl.ll create mode 100644 test/CodeGen/PowerPC/ctrloop-asm.ll create mode 100644 test/CodeGen/PowerPC/ctrloop-cpsgn.ll create mode 100644 test/CodeGen/PowerPC/ctrloop-fp64.ll create mode 100644 test/CodeGen/PowerPC/ctrloop-i64.ll create mode 100644 test/CodeGen/PowerPC/ctrloop-large-ec.ll create mode 100644 test/CodeGen/PowerPC/ctrloop-le.ll create mode 100644 test/CodeGen/PowerPC/ctrloop-lt.ll create mode 100644 test/CodeGen/PowerPC/ctrloop-ne.ll create mode 100644 test/CodeGen/PowerPC/dyn-alloca-aligned.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-GEP-coalesce.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-binary.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-br-const.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-call.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-cmp-imm.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-conversion.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-crash.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-ext.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-fold.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-indirectbr.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-load-store.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-redefinition.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-ret.ll create mode 100644 test/CodeGen/PowerPC/fast-isel-shifter.ll create mode 100644 test/CodeGen/PowerPC/fastisel-gep-promote-before-add.ll create mode 100644 test/CodeGen/PowerPC/fcpsgn.ll create mode 100644 test/CodeGen/PowerPC/glob-comp-aa-crash.ll create mode 100644 test/CodeGen/PowerPC/hello-reloc.s create mode 100644 test/CodeGen/PowerPC/inlineasm-i64-reg.ll create mode 100644 test/CodeGen/PowerPC/isel-rc-nox0.ll create mode 100644 test/CodeGen/PowerPC/mulli64.ll create mode 100644 test/CodeGen/PowerPC/ppc32-vacopy.ll create mode 100644 test/CodeGen/PowerPC/pr16556-2.ll create mode 100644 test/CodeGen/PowerPC/pr16556.ll create mode 100644 test/CodeGen/PowerPC/pr16573.ll create mode 100644 test/CodeGen/PowerPC/pr17168.ll create mode 100644 test/CodeGen/PowerPC/pr17354.ll create mode 100644 test/CodeGen/PowerPC/reg-names.ll create mode 100644 test/CodeGen/PowerPC/reloc-align.ll create mode 100644 test/CodeGen/PowerPC/remap-crash.ll create mode 100644 test/CodeGen/PowerPC/rlwimi-and.ll create mode 100644 test/CodeGen/PowerPC/rs-undef-use.ll create mode 100644 test/CodeGen/PowerPC/set0-v8i16.ll create mode 100644 test/CodeGen/PowerPC/sj-ctr-loop.ll create mode 100644 test/CodeGen/PowerPC/stack-realign.ll create mode 100644 test/CodeGen/PowerPC/std-unal-fi.ll create mode 100644 test/CodeGen/PowerPC/sub-bv-types.ll create mode 100644 test/CodeGen/PowerPC/subsumes-pred-regs.ll delete mode 100644 test/CodeGen/PowerPC/tls-gd-obj.ll delete mode 100644 test/CodeGen/PowerPC/tls-ie-obj.ll delete mode 100644 test/CodeGen/PowerPC/tls-ld-obj.ll create mode 100644 test/CodeGen/PowerPC/unal-altivec.ll create mode 100644 test/CodeGen/PowerPC/unal-altivec2.ll create mode 100644 test/CodeGen/PowerPC/unwind-dw2-g.ll create mode 100644 test/CodeGen/PowerPC/unwind-dw2.ll create mode 100644 test/CodeGen/PowerPC/vec-abi-align.ll create mode 100644 test/CodeGen/PowerPC/vec_fmuladd.ll create mode 100644 test/CodeGen/PowerPC/zero-not-run.ll create mode 100644 test/CodeGen/R600/32-bit-local-address-space.ll create mode 100644 test/CodeGen/R600/64bit-kernel-args.ll create mode 100644 test/CodeGen/R600/add_i64.ll create mode 100644 test/CodeGen/R600/address-space.ll delete mode 100644 test/CodeGen/R600/alu-split.ll create mode 100644 test/CodeGen/R600/array-ptr-calc-i64.ll create mode 100644 test/CodeGen/R600/atomic_load_add.ll create mode 100644 test/CodeGen/R600/atomic_load_sub.ll create mode 100644 test/CodeGen/R600/big_alu.ll create mode 100644 test/CodeGen/R600/bitcast.ll create mode 100644 test/CodeGen/R600/build_vector.ll create mode 100644 test/CodeGen/R600/combine_vloads.ll create mode 100644 test/CodeGen/R600/complex-folding.ll create mode 100644 test/CodeGen/R600/dot4-folding.ll create mode 100644 test/CodeGen/R600/extload.ll create mode 100644 test/CodeGen/R600/fadd64.ll create mode 100644 test/CodeGen/R600/fcmp64.ll create mode 100644 test/CodeGen/R600/fconst64.ll create mode 100644 test/CodeGen/R600/fdiv64.ll create mode 100644 test/CodeGen/R600/fetch-limits.r600.ll create mode 100644 test/CodeGen/R600/fetch-limits.r700+.ll create mode 100644 test/CodeGen/R600/fma.ll delete mode 100644 test/CodeGen/R600/fmul.v4f32.ll create mode 100644 test/CodeGen/R600/fmul64.ll create mode 100644 test/CodeGen/R600/fmuladd.ll create mode 100644 test/CodeGen/R600/fneg.ll create mode 100644 test/CodeGen/R600/fp64_to_sint.ll create mode 100644 test/CodeGen/R600/fpext.ll create mode 100644 test/CodeGen/R600/fptrunc.ll create mode 100644 test/CodeGen/R600/fsqrt.ll create mode 100644 test/CodeGen/R600/fsub64.ll create mode 100644 test/CodeGen/R600/gep-address-space.ll create mode 100644 test/CodeGen/R600/indirect-addressing-si.ll create mode 100644 test/CodeGen/R600/insert_vector_elt.ll create mode 100644 test/CodeGen/R600/kernel-args.ll create mode 100644 test/CodeGen/R600/lds-output-queue.ll create mode 100644 test/CodeGen/R600/lds-size.ll create mode 100644 test/CodeGen/R600/llvm.AMDGPU.barrier.local.ll create mode 100644 test/CodeGen/R600/llvm.AMDGPU.cube.ll create mode 100644 test/CodeGen/R600/llvm.AMDGPU.imax.ll create mode 100644 test/CodeGen/R600/llvm.AMDGPU.imin.ll create mode 100644 test/CodeGen/R600/llvm.AMDGPU.umax.ll create mode 100644 test/CodeGen/R600/llvm.AMDGPU.umin.ll create mode 100644 test/CodeGen/R600/llvm.SI.imageload.ll create mode 100644 test/CodeGen/R600/llvm.SI.resinfo.ll create mode 100644 test/CodeGen/R600/llvm.SI.sample-masked.ll create mode 100644 test/CodeGen/R600/llvm.SI.sampled.ll create mode 100644 test/CodeGen/R600/llvm.SI.tbuffer.store.ll create mode 100644 test/CodeGen/R600/llvm.SI.tid.ll create mode 100644 test/CodeGen/R600/llvm.floor.ll create mode 100644 test/CodeGen/R600/llvm.rint.ll create mode 100644 test/CodeGen/R600/llvm.round.ll create mode 100644 test/CodeGen/R600/llvm.sqrt.ll create mode 100644 test/CodeGen/R600/load-input-fold.ll create mode 100644 test/CodeGen/R600/load.vec.ll create mode 100644 test/CodeGen/R600/load64.ll create mode 100644 test/CodeGen/R600/local-memory-two-objects.ll create mode 100644 test/CodeGen/R600/local-memory.ll create mode 100644 test/CodeGen/R600/mad_int24.ll create mode 100644 test/CodeGen/R600/mad_uint24.ll create mode 100644 test/CodeGen/R600/max-literals.ll create mode 100644 test/CodeGen/R600/mul_int24.ll create mode 100644 test/CodeGen/R600/mul_uint24.ll create mode 100644 test/CodeGen/R600/packetizer.ll create mode 100644 test/CodeGen/R600/parallelandifcollapse.ll create mode 100644 test/CodeGen/R600/parallelorifcollapse.ll create mode 100644 test/CodeGen/R600/predicate-dp4.ll create mode 100644 test/CodeGen/R600/private-memory.ll create mode 100644 test/CodeGen/R600/pv-packing.ll create mode 100644 test/CodeGen/R600/r600-export-fix.ll create mode 100644 test/CodeGen/R600/r600cfg.ll create mode 100644 test/CodeGen/R600/rotr.ll create mode 100644 test/CodeGen/R600/rv7x0_count3.ll create mode 100644 test/CodeGen/R600/select.ll create mode 100644 test/CodeGen/R600/setcc64.ll create mode 100644 test/CodeGen/R600/sgpr-copy-duplicate-operand.ll create mode 100644 test/CodeGen/R600/sgpr-copy.ll create mode 100644 test/CodeGen/R600/shared-op-cycle.ll delete mode 100644 test/CodeGen/R600/short-args.ll create mode 100644 test/CodeGen/R600/si-annotate-cf-assertion.ll create mode 100644 test/CodeGen/R600/si-lod-bias.ll create mode 100644 test/CodeGen/R600/si-sgpr-spill.ll create mode 100644 test/CodeGen/R600/si-vector-hang.ll create mode 100644 test/CodeGen/R600/sign_extend.ll create mode 100644 test/CodeGen/R600/sint_to_fp64.ll create mode 100644 test/CodeGen/R600/store-vector-ptrs.ll create mode 100644 test/CodeGen/R600/structurize.ll create mode 100644 test/CodeGen/R600/structurize1.ll create mode 100644 test/CodeGen/R600/swizzle-export.ll create mode 100644 test/CodeGen/R600/tex-clause-antidep.ll create mode 100644 test/CodeGen/R600/texture-input-merge.ll create mode 100644 test/CodeGen/R600/trunc-vector-store-assertion-failure.ll create mode 100644 test/CodeGen/R600/trunc.ll create mode 100644 test/CodeGen/R600/unaligned-load-store.ll create mode 100644 test/CodeGen/R600/vertex-fetch-encoding.ll create mode 100644 test/CodeGen/R600/vselect64.ll create mode 100644 test/CodeGen/R600/vtx-schedule.ll create mode 100644 test/CodeGen/R600/wait.ll create mode 100644 test/CodeGen/R600/work-item-intrinsics.ll create mode 100644 test/CodeGen/R600/wrong-transalu-pos-fix.ll create mode 100644 test/CodeGen/R600/zero_extend.ll delete mode 100644 test/CodeGen/SI/sanity.ll create mode 100644 test/CodeGen/SPARC/2013-05-17-CallFrame.ll create mode 100644 test/CodeGen/SPARC/blockaddr.ll create mode 100644 test/CodeGen/SPARC/exception.ll create mode 100644 test/CodeGen/SPARC/float.ll create mode 100644 test/CodeGen/SPARC/fp128.ll create mode 100644 test/CodeGen/SPARC/leafproc.ll create mode 100644 test/CodeGen/SPARC/rem.ll create mode 100644 test/CodeGen/SPARC/setjmp.ll create mode 100644 test/CodeGen/SPARC/tls.ll create mode 100644 test/CodeGen/SystemZ/Large/branch-range-01.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-02.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-03.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-04.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-05.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-06.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-07.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-08.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-09.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-10.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-11.py create mode 100644 test/CodeGen/SystemZ/Large/branch-range-12.py create mode 100644 test/CodeGen/SystemZ/Large/lit.local.cfg create mode 100644 test/CodeGen/SystemZ/Large/spill-01.py create mode 100644 test/CodeGen/SystemZ/Large/spill-02.py create mode 100644 test/CodeGen/SystemZ/alias-01.ll create mode 100644 test/CodeGen/SystemZ/and-07.ll create mode 100644 test/CodeGen/SystemZ/and-08.ll create mode 100644 test/CodeGen/SystemZ/asm-17.ll create mode 100644 test/CodeGen/SystemZ/asm-18.ll create mode 100644 test/CodeGen/SystemZ/branch-06.ll create mode 100644 test/CodeGen/SystemZ/branch-07.ll create mode 100644 test/CodeGen/SystemZ/branch-08.ll create mode 100644 test/CodeGen/SystemZ/branch-09.ll create mode 100644 test/CodeGen/SystemZ/branch-10.ll create mode 100644 test/CodeGen/SystemZ/call-03.ll create mode 100644 test/CodeGen/SystemZ/cond-load-01.ll create mode 100644 test/CodeGen/SystemZ/cond-load-02.ll create mode 100644 test/CodeGen/SystemZ/cond-move-01.ll create mode 100644 test/CodeGen/SystemZ/cond-store-01.ll create mode 100644 test/CodeGen/SystemZ/cond-store-02.ll create mode 100644 test/CodeGen/SystemZ/cond-store-03.ll create mode 100644 test/CodeGen/SystemZ/cond-store-04.ll create mode 100644 test/CodeGen/SystemZ/cond-store-05.ll create mode 100644 test/CodeGen/SystemZ/cond-store-06.ll create mode 100644 test/CodeGen/SystemZ/cond-store-07.ll create mode 100644 test/CodeGen/SystemZ/cond-store-08.ll create mode 100644 test/CodeGen/SystemZ/fp-cmp-04.ll create mode 100644 test/CodeGen/SystemZ/fp-move-09.ll create mode 100644 test/CodeGen/SystemZ/fp-round-02.ll create mode 100644 test/CodeGen/SystemZ/int-abs-01.ll create mode 100644 test/CodeGen/SystemZ/int-add-13.ll create mode 100644 test/CodeGen/SystemZ/int-add-14.ll create mode 100644 test/CodeGen/SystemZ/int-add-15.ll create mode 100644 test/CodeGen/SystemZ/int-add-16.ll create mode 100644 test/CodeGen/SystemZ/int-cmp-44.ll create mode 100644 test/CodeGen/SystemZ/int-cmp-45.ll create mode 100644 test/CodeGen/SystemZ/int-cmp-46.ll create mode 100644 test/CodeGen/SystemZ/int-cmp-47.ll create mode 100644 test/CodeGen/SystemZ/int-cmp-48.ll create mode 100644 test/CodeGen/SystemZ/int-cmp-49.ll create mode 100644 test/CodeGen/SystemZ/int-conv-11.ll create mode 100644 test/CodeGen/SystemZ/int-div-06.ll create mode 100644 test/CodeGen/SystemZ/int-neg-02.ll create mode 100644 test/CodeGen/SystemZ/int-sub-07.ll create mode 100644 test/CodeGen/SystemZ/int-sub-08.ll create mode 100644 test/CodeGen/SystemZ/int-sub-09.ll create mode 100644 test/CodeGen/SystemZ/loop-01.ll create mode 100644 test/CodeGen/SystemZ/memchr-01.ll create mode 100644 test/CodeGen/SystemZ/memchr-02.ll create mode 100644 test/CodeGen/SystemZ/memcmp-01.ll create mode 100644 test/CodeGen/SystemZ/memcmp-02.ll create mode 100644 test/CodeGen/SystemZ/memcpy-01.ll create mode 100644 test/CodeGen/SystemZ/memcpy-02.ll create mode 100644 test/CodeGen/SystemZ/memset-01.ll create mode 100644 test/CodeGen/SystemZ/memset-02.ll create mode 100644 test/CodeGen/SystemZ/memset-03.ll create mode 100644 test/CodeGen/SystemZ/memset-04.ll create mode 100644 test/CodeGen/SystemZ/or-07.ll create mode 100644 test/CodeGen/SystemZ/or-08.ll create mode 100644 test/CodeGen/SystemZ/prefetch-01.ll create mode 100644 test/CodeGen/SystemZ/risbg-01.ll create mode 100644 test/CodeGen/SystemZ/risbg-02.ll create mode 100644 test/CodeGen/SystemZ/rnsbg-01.ll create mode 100644 test/CodeGen/SystemZ/rosbg-01.ll create mode 100644 test/CodeGen/SystemZ/rxsbg-01.ll create mode 100644 test/CodeGen/SystemZ/setcc-01.ll create mode 100644 test/CodeGen/SystemZ/setcc-02.ll create mode 100644 test/CodeGen/SystemZ/shift-09.ll create mode 100644 test/CodeGen/SystemZ/shift-10.ll create mode 100644 test/CodeGen/SystemZ/spill-01.ll create mode 100644 test/CodeGen/SystemZ/strcmp-01.ll create mode 100644 test/CodeGen/SystemZ/strcmp-02.ll create mode 100644 test/CodeGen/SystemZ/strcpy-01.ll create mode 100644 test/CodeGen/SystemZ/strlen-01.ll create mode 100644 test/CodeGen/SystemZ/strlen-02.ll create mode 100644 test/CodeGen/SystemZ/unaligned-01.ll create mode 100644 test/CodeGen/SystemZ/xor-07.ll create mode 100644 test/CodeGen/SystemZ/xor-08.ll create mode 100644 test/CodeGen/Thumb/PR17309.ll create mode 100644 test/CodeGen/Thumb2/tail-call-r9.ll create mode 100644 test/CodeGen/Thumb2/v8_IT_1.ll create mode 100644 test/CodeGen/Thumb2/v8_IT_2.ll create mode 100644 test/CodeGen/Thumb2/v8_IT_3.ll create mode 100644 test/CodeGen/Thumb2/v8_IT_4.ll create mode 100644 test/CodeGen/Thumb2/v8_IT_5.ll delete mode 100644 test/CodeGen/X86/2007-05-07-InvokeSRet.ll delete mode 100644 test/CodeGen/X86/2008-02-08-LoadFoldingBug.ll delete mode 100644 test/CodeGen/X86/2012-02-20-MachineCPBug.ll create mode 100644 test/CodeGen/X86/2013-10-14-FastISel-incorrect-vreg.ll create mode 100644 test/CodeGen/X86/GC/ocaml-gc-assert.ll create mode 100644 test/CodeGen/X86/aes_intrinsics.ll create mode 100644 test/CodeGen/X86/alias-error.ll create mode 100644 test/CodeGen/X86/anyregcc-crash.ll create mode 100644 test/CodeGen/X86/anyregcc.ll create mode 100644 test/CodeGen/X86/atom-lea-addw-bug.ll create mode 100644 test/CodeGen/X86/avx2-gather.ll create mode 100644 test/CodeGen/X86/avx2-vector-shifts.ll create mode 100644 test/CodeGen/X86/avx512-arith.ll create mode 100644 test/CodeGen/X86/avx512-build-vector.ll create mode 100644 test/CodeGen/X86/avx512-cmp.ll create mode 100644 test/CodeGen/X86/avx512-cvt.ll create mode 100644 test/CodeGen/X86/avx512-fma-intrinsics.ll create mode 100644 test/CodeGen/X86/avx512-fma.ll create mode 100644 test/CodeGen/X86/avx512-gather-scatter-intrin.ll create mode 100644 test/CodeGen/X86/avx512-insert-extract.ll create mode 100644 test/CodeGen/X86/avx512-intrinsics.ll create mode 100644 test/CodeGen/X86/avx512-mask-op.ll create mode 100644 test/CodeGen/X86/avx512-mov.ll create mode 100644 test/CodeGen/X86/avx512-select.ll create mode 100644 test/CodeGen/X86/avx512-shift.ll create mode 100644 test/CodeGen/X86/avx512-shuffle.ll create mode 100644 test/CodeGen/X86/avx512-trunc-ext.ll create mode 100644 test/CodeGen/X86/avx512-vbroadcast.ll create mode 100644 test/CodeGen/X86/avx512-vec-cmp.ll create mode 100644 test/CodeGen/X86/break-avx-dep.ll create mode 100644 test/CodeGen/X86/chain_order.ll create mode 100644 test/CodeGen/X86/coff-feat00.ll create mode 100644 test/CodeGen/X86/dagcombine-shifts.ll create mode 100644 test/CodeGen/X86/dagcombine-unsafe-math.ll delete mode 100644 test/CodeGen/X86/dagcombine_unsafe_math.ll delete mode 100644 test/CodeGen/X86/dbg-at-specficiation.ll delete mode 100644 test/CodeGen/X86/dbg-byval-parameter.ll delete mode 100644 test/CodeGen/X86/dbg-const-int.ll delete mode 100644 test/CodeGen/X86/dbg-const.ll delete mode 100644 test/CodeGen/X86/dbg-declare-arg.ll delete mode 100644 test/CodeGen/X86/dbg-declare.ll delete mode 100644 test/CodeGen/X86/dbg-file-name.ll delete mode 100644 test/CodeGen/X86/dbg-i128-const.ll delete mode 100644 test/CodeGen/X86/dbg-large-unsigned-const.ll delete mode 100644 test/CodeGen/X86/dbg-merge-loc-entry.ll delete mode 100644 test/CodeGen/X86/dbg-prolog-end.ll delete mode 100644 test/CodeGen/X86/dbg-subrange.ll delete mode 100644 test/CodeGen/X86/dbg-value-dag-combine.ll delete mode 100644 test/CodeGen/X86/dbg-value-isel.ll delete mode 100644 test/CodeGen/X86/dbg-value-location.ll delete mode 100644 test/CodeGen/X86/dbg-value-range.ll create mode 100644 test/CodeGen/X86/dyn_alloca_aligned.ll create mode 100644 test/CodeGen/X86/emit-big-cst.ll create mode 100644 test/CodeGen/X86/extended-fma-contraction.ll create mode 100644 test/CodeGen/X86/fast-isel-store.ll delete mode 100644 test/CodeGen/X86/fast-isel-unaligned-store.ll create mode 100644 test/CodeGen/X86/fastisel-gep-promote-before-add.ll create mode 100644 test/CodeGen/X86/floor-soft-float.ll create mode 100644 test/CodeGen/X86/fma_patterns_wide.ll create mode 100644 test/CodeGen/X86/fp-select-cmp-and.ll create mode 100644 test/CodeGen/X86/fp-une-cmp.ll create mode 100644 test/CodeGen/X86/frame-base.ll create mode 100644 test/CodeGen/X86/i486-fence-loop.ll create mode 100644 test/CodeGen/X86/ident-metadata.ll create mode 100644 test/CodeGen/X86/isel-optnone.ll create mode 100644 test/CodeGen/X86/large-gep-chain.ll create mode 100644 test/CodeGen/X86/load-slice.ll create mode 100644 test/CodeGen/X86/long-extend.ll create mode 100644 test/CodeGen/X86/merge_store.ll create mode 100644 test/CodeGen/X86/misched-fusion.ll create mode 100644 test/CodeGen/X86/newline-and-quote.ll create mode 100644 test/CodeGen/X86/no-elf-compact-unwind.ll create mode 100644 test/CodeGen/X86/nocx16.ll create mode 100644 test/CodeGen/X86/nonconst-static-ev.ll create mode 100644 test/CodeGen/X86/nonconst-static-iv.ll create mode 100644 test/CodeGen/X86/patchpoint.ll create mode 100644 test/CodeGen/X86/peep-test-4.ll create mode 100644 test/CodeGen/X86/pr16031.ll create mode 100644 test/CodeGen/X86/pr16360.ll create mode 100644 test/CodeGen/X86/pr16807.ll create mode 100644 test/CodeGen/X86/pr17546.ll create mode 100644 test/CodeGen/X86/pr17631.ll create mode 100644 test/CodeGen/X86/pr17764.ll create mode 100644 test/CodeGen/X86/pr18014.ll create mode 100644 test/CodeGen/X86/pr18023.ll create mode 100644 test/CodeGen/X86/pr18054.ll create mode 100644 test/CodeGen/X86/pr18162.ll create mode 100644 test/CodeGen/X86/prefixdata.ll delete mode 100644 test/CodeGen/X86/rem-2.ll create mode 100644 test/CodeGen/X86/remat-phys-dead.ll create mode 100644 test/CodeGen/X86/returned-trunc-tail-calls.ll create mode 100644 test/CodeGen/X86/setcc-narrowing.ll create mode 100644 test/CodeGen/X86/setcc-sentinals.ll create mode 100644 test/CodeGen/X86/sha.ll create mode 100644 test/CodeGen/X86/sibcall-6.ll create mode 100644 test/CodeGen/X86/simple-zext.ll create mode 100644 test/CodeGen/X86/sqrt-fastmath.ll create mode 100644 test/CodeGen/X86/sse-intrinsics-x86.ll create mode 100644 test/CodeGen/X86/sse2-intrinsics-x86.ll create mode 100644 test/CodeGen/X86/sse2-vector-shifts.ll create mode 100644 test/CodeGen/X86/sse3-intrinsics-x86.ll create mode 100644 test/CodeGen/X86/sse41-intrinsics-x86.ll create mode 100644 test/CodeGen/X86/sse42-intrinsics-x86.ll create mode 100644 test/CodeGen/X86/ssse3-intrinsics-x86.ll create mode 100644 test/CodeGen/X86/stack-protector-dbginfo.ll create mode 100644 test/CodeGen/X86/stack-protector-vreg-to-vreg-copy.ll create mode 100644 test/CodeGen/X86/stackmap.ll delete mode 100644 test/CodeGen/X86/subtarget-feature-change.ll create mode 100644 test/CodeGen/X86/tail-call-attrs.ll create mode 100644 test/CodeGen/X86/tail-call-legality.ll create mode 100644 test/CodeGen/X86/tailcall-calleesave.ll create mode 100644 test/CodeGen/X86/tbm-intrinsics-x86_64.ll create mode 100644 test/CodeGen/X86/tbm_patterns.ll create mode 100644 test/CodeGen/X86/tlv-3.ll create mode 100644 test/CodeGen/X86/unaligned-spill-folding.ll create mode 100644 test/CodeGen/X86/unwind-init.ll create mode 100644 test/CodeGen/X86/v4i32load-crash.ll create mode 100644 test/CodeGen/X86/vec_round.ll create mode 100644 test/CodeGen/X86/vec_setcc.ll create mode 100644 test/CodeGen/X86/vec_split.ll create mode 100644 test/CodeGen/X86/warn-stack.ll create mode 100644 test/CodeGen/X86/weak_def_can_be_hidden.ll create mode 100644 test/CodeGen/X86/x86-64-psub.ll delete mode 100644 test/CodeGen/XCore/2011-08-01-VarargsBug.ll create mode 100644 test/CodeGen/XCore/alignment.ll create mode 100644 test/CodeGen/XCore/atomic.ll create mode 100644 test/CodeGen/XCore/byVal.ll create mode 100644 test/CodeGen/XCore/epilogue_prologue.ll create mode 100644 test/CodeGen/XCore/exception.ll create mode 100644 test/CodeGen/XCore/inline-asm.ll create mode 100644 test/CodeGen/XCore/linkage.ll create mode 100644 test/CodeGen/XCore/shedulingPreference.ll create mode 100644 test/CodeGen/XCore/varargs.ll create mode 100644 test/CodeGen/XCore/zext.ll create mode 100644 test/CodeGen/XCore/zextfree.ll create mode 100644 test/DebugInfo/ARM/PR16736.ll create mode 100644 test/DebugInfo/ARM/lit.local.cfg create mode 100644 test/DebugInfo/ARM/lowerbdgdeclare_vla.ll create mode 100644 test/DebugInfo/ARM/selectiondag-deadcode.ll create mode 100755 test/DebugInfo/Inputs/dwarfdump-inl-test.high_pc.elf-x86-64 create mode 100644 test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.cpp create mode 100644 test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.o create mode 100755 test/DebugInfo/Inputs/dwarfdump-test.elf-x86-64.debuglink create mode 100644 test/DebugInfo/Inputs/dwarfdump-type-units.cc create mode 100644 test/DebugInfo/Inputs/dwarfdump-type-units.elf-x86-64 delete mode 100644 test/DebugInfo/Inputs/lit.local.cfg create mode 100755 test/DebugInfo/Inputs/macho-universal create mode 100644 test/DebugInfo/Inputs/macho-universal.cc create mode 100644 test/DebugInfo/PowerPC/lit.local.cfg create mode 100644 test/DebugInfo/PowerPC/tls-fission.ll create mode 100644 test/DebugInfo/PowerPC/tls.ll create mode 100644 test/DebugInfo/X86/DW_AT_stmt_list_sec_offset.ll create mode 100644 test/DebugInfo/X86/arguments.ll create mode 100644 test/DebugInfo/X86/byvalstruct.ll create mode 100644 test/DebugInfo/X86/coff_relative_names.ll create mode 100644 test/DebugInfo/X86/data_member_location.ll create mode 100644 test/DebugInfo/X86/dbg-at-specficiation.ll create mode 100644 test/DebugInfo/X86/dbg-byval-parameter.ll create mode 100644 test/DebugInfo/X86/dbg-const-int.ll create mode 100644 test/DebugInfo/X86/dbg-const.ll create mode 100644 test/DebugInfo/X86/dbg-declare-arg.ll create mode 100644 test/DebugInfo/X86/dbg-declare.ll create mode 100644 test/DebugInfo/X86/dbg-file-name.ll create mode 100644 test/DebugInfo/X86/dbg-i128-const.ll create mode 100644 test/DebugInfo/X86/dbg-large-unsigned-const.ll create mode 100644 test/DebugInfo/X86/dbg-merge-loc-entry.ll create mode 100644 test/DebugInfo/X86/dbg-prolog-end.ll create mode 100644 test/DebugInfo/X86/dbg-subrange.ll create mode 100644 test/DebugInfo/X86/dbg-value-dag-combine.ll create mode 100644 test/DebugInfo/X86/dbg-value-isel.ll create mode 100644 test/DebugInfo/X86/dbg-value-location.ll create mode 100644 test/DebugInfo/X86/dbg-value-range.ll create mode 100644 test/DebugInfo/X86/dbg-value-terminator.ll create mode 100644 test/DebugInfo/X86/dbg_value_direct.ll create mode 100644 test/DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll create mode 100644 test/DebugInfo/X86/dwarf-aranges.ll create mode 100644 test/DebugInfo/X86/dwarf-public-names.ll create mode 100644 test/DebugInfo/X86/dwarf-pubnames-split.ll create mode 100644 test/DebugInfo/X86/fission-hash.ll create mode 100644 test/DebugInfo/X86/fission-ranges.ll create mode 100644 test/DebugInfo/X86/generate-odr-hash.ll create mode 100644 test/DebugInfo/X86/gnu-public-names-empty.ll create mode 100644 test/DebugInfo/X86/gnu-public-names.ll create mode 100644 test/DebugInfo/X86/multiple-aranges.ll create mode 100644 test/DebugInfo/X86/parameters.ll create mode 100644 test/DebugInfo/X86/ref_addr_relocation.ll create mode 100644 test/DebugInfo/X86/reference-argument.ll create mode 100644 test/DebugInfo/X86/template.ll create mode 100644 test/DebugInfo/X86/tls-fission.ll create mode 100644 test/DebugInfo/X86/tls.ll create mode 100644 test/DebugInfo/X86/vla.ll create mode 100644 test/DebugInfo/debuginfofinder-multiple-cu.ll create mode 100644 test/DebugInfo/dwarfdump-debug-loc-simple.test create mode 100644 test/DebugInfo/dwarfdump-type-units.test create mode 100644 test/DebugInfo/enum.ll create mode 100644 test/DebugInfo/global.ll create mode 100644 test/DebugInfo/inlined-arguments.ll delete mode 100644 test/DebugInfo/lit.local.cfg create mode 100644 test/DebugInfo/member-order.ll create mode 100644 test/DebugInfo/template-recursive-void.ll create mode 100644 test/DebugInfo/tu-composite.ll create mode 100644 test/DebugInfo/tu-member-pointer.ll create mode 100644 test/DebugInfo/version.ll create mode 100644 test/ExecutionEngine/MCJIT/Inputs/cross-module-b.ll create mode 100644 test/ExecutionEngine/MCJIT/Inputs/multi-module-b.ll create mode 100644 test/ExecutionEngine/MCJIT/Inputs/multi-module-c.ll create mode 100644 test/ExecutionEngine/MCJIT/Inputs/multi-module-eh-b.ll create mode 100644 test/ExecutionEngine/MCJIT/cross-module-a.ll create mode 100644 test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll create mode 100644 test/ExecutionEngine/MCJIT/eh-lg-pic.ll create mode 100644 test/ExecutionEngine/MCJIT/eh-sm-pic.ll create mode 100644 test/ExecutionEngine/MCJIT/hello-sm-pic.ll create mode 100644 test/ExecutionEngine/MCJIT/multi-module-a.ll create mode 100644 test/ExecutionEngine/MCJIT/multi-module-eh-a.ll create mode 100644 test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/Inputs/cross-module-b.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/Inputs/multi-module-b.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/Inputs/multi-module-c.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/cross-module-a.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/cross-module-sm-pic-a.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/lit.local.cfg create mode 100644 test/ExecutionEngine/MCJIT/remote/multi-module-a.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/multi-module-sm-pic-a.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/stubs-remote.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/test-common-symbols-remote.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/test-data-align-remote.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/test-fp-no-external-funcs-remote.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-remote.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-remote.ll create mode 100644 test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll delete mode 100644 test/ExecutionEngine/MCJIT/simpletest-remote.ll delete mode 100644 test/ExecutionEngine/MCJIT/stubs-remote.ll create mode 100644 test/ExecutionEngine/MCJIT/stubs-sm-pic.ll delete mode 100644 test/ExecutionEngine/MCJIT/test-common-symbols-remote.ll delete mode 100644 test/ExecutionEngine/MCJIT/test-data-align-remote.ll delete mode 100644 test/ExecutionEngine/MCJIT/test-fp-no-external-funcs-remote.ll delete mode 100644 test/ExecutionEngine/MCJIT/test-global-init-nonzero-remote.ll create mode 100644 test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll delete mode 100644 test/ExecutionEngine/MCJIT/test-ptr-reloc-remote.ll create mode 100644 test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll create mode 100644 test/ExecutionEngine/RuntimeDyld/Inputs/arm_secdiff_reloc.o create mode 100644 test/ExecutionEngine/RuntimeDyld/arm_secdiff_reloc.test create mode 100644 test/ExecutionEngine/fma3-jit.ll create mode 100644 test/ExecutionEngine/mov64zext32.ll create mode 100644 test/ExecutionEngine/test-interp-vec-cast.ll create mode 100644 test/ExecutionEngine/test-interp-vec-insertelement.ll create mode 100644 test/ExecutionEngine/test-interp-vec-insertextractvalue.ll create mode 100644 test/ExecutionEngine/test-interp-vec-select.ll create mode 100644 test/ExecutionEngine/test-interp-vec-shift.ll create mode 100644 test/ExecutionEngine/test-interp-vec-shuffle.ll create mode 100644 test/Feature/cold.ll delete mode 100644 test/Feature/lit.local.cfg create mode 100644 test/Feature/optnone.ll create mode 100644 test/Feature/prefixdata.ll create mode 100644 test/FileCheck/check-a-b-has-b.txt create mode 100644 test/FileCheck/check-b-a-has-b.txt create mode 100644 test/FileCheck/check-dag-multi-prefix-2.txt create mode 100644 test/FileCheck/check-dag-multi-prefix.txt create mode 100644 test/FileCheck/check-dag-substring-prefix.txt create mode 100644 test/FileCheck/check-dag-xfails.txt create mode 100644 test/FileCheck/check-dag.txt create mode 100644 test/FileCheck/check-label-dag-capture.txt create mode 100644 test/FileCheck/check-label-dag.txt create mode 100644 test/FileCheck/check-label.txt create mode 100644 test/FileCheck/check-multi-prefix-label.txt create mode 100644 test/FileCheck/check-multiple-prefixes-mixed.txt create mode 100644 test/FileCheck/check-multiple-prefixes-nomatch.txt create mode 100644 test/FileCheck/check-multiple-prefixes-substr.txt create mode 100644 test/FileCheck/check-prefixes.txt create mode 100644 test/FileCheck/check-substring-multi-prefix-2.txt create mode 100644 test/FileCheck/check-substring-multi-prefix.txt create mode 100644 test/FileCheck/first-character-match.txt create mode 100644 test/FileCheck/line-count-2.txt create mode 100644 test/FileCheck/line-count.txt delete mode 100644 test/FileCheck/lit.local.cfg create mode 100644 test/FileCheck/multiple-missing-prefixes.txt create mode 100644 test/FileCheck/separate-multi-prefix.txt create mode 100644 test/FileCheck/validate-check-prefix.txt create mode 100644 test/Instrumentation/AddressSanitizer/coverage.ll create mode 100644 test/Instrumentation/AddressSanitizer/keep-instrumented_functions.ll create mode 100644 test/Instrumentation/AddressSanitizer/lifetime-uar.ll delete mode 100644 test/Instrumentation/AddressSanitizer/lit.local.cfg delete mode 100644 test/Instrumentation/BoundsChecking/lit.local.cfg create mode 100644 test/Instrumentation/BoundsChecking/simple-32.ll create mode 100644 test/Instrumentation/DataFlowSanitizer/Inputs/abilist.txt create mode 100644 test/Instrumentation/DataFlowSanitizer/abilist.ll create mode 100644 test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll create mode 100644 test/Instrumentation/DataFlowSanitizer/arith.ll create mode 100644 test/Instrumentation/DataFlowSanitizer/call.ll create mode 100644 test/Instrumentation/DataFlowSanitizer/debug-nonzero-labels.ll create mode 100644 test/Instrumentation/DataFlowSanitizer/load.ll create mode 100644 test/Instrumentation/DataFlowSanitizer/memset.ll create mode 100644 test/Instrumentation/DataFlowSanitizer/prefix-rename.ll create mode 100644 test/Instrumentation/DataFlowSanitizer/store.ll create mode 100644 test/Instrumentation/MemorySanitizer/X86/vararg.ll create mode 100644 test/Instrumentation/MemorySanitizer/atomics.ll delete mode 100644 test/Instrumentation/MemorySanitizer/lit.local.cfg create mode 100644 test/Instrumentation/MemorySanitizer/return_from_main.ll create mode 100644 test/Instrumentation/MemorySanitizer/vector_cvt.ll create mode 100644 test/Instrumentation/MemorySanitizer/wrap_indirect_calls.ll delete mode 100644 test/Instrumentation/ThreadSanitizer/lit.local.cfg create mode 100644 test/Instrumentation/ThreadSanitizer/no_sanitize_thread.ll delete mode 100644 test/Integer/lit.local.cfg create mode 100644 test/LTO/cfi_endproc.ll create mode 100644 test/LTO/linkonce_odr_func.ll create mode 100644 test/LTO/lit.local.cfg create mode 100644 test/LTO/runtime-library.ll create mode 100644 test/Linker/Inputs/type-unique-inheritance-a.ll create mode 100644 test/Linker/Inputs/type-unique-inheritance-b.ll create mode 100644 test/Linker/Inputs/type-unique-simple2-a.ll create mode 100644 test/Linker/Inputs/type-unique-simple2-b.ll delete mode 100644 test/Linker/lit.local.cfg create mode 100644 test/Linker/prefixdata.ll create mode 100644 test/Linker/transitive-lazy-link.ll create mode 100644 test/Linker/type-unique-inheritance.ll create mode 100644 test/Linker/type-unique-simple-a.ll create mode 100644 test/Linker/type-unique-simple-b.ll create mode 100644 test/Linker/type-unique-simple2.ll create mode 100644 test/Linker/unnamed-addr-err-a.ll create mode 100644 test/Linker/unnamed-addr-err-b.ll create mode 100644 test/MC/AArch64/adrp-relocation.s create mode 100644 test/MC/AArch64/basic-pic.s create mode 100644 test/MC/AArch64/elf-extern.s create mode 100644 test/MC/AArch64/elf-reloc-addend.s create mode 100644 test/MC/AArch64/inline-asm-modifiers.s create mode 100644 test/MC/AArch64/jump-table.s create mode 100644 test/MC/AArch64/neon-2velem.s create mode 100644 test/MC/AArch64/neon-3vdiff.s create mode 100644 test/MC/AArch64/neon-aba-abd.s create mode 100644 test/MC/AArch64/neon-across.s create mode 100644 test/MC/AArch64/neon-add-pairwise.s create mode 100644 test/MC/AArch64/neon-add-sub-instructions.s create mode 100644 test/MC/AArch64/neon-bitwise-instructions.s create mode 100644 test/MC/AArch64/neon-compare-instructions.s create mode 100644 test/MC/AArch64/neon-crypto.s create mode 100644 test/MC/AArch64/neon-diagnostics.s create mode 100644 test/MC/AArch64/neon-extract.s create mode 100644 test/MC/AArch64/neon-facge-facgt.s create mode 100644 test/MC/AArch64/neon-frsqrt-frecp.s create mode 100644 test/MC/AArch64/neon-halving-add-sub.s create mode 100644 test/MC/AArch64/neon-max-min-pairwise.s create mode 100644 test/MC/AArch64/neon-max-min.s create mode 100644 test/MC/AArch64/neon-mla-mls-instructions.s create mode 100644 test/MC/AArch64/neon-mov.s create mode 100644 test/MC/AArch64/neon-mul-div-instructions.s create mode 100644 test/MC/AArch64/neon-perm.s create mode 100644 test/MC/AArch64/neon-rounding-halving-add.s create mode 100644 test/MC/AArch64/neon-rounding-shift.s create mode 100644 test/MC/AArch64/neon-saturating-add-sub.s create mode 100644 test/MC/AArch64/neon-saturating-rounding-shift.s create mode 100644 test/MC/AArch64/neon-saturating-shift.s create mode 100644 test/MC/AArch64/neon-scalar-abs.s create mode 100644 test/MC/AArch64/neon-scalar-add-sub.s create mode 100644 test/MC/AArch64/neon-scalar-by-elem-mla.s create mode 100644 test/MC/AArch64/neon-scalar-by-elem-mul.s create mode 100644 test/MC/AArch64/neon-scalar-by-elem-saturating-mla.s create mode 100644 test/MC/AArch64/neon-scalar-by-elem-saturating-mul.s create mode 100644 test/MC/AArch64/neon-scalar-compare.s create mode 100644 test/MC/AArch64/neon-scalar-cvt.s create mode 100644 test/MC/AArch64/neon-scalar-dup.s create mode 100644 test/MC/AArch64/neon-scalar-extract-narrow.s create mode 100644 test/MC/AArch64/neon-scalar-fp-compare.s create mode 100644 test/MC/AArch64/neon-scalar-mul.s create mode 100644 test/MC/AArch64/neon-scalar-neg.s create mode 100644 test/MC/AArch64/neon-scalar-recip.s create mode 100644 test/MC/AArch64/neon-scalar-reduce-pairwise.s create mode 100644 test/MC/AArch64/neon-scalar-rounding-shift.s create mode 100644 test/MC/AArch64/neon-scalar-saturating-add-sub.s create mode 100644 test/MC/AArch64/neon-scalar-saturating-rounding-shift.s create mode 100644 test/MC/AArch64/neon-scalar-saturating-shift.s create mode 100644 test/MC/AArch64/neon-scalar-shift-imm.s create mode 100644 test/MC/AArch64/neon-scalar-shift.s create mode 100644 test/MC/AArch64/neon-shift-left-long.s create mode 100644 test/MC/AArch64/neon-shift.s create mode 100644 test/MC/AArch64/neon-simd-copy.s create mode 100644 test/MC/AArch64/neon-simd-ldst-multi-elem.s create mode 100644 test/MC/AArch64/neon-simd-ldst-one-elem.s create mode 100644 test/MC/AArch64/neon-simd-misc.s create mode 100644 test/MC/AArch64/neon-simd-post-ldst-multi-elem.s create mode 100644 test/MC/AArch64/neon-simd-shift.s create mode 100644 test/MC/AArch64/neon-tbl.s create mode 100644 test/MC/AArch64/noneon-diagnostics.s create mode 100644 test/MC/ARM/2010-11-30-reloc-movt.s create mode 100644 test/MC/ARM/align_arm_2_thumb.s create mode 100644 test/MC/ARM/align_thumb_2_arm.s create mode 100644 test/MC/ARM/arm-ldrd.s create mode 100644 test/MC/ARM/arm-thumb-cpus-default.s create mode 100644 test/MC/ARM/arm-thumb-cpus.s create mode 100644 test/MC/ARM/basic-arm-instructions-v8.s create mode 100644 test/MC/ARM/basic-thumb2-instructions-v8.s create mode 100644 test/MC/ARM/crc32-thumb.s create mode 100644 test/MC/ARM/crc32.s create mode 100644 test/MC/ARM/deprecated-v8.s create mode 100644 test/MC/ARM/diagnostics-noneon.s create mode 100644 test/MC/ARM/directive-cpu.s create mode 100644 test/MC/ARM/directive-eabi_attribute.s create mode 100644 test/MC/ARM/directive-fpu-multiple.s create mode 100644 test/MC/ARM/directive-fpu.s create mode 100644 test/MC/ARM/eh-compact-pr0.s create mode 100644 test/MC/ARM/eh-compact-pr1.s create mode 100644 test/MC/ARM/eh-directive-cantunwind-diagnostics.s create mode 100644 test/MC/ARM/eh-directive-cantunwind.s create mode 100644 test/MC/ARM/eh-directive-fnend-diagnostics.s create mode 100644 test/MC/ARM/eh-directive-fnstart-diagnostics.s create mode 100644 test/MC/ARM/eh-directive-handlerdata.s create mode 100644 test/MC/ARM/eh-directive-integrated-test.s create mode 100644 test/MC/ARM/eh-directive-multiple-offsets.s create mode 100644 test/MC/ARM/eh-directive-pad-diagnostics.s create mode 100644 test/MC/ARM/eh-directive-pad.s create mode 100644 test/MC/ARM/eh-directive-personality-diagnostics.s create mode 100644 test/MC/ARM/eh-directive-personality.s create mode 100644 test/MC/ARM/eh-directive-save-diagnoatics.s create mode 100644 test/MC/ARM/eh-directive-save.s create mode 100644 test/MC/ARM/eh-directive-section-comdat.s create mode 100644 test/MC/ARM/eh-directive-section-multiple-func.s create mode 100644 test/MC/ARM/eh-directive-section.s create mode 100644 test/MC/ARM/eh-directive-setfp-diagnostics.s create mode 100644 test/MC/ARM/eh-directive-setfp.s create mode 100644 test/MC/ARM/eh-directive-text-section-multiple-func.s create mode 100644 test/MC/ARM/eh-directive-text-section.s create mode 100644 test/MC/ARM/eh-directive-vsave-diagnostics.s create mode 100644 test/MC/ARM/eh-directive-vsave.s delete mode 100644 test/MC/ARM/elf-eflags-eabi-cg.ll create mode 100644 test/MC/ARM/fp-armv8.s create mode 100644 test/MC/ARM/idiv.s create mode 100644 test/MC/ARM/invalid-barrier.s create mode 100644 test/MC/ARM/invalid-crc32.s create mode 100644 test/MC/ARM/invalid-fp-armv8.s create mode 100644 test/MC/ARM/invalid-idiv.s create mode 100644 test/MC/ARM/invalid-neon-v8.s create mode 100644 test/MC/ARM/load-store-acquire-release-v8-thumb.s create mode 100644 test/MC/ARM/load-store-acquire-release-v8.s create mode 100644 test/MC/ARM/neon-crypto.s create mode 100644 test/MC/ARM/neon-v8.s create mode 100644 test/MC/ARM/obsolete-v8.s create mode 100644 test/MC/ARM/single-precision-fp.s create mode 100644 test/MC/ARM/thumb-fp-armv8.s create mode 100644 test/MC/ARM/thumb-hints.s create mode 100644 test/MC/ARM/thumb-invalid-crypto.txt create mode 100644 test/MC/ARM/thumb-neon-crypto.s create mode 100644 test/MC/ARM/thumb-neon-v8.s delete mode 100644 test/MC/ARM/thumb-nop.s create mode 100644 test/MC/ARM/thumb-only-conditionals.s create mode 100644 test/MC/ARM/thumb2-branches.s create mode 100644 test/MC/ARM/thumb2-ldrd.s create mode 100644 test/MC/ARM/thumb2-pldw.s create mode 100644 test/MC/ARM/v8_IT_manual.s create mode 100644 test/MC/AsmParser/cfi-window-save.s create mode 100644 test/MC/AsmParser/secure_log_unique.s create mode 100644 test/MC/COFF/alias.s create mode 100644 test/MC/COFF/bss_section.ll create mode 100644 test/MC/COFF/eh-frame.s create mode 100644 test/MC/COFF/feat00.s create mode 100644 test/MC/COFF/linkonce-invalid.s create mode 100644 test/MC/COFF/linkonce.s create mode 100755 test/MC/COFF/lset0.s create mode 100644 test/MC/COFF/rdata.ll create mode 100644 test/MC/COFF/section-comdat.s create mode 100644 test/MC/COFF/section-invalid-flags.s create mode 100644 test/MC/COFF/section-name-encoding.s create mode 100644 test/MC/COFF/section.s create mode 100644 test/MC/COFF/seh-align1.s create mode 100644 test/MC/COFF/seh-align2.s create mode 100644 test/MC/COFF/seh-align3.s create mode 100644 test/MC/COFF/tricky-names.ll delete mode 100644 test/MC/COFF/weak-symbol-section-specification.ll create mode 100644 test/MC/COFF/weak-symbol.ll create mode 100644 test/MC/Disassembler/AArch64/neon-instructions.txt create mode 100644 test/MC/Disassembler/ARM/arm-LDREXD-reencoding.txt create mode 100644 test/MC/Disassembler/ARM/arm-STREXD-reencoding.txt create mode 100644 test/MC/Disassembler/ARM/basic-arm-instructions-v8.txt create mode 100644 test/MC/Disassembler/ARM/crc32-thumb.txt create mode 100644 test/MC/Disassembler/ARM/crc32.txt create mode 100644 test/MC/Disassembler/ARM/fp-armv8.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-BFI-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-Bcc-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-CPS2p-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-CPS3p-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-DMB-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-DSB-arm.txt create mode 100644 test/MC/Disassembler/ARM/invalid-FSTMX-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-IT-CBNZ-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-IT-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-LDC-form-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-LDM-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-LDRB_POST-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-LDRD_PRE-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-LDR_POST-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-LDR_PRE-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-LDRrs-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-MCR-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-MOVTi16-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-MOVr-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-MOVs-LSL-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-MOVs-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-MRRC2-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-MSRi-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-RFEorLDMIA-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-SBFX-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-SMLAD-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-SRS-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-STMIA_UPD-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-SXTB-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-UMAAL-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VLD1DUPq8_UPD-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VLD1LNd32_UPD-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VLD3DUPd32_UPD-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VLD4DUPd32_UPD-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VLD4LNd32_UPD-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VLDMSDB_UPD-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VQADD-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VST1LNd32_UPD-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VST1d8Twb_register-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VST2b32_UPD-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-VST4LNd32_UPD-thumb.txt create mode 100644 test/MC/Disassembler/ARM/invalid-armv7.txt create mode 100644 test/MC/Disassembler/ARM/invalid-armv8.txt create mode 100644 test/MC/Disassembler/ARM/invalid-because-armv7.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-hint-arm.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-hint-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-t2Bcc-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-t2LDRBT-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-t2LDREXD-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-t2LDRSHi12-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-t2LDRSHi8-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-t2PUSH-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-t2STRD_PRE-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-t2STREXB-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-t2STREXD-thumb.txt delete mode 100644 test/MC/Disassembler/ARM/invalid-t2STR_POST-thumb.txt create mode 100644 test/MC/Disassembler/ARM/invalid-thumbv7-xfail.txt create mode 100644 test/MC/Disassembler/ARM/invalid-thumbv7.txt create mode 100644 test/MC/Disassembler/ARM/invalid-thumbv8.txt create mode 100644 test/MC/Disassembler/ARM/load-store-acquire-release-v8-thumb.txt create mode 100644 test/MC/Disassembler/ARM/load-store-acquire-release-v8.txt create mode 100644 test/MC/Disassembler/ARM/neon-crypto.txt create mode 100644 test/MC/Disassembler/ARM/neon-v8.txt create mode 100644 test/MC/Disassembler/ARM/thumb-fp-armv8.txt create mode 100644 test/MC/Disassembler/ARM/thumb-neon-crypto.txt create mode 100644 test/MC/Disassembler/ARM/thumb-neon-v8.txt create mode 100644 test/MC/Disassembler/ARM/thumb-v8.txt create mode 100644 test/MC/Disassembler/ARM/thumb2-v8.txt delete mode 100644 test/MC/Disassembler/MBlaze/lit.local.cfg delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_branch.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_fpu.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_fsl.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_imm.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_mbar.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_memory.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_operands.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_pattern.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_shift.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_special.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_typea.txt delete mode 100644 test/MC/Disassembler/MBlaze/mblaze_typeb.txt create mode 100644 test/MC/Disassembler/Mips/micromips.txt create mode 100644 test/MC/Disassembler/Mips/micromips_le.txt create mode 100644 test/MC/Disassembler/SystemZ/insns-pcrel.txt create mode 100644 test/MC/Disassembler/SystemZ/insns.txt create mode 100644 test/MC/Disassembler/SystemZ/invalid-regs.txt create mode 100644 test/MC/Disassembler/SystemZ/lit.local.cfg create mode 100644 test/MC/Disassembler/SystemZ/trunc-01.txt create mode 100644 test/MC/Disassembler/SystemZ/trunc-02.txt create mode 100644 test/MC/Disassembler/SystemZ/trunc-03.txt create mode 100644 test/MC/Disassembler/SystemZ/unmapped.txt create mode 100644 test/MC/Disassembler/X86/prefixes.txt create mode 100644 test/MC/ELF/bad-relocation.s create mode 100644 test/MC/ELF/bss-large.ll create mode 100644 test/MC/ELF/cfi-window-save.s create mode 100644 test/MC/ELF/comdat-dup-group-name.s create mode 100644 test/MC/ELF/comdat-reloc.s create mode 100644 test/MC/ELF/debug-line2.s create mode 100644 test/MC/ELF/file-double.s create mode 100644 test/MC/ELF/symbol-names.s delete mode 100644 test/MC/MBlaze/lit.local.cfg delete mode 100644 test/MC/MBlaze/mblaze_branch.s delete mode 100644 test/MC/MBlaze/mblaze_fpu.s delete mode 100644 test/MC/MBlaze/mblaze_fsl.s delete mode 100644 test/MC/MBlaze/mblaze_imm.s delete mode 100644 test/MC/MBlaze/mblaze_memory.s delete mode 100644 test/MC/MBlaze/mblaze_operands.s delete mode 100644 test/MC/MBlaze/mblaze_pattern.s delete mode 100644 test/MC/MBlaze/mblaze_shift.s delete mode 100644 test/MC/MBlaze/mblaze_special.s delete mode 100644 test/MC/MBlaze/mblaze_typea.s delete mode 100644 test/MC/MBlaze/mblaze_typeb.s create mode 100644 test/MC/MachO/bad-darwin-x86_64-32-bit-abs-addr.s create mode 100644 test/MC/MachO/bad-darwin-x86_64-diff-relocs.s create mode 100644 test/MC/MachO/bad-indirect-symbols.s create mode 100644 test/MC/MachO/bss.s create mode 100644 test/MC/MachO/darwin-x86_64-diff-reloc-assign-2.s create mode 100644 test/MC/MachO/tlv-bss.ll create mode 100644 test/MC/Mips/abicalls.ll create mode 100644 test/MC/Mips/elf_eflags.s create mode 100644 test/MC/Mips/elf_st_other.s create mode 100644 test/MC/Mips/micromips-branch-instructions.s create mode 100644 test/MC/Mips/micromips-branch16.s create mode 100644 test/MC/Mips/micromips-expansions.s create mode 100644 test/MC/Mips/micromips-expressions.s create mode 100644 test/MC/Mips/micromips-jump-instructions.s create mode 100644 test/MC/Mips/micromips-jump26.s create mode 100644 test/MC/Mips/micromips-loadstore-unaligned.s create mode 100644 test/MC/Mips/micromips-long-branch.ll create mode 100644 test/MC/Mips/micromips-movcond-instructions.s create mode 100644 test/MC/Mips/micromips-multiply-instructions.s create mode 100644 test/MC/Mips/micromips-relocations.s create mode 100644 test/MC/Mips/micromips-tailr.s create mode 100644 test/MC/Mips/micromips-trap-instructions.s create mode 100644 test/MC/Mips/mips-control-instructions.s create mode 100644 test/MC/Mips/mips-dsp-instructions.s create mode 100644 test/MC/Mips/mips64-instructions.s create mode 100644 test/MC/Mips/msa/test_2r.s create mode 100644 test/MC/Mips/msa/test_2rf.s create mode 100644 test/MC/Mips/msa/test_3r.s create mode 100644 test/MC/Mips/msa/test_3rf.s create mode 100644 test/MC/Mips/msa/test_bit.s create mode 100644 test/MC/Mips/msa/test_cbranch.s create mode 100644 test/MC/Mips/msa/test_ctrlregs.s create mode 100644 test/MC/Mips/msa/test_elm.s create mode 100644 test/MC/Mips/msa/test_elm_insert.s create mode 100644 test/MC/Mips/msa/test_elm_insve.s create mode 100644 test/MC/Mips/msa/test_i10.s create mode 100644 test/MC/Mips/msa/test_i5.s create mode 100644 test/MC/Mips/msa/test_i8.s create mode 100644 test/MC/Mips/msa/test_lsa.s create mode 100644 test/MC/Mips/msa/test_mi10.s create mode 100644 test/MC/Mips/msa/test_vec.s create mode 100644 test/MC/PowerPC/deprecated-p7.s create mode 100644 test/MC/PowerPC/ppc-llong.s create mode 100644 test/MC/PowerPC/ppc-machine.s create mode 100644 test/MC/PowerPC/ppc-nop.s create mode 100644 test/MC/PowerPC/ppc-word.s create mode 100644 test/MC/PowerPC/ppc64-encoding-bookIII.s create mode 100644 test/MC/PowerPC/ppc64-fixup-apply.s create mode 100644 test/MC/PowerPC/ppc64-fixup-explicit.s delete mode 100644 test/MC/PowerPC/ppc64-initial-cfa.ll create mode 100644 test/MC/PowerPC/ppc64-initial-cfa.s create mode 100644 test/MC/PowerPC/ppc64-regs.s delete mode 100644 test/MC/PowerPC/ppc64-relocs-01.ll create mode 100644 test/MC/PowerPC/ppc64-relocs-01.s delete mode 100644 test/MC/PowerPC/ppc64-tls-relocs-01.ll create mode 100644 test/MC/PowerPC/ppc64-tls-relocs-01.s create mode 100644 test/MC/PowerPC/tls-gd-obj.s create mode 100644 test/MC/PowerPC/tls-ie-obj.s create mode 100644 test/MC/PowerPC/tls-ld-obj.s delete mode 100644 test/MC/SystemZ/insn-a-01.s delete mode 100644 test/MC/SystemZ/insn-a-02.s delete mode 100644 test/MC/SystemZ/insn-adb-01.s delete mode 100644 test/MC/SystemZ/insn-adb-02.s delete mode 100644 test/MC/SystemZ/insn-adbr-01.s delete mode 100644 test/MC/SystemZ/insn-aeb-01.s delete mode 100644 test/MC/SystemZ/insn-aeb-02.s delete mode 100644 test/MC/SystemZ/insn-aebr-01.s delete mode 100644 test/MC/SystemZ/insn-afi-01.s delete mode 100644 test/MC/SystemZ/insn-afi-02.s delete mode 100644 test/MC/SystemZ/insn-ag-01.s delete mode 100644 test/MC/SystemZ/insn-ag-02.s delete mode 100644 test/MC/SystemZ/insn-agf-01.s delete mode 100644 test/MC/SystemZ/insn-agf-02.s delete mode 100644 test/MC/SystemZ/insn-agfi-01.s delete mode 100644 test/MC/SystemZ/insn-agfi-02.s delete mode 100644 test/MC/SystemZ/insn-agfr-01.s delete mode 100644 test/MC/SystemZ/insn-aghi-01.s delete mode 100644 test/MC/SystemZ/insn-aghi-02.s delete mode 100644 test/MC/SystemZ/insn-agr-01.s delete mode 100644 test/MC/SystemZ/insn-agsi-01.s delete mode 100644 test/MC/SystemZ/insn-agsi-02.s delete mode 100644 test/MC/SystemZ/insn-ah-01.s delete mode 100644 test/MC/SystemZ/insn-ah-02.s delete mode 100644 test/MC/SystemZ/insn-ahi-01.s delete mode 100644 test/MC/SystemZ/insn-ahi-02.s delete mode 100644 test/MC/SystemZ/insn-ahy-01.s delete mode 100644 test/MC/SystemZ/insn-ahy-02.s delete mode 100644 test/MC/SystemZ/insn-al-01.s delete mode 100644 test/MC/SystemZ/insn-al-02.s delete mode 100644 test/MC/SystemZ/insn-alc-01.s delete mode 100644 test/MC/SystemZ/insn-alc-02.s delete mode 100644 test/MC/SystemZ/insn-alcg-01.s delete mode 100644 test/MC/SystemZ/insn-alcg-02.s delete mode 100644 test/MC/SystemZ/insn-alcgr-01.s delete mode 100644 test/MC/SystemZ/insn-alcr-01.s delete mode 100644 test/MC/SystemZ/insn-alfi-01.s delete mode 100644 test/MC/SystemZ/insn-alfi-02.s delete mode 100644 test/MC/SystemZ/insn-alg-01.s delete mode 100644 test/MC/SystemZ/insn-alg-02.s delete mode 100644 test/MC/SystemZ/insn-algf-01.s delete mode 100644 test/MC/SystemZ/insn-algf-02.s delete mode 100644 test/MC/SystemZ/insn-algfi-01.s delete mode 100644 test/MC/SystemZ/insn-algfi-02.s delete mode 100644 test/MC/SystemZ/insn-algfr-01.s delete mode 100644 test/MC/SystemZ/insn-algr-01.s delete mode 100644 test/MC/SystemZ/insn-alr-01.s delete mode 100644 test/MC/SystemZ/insn-aly-01.s delete mode 100644 test/MC/SystemZ/insn-aly-02.s delete mode 100644 test/MC/SystemZ/insn-ar-01.s delete mode 100644 test/MC/SystemZ/insn-asi-01.s delete mode 100644 test/MC/SystemZ/insn-asi-02.s delete mode 100644 test/MC/SystemZ/insn-axbr-01.s delete mode 100644 test/MC/SystemZ/insn-axbr-02.s delete mode 100644 test/MC/SystemZ/insn-ay-01.s delete mode 100644 test/MC/SystemZ/insn-ay-02.s create mode 100644 test/MC/SystemZ/insn-bad-z196.s create mode 100644 test/MC/SystemZ/insn-bad.s delete mode 100644 test/MC/SystemZ/insn-basr-01.s delete mode 100644 test/MC/SystemZ/insn-br-01.s delete mode 100644 test/MC/SystemZ/insn-bras-01.s delete mode 100644 test/MC/SystemZ/insn-brasl-01.s delete mode 100644 test/MC/SystemZ/insn-brc-01.s delete mode 100644 test/MC/SystemZ/insn-brc-02.s delete mode 100644 test/MC/SystemZ/insn-brcl-01.s delete mode 100644 test/MC/SystemZ/insn-brcl-02.s delete mode 100644 test/MC/SystemZ/insn-c-01.s delete mode 100644 test/MC/SystemZ/insn-c-02.s delete mode 100644 test/MC/SystemZ/insn-cdb-01.s delete mode 100644 test/MC/SystemZ/insn-cdb-02.s delete mode 100644 test/MC/SystemZ/insn-cdbr-01.s delete mode 100644 test/MC/SystemZ/insn-cdfbr-01.s delete mode 100644 test/MC/SystemZ/insn-cdfbr-02.s delete mode 100644 test/MC/SystemZ/insn-cdgbr-01.s delete mode 100644 test/MC/SystemZ/insn-cdgbr-02.s delete mode 100644 test/MC/SystemZ/insn-ceb-01.s delete mode 100644 test/MC/SystemZ/insn-ceb-02.s delete mode 100644 test/MC/SystemZ/insn-cebr-01.s delete mode 100644 test/MC/SystemZ/insn-cefbr-01.s delete mode 100644 test/MC/SystemZ/insn-cefbr-02.s delete mode 100644 test/MC/SystemZ/insn-cegbr-01.s delete mode 100644 test/MC/SystemZ/insn-cegbr-02.s delete mode 100644 test/MC/SystemZ/insn-cfdbr-01.s delete mode 100644 test/MC/SystemZ/insn-cfdbr-02.s delete mode 100644 test/MC/SystemZ/insn-cfebr-01.s delete mode 100644 test/MC/SystemZ/insn-cfebr-02.s delete mode 100644 test/MC/SystemZ/insn-cfi-01.s delete mode 100644 test/MC/SystemZ/insn-cfi-02.s delete mode 100644 test/MC/SystemZ/insn-cfxbr-01.s delete mode 100644 test/MC/SystemZ/insn-cfxbr-02.s delete mode 100644 test/MC/SystemZ/insn-cg-01.s delete mode 100644 test/MC/SystemZ/insn-cg-02.s delete mode 100644 test/MC/SystemZ/insn-cgdbr-01.s delete mode 100644 test/MC/SystemZ/insn-cgdbr-02.s delete mode 100644 test/MC/SystemZ/insn-cgebr-01.s delete mode 100644 test/MC/SystemZ/insn-cgebr-02.s delete mode 100644 test/MC/SystemZ/insn-cgf-01.s delete mode 100644 test/MC/SystemZ/insn-cgf-02.s delete mode 100644 test/MC/SystemZ/insn-cgfi-01.s delete mode 100644 test/MC/SystemZ/insn-cgfi-02.s delete mode 100644 test/MC/SystemZ/insn-cgfr-01.s delete mode 100644 test/MC/SystemZ/insn-cgfrl-01.s delete mode 100644 test/MC/SystemZ/insn-cgh-01.s delete mode 100644 test/MC/SystemZ/insn-cgh-02.s delete mode 100644 test/MC/SystemZ/insn-cghi-01.s delete mode 100644 test/MC/SystemZ/insn-cghi-02.s delete mode 100644 test/MC/SystemZ/insn-cghrl-01.s delete mode 100644 test/MC/SystemZ/insn-cghsi-01.s delete mode 100644 test/MC/SystemZ/insn-cghsi-02.s delete mode 100644 test/MC/SystemZ/insn-cgr-01.s delete mode 100644 test/MC/SystemZ/insn-cgrl-01.s delete mode 100644 test/MC/SystemZ/insn-cgxbr-01.s delete mode 100644 test/MC/SystemZ/insn-cgxbr-02.s delete mode 100644 test/MC/SystemZ/insn-ch-01.s delete mode 100644 test/MC/SystemZ/insn-ch-02.s delete mode 100644 test/MC/SystemZ/insn-chhsi-01.s delete mode 100644 test/MC/SystemZ/insn-chhsi-02.s delete mode 100644 test/MC/SystemZ/insn-chi-01.s delete mode 100644 test/MC/SystemZ/insn-chi-02.s delete mode 100644 test/MC/SystemZ/insn-chrl-01.s delete mode 100644 test/MC/SystemZ/insn-chsi-01.s delete mode 100644 test/MC/SystemZ/insn-chsi-02.s delete mode 100644 test/MC/SystemZ/insn-chy-01.s delete mode 100644 test/MC/SystemZ/insn-chy-02.s delete mode 100644 test/MC/SystemZ/insn-cl-01.s delete mode 100644 test/MC/SystemZ/insn-cl-02.s delete mode 100644 test/MC/SystemZ/insn-clfhsi-01.s delete mode 100644 test/MC/SystemZ/insn-clfhsi-02.s delete mode 100644 test/MC/SystemZ/insn-clfi-01.s delete mode 100644 test/MC/SystemZ/insn-clfi-02.s delete mode 100644 test/MC/SystemZ/insn-clg-01.s delete mode 100644 test/MC/SystemZ/insn-clg-02.s delete mode 100644 test/MC/SystemZ/insn-clgf-01.s delete mode 100644 test/MC/SystemZ/insn-clgf-02.s delete mode 100644 test/MC/SystemZ/insn-clgfi-01.s delete mode 100644 test/MC/SystemZ/insn-clgfi-02.s delete mode 100644 test/MC/SystemZ/insn-clgfr-01.s delete mode 100644 test/MC/SystemZ/insn-clgfrl-01.s delete mode 100644 test/MC/SystemZ/insn-clghrl-01.s delete mode 100644 test/MC/SystemZ/insn-clghsi-01.s delete mode 100644 test/MC/SystemZ/insn-clghsi-02.s delete mode 100644 test/MC/SystemZ/insn-clgr-01.s delete mode 100644 test/MC/SystemZ/insn-clgrl-01.s delete mode 100644 test/MC/SystemZ/insn-clhhsi-01.s delete mode 100644 test/MC/SystemZ/insn-clhhsi-02.s delete mode 100644 test/MC/SystemZ/insn-clhrl-01.s delete mode 100644 test/MC/SystemZ/insn-cli-01.s delete mode 100644 test/MC/SystemZ/insn-cli-02.s delete mode 100644 test/MC/SystemZ/insn-cliy-01.s delete mode 100644 test/MC/SystemZ/insn-cliy-02.s delete mode 100644 test/MC/SystemZ/insn-clr-01.s delete mode 100644 test/MC/SystemZ/insn-clrl-01.s delete mode 100644 test/MC/SystemZ/insn-cly-01.s delete mode 100644 test/MC/SystemZ/insn-cly-02.s delete mode 100644 test/MC/SystemZ/insn-cpsdr-01.s delete mode 100644 test/MC/SystemZ/insn-cr-01.s delete mode 100644 test/MC/SystemZ/insn-crl-01.s delete mode 100644 test/MC/SystemZ/insn-cs-01.s delete mode 100644 test/MC/SystemZ/insn-cs-02.s delete mode 100644 test/MC/SystemZ/insn-csg-01.s delete mode 100644 test/MC/SystemZ/insn-csg-02.s delete mode 100644 test/MC/SystemZ/insn-csy-01.s delete mode 100644 test/MC/SystemZ/insn-csy-02.s delete mode 100644 test/MC/SystemZ/insn-cxbr-01.s delete mode 100644 test/MC/SystemZ/insn-cxbr-02.s delete mode 100644 test/MC/SystemZ/insn-cxfbr-01.s delete mode 100644 test/MC/SystemZ/insn-cxfbr-02.s delete mode 100644 test/MC/SystemZ/insn-cxgbr-01.s delete mode 100644 test/MC/SystemZ/insn-cxgbr-02.s delete mode 100644 test/MC/SystemZ/insn-cy-01.s delete mode 100644 test/MC/SystemZ/insn-cy-02.s delete mode 100644 test/MC/SystemZ/insn-ddb-01.s delete mode 100644 test/MC/SystemZ/insn-ddb-02.s delete mode 100644 test/MC/SystemZ/insn-ddbr-01.s delete mode 100644 test/MC/SystemZ/insn-deb-01.s delete mode 100644 test/MC/SystemZ/insn-deb-02.s delete mode 100644 test/MC/SystemZ/insn-debr-01.s delete mode 100644 test/MC/SystemZ/insn-dl-01.s delete mode 100644 test/MC/SystemZ/insn-dl-02.s delete mode 100644 test/MC/SystemZ/insn-dlg-01.s delete mode 100644 test/MC/SystemZ/insn-dlg-02.s delete mode 100644 test/MC/SystemZ/insn-dlgr-01.s delete mode 100644 test/MC/SystemZ/insn-dlgr-02.s delete mode 100644 test/MC/SystemZ/insn-dlr-01.s delete mode 100644 test/MC/SystemZ/insn-dlr-02.s delete mode 100644 test/MC/SystemZ/insn-dsg-01.s delete mode 100644 test/MC/SystemZ/insn-dsg-02.s delete mode 100644 test/MC/SystemZ/insn-dsgf-01.s delete mode 100644 test/MC/SystemZ/insn-dsgf-02.s delete mode 100644 test/MC/SystemZ/insn-dsgfr-01.s delete mode 100644 test/MC/SystemZ/insn-dsgfr-02.s delete mode 100644 test/MC/SystemZ/insn-dsgr-01.s delete mode 100644 test/MC/SystemZ/insn-dsgr-02.s delete mode 100644 test/MC/SystemZ/insn-dxbr-01.s delete mode 100644 test/MC/SystemZ/insn-dxbr-02.s delete mode 100644 test/MC/SystemZ/insn-ear-01.s delete mode 100644 test/MC/SystemZ/insn-ear-02.s delete mode 100644 test/MC/SystemZ/insn-fidbr-01.s delete mode 100644 test/MC/SystemZ/insn-fidbr-02.s delete mode 100644 test/MC/SystemZ/insn-fiebr-01.s delete mode 100644 test/MC/SystemZ/insn-fiebr-02.s delete mode 100644 test/MC/SystemZ/insn-fixbr-01.s delete mode 100644 test/MC/SystemZ/insn-fixbr-02.s delete mode 100644 test/MC/SystemZ/insn-flogr-01.s delete mode 100644 test/MC/SystemZ/insn-flogr-02.s create mode 100644 test/MC/SystemZ/insn-good-z196.s create mode 100644 test/MC/SystemZ/insn-good.s delete mode 100644 test/MC/SystemZ/insn-ic-01.s delete mode 100644 test/MC/SystemZ/insn-ic-02.s delete mode 100644 test/MC/SystemZ/insn-icy-01.s delete mode 100644 test/MC/SystemZ/insn-icy-02.s delete mode 100644 test/MC/SystemZ/insn-iihf-01.s delete mode 100644 test/MC/SystemZ/insn-iihf-02.s delete mode 100644 test/MC/SystemZ/insn-iihh-01.s delete mode 100644 test/MC/SystemZ/insn-iihh-02.s delete mode 100644 test/MC/SystemZ/insn-iihl-01.s delete mode 100644 test/MC/SystemZ/insn-iihl-02.s delete mode 100644 test/MC/SystemZ/insn-iilf-01.s delete mode 100644 test/MC/SystemZ/insn-iilf-02.s delete mode 100644 test/MC/SystemZ/insn-iilh-01.s delete mode 100644 test/MC/SystemZ/insn-iilh-02.s delete mode 100644 test/MC/SystemZ/insn-iill-01.s delete mode 100644 test/MC/SystemZ/insn-iill-02.s delete mode 100644 test/MC/SystemZ/insn-l-01.s delete mode 100644 test/MC/SystemZ/insn-l-02.s delete mode 100644 test/MC/SystemZ/insn-la-01.s delete mode 100644 test/MC/SystemZ/insn-la-02.s delete mode 100644 test/MC/SystemZ/insn-larl-01.s delete mode 100644 test/MC/SystemZ/insn-lay-01.s delete mode 100644 test/MC/SystemZ/insn-lay-02.s delete mode 100644 test/MC/SystemZ/insn-lb-01.s delete mode 100644 test/MC/SystemZ/insn-lb-02.s delete mode 100644 test/MC/SystemZ/insn-lbr-01.s delete mode 100644 test/MC/SystemZ/insn-lcdbr-01.s delete mode 100644 test/MC/SystemZ/insn-lcebr-01.s delete mode 100644 test/MC/SystemZ/insn-lcgfr-01.s delete mode 100644 test/MC/SystemZ/insn-lcgr-01.s delete mode 100644 test/MC/SystemZ/insn-lcr-01.s delete mode 100644 test/MC/SystemZ/insn-lcxbr-01.s delete mode 100644 test/MC/SystemZ/insn-lcxbr-02.s delete mode 100644 test/MC/SystemZ/insn-ld-01.s delete mode 100644 test/MC/SystemZ/insn-ld-02.s delete mode 100644 test/MC/SystemZ/insn-ldeb-01.s delete mode 100644 test/MC/SystemZ/insn-ldeb-02.s delete mode 100644 test/MC/SystemZ/insn-ldebr-01.s delete mode 100644 test/MC/SystemZ/insn-ldgr-01.s delete mode 100644 test/MC/SystemZ/insn-ldgr-02.s delete mode 100644 test/MC/SystemZ/insn-ldr-01.s delete mode 100644 test/MC/SystemZ/insn-ldxbr-01.s delete mode 100644 test/MC/SystemZ/insn-ldxbr-02.s delete mode 100644 test/MC/SystemZ/insn-ldy-01.s delete mode 100644 test/MC/SystemZ/insn-ldy-02.s delete mode 100644 test/MC/SystemZ/insn-le-01.s delete mode 100644 test/MC/SystemZ/insn-le-02.s delete mode 100644 test/MC/SystemZ/insn-ledbr-01.s delete mode 100644 test/MC/SystemZ/insn-ler-01.s delete mode 100644 test/MC/SystemZ/insn-lexbr-01.s delete mode 100644 test/MC/SystemZ/insn-lexbr-02.s delete mode 100644 test/MC/SystemZ/insn-ley-01.s delete mode 100644 test/MC/SystemZ/insn-ley-02.s delete mode 100644 test/MC/SystemZ/insn-lg-01.s delete mode 100644 test/MC/SystemZ/insn-lg-02.s delete mode 100644 test/MC/SystemZ/insn-lgb-01.s delete mode 100644 test/MC/SystemZ/insn-lgb-02.s delete mode 100644 test/MC/SystemZ/insn-lgbr-01.s delete mode 100644 test/MC/SystemZ/insn-lgdr-01.s delete mode 100644 test/MC/SystemZ/insn-lgdr-02.s delete mode 100644 test/MC/SystemZ/insn-lgf-01.s delete mode 100644 test/MC/SystemZ/insn-lgf-02.s delete mode 100644 test/MC/SystemZ/insn-lgfi-01.s delete mode 100644 test/MC/SystemZ/insn-lgfi-02.s delete mode 100644 test/MC/SystemZ/insn-lgfr-01.s delete mode 100644 test/MC/SystemZ/insn-lgfrl-01.s delete mode 100644 test/MC/SystemZ/insn-lgh-01.s delete mode 100644 test/MC/SystemZ/insn-lgh-02.s delete mode 100644 test/MC/SystemZ/insn-lghi-01.s delete mode 100644 test/MC/SystemZ/insn-lghi-02.s delete mode 100644 test/MC/SystemZ/insn-lghr-01.s delete mode 100644 test/MC/SystemZ/insn-lghrl-01.s delete mode 100644 test/MC/SystemZ/insn-lgr-01.s delete mode 100644 test/MC/SystemZ/insn-lgrl-01.s delete mode 100644 test/MC/SystemZ/insn-lh-01.s delete mode 100644 test/MC/SystemZ/insn-lh-02.s delete mode 100644 test/MC/SystemZ/insn-lhi-01.s delete mode 100644 test/MC/SystemZ/insn-lhi-02.s delete mode 100644 test/MC/SystemZ/insn-lhr-01.s delete mode 100644 test/MC/SystemZ/insn-lhrl-01.s delete mode 100644 test/MC/SystemZ/insn-lhy-01.s delete mode 100644 test/MC/SystemZ/insn-lhy-02.s delete mode 100644 test/MC/SystemZ/insn-llc-01.s delete mode 100644 test/MC/SystemZ/insn-llc-02.s delete mode 100644 test/MC/SystemZ/insn-llcr-01.s delete mode 100644 test/MC/SystemZ/insn-llgc-01.s delete mode 100644 test/MC/SystemZ/insn-llgc-02.s delete mode 100644 test/MC/SystemZ/insn-llgcr-01.s delete mode 100644 test/MC/SystemZ/insn-llgf-01.s delete mode 100644 test/MC/SystemZ/insn-llgf-02.s delete mode 100644 test/MC/SystemZ/insn-llgfr-01.s delete mode 100644 test/MC/SystemZ/insn-llgfrl-01.s delete mode 100644 test/MC/SystemZ/insn-llgh-01.s delete mode 100644 test/MC/SystemZ/insn-llgh-02.s delete mode 100644 test/MC/SystemZ/insn-llghr-01.s delete mode 100644 test/MC/SystemZ/insn-llghrl-01.s delete mode 100644 test/MC/SystemZ/insn-llh-01.s delete mode 100644 test/MC/SystemZ/insn-llh-02.s delete mode 100644 test/MC/SystemZ/insn-llhr-01.s delete mode 100644 test/MC/SystemZ/insn-llhrl-01.s delete mode 100644 test/MC/SystemZ/insn-llihf-01.s delete mode 100644 test/MC/SystemZ/insn-llihf-02.s delete mode 100644 test/MC/SystemZ/insn-llihh-01.s delete mode 100644 test/MC/SystemZ/insn-llihh-02.s delete mode 100644 test/MC/SystemZ/insn-llihl-01.s delete mode 100644 test/MC/SystemZ/insn-llihl-02.s delete mode 100644 test/MC/SystemZ/insn-llilf-01.s delete mode 100644 test/MC/SystemZ/insn-llilf-02.s delete mode 100644 test/MC/SystemZ/insn-llilh-01.s delete mode 100644 test/MC/SystemZ/insn-llilh-02.s delete mode 100644 test/MC/SystemZ/insn-llill-01.s delete mode 100644 test/MC/SystemZ/insn-llill-02.s delete mode 100644 test/MC/SystemZ/insn-lmg-01.s delete mode 100644 test/MC/SystemZ/insn-lmg-02.s delete mode 100644 test/MC/SystemZ/insn-lndbr-01.s delete mode 100644 test/MC/SystemZ/insn-lnebr-01.s delete mode 100644 test/MC/SystemZ/insn-lnxbr-01.s delete mode 100644 test/MC/SystemZ/insn-lnxbr-02.s delete mode 100644 test/MC/SystemZ/insn-lpdbr-01.s delete mode 100644 test/MC/SystemZ/insn-lpebr-01.s delete mode 100644 test/MC/SystemZ/insn-lpxbr-01.s delete mode 100644 test/MC/SystemZ/insn-lpxbr-02.s delete mode 100644 test/MC/SystemZ/insn-lr-01.s delete mode 100644 test/MC/SystemZ/insn-lrl-01.s delete mode 100644 test/MC/SystemZ/insn-lrv-01.s delete mode 100644 test/MC/SystemZ/insn-lrv-02.s delete mode 100644 test/MC/SystemZ/insn-lrvg-01.s delete mode 100644 test/MC/SystemZ/insn-lrvg-02.s delete mode 100644 test/MC/SystemZ/insn-lrvgr-01.s delete mode 100644 test/MC/SystemZ/insn-lrvr-01.s delete mode 100644 test/MC/SystemZ/insn-lxr-01.s delete mode 100644 test/MC/SystemZ/insn-lxr-02.s delete mode 100644 test/MC/SystemZ/insn-ly-01.s delete mode 100644 test/MC/SystemZ/insn-ly-02.s delete mode 100644 test/MC/SystemZ/insn-lzdr-01.s delete mode 100644 test/MC/SystemZ/insn-lzer-01.s delete mode 100644 test/MC/SystemZ/insn-lzxr-01.s delete mode 100644 test/MC/SystemZ/insn-lzxr-02.s delete mode 100644 test/MC/SystemZ/insn-madb-01.s delete mode 100644 test/MC/SystemZ/insn-madb-02.s delete mode 100644 test/MC/SystemZ/insn-madbr-01.s delete mode 100644 test/MC/SystemZ/insn-maeb-01.s delete mode 100644 test/MC/SystemZ/insn-maeb-02.s delete mode 100644 test/MC/SystemZ/insn-maebr-01.s delete mode 100644 test/MC/SystemZ/insn-mdb-01.s delete mode 100644 test/MC/SystemZ/insn-mdb-02.s delete mode 100644 test/MC/SystemZ/insn-mdbr-01.s delete mode 100644 test/MC/SystemZ/insn-mdeb-01.s delete mode 100644 test/MC/SystemZ/insn-mdeb-02.s delete mode 100644 test/MC/SystemZ/insn-mdebr-01.s delete mode 100644 test/MC/SystemZ/insn-meeb-01.s delete mode 100644 test/MC/SystemZ/insn-meeb-02.s delete mode 100644 test/MC/SystemZ/insn-meebr-01.s delete mode 100644 test/MC/SystemZ/insn-mghi-01.s delete mode 100644 test/MC/SystemZ/insn-mghi-02.s delete mode 100644 test/MC/SystemZ/insn-mh-01.s delete mode 100644 test/MC/SystemZ/insn-mh-02.s delete mode 100644 test/MC/SystemZ/insn-mhi-01.s delete mode 100644 test/MC/SystemZ/insn-mhi-02.s delete mode 100644 test/MC/SystemZ/insn-mhy-01.s delete mode 100644 test/MC/SystemZ/insn-mhy-02.s delete mode 100644 test/MC/SystemZ/insn-mlg-01.s delete mode 100644 test/MC/SystemZ/insn-mlg-02.s delete mode 100644 test/MC/SystemZ/insn-mlgr-01.s delete mode 100644 test/MC/SystemZ/insn-mlgr-02.s delete mode 100644 test/MC/SystemZ/insn-ms-01.s delete mode 100644 test/MC/SystemZ/insn-ms-02.s delete mode 100644 test/MC/SystemZ/insn-msdb-01.s delete mode 100644 test/MC/SystemZ/insn-msdb-02.s delete mode 100644 test/MC/SystemZ/insn-msdbr-01.s delete mode 100644 test/MC/SystemZ/insn-mseb-01.s delete mode 100644 test/MC/SystemZ/insn-mseb-02.s delete mode 100644 test/MC/SystemZ/insn-msebr-01.s delete mode 100644 test/MC/SystemZ/insn-msfi-01.s delete mode 100644 test/MC/SystemZ/insn-msfi-02.s delete mode 100644 test/MC/SystemZ/insn-msg-01.s delete mode 100644 test/MC/SystemZ/insn-msg-02.s delete mode 100644 test/MC/SystemZ/insn-msgf-01.s delete mode 100644 test/MC/SystemZ/insn-msgf-02.s delete mode 100644 test/MC/SystemZ/insn-msgfi-01.s delete mode 100644 test/MC/SystemZ/insn-msgfi-02.s delete mode 100644 test/MC/SystemZ/insn-msgfr-01.s delete mode 100644 test/MC/SystemZ/insn-msgr-01.s delete mode 100644 test/MC/SystemZ/insn-msr-01.s delete mode 100644 test/MC/SystemZ/insn-msy-01.s delete mode 100644 test/MC/SystemZ/insn-msy-02.s delete mode 100644 test/MC/SystemZ/insn-mvghi-01.s delete mode 100644 test/MC/SystemZ/insn-mvghi-02.s delete mode 100644 test/MC/SystemZ/insn-mvhhi-01.s delete mode 100644 test/MC/SystemZ/insn-mvhhi-02.s delete mode 100644 test/MC/SystemZ/insn-mvhi-01.s delete mode 100644 test/MC/SystemZ/insn-mvhi-02.s delete mode 100644 test/MC/SystemZ/insn-mvi-01.s delete mode 100644 test/MC/SystemZ/insn-mvi-02.s delete mode 100644 test/MC/SystemZ/insn-mviy-01.s delete mode 100644 test/MC/SystemZ/insn-mviy-02.s delete mode 100644 test/MC/SystemZ/insn-mxbr-01.s delete mode 100644 test/MC/SystemZ/insn-mxbr-02.s delete mode 100644 test/MC/SystemZ/insn-mxdb-01.s delete mode 100644 test/MC/SystemZ/insn-mxdb-02.s delete mode 100644 test/MC/SystemZ/insn-mxdbr-01.s delete mode 100644 test/MC/SystemZ/insn-mxdbr-02.s delete mode 100644 test/MC/SystemZ/insn-n-01.s delete mode 100644 test/MC/SystemZ/insn-n-02.s delete mode 100644 test/MC/SystemZ/insn-ng-01.s delete mode 100644 test/MC/SystemZ/insn-ng-02.s delete mode 100644 test/MC/SystemZ/insn-ngr-01.s delete mode 100644 test/MC/SystemZ/insn-ni-01.s delete mode 100644 test/MC/SystemZ/insn-ni-02.s delete mode 100644 test/MC/SystemZ/insn-nihf-01.s delete mode 100644 test/MC/SystemZ/insn-nihf-02.s delete mode 100644 test/MC/SystemZ/insn-nihh-01.s delete mode 100644 test/MC/SystemZ/insn-nihh-02.s delete mode 100644 test/MC/SystemZ/insn-nihl-01.s delete mode 100644 test/MC/SystemZ/insn-nihl-02.s delete mode 100644 test/MC/SystemZ/insn-nilf-01.s delete mode 100644 test/MC/SystemZ/insn-nilf-02.s delete mode 100644 test/MC/SystemZ/insn-nilh-01.s delete mode 100644 test/MC/SystemZ/insn-nilh-02.s delete mode 100644 test/MC/SystemZ/insn-nill-01.s delete mode 100644 test/MC/SystemZ/insn-nill-02.s delete mode 100644 test/MC/SystemZ/insn-niy-01.s delete mode 100644 test/MC/SystemZ/insn-niy-02.s delete mode 100644 test/MC/SystemZ/insn-nr-01.s delete mode 100644 test/MC/SystemZ/insn-ny-01.s delete mode 100644 test/MC/SystemZ/insn-ny-02.s delete mode 100644 test/MC/SystemZ/insn-o-01.s delete mode 100644 test/MC/SystemZ/insn-o-02.s delete mode 100644 test/MC/SystemZ/insn-og-01.s delete mode 100644 test/MC/SystemZ/insn-og-02.s delete mode 100644 test/MC/SystemZ/insn-ogr-01.s delete mode 100644 test/MC/SystemZ/insn-oi-01.s delete mode 100644 test/MC/SystemZ/insn-oi-02.s delete mode 100644 test/MC/SystemZ/insn-oihf-01.s delete mode 100644 test/MC/SystemZ/insn-oihf-02.s delete mode 100644 test/MC/SystemZ/insn-oihh-01.s delete mode 100644 test/MC/SystemZ/insn-oihh-02.s delete mode 100644 test/MC/SystemZ/insn-oihl-01.s delete mode 100644 test/MC/SystemZ/insn-oihl-02.s delete mode 100644 test/MC/SystemZ/insn-oilf-01.s delete mode 100644 test/MC/SystemZ/insn-oilf-02.s delete mode 100644 test/MC/SystemZ/insn-oilh-01.s delete mode 100644 test/MC/SystemZ/insn-oilh-02.s delete mode 100644 test/MC/SystemZ/insn-oill-01.s delete mode 100644 test/MC/SystemZ/insn-oill-02.s delete mode 100644 test/MC/SystemZ/insn-oiy-01.s delete mode 100644 test/MC/SystemZ/insn-oiy-02.s delete mode 100644 test/MC/SystemZ/insn-or-01.s delete mode 100644 test/MC/SystemZ/insn-oy-01.s delete mode 100644 test/MC/SystemZ/insn-oy-02.s delete mode 100644 test/MC/SystemZ/insn-risbg-01.s delete mode 100644 test/MC/SystemZ/insn-risbg-02.s delete mode 100644 test/MC/SystemZ/insn-rll-01.s delete mode 100644 test/MC/SystemZ/insn-rll-02.s delete mode 100644 test/MC/SystemZ/insn-rllg-01.s delete mode 100644 test/MC/SystemZ/insn-rllg-02.s delete mode 100644 test/MC/SystemZ/insn-s-01.s delete mode 100644 test/MC/SystemZ/insn-s-02.s delete mode 100644 test/MC/SystemZ/insn-sdb-01.s delete mode 100644 test/MC/SystemZ/insn-sdb-02.s delete mode 100644 test/MC/SystemZ/insn-sdbr-01.s delete mode 100644 test/MC/SystemZ/insn-seb-01.s delete mode 100644 test/MC/SystemZ/insn-seb-02.s delete mode 100644 test/MC/SystemZ/insn-sebr-01.s delete mode 100644 test/MC/SystemZ/insn-sg-01.s delete mode 100644 test/MC/SystemZ/insn-sg-02.s delete mode 100644 test/MC/SystemZ/insn-sgf-01.s delete mode 100644 test/MC/SystemZ/insn-sgf-02.s delete mode 100644 test/MC/SystemZ/insn-sgfr-01.s delete mode 100644 test/MC/SystemZ/insn-sgr-01.s delete mode 100644 test/MC/SystemZ/insn-sl-01.s delete mode 100644 test/MC/SystemZ/insn-sl-02.s delete mode 100644 test/MC/SystemZ/insn-slb-01.s delete mode 100644 test/MC/SystemZ/insn-slb-02.s delete mode 100644 test/MC/SystemZ/insn-slbg-01.s delete mode 100644 test/MC/SystemZ/insn-slbg-02.s delete mode 100644 test/MC/SystemZ/insn-slbgr-01.s delete mode 100644 test/MC/SystemZ/insn-slbr-01.s delete mode 100644 test/MC/SystemZ/insn-slfi-01.s delete mode 100644 test/MC/SystemZ/insn-slfi-02.s delete mode 100644 test/MC/SystemZ/insn-slg-01.s delete mode 100644 test/MC/SystemZ/insn-slg-02.s delete mode 100644 test/MC/SystemZ/insn-slgf-01.s delete mode 100644 test/MC/SystemZ/insn-slgf-02.s delete mode 100644 test/MC/SystemZ/insn-slgfi-01.s delete mode 100644 test/MC/SystemZ/insn-slgfi-02.s delete mode 100644 test/MC/SystemZ/insn-slgfr-01.s delete mode 100644 test/MC/SystemZ/insn-slgr-01.s delete mode 100644 test/MC/SystemZ/insn-sll-01.s delete mode 100644 test/MC/SystemZ/insn-sll-02.s delete mode 100644 test/MC/SystemZ/insn-sllg-01.s delete mode 100644 test/MC/SystemZ/insn-sllg-02.s delete mode 100644 test/MC/SystemZ/insn-slr-01.s delete mode 100644 test/MC/SystemZ/insn-sly-01.s delete mode 100644 test/MC/SystemZ/insn-sly-02.s delete mode 100644 test/MC/SystemZ/insn-sqdb-01.s delete mode 100644 test/MC/SystemZ/insn-sqdb-02.s delete mode 100644 test/MC/SystemZ/insn-sqdbr-01.s delete mode 100644 test/MC/SystemZ/insn-sqeb-01.s delete mode 100644 test/MC/SystemZ/insn-sqeb-02.s delete mode 100644 test/MC/SystemZ/insn-sqebr-01.s delete mode 100644 test/MC/SystemZ/insn-sqxbr-01.s delete mode 100644 test/MC/SystemZ/insn-sqxbr-02.s delete mode 100644 test/MC/SystemZ/insn-sr-01.s delete mode 100644 test/MC/SystemZ/insn-sra-01.s delete mode 100644 test/MC/SystemZ/insn-sra-02.s delete mode 100644 test/MC/SystemZ/insn-srag-01.s delete mode 100644 test/MC/SystemZ/insn-srag-02.s delete mode 100644 test/MC/SystemZ/insn-srl-01.s delete mode 100644 test/MC/SystemZ/insn-srl-02.s delete mode 100644 test/MC/SystemZ/insn-srlg-01.s delete mode 100644 test/MC/SystemZ/insn-srlg-02.s delete mode 100644 test/MC/SystemZ/insn-st-01.s delete mode 100644 test/MC/SystemZ/insn-st-02.s delete mode 100644 test/MC/SystemZ/insn-stc-01.s delete mode 100644 test/MC/SystemZ/insn-stc-02.s delete mode 100644 test/MC/SystemZ/insn-stcy-01.s delete mode 100644 test/MC/SystemZ/insn-stcy-02.s delete mode 100644 test/MC/SystemZ/insn-std-01.s delete mode 100644 test/MC/SystemZ/insn-std-02.s delete mode 100644 test/MC/SystemZ/insn-stdy-01.s delete mode 100644 test/MC/SystemZ/insn-stdy-02.s delete mode 100644 test/MC/SystemZ/insn-ste-01.s delete mode 100644 test/MC/SystemZ/insn-ste-02.s delete mode 100644 test/MC/SystemZ/insn-stey-01.s delete mode 100644 test/MC/SystemZ/insn-stey-02.s delete mode 100644 test/MC/SystemZ/insn-stg-01.s delete mode 100644 test/MC/SystemZ/insn-stg-02.s delete mode 100644 test/MC/SystemZ/insn-stgrl-01.s delete mode 100644 test/MC/SystemZ/insn-sth-01.s delete mode 100644 test/MC/SystemZ/insn-sth-02.s delete mode 100644 test/MC/SystemZ/insn-sthrl-01.s delete mode 100644 test/MC/SystemZ/insn-sthy-01.s delete mode 100644 test/MC/SystemZ/insn-sthy-02.s delete mode 100644 test/MC/SystemZ/insn-stmg-01.s delete mode 100644 test/MC/SystemZ/insn-stmg-02.s delete mode 100644 test/MC/SystemZ/insn-strl-01.s delete mode 100644 test/MC/SystemZ/insn-strv-01.s delete mode 100644 test/MC/SystemZ/insn-strv-02.s delete mode 100644 test/MC/SystemZ/insn-strvg-01.s delete mode 100644 test/MC/SystemZ/insn-strvg-02.s delete mode 100644 test/MC/SystemZ/insn-sty-01.s delete mode 100644 test/MC/SystemZ/insn-sty-02.s delete mode 100644 test/MC/SystemZ/insn-sxbr-01.s delete mode 100644 test/MC/SystemZ/insn-sxbr-02.s delete mode 100644 test/MC/SystemZ/insn-sy-01.s delete mode 100644 test/MC/SystemZ/insn-sy-02.s delete mode 100644 test/MC/SystemZ/insn-x-01.s delete mode 100644 test/MC/SystemZ/insn-x-02.s delete mode 100644 test/MC/SystemZ/insn-xg-01.s delete mode 100644 test/MC/SystemZ/insn-xg-02.s delete mode 100644 test/MC/SystemZ/insn-xgr-01.s delete mode 100644 test/MC/SystemZ/insn-xi-01.s delete mode 100644 test/MC/SystemZ/insn-xi-02.s delete mode 100644 test/MC/SystemZ/insn-xihf-01.s delete mode 100644 test/MC/SystemZ/insn-xihf-02.s delete mode 100644 test/MC/SystemZ/insn-xilf-01.s delete mode 100644 test/MC/SystemZ/insn-xilf-02.s delete mode 100644 test/MC/SystemZ/insn-xiy-01.s delete mode 100644 test/MC/SystemZ/insn-xiy-02.s delete mode 100644 test/MC/SystemZ/insn-xr-01.s delete mode 100644 test/MC/SystemZ/insn-xy-01.s delete mode 100644 test/MC/SystemZ/insn-xy-02.s delete mode 100644 test/MC/SystemZ/regs-01.s delete mode 100644 test/MC/SystemZ/regs-02.s delete mode 100644 test/MC/SystemZ/regs-03.s delete mode 100644 test/MC/SystemZ/regs-04.s delete mode 100644 test/MC/SystemZ/regs-05.s delete mode 100644 test/MC/SystemZ/regs-06.s delete mode 100644 test/MC/SystemZ/regs-07.s delete mode 100644 test/MC/SystemZ/regs-08.s delete mode 100644 test/MC/SystemZ/regs-09.s delete mode 100644 test/MC/SystemZ/regs-10.s delete mode 100644 test/MC/SystemZ/regs-11.s delete mode 100644 test/MC/SystemZ/regs-12.s delete mode 100644 test/MC/SystemZ/regs-13.s delete mode 100644 test/MC/SystemZ/regs-14.s delete mode 100644 test/MC/SystemZ/regs-15.s create mode 100644 test/MC/SystemZ/regs-bad.s create mode 100644 test/MC/SystemZ/regs-good.s create mode 100644 test/MC/SystemZ/tokens.s create mode 100644 test/MC/X86/avx512-encodings.s create mode 100644 test/MC/X86/cfi_def_cfa-crash.s create mode 100644 test/MC/X86/x86_64-hle-encoding.s create mode 100644 test/MC/X86/x86_64-tbm-encoding.s create mode 100644 test/Object/ARM/macho-data-in-code.test create mode 100644 test/Object/Inputs/ELF/BE32.yaml create mode 100644 test/Object/Inputs/ELF/BE64.yaml create mode 100644 test/Object/Inputs/ELF/LE32.yaml create mode 100644 test/Object/Inputs/ELF/LE64.yaml create mode 100644 test/Object/Inputs/GNU.a create mode 100644 test/Object/Inputs/IsNAN.o create mode 100644 test/Object/Inputs/MacOSX.a create mode 100644 test/Object/Inputs/SVR4.a create mode 100644 test/Object/Inputs/archive-test.a-corrupt-symbol-table create mode 100644 test/Object/Inputs/archive-test.a-empty create mode 100644 test/Object/Inputs/archive-test.a-gnu-minimal create mode 100644 test/Object/Inputs/archive-test.a-gnu-no-symtab create mode 100644 test/Object/Inputs/coff_archive_short.lib create mode 100644 test/Object/Inputs/corrupt-version.elf-x86_64 create mode 100644 test/Object/Inputs/corrupt.elf-x86-64 create mode 100755 test/Object/Inputs/elf-reloc-no-sym.x86_64 create mode 100644 test/Object/Inputs/evenlen create mode 100644 test/Object/Inputs/macho-data-in-code.macho-thumbv7 create mode 100755 test/Object/Inputs/macho-universal.x86_64.i386 create mode 100644 test/Object/Inputs/oddlen create mode 100755 test/Object/Inputs/program-headers.mips create mode 100755 test/Object/Inputs/trivial-executable-test.macho-x86-64 create mode 100644 test/Object/Inputs/trivial-object-test2.elf-x86-64 create mode 100644 test/Object/Inputs/very_long_bytecode_file_name.bc create mode 100644 test/Object/Inputs/weak-global-symbol.macho-i386 create mode 100644 test/Object/Inputs/xpg4.a create mode 100644 test/Object/X86/objdump-cfg-invalid-opcode.yaml create mode 100644 test/Object/X86/objdump-cfg-textatomsize.yaml create mode 100644 test/Object/X86/objdump-cfg.yaml create mode 100644 test/Object/X86/objdump-disassembly-symbolic.test create mode 100644 test/Object/ar-create.test create mode 100644 test/Object/archive-delete.test create mode 100644 test/Object/archive-error-tmp.txt create mode 100644 test/Object/archive-extract-dir.test create mode 100644 test/Object/archive-format.test create mode 100644 test/Object/archive-move.test create mode 100644 test/Object/archive-replace-pos.test create mode 100644 test/Object/archive-symtab.test create mode 100644 test/Object/archive-toc.test create mode 100644 test/Object/archive-update.test create mode 100644 test/Object/check_binary_output.ll create mode 100644 test/Object/coff-archive-short.test create mode 100644 test/Object/corrupt.test create mode 100644 test/Object/directory.ll create mode 100644 test/Object/elf-reloc-no-sym.test create mode 100644 test/Object/extract.ll create mode 100644 test/Object/nm-error.test create mode 100644 test/Object/nm-universal-binary.test create mode 100644 test/Object/nm-weak-global-macho.test create mode 100644 test/Object/yaml2obj-elf-bits-endian.test create mode 100644 test/Object/yaml2obj-elf-file-headers.yaml create mode 100644 test/Object/yaml2obj-elf-section-basic.yaml create mode 100644 test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml create mode 100644 test/Object/yaml2obj-elf-symbol-basic.yaml create mode 100755 test/Other/Inputs/TestProg/TestProg delete mode 100644 test/Other/Inputs/llvm-cov.gcda delete mode 100644 test/Other/Inputs/llvm-cov.gcno create mode 100644 test/Other/Inputs/llvm_cov.gcda create mode 100644 test/Other/Inputs/llvm_cov.gcno create mode 100644 test/Other/can-execute.txt create mode 100644 test/Other/constant-fold-gep-address-spaces.ll delete mode 100644 test/Other/lit.local.cfg create mode 100644 test/Other/pipefail.txt create mode 100644 test/Other/umask.ll create mode 100644 test/TableGen/intrinsic-order.td create mode 100644 test/TableGen/intrinsic-varargs.td delete mode 100644 test/Transforms/ADCE/lit.local.cfg delete mode 100644 test/Transforms/ArgumentPromotion/lit.local.cfg create mode 100644 test/Transforms/ArgumentPromotion/reserve-tbaa.ll create mode 100644 test/Transforms/BBVectorize/X86/wr-aliases.ll create mode 100644 test/Transforms/BBVectorize/xcore/no-vector-registers.ll delete mode 100644 test/Transforms/BlockPlacement/basictest.ll delete mode 100644 test/Transforms/BlockPlacement/lit.local.cfg delete mode 100644 test/Transforms/CodeExtractor/lit.local.cfg delete mode 100644 test/Transforms/CodeGenPrepare/lit.local.cfg delete mode 100644 test/Transforms/ConstProp/lit.local.cfg create mode 100644 test/Transforms/ConstantMerge/align.ll delete mode 100644 test/Transforms/ConstantMerge/lit.local.cfg delete mode 100644 test/Transforms/CorrelatedValuePropagation/lit.local.cfg create mode 100644 test/Transforms/DeadArgElim/2013-05-17-VarargsAndBlockAddress.ll create mode 100644 test/Transforms/DeadArgElim/linkage.ll delete mode 100644 test/Transforms/DeadArgElim/lit.local.cfg create mode 100644 test/Transforms/DeadArgElim/returned.ll create mode 100644 test/Transforms/DeadArgElim/variadic_safety.ll create mode 100644 test/Transforms/DeadStoreElimination/inst-limits.ll delete mode 100644 test/Transforms/DeadStoreElimination/lit.local.cfg create mode 100644 test/Transforms/DebugIR/crash.ll create mode 100644 test/Transforms/DebugIR/exception.ll create mode 100644 test/Transforms/DebugIR/function.ll create mode 100644 test/Transforms/DebugIR/simple-addrspace.ll create mode 100644 test/Transforms/DebugIR/simple.ll create mode 100644 test/Transforms/DebugIR/struct.ll create mode 100644 test/Transforms/DebugIR/vector.ll delete mode 100644 test/Transforms/EarlyCSE/lit.local.cfg delete mode 100644 test/Transforms/FunctionAttrs/lit.local.cfg create mode 100644 test/Transforms/FunctionAttrs/readattrs.ll delete mode 100644 test/Transforms/GCOVProfiling/lit.local.cfg create mode 100644 test/Transforms/GVN/cond_br.ll create mode 100644 test/Transforms/GVN/cond_br2.ll delete mode 100644 test/Transforms/GVN/lit.local.cfg create mode 100644 test/Transforms/GVN/pr17732.ll create mode 100644 test/Transforms/GVN/pr17852.ll create mode 100644 test/Transforms/GVN/readattrs.ll delete mode 100644 test/Transforms/GlobalDCE/lit.local.cfg create mode 100644 test/Transforms/GlobalOpt/array-elem-refs.ll create mode 100644 test/Transforms/GlobalOpt/atexit.ll create mode 100644 test/Transforms/GlobalOpt/compiler-used.ll create mode 100644 test/Transforms/GlobalOpt/invariant-nodatalayout.ll delete mode 100644 test/Transforms/GlobalOpt/lit.local.cfg create mode 100644 test/Transforms/GlobalOpt/malloc-promote-3.ll delete mode 100644 test/Transforms/IPConstantProp/lit.local.cfg create mode 100644 test/Transforms/IndVarSimplify/lftr-address-space-pointers.ll create mode 100644 test/Transforms/IndVarSimplify/lftr-extend-const.ll create mode 100644 test/Transforms/IndVarSimplify/lftr-zext.ll delete mode 100644 test/Transforms/IndVarSimplify/lit.local.cfg create mode 100644 test/Transforms/IndVarSimplify/udiv-invariant-but-traps.ll create mode 100644 test/Transforms/IndVarSimplify/widen-nsw.ll create mode 100644 test/Transforms/Inline/alloca-merge-align-nodl.ll create mode 100644 test/Transforms/Inline/alloca-merge-align.ll create mode 100644 test/Transforms/Inline/attributes.ll create mode 100644 test/Transforms/Inline/inline-invoke-with-asm-call.ll create mode 100644 test/Transforms/Inline/inline-optnone.ll create mode 100644 test/Transforms/Inline/invoke-cost.ll delete mode 100644 test/Transforms/Inline/lit.local.cfg create mode 100644 test/Transforms/InstCombine/PR7357.ll create mode 100644 test/Transforms/InstCombine/addrspacecast.ll create mode 100644 test/Transforms/InstCombine/bitcast-alias-function.ll create mode 100644 test/Transforms/InstCombine/constant-fold-address-space-pointer.ll create mode 100644 test/Transforms/InstCombine/div-shift-crash.ll create mode 100644 test/Transforms/InstCombine/err-rep-cold.ll create mode 100644 test/Transforms/InstCombine/float-shrink-compare.ll create mode 100644 test/Transforms/InstCombine/fneg-ext.ll create mode 100644 test/Transforms/InstCombine/fold-fops-into-selects.ll create mode 100644 test/Transforms/InstCombine/icmp-logical.ll delete mode 100644 test/Transforms/InstCombine/lit.local.cfg create mode 100644 test/Transforms/InstCombine/multi-size-address-space-pointer.ll create mode 100644 test/Transforms/InstCombine/objsize-address-space.ll create mode 100644 test/Transforms/InstCombine/onehot_merge.ll create mode 100644 test/Transforms/InstCombine/phi-select-constexpr.ll create mode 100644 test/Transforms/InstCombine/pow-3.ll create mode 100644 test/Transforms/InstCombine/pr17827.ll create mode 100644 test/Transforms/InstCombine/select-extractelement.ll create mode 100644 test/Transforms/InstCombine/simplify-libcalls.ll create mode 100644 test/Transforms/InstCombine/sincospi.ll create mode 100644 test/Transforms/InstCombine/vector-mul.ll create mode 100644 test/Transforms/InstCombine/win-math.ll delete mode 100644 test/Transforms/InstSimplify/lit.local.cfg delete mode 100644 test/Transforms/Internalize/2008-05-09-AllButMain.ll delete mode 100644 test/Transforms/Internalize/2008-05-09-AllButMain.ll.apifile create mode 100644 test/Transforms/Internalize/apifile delete mode 100644 test/Transforms/Internalize/available_externally.ll create mode 100644 test/Transforms/Internalize/lists.ll delete mode 100644 test/Transforms/Internalize/lit.local.cfg create mode 100644 test/Transforms/Internalize/used.ll create mode 100644 test/Transforms/JumpThreading/landing-pad.ll delete mode 100644 test/Transforms/JumpThreading/lit.local.cfg delete mode 100644 test/Transforms/LCSSA/lit.local.cfg delete mode 100644 test/Transforms/LICM/lit.local.cfg create mode 100644 test/Transforms/LICM/volatile-alias.ll delete mode 100644 test/Transforms/LoopDeletion/lit.local.cfg create mode 100644 test/Transforms/LoopIdiom/basic-address-space.ll delete mode 100644 test/Transforms/LoopIdiom/lit.local.cfg create mode 100644 test/Transforms/LoopReroll/basic.ll create mode 100644 test/Transforms/LoopReroll/reduction.ll delete mode 100644 test/Transforms/LoopRotate/lit.local.cfg create mode 100644 test/Transforms/LoopSimplify/dup-preds.ll delete mode 100644 test/Transforms/LoopSimplify/lit.local.cfg create mode 100644 test/Transforms/LoopStrengthReduce/addrec-gep-address-space.ll create mode 100644 test/Transforms/LoopStrengthReduce/address-space-loop.ll delete mode 100644 test/Transforms/LoopStrengthReduce/lit.local.cfg create mode 100644 test/Transforms/LoopStrengthReduce/lsr-expand-quadratic.ll create mode 100644 test/Transforms/LoopStrengthReduce/scaling_factor_cost_crash.ll create mode 100644 test/Transforms/LoopStrengthReduce/uglygep-address-space.ll create mode 100644 test/Transforms/LoopUnroll/PowerPC/a2-unrolling.ll create mode 100644 test/Transforms/LoopUnroll/PowerPC/lit.local.cfg delete mode 100644 test/Transforms/LoopUnroll/lit.local.cfg delete mode 100644 test/Transforms/LoopUnswitch/lit.local.cfg create mode 100644 test/Transforms/LoopVectorize/ARM/gather-cost.ll create mode 100644 test/Transforms/LoopVectorize/X86/already-vectorized.ll create mode 100644 test/Transforms/LoopVectorize/X86/gather-cost.ll create mode 100644 test/Transforms/LoopVectorize/X86/rauw-bug.ll create mode 100644 test/Transforms/LoopVectorize/X86/tripcount.ll create mode 100644 test/Transforms/LoopVectorize/X86/unroll-pm.ll create mode 100644 test/Transforms/LoopVectorize/XCore/lit.local.cfg create mode 100644 test/Transforms/LoopVectorize/XCore/no-vector-registers.ll create mode 100644 test/Transforms/LoopVectorize/align.ll create mode 100644 test/Transforms/LoopVectorize/debugloc.ll create mode 100644 test/Transforms/LoopVectorize/ee-crash.ll create mode 100644 test/Transforms/LoopVectorize/funcall.ll create mode 100644 test/Transforms/LoopVectorize/hoist-loads.ll create mode 100644 test/Transforms/LoopVectorize/if-conversion-edgemasks.ll create mode 100644 test/Transforms/LoopVectorize/induction.ll create mode 100644 test/Transforms/LoopVectorize/infiniteloop.ll create mode 100644 test/Transforms/LoopVectorize/lifetime.ll delete mode 100644 test/Transforms/LoopVectorize/lit.local.cfg create mode 100644 test/Transforms/LoopVectorize/memdep.ll create mode 100644 test/Transforms/LoopVectorize/metadata-unroll.ll create mode 100644 test/Transforms/LoopVectorize/metadata-width.ll create mode 100644 test/Transforms/LoopVectorize/multiple-address-spaces.ll create mode 100644 test/Transforms/LoopVectorize/opt.ll create mode 100644 test/Transforms/LoopVectorize/reverse_iter.ll create mode 100644 test/Transforms/LoopVectorize/runtime-check-address-space.ll create mode 100644 test/Transforms/LoopVectorize/runtime-check-readonly-address-space.ll create mode 100644 test/Transforms/LoopVectorize/safegep.ll create mode 100644 test/Transforms/LoopVectorize/scev-exitlim-crash.ll create mode 100644 test/Transforms/LoopVectorize/store-shuffle-bug.ll create mode 100644 test/Transforms/LoopVectorize/undef-inst-bug.ll create mode 100644 test/Transforms/LoopVectorize/unroll_novec.ll delete mode 100644 test/Transforms/LowerAtomic/lit.local.cfg delete mode 100644 test/Transforms/LowerExpectIntrinsic/lit.local.cfg delete mode 100644 test/Transforms/LowerInvoke/lit.local.cfg delete mode 100644 test/Transforms/LowerSwitch/lit.local.cfg delete mode 100644 test/Transforms/Mem2Reg/lit.local.cfg delete mode 100644 test/Transforms/MemCpyOpt/lit.local.cfg create mode 100644 test/Transforms/MergeFunc/address-spaces.ll create mode 100644 test/Transforms/MergeFunc/inttoptr-address-space.ll delete mode 100644 test/Transforms/MergeFunc/lit.local.cfg create mode 100644 test/Transforms/MergeFunc/merge-ptr-and-int.ll create mode 100644 test/Transforms/MergeFunc/ptr-int-transitivity-1.ll create mode 100644 test/Transforms/MergeFunc/ptr-int-transitivity-2.ll create mode 100644 test/Transforms/MergeFunc/ptr-int-transitivity-3.ll create mode 100644 test/Transforms/MergeFunc/too-small.ll delete mode 100644 test/Transforms/MetaRenamer/lit.local.cfg create mode 100644 test/Transforms/ObjCARC/allocas.ll delete mode 100644 test/Transforms/ObjCARC/lit.local.cfg delete mode 100644 test/Transforms/ObjCARC/no-objc-arc-exceptions.ll delete mode 100644 test/Transforms/ObjCARC/retain-block-alloca.ll delete mode 100644 test/Transforms/ObjCARC/retain-block-escape-analysis.ll delete mode 100644 test/Transforms/ObjCARC/retain-block-load.ll delete mode 100644 test/Transforms/ObjCARC/retain-block.ll delete mode 100644 test/Transforms/PhaseOrdering/lit.local.cfg delete mode 100644 test/Transforms/PruneEH/lit.local.cfg delete mode 100644 test/Transforms/Reassociate/lit.local.cfg delete mode 100644 test/Transforms/Reg2Mem/lit.local.cfg delete mode 100644 test/Transforms/SCCP/lit.local.cfg create mode 100644 test/Transforms/SLPVectorizer/ARM/lit.local.cfg create mode 100644 test/Transforms/SLPVectorizer/ARM/memory.ll create mode 100644 test/Transforms/SLPVectorizer/ARM/sroa.ll create mode 100644 test/Transforms/SLPVectorizer/R600/lit.local.cfg create mode 100644 test/Transforms/SLPVectorizer/R600/simplebb.ll create mode 100644 test/Transforms/SLPVectorizer/X86/cmp_sel.ll create mode 100644 test/Transforms/SLPVectorizer/X86/crash_7zip.ll create mode 100644 test/Transforms/SLPVectorizer/X86/crash_bullet.ll create mode 100644 test/Transforms/SLPVectorizer/X86/crash_bullet3.ll create mode 100644 test/Transforms/SLPVectorizer/X86/crash_dequeue.ll create mode 100644 test/Transforms/SLPVectorizer/X86/crash_flop7.ll create mode 100644 test/Transforms/SLPVectorizer/X86/crash_lencod.ll create mode 100644 test/Transforms/SLPVectorizer/X86/crash_mandeltext.ll create mode 100644 test/Transforms/SLPVectorizer/X86/crash_netbsd_decompress.ll create mode 100644 test/Transforms/SLPVectorizer/X86/crash_sim4b1.ll create mode 100644 test/Transforms/SLPVectorizer/X86/crash_smallpt.ll create mode 100644 test/Transforms/SLPVectorizer/X86/cross_block_slp.ll create mode 100644 test/Transforms/SLPVectorizer/X86/cse.ll create mode 100644 test/Transforms/SLPVectorizer/X86/cycle_dup.ll create mode 100644 test/Transforms/SLPVectorizer/X86/debug_info.ll create mode 100644 test/Transforms/SLPVectorizer/X86/external_user.ll create mode 100644 test/Transforms/SLPVectorizer/X86/extract.ll create mode 100644 test/Transforms/SLPVectorizer/X86/horizontal.ll create mode 100644 test/Transforms/SLPVectorizer/X86/implicitfloat.ll create mode 100644 test/Transforms/SLPVectorizer/X86/in-tree-user.ll create mode 100644 test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll create mode 100644 test/Transforms/SLPVectorizer/X86/long_chains.ll create mode 100644 test/Transforms/SLPVectorizer/X86/multi_block.ll create mode 100644 test/Transforms/SLPVectorizer/X86/odd_store.ll create mode 100644 test/Transforms/SLPVectorizer/X86/operandorder.ll create mode 100644 test/Transforms/SLPVectorizer/X86/opt.ll create mode 100644 test/Transforms/SLPVectorizer/X86/ordering.ll create mode 100644 test/Transforms/SLPVectorizer/X86/phi.ll create mode 100644 test/Transforms/SLPVectorizer/X86/phi3.ll create mode 100644 test/Transforms/SLPVectorizer/X86/phi_landingpad.ll create mode 100644 test/Transforms/SLPVectorizer/X86/phi_overalignedtype.ll create mode 100644 test/Transforms/SLPVectorizer/X86/pr16571.ll create mode 100644 test/Transforms/SLPVectorizer/X86/pr16628.ll create mode 100644 test/Transforms/SLPVectorizer/X86/pr16899.ll create mode 100644 test/Transforms/SLPVectorizer/X86/pr18060.ll create mode 100644 test/Transforms/SLPVectorizer/X86/rgb_phi.ll create mode 100644 test/Transforms/SLPVectorizer/X86/tiny-tree.ll create mode 100644 test/Transforms/SLPVectorizer/XCore/lit.local.cfg create mode 100644 test/Transforms/SLPVectorizer/XCore/no-vector-registers.ll delete mode 100644 test/Transforms/SLPVectorizer/lit.local.cfg delete mode 100644 test/Transforms/SROA/lit.local.cfg create mode 100644 test/Transforms/SROA/vector-conversion.ll create mode 100644 test/Transforms/SampleProfile/Inputs/branch.prof create mode 100644 test/Transforms/SampleProfile/branch.ll delete mode 100644 test/Transforms/ScalarRepl/lit.local.cfg create mode 100644 test/Transforms/SimplifyCFG/CoveredLookupTable.ll create mode 100644 test/Transforms/SimplifyCFG/PR16069.ll create mode 100644 test/Transforms/SimplifyCFG/attr-noduplicate.ll create mode 100644 test/Transforms/SimplifyCFG/common-dest-folding.ll delete mode 100644 test/Transforms/SimplifyCFG/lit.local.cfg delete mode 100644 test/Transforms/SimplifyLibCalls/2005-05-20-sprintf-crash.ll delete mode 100644 test/Transforms/SimplifyLibCalls/2007-04-06-strchr-miscompile.ll delete mode 100644 test/Transforms/SimplifyLibCalls/2008-05-19-memcmp.ll delete mode 100644 test/Transforms/SimplifyLibCalls/2009-05-30-memcmp-byte.ll delete mode 100644 test/Transforms/SimplifyLibCalls/2009-07-28-Exit.ll delete mode 100644 test/Transforms/SimplifyLibCalls/2009-07-29-Exit2.ll delete mode 100644 test/Transforms/SimplifyLibCalls/MemCpy.ll delete mode 100644 test/Transforms/SimplifyLibCalls/PR7357.ll delete mode 100644 test/Transforms/SimplifyLibCalls/float-shrink-compare.ll delete mode 100644 test/Transforms/SimplifyLibCalls/lit.local.cfg delete mode 100644 test/Transforms/SimplifyLibCalls/win-math.ll delete mode 100644 test/Transforms/Sink/lit.local.cfg delete mode 100644 test/Transforms/StripSymbols/2010-07-01-DeadDbgInfo.ll delete mode 100644 test/Transforms/StripSymbols/lit.local.cfg create mode 100644 test/Transforms/StripSymbols/strip-dead-debug-info.ll create mode 100644 test/Transforms/StructurizeCFG/branch-on-argument.ll create mode 100644 test/Transforms/StructurizeCFG/loop-multiple-exits.ll create mode 100644 test/Transforms/StructurizeCFG/no-branch-to-entry.ll create mode 100644 test/Transforms/StructurizeCFG/switch.ll create mode 100644 test/Transforms/TailCallElim/basic.ll delete mode 100644 test/Transforms/TailCallElim/dont-tce-tail-marked-call.ll delete mode 100644 test/Transforms/TailCallElim/intervening-inst.ll delete mode 100644 test/Transforms/TailCallElim/lit.local.cfg delete mode 100644 test/Transforms/TailCallElim/move_alloca_for_tail_call.ll delete mode 100644 test/Transforms/TailCallElim/nocapture.ll delete mode 100644 test/Transforms/TailCallElim/return_constant.ll delete mode 100644 test/Transforms/TailCallElim/trivial_codegen_tailcall.ll create mode 100644 test/Verifier/bitcast-address-space-nested-global-cycle.ll create mode 100644 test/Verifier/bitcast-address-space-nested-global.ll create mode 100644 test/Verifier/bitcast-address-space-through-constant-inttoptr-inside-gep-instruction.ll create mode 100644 test/Verifier/bitcast-address-space-through-constant-inttoptr.ll create mode 100644 test/Verifier/bitcast-address-space-through-gep-2.ll create mode 100644 test/Verifier/bitcast-address-space-through-gep.ll create mode 100644 test/Verifier/bitcast-address-space-through-inttoptr.ll create mode 100644 test/Verifier/bitcast-address-spaces.ll create mode 100644 test/Verifier/bitcast-alias-address-space.ll create mode 100644 test/Verifier/bitcast-vector-pointer-as.ll create mode 100644 test/Verifier/ident-meta1.ll create mode 100644 test/Verifier/ident-meta2.ll create mode 100644 test/Verifier/ident-meta3.ll delete mode 100644 test/Verifier/lit.local.cfg create mode 100644 test/Verifier/varargs-intrinsic.ll create mode 100644 test/tools/llvm-cov/Inputs/README create mode 100644 test/tools/llvm-cov/Inputs/test.cpp create mode 100644 test/tools/llvm-cov/Inputs/test.cpp.gcov create mode 100644 test/tools/llvm-cov/Inputs/test.gcda create mode 100644 test/tools/llvm-cov/Inputs/test.gcno create mode 100644 test/tools/llvm-cov/Inputs/test_read_fail.gcno create mode 100644 test/tools/llvm-cov/lit.local.cfg create mode 100644 test/tools/llvm-cov/llvm-cov.test delete mode 100644 test/tools/llvm-lit/lit.local.cfg create mode 100644 test/tools/llvm-objdump/Inputs/nop.exe.coff-i386 create mode 100644 test/tools/llvm-objdump/Inputs/trivial.obj.elf-i386 create mode 100644 test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64 create mode 100644 test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64.asm create mode 100644 test/tools/llvm-objdump/coff-private-headers.test delete mode 100644 test/tools/llvm-objdump/disassembly-show-raw.s create mode 100644 test/tools/llvm-objdump/disassembly-show-raw.test delete mode 100644 test/tools/llvm-objdump/win64-unwind-data.s create mode 100644 test/tools/llvm-objdump/win64-unwind-data.test create mode 100644 test/tools/llvm-readobj/Inputs/dynamic-table.c create mode 100644 test/tools/llvm-readobj/Inputs/dynamic-table.mips create mode 100644 test/tools/llvm-readobj/Inputs/magic.coff-importlib create mode 100644 test/tools/llvm-readobj/Inputs/magic.coff-unknown create mode 100644 test/tools/llvm-readobj/Inputs/rpath.exe.elf-x86_64 create mode 100644 test/tools/llvm-readobj/Inputs/trivial.exe.coff-i386 create mode 100644 test/tools/llvm-readobj/dynamic.test delete mode 100644 test/tools/llvm-readobj/lit.local.cfg create mode 100644 test/tools/llvm-readobj/rpath.test (limited to 'test') diff --git a/test/.clang-format b/test/.clang-format new file mode 100644 index 0000000000000..4799b66f3e9a6 --- /dev/null +++ b/test/.clang-format @@ -0,0 +1,2 @@ +BasedOnStyle: LLVM +ColumnLimit: 0 diff --git a/test/Analysis/BasicAA/full-store-partial-alias.ll b/test/Analysis/BasicAA/full-store-partial-alias.ll index 2c34fd5f615a5..4de2daf6b2dc7 100644 --- a/test/Analysis/BasicAA/full-store-partial-alias.ll +++ b/test/Analysis/BasicAA/full-store-partial-alias.ll @@ -29,7 +29,9 @@ entry: ret i32 %tmp5.lobit } -!0 = metadata !{metadata !"double", metadata !1} +!0 = metadata !{metadata !4, metadata !4, i64 0} !1 = metadata !{metadata !"omnipotent char", metadata !2} !2 = metadata !{metadata !"Simple C/C++ TBAA", null} -!3 = metadata !{metadata !"int", metadata !1} +!3 = metadata !{metadata !5, metadata !5, i64 0} +!4 = metadata !{metadata !"double", metadata !1} +!5 = metadata !{metadata !"int", metadata !1} diff --git a/test/Analysis/BasicAA/gep-alias.ll b/test/Analysis/BasicAA/gep-alias.ll index 9c2c7eeec38d5..2c0d467003f28 100644 --- a/test/Analysis/BasicAA/gep-alias.ll +++ b/test/Analysis/BasicAA/gep-alias.ll @@ -1,6 +1,6 @@ ; RUN: opt < %s -basicaa -gvn -instcombine -S 2>&1 | FileCheck %s -target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" +target datalayout = "e-p:32:32:32-p1:16:16:16-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" ; Make sure that basicaa thinks R and r are must aliases. define i32 @test1(i8 * %P) { @@ -15,7 +15,7 @@ entry: %t = sub i32 %S, %s ret i32 %t -; CHECK: @test1 +; CHECK-LABEL: @test1( ; CHECK: ret i32 0 } @@ -32,7 +32,7 @@ entry: %t = sub i32 %S, %s ret i32 %t -; CHECK: @test2 +; CHECK-LABEL: @test2( ; CHECK: ret i32 0 } @@ -51,7 +51,7 @@ entry: %t = sub i32 %S, %s ret i32 %t -; CHECK: @test3 +; CHECK-LABEL: @test3( ; CHECK: ret i32 0 } @@ -68,7 +68,7 @@ entry: store i8* null, i8** %tmp3, align 8 %tmp4 = load i32* %tmp2, align 8 ret i32 %tmp4 -; CHECK: @test4 +; CHECK-LABEL: @test4( ; CHECK: ret i32 64 } @@ -82,7 +82,34 @@ define i32 @test5(i32* %p, i64 %i) { %y = load i32* %pi %z = sub i32 %x, %y ret i32 %z -; CHECK: @test5 +; CHECK-LABEL: @test5( +; CHECK: ret i32 0 +} + +define i32 @test5_as1_smaller_size(i32 addrspace(1)* %p, i8 %i) { + %pi = getelementptr i32 addrspace(1)* %p, i8 %i + %i.next = add i8 %i, 1 + %pi.next = getelementptr i32 addrspace(1)* %p, i8 %i.next + %x = load i32 addrspace(1)* %pi + store i32 42, i32 addrspace(1)* %pi.next + %y = load i32 addrspace(1)* %pi + %z = sub i32 %x, %y + ret i32 %z +; CHECK-LABEL: @test5_as1_smaller_size( +; CHECK: sext +; CHECK: ret i32 0 +} + +define i32 @test5_as1_same_size(i32 addrspace(1)* %p, i16 %i) { + %pi = getelementptr i32 addrspace(1)* %p, i16 %i + %i.next = add i16 %i, 1 + %pi.next = getelementptr i32 addrspace(1)* %p, i16 %i.next + %x = load i32 addrspace(1)* %pi + store i32 42, i32 addrspace(1)* %pi.next + %y = load i32 addrspace(1)* %pi + %z = sub i32 %x, %y + ret i32 %z +; CHECK-LABEL: @test5_as1_same_size( ; CHECK: ret i32 0 } @@ -97,7 +124,7 @@ define i32 @test6(i32* %p, i64 %i1) { %y = load i32* %pi %z = sub i32 %x, %y ret i32 %z -; CHECK: @test6 +; CHECK-LABEL: @test6( ; CHECK: ret i32 0 } @@ -111,7 +138,7 @@ define i32 @test7(i32* %p, i64 %i) { %y = load i32* %pi %z = sub i32 %x, %y ret i32 %z -; CHECK: @test7 +; CHECK-LABEL: @test7( ; CHECK: ret i32 0 } @@ -128,7 +155,7 @@ define i32 @test8(i32* %p, i16 %i) { %y = load i32* %pi %z = sub i32 %x, %y ret i32 %z -; CHECK: @test8 +; CHECK-LABEL: @test8( ; CHECK: ret i32 0 } @@ -139,7 +166,7 @@ define i8 @test9([4 x i8] *%P, i32 %i, i32 %j) { %P2 = getelementptr [4 x i8] *%P, i32 0, i32 %i3 %j2 = shl i32 %j, 2 - + ; P4 = P + 4*j %P4 = getelementptr [4 x i8]* %P, i32 0, i32 %j2 @@ -148,7 +175,7 @@ define i8 @test9([4 x i8] *%P, i32 %i, i32 %j) { %y = load i8* %P2 %z = sub i8 %x, %y ret i8 %z -; CHECK: @test9 +; CHECK-LABEL: @test9( ; CHECK: ret i8 0 } @@ -157,7 +184,7 @@ define i8 @test10([4 x i8] *%P, i32 %i) { %i3 = add i32 %i2, 4 ; P2 = P + 4 + 4*i %P2 = getelementptr [4 x i8] *%P, i32 0, i32 %i3 - + ; P4 = P + 4*i %P4 = getelementptr [4 x i8]* %P, i32 0, i32 %i2 @@ -166,7 +193,7 @@ define i8 @test10([4 x i8] *%P, i32 %i) { %y = load i8* %P2 %z = sub i8 %x, %y ret i8 %z -; CHECK: @test10 +; CHECK-LABEL: @test10( ; CHECK: ret i8 0 } @@ -182,8 +209,8 @@ define float @test11(i32 %indvar, [4 x [2 x float]]* %q) nounwind ssp { store i64 0, i64* %scevgep35, align 4 %tmp30 = load float* %y29, align 4 ret float %tmp30 - ; CHECK: @test11 - ; CHECK: ret float %tmp30 +; CHECK-LABEL: @test11( +; CHECK: ret float %tmp30 } ; (This was a miscompilation.) @@ -198,6 +225,6 @@ define i32 @test12(i32 %x, i32 %y, i8* %p) nounwind { store i32 0, i32* %castd %r = load i32* %castp ret i32 %r - ; CHECK: @test12 - ; CHECK: ret i32 %r +; CHECK-LABEL: @test12( +; CHECK: ret i32 %r } diff --git a/test/Analysis/BasicAA/global-size.ll b/test/Analysis/BasicAA/global-size.ll index a7e5aab6c1f22..f081cb1e07246 100644 --- a/test/Analysis/BasicAA/global-size.ll +++ b/test/Analysis/BasicAA/global-size.ll @@ -2,11 +2,11 @@ ; the global. ; RUN: opt < %s -basicaa -gvn -S | FileCheck %s -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" +target datalayout = "E-p:64:64:64-p1:16:16:16-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" @B = global i16 8 -; CHECK: @test1 +; CHECK-LABEL: @test1( define i16 @test1(i32* %P) { %X = load i16* @B store i32 7, i32* %P @@ -16,11 +16,23 @@ define i16 @test1(i32* %P) { ; CHECK: ret i16 0 } +@B_as1 = addrspace(1) global i16 8 + +define i16 @test1_as1(i32 addrspace(1)* %P) { +; CHECK-LABEL: @test1_as1( +; CHECK: ret i16 0 + %X = load i16 addrspace(1)* @B_as1 + store i32 7, i32 addrspace(1)* %P + %Y = load i16 addrspace(1)* @B_as1 + %Z = sub i16 %Y, %X + ret i16 %Z +} + ; Cannot know anything about the size of this global. ; rdar://8813415 @window = external global [0 x i8] -; CHECK: @test2 +; CHECK-LABEL: @test2( define i8 @test2(i32 %tmp79, i32 %w.2, i32 %indvar89) nounwind { %tmp92 = add i32 %tmp79, %indvar89 %arrayidx412 = getelementptr [0 x i8]* @window, i32 0, i32 %tmp92 diff --git a/test/Analysis/BasicAA/lit.local.cfg b/test/Analysis/BasicAA/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/BasicAA/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/BasicAA/noalias-geps.ll b/test/Analysis/BasicAA/noalias-geps.ll index a93d778da0741..f9ec71345739e 100644 --- a/test/Analysis/BasicAA/noalias-geps.ll +++ b/test/Analysis/BasicAA/noalias-geps.ll @@ -4,6 +4,7 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3 ; Check that geps with equal base offsets of noalias base pointers stay noalias. define i32 @test(i32* %p, i16 %i) { +; CHECK-LABEL: Function: test: %pi = getelementptr i32* %p, i32 0 %pi.next = getelementptr i32* %p, i32 1 %b = icmp eq i16 %i, 0 @@ -30,6 +31,7 @@ ret i32 0 ; Check that geps with equal indices of noalias base pointers stay noalias. define i32 @test2([2 x i32]* %p, i32 %i) { +; CHECK-LABEL: Function: test2: %pi = getelementptr [2 x i32]* %p, i32 0 %pi.next = getelementptr [2 x i32]* %p, i32 1 %b = icmp eq i32 %i, 0 diff --git a/test/Analysis/BasicAA/noalias-param.ll b/test/Analysis/BasicAA/noalias-param.ll new file mode 100644 index 0000000000000..6494771fc59f7 --- /dev/null +++ b/test/Analysis/BasicAA/noalias-param.ll @@ -0,0 +1,23 @@ +; RUN: opt < %s -basicaa -aa-eval -print-all-alias-modref-info 2>&1 | FileCheck %s + +declare i32* @captures(i32* %cap) nounwind readonly + +define void @no(i32* noalias %a, i32* %b) nounwind { +entry: + store i32 1, i32* %a + %cap = call i32* @captures(i32* %a) nounwind readonly + %l = load i32* %b + ret void +} + +; CHECK: NoAlias: i32* %a, i32* %b + +define void @yes(i32* %c, i32* %d) nounwind { +entry: + store i32 1, i32* %c + %cap = call i32* @captures(i32* %c) nounwind readonly + %l = load i32* %d + ret void +} + +; CHECK: MayAlias: i32* %c, i32* %d diff --git a/test/Analysis/BlockFrequencyInfo/basic.ll b/test/Analysis/BlockFrequencyInfo/basic.ll index 540d06b1f5627..ce29fb5ce1ba8 100644 --- a/test/Analysis/BlockFrequencyInfo/basic.ll +++ b/test/Analysis/BlockFrequencyInfo/basic.ll @@ -2,12 +2,12 @@ define i32 @test1(i32 %i, i32* %a) { ; CHECK: Printing analysis {{.*}} for function 'test1' -; CHECK: entry = 1024 +; CHECK: entry = 1.0 entry: br label %body ; Loop backedges are weighted and thus their bodies have a greater frequency. -; CHECK: body = 31744 +; CHECK: body = 32.0 body: %iv = phi i32 [ 0, %entry ], [ %next, %body ] %base = phi i32 [ 0, %entry ], [ %sum, %body ] @@ -18,29 +18,29 @@ body: %exitcond = icmp eq i32 %next, %i br i1 %exitcond, label %exit, label %body -; CHECK: exit = 1024 +; CHECK: exit = 1.0 exit: ret i32 %sum } define i32 @test2(i32 %i, i32 %a, i32 %b) { ; CHECK: Printing analysis {{.*}} for function 'test2' -; CHECK: entry = 1024 +; CHECK: entry = 1.0 entry: %cond = icmp ult i32 %i, 42 br i1 %cond, label %then, label %else, !prof !0 ; The 'then' branch is predicted more likely via branch weight metadata. -; CHECK: then = 963 +; CHECK: then = 0.94116 then: br label %exit -; CHECK: else = 60 +; CHECK: else = 0.05877 else: br label %exit -; FIXME: It may be a bug that we don't sum back to 1024. -; CHECK: exit = 1023 +; FIXME: It may be a bug that we don't sum back to 1.0. +; CHECK: exit = 0.99993 exit: %result = phi i32 [ %a, %then ], [ %b, %else ] ret i32 %result @@ -50,36 +50,36 @@ exit: define i32 @test3(i32 %i, i32 %a, i32 %b, i32 %c, i32 %d, i32 %e) { ; CHECK: Printing analysis {{.*}} for function 'test3' -; CHECK: entry = 1024 +; CHECK: entry = 1.0 entry: switch i32 %i, label %case_a [ i32 1, label %case_b i32 2, label %case_c i32 3, label %case_d i32 4, label %case_e ], !prof !1 -; CHECK: case_a = 51 +; CHECK: case_a = 0.04998 case_a: br label %exit -; CHECK: case_b = 51 +; CHECK: case_b = 0.04998 case_b: br label %exit ; The 'case_c' branch is predicted more likely via branch weight metadata. -; CHECK: case_c = 819 +; CHECK: case_c = 0.79998 case_c: br label %exit -; CHECK: case_d = 51 +; CHECK: case_d = 0.04998 case_d: br label %exit -; CHECK: case_e = 51 +; CHECK: case_e = 0.04998 case_e: br label %exit -; FIXME: It may be a bug that we don't sum back to 1024. -; CHECK: exit = 1023 +; FIXME: It may be a bug that we don't sum back to 1.0. +; CHECK: exit = 0.99993 exit: %result = phi i32 [ %a, %case_a ], [ %b, %case_b ], @@ -90,3 +90,45 @@ exit: } !1 = metadata !{metadata !"branch_weights", i32 4, i32 4, i32 64, i32 4, i32 4} + +; CHECK: Printing analysis {{.*}} for function 'nested_loops' +; CHECK: entry = 1.0 +; This test doesn't seem to be assigning sensible frequencies to nested loops. +define void @nested_loops(i32 %a) { +entry: + br label %for.cond1.preheader + +for.cond1.preheader: + %x.024 = phi i32 [ 0, %entry ], [ %inc12, %for.inc11 ] + br label %for.cond4.preheader + +for.cond4.preheader: + %y.023 = phi i32 [ 0, %for.cond1.preheader ], [ %inc9, %for.inc8 ] + %add = add i32 %y.023, %x.024 + br label %for.body6 + +for.body6: + %z.022 = phi i32 [ 0, %for.cond4.preheader ], [ %inc, %for.body6 ] + %add7 = add i32 %add, %z.022 + tail call void @g(i32 %add7) #2 + %inc = add i32 %z.022, 1 + %cmp5 = icmp ugt i32 %inc, %a + br i1 %cmp5, label %for.inc8, label %for.body6, !prof !2 + +for.inc8: + %inc9 = add i32 %y.023, 1 + %cmp2 = icmp ugt i32 %inc9, %a + br i1 %cmp2, label %for.inc11, label %for.cond4.preheader, !prof !2 + +for.inc11: + %inc12 = add i32 %x.024, 1 + %cmp = icmp ugt i32 %inc12, %a + br i1 %cmp, label %for.end13, label %for.cond1.preheader, !prof !2 + +for.end13: + ret void +} + +declare void @g(i32) #1 + +!2 = metadata !{metadata !"branch_weights", i32 1, i32 4000} diff --git a/test/Analysis/BlockFrequencyInfo/lit.local.cfg b/test/Analysis/BlockFrequencyInfo/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/BlockFrequencyInfo/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/BranchProbabilityInfo/basic.ll b/test/Analysis/BranchProbabilityInfo/basic.ll index 08adfa8a36fb0..05cb31dca0ee9 100644 --- a/test/Analysis/BranchProbabilityInfo/basic.ll +++ b/test/Analysis/BranchProbabilityInfo/basic.ll @@ -115,3 +115,100 @@ return: } !2 = metadata !{metadata !"branch_weights", i32 7, i32 6, i32 4, i32 4, i32 64} + +declare void @coldfunc() cold + +define i32 @test5(i32 %a, i32 %b, i1 %flag) { +; CHECK: Printing analysis {{.*}} for function 'test5' +entry: + br i1 %flag, label %then, label %else +; CHECK: edge entry -> then probability is 4 / 68 +; CHECK: edge entry -> else probability is 64 / 68 + +then: + call void @coldfunc() + br label %exit +; CHECK: edge then -> exit probability is 16 / 16 = 100% + +else: + br label %exit +; CHECK: edge else -> exit probability is 16 / 16 = 100% + +exit: + %result = phi i32 [ %a, %then ], [ %b, %else ] + ret i32 %result +} + +declare i32 @regular_function(i32 %i) + +define i32 @test_cold_call_sites(i32* %a) { +; Test that edges to blocks post-dominated by cold call sites +; are marked as not expected to be taken. +; TODO(dnovillo) The calls to regular_function should not be merged, but +; they are currently being merged. Convert this into a code generation test +; after that is fixed. + +; CHECK: Printing analysis {{.*}} for function 'test_cold_call_sites' +; CHECK: edge entry -> then probability is 4 / 68 = 5.88235% +; CHECK: edge entry -> else probability is 64 / 68 = 94.1176% [HOT edge] + +entry: + %gep1 = getelementptr i32* %a, i32 1 + %val1 = load i32* %gep1 + %cond1 = icmp ugt i32 %val1, 1 + br i1 %cond1, label %then, label %else + +then: + ; This function is not declared cold, but this call site is. + %val4 = call i32 @regular_function(i32 %val1) cold + br label %exit + +else: + %gep2 = getelementptr i32* %a, i32 2 + %val2 = load i32* %gep2 + %val3 = call i32 @regular_function(i32 %val2) + br label %exit + +exit: + %ret = phi i32 [ %val4, %then ], [ %val3, %else ] + ret i32 %ret +} + +define i32 @zero1(i32 %i, i32 %a, i32 %b) { +; CHECK: Printing analysis {{.*}} for function 'zero1' +entry: + %cond = icmp eq i32 %i, 0 + br i1 %cond, label %then, label %else +; CHECK: edge entry -> then probability is 12 / 32 +; CHECK: edge entry -> else probability is 20 / 32 + +then: + br label %exit + +else: + br label %exit + +exit: + %result = phi i32 [ %a, %then ], [ %b, %else ] + ret i32 %result +} + +define i32 @zero2(i32 %i, i32 %a, i32 %b) { +; CHECK: Printing analysis {{.*}} for function 'zero2' +entry: + %cond = icmp ne i32 %i, -1 + br i1 %cond, label %then, label %else +; CHECK: edge entry -> then probability is 20 / 32 +; CHECK: edge entry -> else probability is 12 / 32 + +then: + br label %exit + +else: + br label %exit + +exit: + %result = phi i32 [ %a, %then ], [ %b, %else ] + ret i32 %result +} + diff --git a/test/Analysis/BranchProbabilityInfo/lit.local.cfg b/test/Analysis/BranchProbabilityInfo/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/BranchProbabilityInfo/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/CallGraph/lit.local.cfg b/test/Analysis/CallGraph/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/CallGraph/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/CallGraph/no-intrinsics.ll b/test/Analysis/CallGraph/no-intrinsics.ll index 450dce58e30f9..d858907d7247b 100644 --- a/test/Analysis/CallGraph/no-intrinsics.ll +++ b/test/Analysis/CallGraph/no-intrinsics.ll @@ -10,4 +10,4 @@ define void @f(i8* %out, i8* %in) { } ; CHECK: Call graph node for function: 'f' -; CHECK-NOT: calls function 'llvm.memcpy.p0i8.p0i8.i32' \ No newline at end of file +; CHECK-NOT: calls function 'llvm.memcpy.p0i8.p0i8.i32' diff --git a/test/Analysis/CostModel/ARM/lit.local.cfg b/test/Analysis/CostModel/ARM/lit.local.cfg index cb77b09ef4adb..8a3ba96497e7d 100644 --- a/test/Analysis/CostModel/ARM/lit.local.cfg +++ b/test/Analysis/CostModel/ARM/lit.local.cfg @@ -1,5 +1,3 @@ -config.suffixes = ['.ll', '.c', '.cpp'] - targets = set(config.root.targets_to_build.split()) if not 'ARM' in targets: config.unsupported = True diff --git a/test/Analysis/CostModel/ARM/select.ll b/test/Analysis/CostModel/ARM/select.ll index 34ed1eefdaf42..21eef83c4bbea 100644 --- a/test/Analysis/CostModel/ARM/select.ll +++ b/test/Analysis/CostModel/ARM/select.ll @@ -63,5 +63,13 @@ define void @casts() { ; CHECK: cost of 1 {{.*}} select %v19 = select <2 x i1> undef, <2 x double> undef, <2 x double> undef + ; odd vectors get legalized and should have similar costs + ; CHECK: cost of 1 {{.*}} select + %v20 = select <1 x i1> undef, <1 x i32> undef, <1 x i32> undef + ; CHECK: cost of 1 {{.*}} select + %v21 = select <3 x i1> undef, <3 x float> undef, <3 x float> undef + ; CHECK: cost of 4 {{.*}} select + %v22 = select <5 x i1> undef, <5 x double> undef, <5 x double> undef + ret void } diff --git a/test/Analysis/CostModel/PowerPC/lit.local.cfg b/test/Analysis/CostModel/PowerPC/lit.local.cfg index 4019eca0bb88f..2e463005586fc 100644 --- a/test/Analysis/CostModel/PowerPC/lit.local.cfg +++ b/test/Analysis/CostModel/PowerPC/lit.local.cfg @@ -1,5 +1,3 @@ -config.suffixes = ['.ll', '.c', '.cpp'] - targets = set(config.root.targets_to_build.split()) if not 'PowerPC' in targets: config.unsupported = True diff --git a/test/Analysis/CostModel/X86/cast.ll b/test/Analysis/CostModel/X86/cast.ll index b69b3bf6304c2..f3c1283c7e329 100644 --- a/test/Analysis/CostModel/X86/cast.ll +++ b/test/Analysis/CostModel/X86/cast.ll @@ -38,6 +38,10 @@ define i32 @zext_sext(<8 x i1> %in) { ;CHECK: cost of 9 {{.*}} sext %S = sext <8 x i1> %in to <8 x i32> + ;CHECK: cost of 1 {{.*}} zext + %A1 = zext <16 x i8> undef to <16 x i16> + ;CHECK: cost of 1 {{.*}} sext + %A2 = sext <16 x i8> undef to <16 x i16> ;CHECK: cost of 1 {{.*}} sext %A = sext <8 x i16> undef to <8 x i32> ;CHECK: cost of 1 {{.*}} zext @@ -51,11 +55,13 @@ define i32 @zext_sext(<8 x i1> %in) { ;CHECK: cost of 1 {{.*}} zext %D = zext <4 x i32> undef to <4 x i64> - ;CHECK: cost of 1 {{.*}} trunc + ;CHECK: cost of 1 {{.*}} trunc %E = trunc <4 x i64> undef to <4 x i32> ;CHECK: cost of 1 {{.*}} trunc %F = trunc <8 x i32> undef to <8 x i16> + ;CHECK: cost of 2 {{.*}} trunc + %F1 = trunc <16 x i16> undef to <16 x i8> ;CHECK: cost of 3 {{.*}} trunc %G = trunc <8 x i64> undef to <8 x i32> diff --git a/test/Analysis/CostModel/X86/div.ll b/test/Analysis/CostModel/X86/div.ll new file mode 100644 index 0000000000000..c7d6517c7f03d --- /dev/null +++ b/test/Analysis/CostModel/X86/div.ll @@ -0,0 +1,32 @@ +; RUN: opt -mtriple=x86_64-apple-darwin -mcpu=core2 -cost-model -analyze < %s | FileCheck --check-prefix=SSE2 %s +; RUN: opt -mtriple=x86_64-apple-darwin -mcpu=core-avx2 -cost-model -analyze < %s | FileCheck --check-prefix=AVX2 %s + + +define void @div_sse() { + ; SSE2: div_sse + ; SSE2: cost of 320 {{.*}} sdiv + %a0 = sdiv <16 x i8> undef, undef + ; SSE2: cost of 160 {{.*}} sdiv + %a1 = sdiv <8 x i16> undef, undef + ; SSE2: cost of 80 {{.*}} sdiv + %a2 = sdiv <4 x i32> undef, undef + ; SSE2: cost of 40 {{.*}} sdiv + %a3 = sdiv <2 x i32> undef, undef + ret void +} +; SSE2: div_avx + +define void @div_avx() { + ; AVX2: div_avx + ; AVX2: cost of 640 {{.*}} sdiv + %a0 = sdiv <32 x i8> undef, undef + ; AVX2: cost of 320 {{.*}} sdiv + %a1 = sdiv <16 x i16> undef, undef + ; AVX2: cost of 160 {{.*}} sdiv + %a2 = sdiv <8 x i32> undef, undef + ; AVX2: cost of 80 {{.*}} sdiv + %a3 = sdiv <4 x i32> undef, undef + ret void +} + + diff --git a/test/Analysis/CostModel/X86/intrinsic-cost.ll b/test/Analysis/CostModel/X86/intrinsic-cost.ll index e235a36222a7e..8eeee8124d9ac 100644 --- a/test/Analysis/CostModel/X86/intrinsic-cost.ll +++ b/test/Analysis/CostModel/X86/intrinsic-cost.ll @@ -30,3 +30,31 @@ for.end: ; preds = %vector.body } declare <4 x float> @llvm.ceil.v4f32(<4 x float>) nounwind readnone + +define void @test2(float* nocapture %f) nounwind { +vector.ph: + br label %vector.body + +vector.body: ; preds = %vector.body, %vector.ph + %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] + %0 = getelementptr inbounds float* %f, i64 %index + %1 = bitcast float* %0 to <4 x float>* + %wide.load = load <4 x float>* %1, align 4 + %2 = call <4 x float> @llvm.nearbyint.v4f32(<4 x float> %wide.load) + store <4 x float> %2, <4 x float>* %1, align 4 + %index.next = add i64 %index, 4 + %3 = icmp eq i64 %index.next, 1024 + br i1 %3, label %for.end, label %vector.body + +for.end: ; preds = %vector.body + ret void + +; CORE2: Printing analysis 'Cost Model Analysis' for function 'test2': +; CORE2: Cost Model: Found an estimated cost of 400 for instruction: %2 = call <4 x float> @llvm.nearbyint.v4f32(<4 x float> %wide.load) + +; COREI7: Printing analysis 'Cost Model Analysis' for function 'test2': +; COREI7: Cost Model: Found an estimated cost of 1 for instruction: %2 = call <4 x float> @llvm.nearbyint.v4f32(<4 x float> %wide.load) + +} + +declare <4 x float> @llvm.nearbyint.v4f32(<4 x float>) nounwind readnone diff --git a/test/Analysis/CostModel/X86/lit.local.cfg b/test/Analysis/CostModel/X86/lit.local.cfg index a8ad0f1a28b23..ba763cf03ffcc 100644 --- a/test/Analysis/CostModel/X86/lit.local.cfg +++ b/test/Analysis/CostModel/X86/lit.local.cfg @@ -1,5 +1,3 @@ -config.suffixes = ['.ll', '.c', '.cpp'] - targets = set(config.root.targets_to_build.split()) if not 'X86' in targets: config.unsupported = True diff --git a/test/Analysis/CostModel/X86/load_store.ll b/test/Analysis/CostModel/X86/load_store.ll index 4195b1d879a15..a53d0bd4e993e 100644 --- a/test/Analysis/CostModel/X86/load_store.ll +++ b/test/Analysis/CostModel/X86/load_store.ll @@ -59,6 +59,25 @@ define i32 @loads(i32 %arg) { ;CHECK: cost of 4 {{.*}} load load <8 x i64>* undef, align 4 + + ;CHECK: cost of 3 {{.*}} load + load <3 x float>* undef, align 4 + + ;CHECK: cost of 3 {{.*}} load + load <3 x double>* undef, align 4 + + ;CHECK: cost of 3 {{.*}} load + load <3 x i32>* undef, align 4 + + ;CHECK: cost of 3 {{.*}} load + load <3 x i64>* undef, align 4 + + ;CHECK: cost of 10 {{.*}} load + load <5 x i32>* undef, align 4 + + ;CHECK: cost of 10 {{.*}} load + load <5 x i64>* undef, align 4 + ret i32 undef } diff --git a/test/Analysis/CostModel/X86/reduction.ll b/test/Analysis/CostModel/X86/reduction.ll new file mode 100644 index 0000000000000..78e65aee14609 --- /dev/null +++ b/test/Analysis/CostModel/X86/reduction.ll @@ -0,0 +1,365 @@ +; RUN: opt < %s -cost-model -costmodel-reduxcost=true -analyze -mcpu=core2 -mtriple=x86_64-apple-darwin | FileCheck %s +; RUN: opt < %s -cost-model -costmodel-reduxcost=true -analyze -mcpu=corei7 -mtriple=x86_64-apple-darwin | FileCheck %s --check-prefix=SSE3 +; RUN: opt < %s -cost-model -costmodel-reduxcost=true -analyze -mcpu=corei7-avx -mtriple=x86_64-apple-darwin | FileCheck %s --check-prefix=AVX +; RUN: opt < %s -cost-model -costmodel-reduxcost=true -analyze -mcpu=core-avx2 -mtriple=x86_64-apple-darwin | FileCheck %s --check-prefix=AVX2 + +define fastcc float @reduction_cost_float(<4 x float> %rdx) { + %rdx.shuf = shufflevector <4 x float> %rdx, <4 x float> undef, <4 x i32> + %bin.rdx = fadd <4 x float> %rdx, %rdx.shuf + %rdx.shuf7 = shufflevector <4 x float> %bin.rdx, <4 x float> undef, <4 x i32> + %bin.rdx8 = fadd <4 x float> %bin.rdx, %rdx.shuf7 + +; Check that we recognize the tree starting at the extractelement as a +; reduction. +; CHECK-LABEL: reduction_cost +; CHECK: cost of 9 {{.*}} extractelement + + %r = extractelement <4 x float> %bin.rdx8, i32 0 + ret float %r +} + +define fastcc i32 @reduction_cost_int(<8 x i32> %rdx) { + %rdx.shuf = shufflevector <8 x i32> %rdx, <8 x i32> undef, + <8 x i32> + %bin.rdx = add <8 x i32> %rdx, %rdx.shuf + %rdx.shuf.2 = shufflevector <8 x i32> %bin.rdx, <8 x i32> undef, + <8 x i32> + %bin.rdx.2 = add <8 x i32> %bin.rdx, %rdx.shuf.2 + %rdx.shuf.3 = shufflevector <8 x i32> %bin.rdx.2, <8 x i32> undef, + <8 x i32> + %bin.rdx.3 = add <8 x i32> %bin.rdx.2, %rdx.shuf.3 + +; CHECK-LABEL: reduction_cost_int +; CHECK: cost of 23 {{.*}} extractelement + + %r = extractelement <8 x i32> %bin.rdx.3, i32 0 + ret i32 %r +} + +define fastcc float @pairwise_hadd(<4 x float> %rdx, float %f1) { + %rdx.shuf.0.0 = shufflevector <4 x float> %rdx, <4 x float> undef, + <4 x i32> + %rdx.shuf.0.1 = shufflevector <4 x float> %rdx, <4 x float> undef, + <4 x i32> + %bin.rdx.0 = fadd <4 x float> %rdx.shuf.0.0, %rdx.shuf.0.1 + %rdx.shuf.1.0 = shufflevector <4 x float> %bin.rdx.0, <4 x float> undef, + <4 x i32> + %rdx.shuf.1.1 = shufflevector <4 x float> %bin.rdx.0, <4 x float> undef, + <4 x i32> + %bin.rdx.1 = fadd <4 x float> %rdx.shuf.1.0, %rdx.shuf.1.1 + +; CHECK-LABEL: pairwise_hadd +; CHECK: cost of 11 {{.*}} extractelement + + %r = extractelement <4 x float> %bin.rdx.1, i32 0 + %r2 = fadd float %r, %f1 + ret float %r2 +} + +define fastcc float @pairwise_hadd_assoc(<4 x float> %rdx, float %f1) { + %rdx.shuf.0.0 = shufflevector <4 x float> %rdx, <4 x float> undef, + <4 x i32> + %rdx.shuf.0.1 = shufflevector <4 x float> %rdx, <4 x float> undef, + <4 x i32> + %bin.rdx.0 = fadd <4 x float> %rdx.shuf.0.1, %rdx.shuf.0.0 + %rdx.shuf.1.0 = shufflevector <4 x float> %bin.rdx.0, <4 x float> undef, + <4 x i32> + %rdx.shuf.1.1 = shufflevector <4 x float> %bin.rdx.0, <4 x float> undef, + <4 x i32> + %bin.rdx.1 = fadd <4 x float> %rdx.shuf.1.0, %rdx.shuf.1.1 + +; CHECK-LABEL: pairwise_hadd_assoc +; CHECK: cost of 11 {{.*}} extractelement + + %r = extractelement <4 x float> %bin.rdx.1, i32 0 + %r2 = fadd float %r, %f1 + ret float %r2 +} + +define fastcc float @pairwise_hadd_skip_first(<4 x float> %rdx, float %f1) { + %rdx.shuf.0.0 = shufflevector <4 x float> %rdx, <4 x float> undef, + <4 x i32> + %rdx.shuf.0.1 = shufflevector <4 x float> %rdx, <4 x float> undef, + <4 x i32> + %bin.rdx.0 = fadd <4 x float> %rdx.shuf.0.0, %rdx.shuf.0.1 + %rdx.shuf.1.1 = shufflevector <4 x float> %bin.rdx.0, <4 x float> undef, + <4 x i32> + %bin.rdx.1 = fadd <4 x float> %bin.rdx.0, %rdx.shuf.1.1 + +; CHECK-LABEL: pairwise_hadd_skip_first +; CHECK: cost of 11 {{.*}} extractelement + + %r = extractelement <4 x float> %bin.rdx.1, i32 0 + %r2 = fadd float %r, %f1 + ret float %r2 +} + +define fastcc double @no_pairwise_reduction2double(<2 x double> %rdx, double %f1) { + %rdx.shuf = shufflevector <2 x double> %rdx, <2 x double> undef, <2 x i32> + %bin.rdx = fadd <2 x double> %rdx, %rdx.shuf + +; SSE3: cost of 2 {{.*}} extractelement +; AVX: cost of 2 {{.*}} extractelement +; AVX2: cost of 2 {{.*}} extractelement + + %r = extractelement <2 x double> %bin.rdx, i32 0 + ret double %r +} + +define fastcc float @no_pairwise_reduction4float(<4 x float> %rdx, float %f1) { + %rdx.shuf = shufflevector <4 x float> %rdx, <4 x float> undef, <4 x i32> + %bin.rdx = fadd <4 x float> %rdx, %rdx.shuf + %rdx.shuf7 = shufflevector <4 x float> %bin.rdx, <4 x float> undef, <4 x i32> + %bin.rdx8 = fadd <4 x float> %bin.rdx, %rdx.shuf7 + +; SSE3: cost of 4 {{.*}} extractelement +; AVX: cost of 3 {{.*}} extractelement +; AVX2: cost of 3 {{.*}} extractelement + + %r = extractelement <4 x float> %bin.rdx8, i32 0 + ret float %r +} + +define fastcc double @no_pairwise_reduction4double(<4 x double> %rdx, double %f1) { + %rdx.shuf = shufflevector <4 x double> %rdx, <4 x double> undef, <4 x i32> + %bin.rdx = fadd <4 x double> %rdx, %rdx.shuf + %rdx.shuf7 = shufflevector <4 x double> %bin.rdx, <4 x double> undef, <4 x i32> + %bin.rdx8 = fadd <4 x double> %bin.rdx, %rdx.shuf7 + +; AVX: cost of 3 {{.*}} extractelement +; AVX2: cost of 3 {{.*}} extractelement + + %r = extractelement <4 x double> %bin.rdx8, i32 0 + ret double %r +} + +define fastcc float @no_pairwise_reduction8float(<8 x float> %rdx, float %f1) { + %rdx.shuf3 = shufflevector <8 x float> %rdx, <8 x float> undef, <8 x i32> + %bin.rdx4 = fadd <8 x float> %rdx, %rdx.shuf3 + %rdx.shuf = shufflevector <8 x float> %bin.rdx4, <8 x float> undef, <8 x i32> + %bin.rdx = fadd <8 x float> %bin.rdx4, %rdx.shuf + %rdx.shuf7 = shufflevector <8 x float> %bin.rdx, <8 x float> undef, <8 x i32> + %bin.rdx8 = fadd <8 x float> %bin.rdx, %rdx.shuf7 + +; AVX: cost of 4 {{.*}} extractelement +; AVX2: cost of 4 {{.*}} extractelement + + %r = extractelement <8 x float> %bin.rdx8, i32 0 + ret float %r +} + +define fastcc i64 @no_pairwise_reduction2i64(<2 x i64> %rdx, i64 %f1) { + %rdx.shuf = shufflevector <2 x i64> %rdx, <2 x i64> undef, <2 x i32> + %bin.rdx = add <2 x i64> %rdx, %rdx.shuf + +; SSE3: cost of 2 {{.*}} extractelement +; AVX: cost of 1 {{.*}} extractelement +; AVX2: cost of 1 {{.*}} extractelement + + %r = extractelement <2 x i64> %bin.rdx, i32 0 + ret i64 %r +} + +define fastcc i32 @no_pairwise_reduction4i32(<4 x i32> %rdx, i32 %f1) { + %rdx.shuf = shufflevector <4 x i32> %rdx, <4 x i32> undef, <4 x i32> + %bin.rdx = add <4 x i32> %rdx, %rdx.shuf + %rdx.shuf7 = shufflevector <4 x i32> %bin.rdx, <4 x i32> undef, <4 x i32> + %bin.rdx8 = add <4 x i32> %bin.rdx, %rdx.shuf7 + +; SSE3: cost of 3 {{.*}} extractelement +; AVX: cost of 3 {{.*}} extractelement +; AVX2: cost of 3 {{.*}} extractelement + + %r = extractelement <4 x i32> %bin.rdx8, i32 0 + ret i32 %r +} + +define fastcc i64 @no_pairwise_reduction4i64(<4 x i64> %rdx, i64 %f1) { + %rdx.shuf = shufflevector <4 x i64> %rdx, <4 x i64> undef, <4 x i32> + %bin.rdx = add <4 x i64> %rdx, %rdx.shuf + %rdx.shuf7 = shufflevector <4 x i64> %bin.rdx, <4 x i64> undef, <4 x i32> + %bin.rdx8 = add <4 x i64> %bin.rdx, %rdx.shuf7 + +; AVX: cost of 3 {{.*}} extractelement +; AVX2: cost of 3 {{.*}} extractelement + + %r = extractelement <4 x i64> %bin.rdx8, i32 0 + ret i64 %r +} + +define fastcc i16 @no_pairwise_reduction8i16(<8 x i16> %rdx, i16 %f1) { + %rdx.shuf3 = shufflevector <8 x i16> %rdx, <8 x i16> undef, <8 x i32> + %bin.rdx4 = add <8 x i16> %rdx, %rdx.shuf3 + %rdx.shuf = shufflevector <8 x i16> %bin.rdx4, <8 x i16> undef, <8 x i32> + %bin.rdx = add <8 x i16> %bin.rdx4, %rdx.shuf + %rdx.shuf7 = shufflevector <8 x i16> %bin.rdx, <8 x i16> undef, <8 x i32> + %bin.rdx8 = add <8 x i16> %bin.rdx, %rdx.shuf7 + +; SSE3: cost of 4 {{.*}} extractelement +; AVX: cost of 4 {{.*}} extractelement +; AVX2: cost of 4 {{.*}} extractelement + + %r = extractelement <8 x i16> %bin.rdx8, i32 0 + ret i16 %r +} + +define fastcc i32 @no_pairwise_reduction8i32(<8 x i32> %rdx, i32 %f1) { + %rdx.shuf3 = shufflevector <8 x i32> %rdx, <8 x i32> undef, <8 x i32> + %bin.rdx4 = add <8 x i32> %rdx, %rdx.shuf3 + %rdx.shuf = shufflevector <8 x i32> %bin.rdx4, <8 x i32> undef, <8 x i32> + %bin.rdx = add <8 x i32> %bin.rdx4, %rdx.shuf + %rdx.shuf7 = shufflevector <8 x i32> %bin.rdx, <8 x i32> undef, <8 x i32> + %bin.rdx8 = add <8 x i32> %bin.rdx, %rdx.shuf7 + +; AVX: cost of 5 {{.*}} extractelement +; AVX2: cost of 5 {{.*}} extractelement + + %r = extractelement <8 x i32> %bin.rdx8, i32 0 + ret i32 %r +} + +define fastcc double @pairwise_reduction2double(<2 x double> %rdx, double %f1) { + %rdx.shuf.1.0 = shufflevector <2 x double> %rdx, <2 x double> undef, <2 x i32> + %rdx.shuf.1.1 = shufflevector <2 x double> %rdx, <2 x double> undef, <2 x i32> + %bin.rdx8 = fadd <2 x double> %rdx.shuf.1.0, %rdx.shuf.1.1 + +; SSE3: cost of 2 {{.*}} extractelement +; AVX: cost of 2 {{.*}} extractelement +; AVX2: cost of 2 {{.*}} extractelement + + %r = extractelement <2 x double> %bin.rdx8, i32 0 + ret double %r +} + +define fastcc float @pairwise_reduction4float(<4 x float> %rdx, float %f1) { + %rdx.shuf.0.0 = shufflevector <4 x float> %rdx, <4 x float> undef, <4 x i32> + %rdx.shuf.0.1 = shufflevector <4 x float> %rdx, <4 x float> undef, <4 x i32> + %bin.rdx = fadd <4 x float> %rdx.shuf.0.0, %rdx.shuf.0.1 + %rdx.shuf.1.0 = shufflevector <4 x float> %bin.rdx, <4 x float> undef, <4 x i32> + %rdx.shuf.1.1 = shufflevector <4 x float> %bin.rdx, <4 x float> undef, <4 x i32> + %bin.rdx8 = fadd <4 x float> %rdx.shuf.1.0, %rdx.shuf.1.1 + +; SSE3: cost of 4 {{.*}} extractelement +; AVX: cost of 4 {{.*}} extractelement +; AVX2: cost of 4 {{.*}} extractelement + + %r = extractelement <4 x float> %bin.rdx8, i32 0 + ret float %r +} + +define fastcc double @pairwise_reduction4double(<4 x double> %rdx, double %f1) { + %rdx.shuf.0.0 = shufflevector <4 x double> %rdx, <4 x double> undef, <4 x i32> + %rdx.shuf.0.1 = shufflevector <4 x double> %rdx, <4 x double> undef, <4 x i32> + %bin.rdx = fadd <4 x double> %rdx.shuf.0.0, %rdx.shuf.0.1 + %rdx.shuf.1.0 = shufflevector <4 x double> %bin.rdx, <4 x double> undef, <4 x i32> + %rdx.shuf.1.1 = shufflevector <4 x double> %bin.rdx, <4 x double> undef, <4 x i32> + %bin.rdx8 = fadd <4 x double> %rdx.shuf.1.0, %rdx.shuf.1.1 + +; AVX: cost of 5 {{.*}} extractelement +; AVX2: cost of 5 {{.*}} extractelement + + %r = extractelement <4 x double> %bin.rdx8, i32 0 + ret double %r +} + +define fastcc float @pairwise_reduction8float(<8 x float> %rdx, float %f1) { + %rdx.shuf.0.0 = shufflevector <8 x float> %rdx, <8 x float> undef, <8 x i32> + %rdx.shuf.0.1 = shufflevector <8 x float> %rdx, <8 x float> undef, <8 x i32> + %bin.rdx = fadd <8 x float> %rdx.shuf.0.0, %rdx.shuf.0.1 + %rdx.shuf.1.0 = shufflevector <8 x float> %bin.rdx, <8 x float> undef,<8 x i32> + %rdx.shuf.1.1 = shufflevector <8 x float> %bin.rdx, <8 x float> undef,<8 x i32> + %bin.rdx8 = fadd <8 x float> %rdx.shuf.1.0, %rdx.shuf.1.1 + %rdx.shuf.2.0 = shufflevector <8 x float> %bin.rdx8, <8 x float> undef,<8 x i32> + %rdx.shuf.2.1 = shufflevector <8 x float> %bin.rdx8, <8 x float> undef,<8 x i32> + %bin.rdx9 = fadd <8 x float> %rdx.shuf.2.0, %rdx.shuf.2.1 + +; AVX: cost of 7 {{.*}} extractelement +; AVX2: cost of 7 {{.*}} extractelement + + %r = extractelement <8 x float> %bin.rdx9, i32 0 + ret float %r +} + +define fastcc i64 @pairwise_reduction2i64(<2 x i64> %rdx, i64 %f1) { + %rdx.shuf.1.0 = shufflevector <2 x i64> %rdx, <2 x i64> undef, <2 x i32> + %rdx.shuf.1.1 = shufflevector <2 x i64> %rdx, <2 x i64> undef, <2 x i32> + %bin.rdx8 = add <2 x i64> %rdx.shuf.1.0, %rdx.shuf.1.1 + +; SSE3: cost of 2 {{.*}} extractelement +; AVX: cost of 1 {{.*}} extractelement +; AVX2: cost of 1 {{.*}} extractelement + + %r = extractelement <2 x i64> %bin.rdx8, i32 0 + ret i64 %r +} + +define fastcc i32 @pairwise_reduction4i32(<4 x i32> %rdx, i32 %f1) { + %rdx.shuf.0.0 = shufflevector <4 x i32> %rdx, <4 x i32> undef, <4 x i32> + %rdx.shuf.0.1 = shufflevector <4 x i32> %rdx, <4 x i32> undef, <4 x i32> + %bin.rdx = add <4 x i32> %rdx.shuf.0.0, %rdx.shuf.0.1 + %rdx.shuf.1.0 = shufflevector <4 x i32> %bin.rdx, <4 x i32> undef, <4 x i32> + %rdx.shuf.1.1 = shufflevector <4 x i32> %bin.rdx, <4 x i32> undef, <4 x i32> + %bin.rdx8 = add <4 x i32> %rdx.shuf.1.0, %rdx.shuf.1.1 + +; SSE3: cost of 3 {{.*}} extractelement +; AVX: cost of 3 {{.*}} extractelement +; AVX2: cost of 3 {{.*}} extractelement + + %r = extractelement <4 x i32> %bin.rdx8, i32 0 + ret i32 %r +} + +define fastcc i64 @pairwise_reduction4i64(<4 x i64> %rdx, i64 %f1) { + %rdx.shuf.0.0 = shufflevector <4 x i64> %rdx, <4 x i64> undef, <4 x i32> + %rdx.shuf.0.1 = shufflevector <4 x i64> %rdx, <4 x i64> undef, <4 x i32> + %bin.rdx = add <4 x i64> %rdx.shuf.0.0, %rdx.shuf.0.1 + %rdx.shuf.1.0 = shufflevector <4 x i64> %bin.rdx, <4 x i64> undef, <4 x i32> + %rdx.shuf.1.1 = shufflevector <4 x i64> %bin.rdx, <4 x i64> undef, <4 x i32> + %bin.rdx8 = add <4 x i64> %rdx.shuf.1.0, %rdx.shuf.1.1 + +; AVX: cost of 5 {{.*}} extractelement +; AVX2: cost of 5 {{.*}} extractelement + + %r = extractelement <4 x i64> %bin.rdx8, i32 0 + ret i64 %r +} + +define fastcc i16 @pairwise_reduction8i16(<8 x i16> %rdx, i16 %f1) { + %rdx.shuf.0.0 = shufflevector <8 x i16> %rdx, <8 x i16> undef, <8 x i32> + %rdx.shuf.0.1 = shufflevector <8 x i16> %rdx, <8 x i16> undef, <8 x i32> + %bin.rdx = add <8 x i16> %rdx.shuf.0.0, %rdx.shuf.0.1 + %rdx.shuf.1.0 = shufflevector <8 x i16> %bin.rdx, <8 x i16> undef,<8 x i32> + %rdx.shuf.1.1 = shufflevector <8 x i16> %bin.rdx, <8 x i16> undef,<8 x i32> + %bin.rdx8 = add <8 x i16> %rdx.shuf.1.0, %rdx.shuf.1.1 + %rdx.shuf.2.0 = shufflevector <8 x i16> %bin.rdx8, <8 x i16> undef,<8 x i32> + %rdx.shuf.2.1 = shufflevector <8 x i16> %bin.rdx8, <8 x i16> undef,<8 x i32> + %bin.rdx9 = add <8 x i16> %rdx.shuf.2.0, %rdx.shuf.2.1 + +; SSE3: cost of 5 {{.*}} extractelement +; AVX: cost of 5 {{.*}} extractelement +; AVX2: cost of 5 {{.*}} extractelement + + %r = extractelement <8 x i16> %bin.rdx9, i32 0 + ret i16 %r +} + +define fastcc i32 @pairwise_reduction8i32(<8 x i32> %rdx, i32 %f1) { + %rdx.shuf.0.0 = shufflevector <8 x i32> %rdx, <8 x i32> undef, <8 x i32> + %rdx.shuf.0.1 = shufflevector <8 x i32> %rdx, <8 x i32> undef, <8 x i32> + %bin.rdx = add <8 x i32> %rdx.shuf.0.0, %rdx.shuf.0.1 + %rdx.shuf.1.0 = shufflevector <8 x i32> %bin.rdx, <8 x i32> undef,<8 x i32> + %rdx.shuf.1.1 = shufflevector <8 x i32> %bin.rdx, <8 x i32> undef,<8 x i32> + %bin.rdx8 = add <8 x i32> %rdx.shuf.1.0, %rdx.shuf.1.1 + %rdx.shuf.2.0 = shufflevector <8 x i32> %bin.rdx8, <8 x i32> undef,<8 x i32> + %rdx.shuf.2.1 = shufflevector <8 x i32> %bin.rdx8, <8 x i32> undef,<8 x i32> + %bin.rdx9 = add <8 x i32> %rdx.shuf.2.0, %rdx.shuf.2.1 + +; AVX: cost of 5 {{.*}} extractelement +; AVX2: cost of 5 {{.*}} extractelement + + %r = extractelement <8 x i32> %bin.rdx9, i32 0 + ret i32 %r +} diff --git a/test/Analysis/CostModel/lit.local.cfg b/test/Analysis/CostModel/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/CostModel/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/Delinearization/a.ll b/test/Analysis/Delinearization/a.ll new file mode 100644 index 0000000000000..9308749b2792e --- /dev/null +++ b/test/Analysis/Delinearization/a.ll @@ -0,0 +1,74 @@ +; RUN: opt < %s -analyze -delinearize | FileCheck %s +; +; void foo(long n, long m, long o, int A[n][m][o]) { +; for (long i = 0; i < n; i++) +; for (long j = 0; j < m; j++) +; for (long k = 0; k < o; k++) +; A[2*i+3][3*j-4][5*k+7] = 1; +; } + +; AddRec: {{{(28 + (4 * (-4 + (3 * %m)) * %o) + %A),+,(8 * %m * %o)}<%for.i>,+,(12 * %o)}<%for.j>,+,20}<%for.k> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][%m][%o] with elements of sizeof(i32) bytes. +; CHECK: ArrayRef[{3,+,2}<%for.i>][{-4,+,3}<%for.j>][{7,+,5}<%for.k>] + +; AddRec: {{(8 + ((4 + (12 * %m)) * %o) + %A),+,(8 * %m * %o)}<%for.i>,+,(12 * %o)}<%for.j> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][%o] with elements of sizeof(i32) bytes. +; CHECK: ArrayRef[{(1 + (3 * %m)),+,(2 * %m)}<%for.i>][{2,+,(3 * %o)}<%for.j>] + +; AddRec: {(8 + ((-8 + (24 * %m)) * %o) + %A),+,(8 * %m * %o)}<%for.i> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize] with elements of 2 bytes. +; CHECK: ArrayRef[{((1 + ((-1 + (3 * %m)) * %o)) * sizeof(i32)),+,(%m * %o * sizeof(i32))}<%for.i>] + +; Function Attrs: nounwind uwtable +define void @foo(i64 %n, i64 %m, i64 %o, i32* nocapture %A) #0 { +entry: + %cmp32 = icmp sgt i64 %n, 0 + br i1 %cmp32, label %for.cond1.preheader.lr.ph, label %for.end17 + +for.cond1.preheader.lr.ph: ; preds = %entry + %cmp230 = icmp sgt i64 %m, 0 + %cmp528 = icmp sgt i64 %o, 0 + br i1 %cmp230, label %for.i, label %for.end17 + +for.inc15.us: ; preds = %for.inc12.us.us, %for.i + %inc16.us = add nsw i64 %i.033.us, 1 + %exitcond55 = icmp eq i64 %inc16.us, %n + br i1 %exitcond55, label %for.end17, label %for.i + +for.i: ; preds = %for.cond1.preheader.lr.ph, %for.inc15.us + %i.033.us = phi i64 [ %inc16.us, %for.inc15.us ], [ 0, %for.cond1.preheader.lr.ph ] + %mul8.us = shl i64 %i.033.us, 1 + %add9.us = add nsw i64 %mul8.us, 3 + %0 = mul i64 %add9.us, %m + %sub.us = add i64 %0, -4 + br i1 %cmp528, label %for.j, label %for.inc15.us + +for.inc12.us.us: ; preds = %for.k + %inc13.us.us = add nsw i64 %j.031.us.us, 1 + %exitcond54 = icmp eq i64 %inc13.us.us, %m + br i1 %exitcond54, label %for.inc15.us, label %for.j + +for.j: ; preds = %for.i, %for.inc12.us.us + %j.031.us.us = phi i64 [ %inc13.us.us, %for.inc12.us.us ], [ 0, %for.i ] + %mul7.us.us = mul nsw i64 %j.031.us.us, 3 + %tmp.us.us = add i64 %sub.us, %mul7.us.us + %tmp27.us.us = mul i64 %tmp.us.us, %o + br label %for.k + +for.k: ; preds = %for.k, %for.j + %k.029.us.us = phi i64 [ 0, %for.j ], [ %inc.us.us, %for.k ] + %mul.us.us = mul nsw i64 %k.029.us.us, 5 + %arrayidx.sum.us.us = add i64 %mul.us.us, 7 + %arrayidx10.sum.us.us = add i64 %arrayidx.sum.us.us, %tmp27.us.us + %arrayidx11.us.us = getelementptr inbounds i32* %A, i64 %arrayidx10.sum.us.us + store i32 1, i32* %arrayidx11.us.us, align 4 + %inc.us.us = add nsw i64 %k.029.us.us, 1 + %exitcond = icmp eq i64 %inc.us.us, %o + br i1 %exitcond, label %for.inc12.us.us, label %for.k + +for.end17: ; preds = %for.inc15.us, %for.cond1.preheader.lr.ph, %entry + ret void +} diff --git a/test/Analysis/Delinearization/himeno_1.ll b/test/Analysis/Delinearization/himeno_1.ll new file mode 100644 index 0000000000000..9458bd2e52610 --- /dev/null +++ b/test/Analysis/Delinearization/himeno_1.ll @@ -0,0 +1,102 @@ +; RUN: opt < %s -analyze -delinearize | FileCheck %s + +; #define MR(mt,n,r,c,d) mt->m[(n) * mt->mrows * mt->mcols * mt->mdeps + (r) * mt->mcols* mt->mdeps + (c) * mt->mdeps + (d)] +; +; struct Mat { +; float* m; +; int mnums; +; int mrows; +; int mcols; +; int mdeps; +; }; +; +; typedef struct Mat Matrix; +; +; void jacobi(int nn, Matrix* a, Matrix* p) +; { +; long i, j, k, max,jmax,kmax; +; +; p_rows_sub = p->mrows - 1; +; p_cols_sub = p->mcols - 1; +; p_deps_sub = p->mdeps - 1; +; +; for(i = 1; i < p_rows_sub; i++) +; for(j = 1; j < p_cols_sub; j++) +; for(k = 1; k < p_deps_sub; k++) +; MR(a,0,i,j,k) = i + j + k; +; } + +; AddRec: {{{(4 + (4 * (sext i32 %a.deps to i64) * (1 + (sext i32 %a.cols to i64))) + %a.base),+,(4 * (sext i32 %a.deps to i64) * (sext i32 %a.cols to i64))}<%for.i>,+,(4 * (sext i32 %a.deps to i64))}<%for.j>,+,4}<%for.k> +; CHECK: Base offset: %a.base +; CHECK: ArrayDecl[UnknownSize][(sext i32 %a.cols to i64)][(sext i32 %a.deps to i64)] with elements of sizeof(float) bytes. +; CHECK: ArrayRef[{1,+,1}<%for.i>][{1,+,1}<%for.j>][{1,+,1}<%for.k>] + +; AddRec: {{(-4 + (4 * (sext i32 (-1 + %p.deps) to i64)) + (4 * (sext i32 %a.deps to i64) * (1 + (sext i32 %a.cols to i64))) + %a.base),+,(4 * (sext i32 %a.deps to i64) * (sext i32 %a.cols to i64))}<%for.i>,+,(4 * (sext i32 %a.deps to i64))}<%for.j> +; CHECK: Base offset: %a.base +; CHECK: ArrayDecl[UnknownSize][(sext i32 %a.deps to i64)] with elements of sizeof(float) bytes. +; CHECK: ArrayRef[{(1 + (sext i32 %a.cols to i64)),+,(sext i32 %a.cols to i64)}<%for.i>][{(-1 + (sext i32 (-1 + %p.deps) to i64)),+,(sext i32 %a.deps to i64)}<%for.j>] + +; AddRec: {(-4 + (4 * (sext i32 (-1 + %p.deps) to i64)) + ((sext i32 %a.deps to i64) * (-4 + (4 * (sext i32 (-1 + %p.cols) to i64)) + (4 * (sext i32 %a.cols to i64)))) + %a.base),+,(4 * (sext i32 %a.deps to i64) * (sext i32 %a.cols to i64))}<%for.i> +; CHECK: Base offset: %a.base +; CHECK: ArrayDecl[UnknownSize] with elements of sizeof(float) bytes. +; CHECK: ArrayRef[{(-1 + (sext i32 (-1 + %p.deps) to i64) + ((sext i32 %a.deps to i64) * (-1 + (sext i32 (-1 + %p.cols) to i64) + (sext i32 %a.cols to i64)))),+,((sext i32 %a.deps to i64) * (sext i32 %a.cols to i64))}<%for.i>] + +%struct.Mat = type { float*, i32, i32, i32, i32 } + +define void @jacobi(i32 %nn, %struct.Mat* nocapture %a, %struct.Mat* nocapture %p) nounwind uwtable { +entry: + %p.rows.ptr = getelementptr inbounds %struct.Mat* %p, i64 0, i32 2 + %p.rows = load i32* %p.rows.ptr + %p.rows.sub = add i32 %p.rows, -1 + %p.rows.sext = sext i32 %p.rows.sub to i64 + %p.cols.ptr = getelementptr inbounds %struct.Mat* %p, i64 0, i32 3 + %p.cols = load i32* %p.cols.ptr + %p.cols.sub = add i32 %p.cols, -1 + %p.cols.sext = sext i32 %p.cols.sub to i64 + %p.deps.ptr = getelementptr inbounds %struct.Mat* %p, i64 0, i32 4 + %p.deps = load i32* %p.deps.ptr + %p.deps.sub = add i32 %p.deps, -1 + %p.deps.sext = sext i32 %p.deps.sub to i64 + %a.cols.ptr = getelementptr inbounds %struct.Mat* %a, i64 0, i32 3 + %a.cols = load i32* %a.cols.ptr + %a.deps.ptr = getelementptr inbounds %struct.Mat* %a, i64 0, i32 4 + %a.deps = load i32* %a.deps.ptr + %a.base.ptr = getelementptr inbounds %struct.Mat* %a, i64 0, i32 0 + %a.base = load float** %a.base.ptr, align 8 + br label %for.i + +for.i: ; preds = %for.i.inc, %entry + %i = phi i64 [ %i.inc, %for.i.inc ], [ 1, %entry ] + br label %for.j + +for.j: ; preds = %for.j.inc, %for.i + %j = phi i64 [ %j.inc, %for.j.inc ], [ 1, %for.i ] + %a.cols.sext = sext i32 %a.cols to i64 + %a.deps.sext = sext i32 %a.deps to i64 + br label %for.k + +for.k: ; preds = %for.k, %for.j + %k = phi i64 [ 1, %for.j ], [ %k.inc, %for.k ] + %tmp1 = mul nsw i64 %a.cols.sext, %i + %tmp2 = add i64 %tmp1, %j + %tmp3 = mul i64 %tmp2, %a.deps.sext + %tmp4 = add nsw i64 %k, %tmp3 + %arrayidx = getelementptr inbounds float* %a.base, i64 %tmp4 + store float 1.000000e+00, float* %arrayidx + %k.inc = add nsw i64 %k, 1 + %k.exitcond = icmp eq i64 %k.inc, %p.deps.sext + br i1 %k.exitcond, label %for.j.inc, label %for.k + +for.j.inc: ; preds = %for.k + %j.inc = add nsw i64 %j, 1 + %j.exitcond = icmp eq i64 %j.inc, %p.cols.sext + br i1 %j.exitcond, label %for.i.inc, label %for.j + +for.i.inc: ; preds = %for.j.inc + %i.inc = add nsw i64 %i, 1 + %i.exitcond = icmp eq i64 %i.inc, %p.rows.sext + br i1 %i.exitcond, label %end, label %for.i + +end: ; preds = %for.i.inc + ret void +} diff --git a/test/Analysis/Delinearization/himeno_2.ll b/test/Analysis/Delinearization/himeno_2.ll new file mode 100644 index 0000000000000..a29006606fab9 --- /dev/null +++ b/test/Analysis/Delinearization/himeno_2.ll @@ -0,0 +1,102 @@ +; RUN: opt < %s -analyze -delinearize | FileCheck %s + +; #define MR(mt,n,r,c,d) mt->m[(n) * mt->mrows * mt->mcols * mt->mdeps + (r) * mt->mcols* mt->mdeps + (c) * mt->mdeps + (d)] +; +; struct Mat { +; float* m; +; int mnums; +; int mrows; +; int mcols; +; int mdeps; +; }; +; +; typedef struct Mat Matrix; +; +; void jacobi(int nn, Matrix* a, Matrix* p) +; { +; long i, j, k, max,jmax,kmax; +; +; p_rows_sub = p->mrows - 1; +; p_cols_sub = p->mcols - 1; +; p_deps_sub = p->mdeps - 1; +; +; for(i = 1; i < p_rows_sub; i++) +; for(j = 1; j < p_cols_sub; j++) +; for(k = 1; k < p_deps_sub; k++) +; MR(a,0,i,j,k) = i + j + k; +; } + +; AddRec: {{{(4 + (4 * (sext i32 %a.deps to i64) * (1 + (sext i32 %a.cols to i64))) + %a.base),+,(4 * (sext i32 %a.deps to i64) * (sext i32 %a.cols to i64))}<%for.i>,+,(4 * (sext i32 %a.deps to i64))}<%for.j>,+,4}<%for.k> +; CHECK: Base offset: %a.base +; CHECK: ArrayDecl[UnknownSize][(sext i32 %a.cols to i64)][(sext i32 %a.deps to i64)] with elements of sizeof(float) bytes. +; CHECK: ArrayRef[{1,+,1}<%for.i>][{1,+,1}<%for.j>][{1,+,1}<%for.k>] + +; AddRec: {{(-4 + (4 * (sext i32 (-1 + %p.deps) to i64)) + (4 * (sext i32 %a.deps to i64) * (1 + (sext i32 %a.cols to i64))) + %a.base),+,(4 * (sext i32 %a.deps to i64) * (sext i32 %a.cols to i64))}<%for.i>,+,(4 * (sext i32 %a.deps to i64))}<%for.j> +; CHECK: Base offset: %a.base +; CHECK: ArrayDecl[UnknownSize][(sext i32 %a.deps to i64)] with elements of sizeof(float) bytes. +; CHECK: ArrayRef[{(1 + (sext i32 %a.cols to i64)),+,(sext i32 %a.cols to i64)}<%for.i>][{(-1 + (sext i32 (-1 + %p.deps) to i64)),+,(sext i32 %a.deps to i64)}<%for.j>] + +; AddRec: {(-4 + (4 * (sext i32 (-1 + %p.deps) to i64)) + ((sext i32 %a.deps to i64) * (-4 + (4 * (sext i32 (-1 + %p.cols) to i64)) + (4 * (sext i32 %a.cols to i64)))) + %a.base),+,(4 * (sext i32 %a.deps to i64) * (sext i32 %a.cols to i64))}<%for.i> +; CHECK: Base offset: %a.base +; CHECK: ArrayDecl[UnknownSize] with elements of sizeof(float) bytes. +; CHECK: ArrayRef[{(-1 + (sext i32 (-1 + %p.deps) to i64) + ((sext i32 %a.deps to i64) * (-1 + (sext i32 (-1 + %p.cols) to i64) + (sext i32 %a.cols to i64)))),+,((sext i32 %a.deps to i64) * (sext i32 %a.cols to i64))}<%for.i>] + +%struct.Mat = type { float*, i32, i32, i32, i32 } + +define void @jacobi(i32 %nn, %struct.Mat* nocapture %a, %struct.Mat* nocapture %p) nounwind uwtable { +entry: + %p.rows.ptr = getelementptr inbounds %struct.Mat* %p, i64 0, i32 2 + %p.rows = load i32* %p.rows.ptr + %p.rows.sub = add i32 %p.rows, -1 + %p.rows.sext = sext i32 %p.rows.sub to i64 + %p.cols.ptr = getelementptr inbounds %struct.Mat* %p, i64 0, i32 3 + %p.cols = load i32* %p.cols.ptr + %p.cols.sub = add i32 %p.cols, -1 + %p.cols.sext = sext i32 %p.cols.sub to i64 + %p.deps.ptr = getelementptr inbounds %struct.Mat* %p, i64 0, i32 4 + %p.deps = load i32* %p.deps.ptr + %p.deps.sub = add i32 %p.deps, -1 + %p.deps.sext = sext i32 %p.deps.sub to i64 + %a.cols.ptr = getelementptr inbounds %struct.Mat* %a, i64 0, i32 3 + %a.cols = load i32* %a.cols.ptr + %a.cols.sext = sext i32 %a.cols to i64 + %a.deps.ptr = getelementptr inbounds %struct.Mat* %a, i64 0, i32 4 + %a.deps = load i32* %a.deps.ptr + %a.deps.sext = sext i32 %a.deps to i64 + %a.base.ptr = getelementptr inbounds %struct.Mat* %a, i64 0, i32 0 + %a.base = load float** %a.base.ptr, align 8 + br label %for.i + +for.i: ; preds = %for.i.inc, %entry + %i = phi i64 [ %i.inc, %for.i.inc ], [ 1, %entry ] + br label %for.j + +for.j: ; preds = %for.j.inc, %for.i + %j = phi i64 [ %j.inc, %for.j.inc ], [ 1, %for.i ] + br label %for.k + +for.k: ; preds = %for.k, %for.j + %k = phi i64 [ 1, %for.j ], [ %k.inc, %for.k ] + %tmp1 = mul nsw i64 %a.cols.sext, %i + %tmp2 = add i64 %tmp1, %j + %tmp3 = mul i64 %tmp2, %a.deps.sext + %tmp4 = add nsw i64 %k, %tmp3 + %arrayidx = getelementptr inbounds float* %a.base, i64 %tmp4 + store float 1.000000e+00, float* %arrayidx + %k.inc = add nsw i64 %k, 1 + %k.exitcond = icmp eq i64 %k.inc, %p.deps.sext + br i1 %k.exitcond, label %for.j.inc, label %for.k + +for.j.inc: ; preds = %for.k + %j.inc = add nsw i64 %j, 1 + %j.exitcond = icmp eq i64 %j.inc, %p.cols.sext + br i1 %j.exitcond, label %for.i.inc, label %for.j + +for.i.inc: ; preds = %for.j.inc + %i.inc = add nsw i64 %i, 1 + %i.exitcond = icmp eq i64 %i.inc, %p.rows.sext + br i1 %i.exitcond, label %end, label %for.i + +end: ; preds = %for.i.inc + ret void +} diff --git a/test/Analysis/Delinearization/lit.local.cfg b/test/Analysis/Delinearization/lit.local.cfg new file mode 100644 index 0000000000000..19eebc0ac7ac3 --- /dev/null +++ b/test/Analysis/Delinearization/lit.local.cfg @@ -0,0 +1 @@ +config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_3d.ll b/test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_3d.ll new file mode 100644 index 0000000000000..82cab167c74f7 --- /dev/null +++ b/test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_3d.ll @@ -0,0 +1,68 @@ +; RUN: opt < %s -analyze -delinearize | FileCheck %s + +; void foo(long n, long m, long o, double A[n][m][o]) { +; +; for (long i = 0; i < n; i++) +; for (long j = 0; j < m; j++) +; for (long k = 0; k < o; k++) +; A[i+3][j-4][k+7] = 1.0; +; } + +; AddRec: {{{(56 + (8 * (-4 + (3 * %m)) * %o) + %A),+,(8 * %m * %o)}<%for.i>,+,(8 * %o)}<%for.j>,+,8}<%for.k> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][%m][%o] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{3,+,1}<%for.i>][{-4,+,1}<%for.j>][{7,+,1}<%for.k>] + +; AddRec: {{(48 + ((-24 + (24 * %m)) * %o) + %A),+,(8 * %m * %o)}<%for.i>,+,(8 * %o)}<%for.j> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][%o] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{(-3 + (3 * %m)),+,%m}<%for.i>][{6,+,%o}<%for.j>] + +; AddRec: {(48 + ((-32 + (32 * %m)) * %o) + %A),+,(8 * %m * %o)}<%for.i> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{(6 + ((-4 + (4 * %m)) * %o)),+,(%m * %o)}<%for.i>] + +define void @foo(i64 %n, i64 %m, i64 %o, double* %A) { +entry: + br label %for.i + +for.i: + %i = phi i64 [ 0, %entry ], [ %i.inc, %for.i.inc ] + br label %for.j + +for.j: + %j = phi i64 [ 0, %for.i ], [ %j.inc, %for.j.inc ] + br label %for.k + +for.k: + %k = phi i64 [ 0, %for.j ], [ %k.inc, %for.k.inc ] + %offset0 = add nsw i64 %i, 3 + %subscript0 = mul i64 %offset0, %m + %offset1 = add nsw i64 %j, -4 + %subscript1 = add i64 %offset1, %subscript0 + %subscript2 = mul i64 %subscript1, %o + %offset2 = add nsw i64 %k, 7 + %subscript = add i64 %subscript2, %offset2 + %idx = getelementptr inbounds double* %A, i64 %subscript + store double 1.0, double* %idx + br label %for.k.inc + +for.k.inc: + %k.inc = add nsw i64 %k, 1 + %k.exitcond = icmp eq i64 %k.inc, %o + br i1 %k.exitcond, label %for.j.inc, label %for.k + +for.j.inc: + %j.inc = add nsw i64 %j, 1 + %j.exitcond = icmp eq i64 %j.inc, %m + br i1 %j.exitcond, label %for.i.inc, label %for.j + +for.i.inc: + %i.inc = add nsw i64 %i, 1 + %i.exitcond = icmp eq i64 %i.inc, %n + br i1 %i.exitcond, label %end, label %for.i + +end: + ret void +} diff --git a/test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_nts_3d.ll b/test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_nts_3d.ll new file mode 100644 index 0000000000000..a1e779fff6c9f --- /dev/null +++ b/test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_nts_3d.ll @@ -0,0 +1,72 @@ +; RUN: opt < %s -analyze -delinearize | FileCheck %s + +; void foo(long n, long m, long o, long p, double A[n][m][o+p]) { +; +; for (long i = 0; i < n; i++) +; for (long j = 0; j < m; j++) +; for (long k = 0; k < o; k++) +; A[i+3][j-4][k+7] = 1.0; +; } + +; AddRec: {{{(56 + (8 * (-4 + (3 * %m)) * (%o + %p)) + %A),+,(8 * (%o + %p) * %m)}<%for.cond4.preheader.lr.ph.us>,+,(8 * (%o + %p))}<%for.body6.lr.ph.us.us>,+,8}<%for.body6.us.us> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][%m][(%o + %p)] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{3,+,1}<%for.cond4.preheader.lr.ph.us>][{-4,+,1}<%for.body6.lr.ph.us.us>][{7,+,1}<%for.body6.us.us>] + +; AddRec: {{(48 + (8 * %o) + (8 * (-4 + (3 * %m)) * (%o + %p)) + %A),+,(8 * (%o + %p) * %m)}<%for.cond4.preheader.lr.ph.us>,+,(8 * (%o + %p))}<%for.body6.lr.ph.us.us> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][(%o + %p)] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{(-4 + (3 * %m)),+,%m}<%for.cond4.preheader.lr.ph.us>][{(6 + %o),+,(%o + %p)}<%for.body6.lr.ph.us.us>] + +; AddRec: {(48 + (8 * %o) + ((-40 + (32 * %m)) * (%o + %p)) + %A),+,(8 * (%o + %p) * %m)}<%for.cond4.preheader.lr.ph.us> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{(6 + ((-5 + (4 * %m)) * (%o + %p)) + %o),+,((%o + %p) * %m)}<%for.cond4.preheader.lr.ph.us>] + +define void @foo(i64 %n, i64 %m, i64 %o, i64 %p, double* nocapture %A) nounwind uwtable { +entry: + %add = add nsw i64 %p, %o + %cmp22 = icmp sgt i64 %n, 0 + br i1 %cmp22, label %for.cond1.preheader.lr.ph, label %for.end16 + +for.cond1.preheader.lr.ph: ; preds = %entry + %cmp220 = icmp sgt i64 %m, 0 + %cmp518 = icmp sgt i64 %o, 0 + br i1 %cmp220, label %for.cond4.preheader.lr.ph.us, label %for.end16 + +for.inc14.us: ; preds = %for.cond4.preheader.lr.ph.us, %for.inc11.us.us + %inc15.us = add nsw i64 %i.023.us, 1 + %exitcond43 = icmp eq i64 %inc15.us, %n + br i1 %exitcond43, label %for.end16, label %for.cond4.preheader.lr.ph.us + +for.cond4.preheader.lr.ph.us: ; preds = %for.inc14.us, %for.cond1.preheader.lr.ph + %i.023.us = phi i64 [ %inc15.us, %for.inc14.us ], [ 0, %for.cond1.preheader.lr.ph ] + %add8.us = add nsw i64 %i.023.us, 3 + %0 = mul i64 %add8.us, %m + %sub.us = add i64 %0, -4 + br i1 %cmp518, label %for.body6.lr.ph.us.us, label %for.inc14.us + +for.inc11.us.us: ; preds = %for.body6.us.us + %inc12.us.us = add nsw i64 %j.021.us.us, 1 + %exitcond42 = icmp eq i64 %inc12.us.us, %m + br i1 %exitcond42, label %for.inc14.us, label %for.body6.lr.ph.us.us + +for.body6.lr.ph.us.us: ; preds = %for.cond4.preheader.lr.ph.us, %for.inc11.us.us + %j.021.us.us = phi i64 [ %inc12.us.us, %for.inc11.us.us ], [ 0, %for.cond4.preheader.lr.ph.us ] + %tmp.us.us = add i64 %sub.us, %j.021.us.us + %tmp17.us.us = mul i64 %tmp.us.us, %add + br label %for.body6.us.us + +for.body6.us.us: ; preds = %for.body6.us.us, %for.body6.lr.ph.us.us + %k.019.us.us = phi i64 [ 0, %for.body6.lr.ph.us.us ], [ %inc.us.us, %for.body6.us.us ] + %arrayidx.sum.us.us = add i64 %k.019.us.us, 7 + %arrayidx9.sum.us.us = add i64 %arrayidx.sum.us.us, %tmp17.us.us + %arrayidx10.us.us = getelementptr inbounds double* %A, i64 %arrayidx9.sum.us.us + store double 1.000000e+00, double* %arrayidx10.us.us, align 8 + %inc.us.us = add nsw i64 %k.019.us.us, 1 + %exitcond = icmp eq i64 %inc.us.us, %o + br i1 %exitcond, label %for.inc11.us.us, label %for.body6.us.us + +for.end16: ; preds = %for.cond1.preheader.lr.ph, %for.inc14.us, %entry + ret void +} diff --git a/test/Analysis/Delinearization/multidim_ivs_and_parameteric_offsets_3d.ll b/test/Analysis/Delinearization/multidim_ivs_and_parameteric_offsets_3d.ll new file mode 100644 index 0000000000000..a52a4c93ce23f --- /dev/null +++ b/test/Analysis/Delinearization/multidim_ivs_and_parameteric_offsets_3d.ll @@ -0,0 +1,68 @@ +; RUN: opt < %s -analyze -delinearize | FileCheck %s + +; void foo(long n, long m, long o, double A[n][m][o], long p, long q, long r) { +; +; for (long i = 0; i < n; i++) +; for (long j = 0; j < m; j++) +; for (long k = 0; k < o; k++) +; A[i+p][j+q][k+r] = 1.0; +; } + +; AddRec: {{{((8 * ((((%m * %p) + %q) * %o) + %r)) + %A),+,(8 * %m * %o)}<%for.i>,+,(8 * %o)}<%for.j>,+,8}<%for.k> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][%m][%o] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{%p,+,1}<%for.i>][{%q,+,1}<%for.j>][{%r,+,1}<%for.k>] + +; AddRec: {{(-8 + (8 * ((((%m * %p) + %q) * %o) + %r)) + (8 * %o) + %A),+,(8 * %m * %o)}<%for.i>,+,(8 * %o)}<%for.j> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][%o] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{(1 + (%m * %p) + %q),+,%m}<%for.i>][{(-1 + %r),+,%o}<%for.j>] + +; AddRec: {(-8 + (8 * ((((%m * %p) + %q) * %o) + %r)) + (8 * %m * %o) + %A),+,(8 * %m * %o)}<%for.i> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{(-1 + ((((1 + %p) * %m) + %q) * %o) + %r),+,(%m * %o)}<%for.i>] + +define void @foo(i64 %n, i64 %m, i64 %o, double* %A, i64 %p, i64 %q, i64 %r) { +entry: + br label %for.i + +for.i: + %i = phi i64 [ 0, %entry ], [ %i.inc, %for.i.inc ] + br label %for.j + +for.j: + %j = phi i64 [ 0, %for.i ], [ %j.inc, %for.j.inc ] + br label %for.k + +for.k: + %k = phi i64 [ 0, %for.j ], [ %k.inc, %for.k.inc ] + %offset0 = add nsw i64 %i, %p + %subscript0 = mul i64 %offset0, %m + %offset1 = add nsw i64 %j, %q + %subscript1 = add i64 %offset1, %subscript0 + %subscript2 = mul i64 %subscript1, %o + %offset2 = add nsw i64 %k, %r + %subscript = add i64 %subscript2, %offset2 + %idx = getelementptr inbounds double* %A, i64 %subscript + store double 1.0, double* %idx + br label %for.k.inc + +for.k.inc: + %k.inc = add nsw i64 %k, 1 + %k.exitcond = icmp eq i64 %k.inc, %o + br i1 %k.exitcond, label %for.j.inc, label %for.k + +for.j.inc: + %j.inc = add nsw i64 %j, 1 + %j.exitcond = icmp eq i64 %j.inc, %m + br i1 %j.exitcond, label %for.i.inc, label %for.j + +for.i.inc: + %i.inc = add nsw i64 %i, 1 + %i.exitcond = icmp eq i64 %i.inc, %n + br i1 %i.exitcond, label %end, label %for.i + +end: + ret void +} diff --git a/test/Analysis/Delinearization/multidim_only_ivs_2d.ll b/test/Analysis/Delinearization/multidim_only_ivs_2d.ll new file mode 100644 index 0000000000000..d68a15883942e --- /dev/null +++ b/test/Analysis/Delinearization/multidim_only_ivs_2d.ll @@ -0,0 +1,46 @@ +; RUN: opt < %s -analyze -delinearize | FileCheck %s + +; Derived from the following code: +; +; void foo(long n, long m, double A[n][m]) { +; for (long i = 0; i < n; i++) +; for (long j = 0; j < m; j++) +; A[i][j] = 1.0; +; } + +; AddRec: {{%A,+,(8 * %m)}<%for.i>,+,8}<%for.j> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][%m] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{0,+,1}<%for.i>][{0,+,1}<%for.j>] + +; AddRec: {(-8 + (8 * %m) + %A),+,(8 * %m)}<%for.i> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{(-1 + %m),+,%m}<%for.i>] + +define void @foo(i64 %n, i64 %m, double* %A) { +entry: + br label %for.i + +for.i: + %i = phi i64 [ 0, %entry ], [ %i.inc, %for.i.inc ] + %tmp = mul nsw i64 %i, %m + br label %for.j + +for.j: + %j = phi i64 [ 0, %for.i ], [ %j.inc, %for.j ] + %vlaarrayidx.sum = add i64 %j, %tmp + %arrayidx = getelementptr inbounds double* %A, i64 %vlaarrayidx.sum + store double 1.0, double* %arrayidx + %j.inc = add nsw i64 %j, 1 + %j.exitcond = icmp eq i64 %j.inc, %m + br i1 %j.exitcond, label %for.i.inc, label %for.j + +for.i.inc: + %i.inc = add nsw i64 %i, 1 + %i.exitcond = icmp eq i64 %i.inc, %n + br i1 %i.exitcond, label %end, label %for.i + +end: + ret void +} diff --git a/test/Analysis/Delinearization/multidim_only_ivs_2d_nested.ll b/test/Analysis/Delinearization/multidim_only_ivs_2d_nested.ll new file mode 100644 index 0000000000000..7207420205aad --- /dev/null +++ b/test/Analysis/Delinearization/multidim_only_ivs_2d_nested.ll @@ -0,0 +1,78 @@ +; RUN: opt < %s -analyze -delinearize | FileCheck %s + +; extern void bar(long n, long m, double A[n][m]); +; +; void foo(long a, long b) { +; for (long n = 1; n < a; ++n) +; for (long m = 1; m < b; ++m) { +; double A[n][m]; +; for (long i = 0; i < n; i++) +; for (long j = 0; j < m; j++) +; A[i][j] = 1.0; +; bar(n, m, A); +; } +; } + +; AddRec: {{%vla.us,+,{8,+,8}<%for.cond7.preheader.lr.ph.split.us.us>}<%for.body9.lr.ph.us.us>,+,8}<%for.body9.us.us> +; CHECK: Base offset: %vla.us +; CHECK: ArrayDecl[UnknownSize][{1,+,1}<%for.cond7.preheader.lr.ph.split.us.us>] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{0,+,1}<%for.body9.lr.ph.us.us>][{0,+,1}<%for.body9.us.us>] + +define void @foo(i64 %a, i64 %b) nounwind uwtable { +entry: + %cmp43 = icmp sgt i64 %a, 1 + br i1 %cmp43, label %for.cond1.preheader.lr.ph, label %for.end19 + +for.cond1.preheader.lr.ph: ; preds = %entry + %cmp224 = icmp sgt i64 %b, 1 + br label %for.cond1.preheader + +for.cond1.preheader: ; preds = %for.inc17, %for.cond1.preheader.lr.ph + %indvars.iv51 = phi i64 [ 1, %for.cond1.preheader.lr.ph ], [ %indvars.iv.next52, %for.inc17 ] + br i1 %cmp224, label %for.cond7.preheader.lr.ph.split.us.us, label %for.inc17 + +for.end13.us: ; preds = %for.inc11.us.us + call void @bar(i64 %indvars.iv51, i64 %indvars.iv48, double* %vla.us) nounwind + call void @llvm.stackrestore(i8* %1) + %indvars.iv.next49 = add i64 %indvars.iv48, 1 + %exitcond54 = icmp eq i64 %indvars.iv.next49, %b + br i1 %exitcond54, label %for.inc17, label %for.cond7.preheader.lr.ph.split.us.us + +for.inc11.us.us: ; preds = %for.body9.us.us + %inc12.us.us = add nsw i64 %i.023.us.us, 1 + %exitcond53 = icmp eq i64 %inc12.us.us, %indvars.iv51 + br i1 %exitcond53, label %for.end13.us, label %for.body9.lr.ph.us.us + +for.body9.lr.ph.us.us: ; preds = %for.cond7.preheader.lr.ph.split.us.us, %for.inc11.us.us + %i.023.us.us = phi i64 [ 0, %for.cond7.preheader.lr.ph.split.us.us ], [ %inc12.us.us, %for.inc11.us.us ] + %0 = mul nsw i64 %i.023.us.us, %indvars.iv48 + br label %for.body9.us.us + +for.body9.us.us: ; preds = %for.body9.us.us, %for.body9.lr.ph.us.us + %j.021.us.us = phi i64 [ 0, %for.body9.lr.ph.us.us ], [ %inc.us.us, %for.body9.us.us ] + %arrayidx.sum.us.us = add i64 %j.021.us.us, %0 + %arrayidx10.us.us = getelementptr inbounds double* %vla.us, i64 %arrayidx.sum.us.us + store double 1.000000e+00, double* %arrayidx10.us.us, align 8 + %inc.us.us = add nsw i64 %j.021.us.us, 1 + %exitcond50 = icmp eq i64 %inc.us.us, %indvars.iv48 + br i1 %exitcond50, label %for.inc11.us.us, label %for.body9.us.us + +for.cond7.preheader.lr.ph.split.us.us: ; preds = %for.cond1.preheader, %for.end13.us + %indvars.iv48 = phi i64 [ %indvars.iv.next49, %for.end13.us ], [ 1, %for.cond1.preheader ] + %1 = call i8* @llvm.stacksave() + %2 = mul nuw i64 %indvars.iv48, %indvars.iv51 + %vla.us = alloca double, i64 %2, align 16 + br label %for.body9.lr.ph.us.us + +for.inc17: ; preds = %for.end13.us, %for.cond1.preheader + %indvars.iv.next52 = add i64 %indvars.iv51, 1 + %exitcond55 = icmp eq i64 %indvars.iv.next52, %a + br i1 %exitcond55, label %for.end19, label %for.cond1.preheader + +for.end19: ; preds = %for.inc17, %entry + ret void +} + +declare i8* @llvm.stacksave() nounwind +declare void @bar(i64, i64, double*) +declare void @llvm.stackrestore(i8*) nounwind diff --git a/test/Analysis/Delinearization/multidim_only_ivs_3d.ll b/test/Analysis/Delinearization/multidim_only_ivs_3d.ll new file mode 100644 index 0000000000000..24f95837c8607 --- /dev/null +++ b/test/Analysis/Delinearization/multidim_only_ivs_3d.ll @@ -0,0 +1,65 @@ +; RUN: opt < %s -analyze -delinearize | FileCheck %s + +; void foo(long n, long m, long o, double A[n][m][o]) { +; +; for (long i = 0; i < n; i++) +; for (long j = 0; j < m; j++) +; for (long k = 0; k < o; k++) +; A[i][j][k] = 1.0; +; } + +; AddRec: {{{%A,+,(8 * %m * %o)}<%for.i>,+,(8 * %o)}<%for.j>,+,8}<%for.k> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][%m][%o] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{0,+,1}<%for.i>][{0,+,1}<%for.j>][{0,+,1}<%for.k>] + +; AddRec: {{(-8 + (8 * %o) + %A),+,(8 * %m * %o)}<%for.i>,+,(8 * %o)}<%for.j> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][(%m * %o)] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{0,+,1}<%for.i>][{(-1 + %o),+,%o}<%for.j>] + +; AddRec: {(-8 + (8 * %m * %o) + %A),+,(8 * %m * %o)}<%for.i> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize] with elements of sizeof(double) bytes. +; CHECK: ArrayRef[{(-1 + (%m * %o)),+,(%m * %o)}<%for.i>] + +define void @foo(i64 %n, i64 %m, i64 %o, double* %A) { +entry: + br label %for.i + +for.i: + %i = phi i64 [ 0, %entry ], [ %i.inc, %for.i.inc ] + br label %for.j + +for.j: + %j = phi i64 [ 0, %for.i ], [ %j.inc, %for.j.inc ] + br label %for.k + +for.k: + %k = phi i64 [ 0, %for.j ], [ %k.inc, %for.k.inc ] + %subscript0 = mul i64 %i, %m + %subscript1 = add i64 %j, %subscript0 + %subscript2 = mul i64 %subscript1, %o + %subscript = add i64 %subscript2, %k + %idx = getelementptr inbounds double* %A, i64 %subscript + store double 1.0, double* %idx + br label %for.k.inc + +for.k.inc: + %k.inc = add nsw i64 %k, 1 + %k.exitcond = icmp eq i64 %k.inc, %o + br i1 %k.exitcond, label %for.j.inc, label %for.k + +for.j.inc: + %j.inc = add nsw i64 %j, 1 + %j.exitcond = icmp eq i64 %j.inc, %m + br i1 %j.exitcond, label %for.i.inc, label %for.j + +for.i.inc: + %i.inc = add nsw i64 %i, 1 + %i.exitcond = icmp eq i64 %i.inc, %n + br i1 %i.exitcond, label %end, label %for.i + +end: + ret void +} diff --git a/test/Analysis/Delinearization/multidim_only_ivs_3d_cast.ll b/test/Analysis/Delinearization/multidim_only_ivs_3d_cast.ll new file mode 100644 index 0000000000000..e1516104ddfcb --- /dev/null +++ b/test/Analysis/Delinearization/multidim_only_ivs_3d_cast.ll @@ -0,0 +1,75 @@ +; RUN: opt < %s -analyze -delinearize | FileCheck %s +; void foo(int n, int m, int o, double A[n][m][o]) { +; +; for (int i = 0; i < n; i++) +; for (int j = 0; j < m; j++) +; for (int k = 0; k < o; k++) +; A[i][j][k] = 1.0; +; } + +; AddRec: {{{%A,+,(8 * (zext i32 %m to i64) * (zext i32 %o to i64))}<%for.i>,+,(8 * (zext i32 %o to i64))}<%for.j>,+,8}<%for.k> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][(zext i32 %m to i64)][(zext i32 %o to i64)] with elements of 8 bytes. +; CHECK: ArrayRef[{0,+,1}<%for.i>][{0,+,1}<%for.j>][{0,+,1}<%for.k>] + +; AddRec: {{((8 * (zext i32 (-1 + %o) to i64)) + %A),+,(8 * (zext i32 %m to i64) * (zext i32 %o to i64))}<%for.i>,+,(8 * (zext i32 %o to i64))}<%for.j> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize][((zext i32 %m to i64) * (zext i32 %o to i64))] with elements of 8 bytes. +; CHECK: ArrayRef[{0,+,1}<%for.i>][{(zext i32 (-1 + %o) to i64),+,(zext i32 %o to i64)}<%for.j>] + +; AddRec: {((8 * (zext i32 (-1 + %o) to i64)) + (8 * (zext i32 (-1 + %m) to i64) * (zext i32 %o to i64)) + %A),+,(8 * (zext i32 %m to i64) * (zext i32 %o to i64))}<%for.i> +; CHECK: Base offset: %A +; CHECK: ArrayDecl[UnknownSize] with elements of 8 bytes. +; CHECK: ArrayRef[{((zext i32 (-1 + %o) to i64) + ((zext i32 (-1 + %m) to i64) * (zext i32 %o to i64))),+,((zext i32 %m to i64) * (zext i32 %o to i64))}<%for.i>] + +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +define void @foo(i32 %n, i32 %m, i32 %o, double* %A) { +entry: + %m_zext = zext i32 %m to i64 + %n_zext = zext i32 %o to i64 + br label %for.i + +for.i: + %i = phi i64 [ %i.inc, %for.i.inc ], [ 0, %entry ] + br label %for.j + +for.j: + %j = phi i64 [ %j.inc, %for.j.inc ], [ 0, %for.i ] + br label %for.k + +for.k: + %k = phi i64 [ %k.inc, %for.k.inc ], [ 0, %for.j ] + %tmp = mul i64 %i, %m_zext + %tmp1 = trunc i64 %j to i32 + %tmp2 = trunc i64 %i to i32 + %mul.us.us = mul nsw i32 %tmp1, %tmp2 + %tmp.us.us = add i64 %j, %tmp + %tmp17.us.us = mul i64 %tmp.us.us, %n_zext + %subscript = add i64 %tmp17.us.us, %k + %idx = getelementptr inbounds double* %A, i64 %subscript + store double 1.0, double* %idx + br label %for.k.inc + +for.k.inc: + %k.inc = add i64 %k, 1 + %k.inc.trunc = trunc i64 %k.inc to i32 + %k.exitcond = icmp eq i32 %k.inc.trunc, %o + br i1 %k.exitcond, label %for.j.inc, label %for.k + +for.j.inc: + %j.inc = add i64 %j, 1 + %j.inc.trunc = trunc i64 %j.inc to i32 + %j.exitcond = icmp eq i32 %j.inc.trunc, %m + br i1 %j.exitcond, label %for.i.inc, label %for.j + +for.i.inc: + %i.inc = add i64 %i, 1 + %i.inc.trunc = trunc i64 %i.inc to i32 + %i.exitcond = icmp eq i32 %i.inc.trunc, %n + br i1 %i.exitcond, label %end, label %for.i + +end: + ret void +} diff --git a/test/Analysis/DependenceAnalysis/Banerjee.ll b/test/Analysis/DependenceAnalysis/Banerjee.ll index 003ee03ab0be1..09e8fd29dcc42 100644 --- a/test/Analysis/DependenceAnalysis/Banerjee.ll +++ b/test/Analysis/DependenceAnalysis/Banerjee.ll @@ -13,7 +13,7 @@ target triple = "x86_64-apple-macosx10.6.0" define void @banerjee0(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader - +; CHECK: 'Dependence Analysis' for function 'banerjee0': ; CHECK: da analyze - none! ; CHECK: da analyze - flow [<= <>]! ; CHECK: da analyze - confused! @@ -65,6 +65,7 @@ entry: %cmp4 = icmp sgt i64 %n, 0 br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end9 +; CHECK: 'Dependence Analysis' for function 'banerjee1': ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - flow [* <>]! ; CHECK: da analyze - confused! @@ -131,6 +132,7 @@ define void @banerjee2(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee2': ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -181,6 +183,7 @@ define void @banerjee3(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee3': ; CHECK: da analyze - none! ; CHECK: da analyze - flow [> >]! ; CHECK: da analyze - confused! @@ -231,6 +234,7 @@ define void @banerjee4(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee4': ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -281,6 +285,7 @@ define void @banerjee5(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee5': ; CHECK: da analyze - none! ; CHECK: da analyze - flow [< <]! ; CHECK: da analyze - confused! @@ -331,6 +336,7 @@ define void @banerjee6(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee6': ; CHECK: da analyze - none! ; CHECK: da analyze - flow [=> <>]! ; CHECK: da analyze - confused! @@ -381,6 +387,7 @@ define void @banerjee7(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee7': ; CHECK: da analyze - none! ; CHECK: da analyze - flow [> <=]! ; CHECK: da analyze - confused! @@ -431,6 +438,7 @@ define void @banerjee8(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee8': ; CHECK: da analyze - none! ; CHECK: da analyze - flow [> <>]! ; CHECK: da analyze - confused! @@ -481,6 +489,7 @@ define void @banerjee9(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee9': ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - flow [<= =|<]! ; CHECK: da analyze - confused! @@ -532,6 +541,7 @@ define void @banerjee10(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee10': ; CHECK: da analyze - none! ; CHECK: da analyze - flow [<> =]! ; CHECK: da analyze - confused! @@ -582,6 +592,7 @@ define void @banerjee11(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee11': ; CHECK: da analyze - none! ; CHECK: da analyze - flow [<= <>]! ; CHECK: da analyze - confused! @@ -632,6 +643,7 @@ define void @banerjee12(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'banerjee12': ; CHECK: da analyze - none! ; CHECK: da analyze - flow [= <>]! ; CHECK: da analyze - confused! diff --git a/test/Analysis/DependenceAnalysis/GCD.ll b/test/Analysis/DependenceAnalysis/GCD.ll index a42212464f866..bb31d118857d6 100644 --- a/test/Analysis/DependenceAnalysis/GCD.ll +++ b/test/Analysis/DependenceAnalysis/GCD.ll @@ -14,6 +14,7 @@ define void @gcd0(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'gcd0' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - flow [=> *|<]! ; CHECK: da analyze - confused! @@ -66,6 +67,7 @@ define void @gcd1(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'gcd1' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -119,6 +121,7 @@ define void @gcd2(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'gcd2' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -172,6 +175,7 @@ define void @gcd3(i32* %A, i32* %B) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'gcd3' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - flow [<> *]! ; CHECK: da analyze - confused! @@ -223,6 +227,7 @@ define void @gcd4(i32* %A, i32* %B, i64 %M, i64 %N) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'gcd4' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -284,6 +289,7 @@ define void @gcd5(i32* %A, i32* %B, i64 %M, i64 %N) nounwind uwtable ssp { entry: br label %for.cond1.preheader +; CHECK: 'Dependence Analysis' for function 'gcd5' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - flow [<> *]! ; CHECK: da analyze - confused! @@ -346,6 +352,7 @@ entry: %cmp4 = icmp sgt i64 %n, 0 br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end12 +; CHECK: 'Dependence Analysis' for function 'gcd6' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -417,6 +424,7 @@ entry: %cmp4 = icmp sgt i32 %n, 0 br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end15 +; CHECK: 'Dependence Analysis' for function 'gcd7' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - flow [* *|<]! ; CHECK: da analyze - confused! @@ -500,6 +508,7 @@ entry: %cmp4 = icmp sgt i32 %n, 0 br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end15 +; CHECK: 'Dependence Analysis' for function 'gcd8' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -578,6 +587,7 @@ entry: %cmp4 = icmp eq i32 %n, 0 br i1 %cmp4, label %for.end15, label %for.cond1.preheader.preheader +; CHECK: 'Dependence Analysis' for function 'gcd9' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - flow [* *|<]! ; CHECK: da analyze - confused! diff --git a/test/Analysis/DependenceAnalysis/Invariant.ll b/test/Analysis/DependenceAnalysis/Invariant.ll new file mode 100644 index 0000000000000..202d8e2d68db1 --- /dev/null +++ b/test/Analysis/DependenceAnalysis/Invariant.ll @@ -0,0 +1,40 @@ +; RUN: opt < %s -analyze -basicaa -da | FileCheck %s + +; Test for a bug, which caused an assert when an invalid +; SCEVAddRecExpr is created in addToCoefficient. + +; CHECK: da analyze - consistent input [S 0]! +; CHECK: da analyze - input [* 0|<]! +; CHECK: da analyze - none! + +define float @foo(float %g, [40 x float]* %rr) nounwind { +entry: + br label %for.cond1.preheader + +for.cond1.preheader: + %i.04 = phi i32 [ 0, %entry ], [ %add10, %for.inc9 ] + %res.03 = phi float [ 0.000000e+00, %entry ], [ %add.res.1, %for.inc9 ] + br label %for.body3 + +for.body3: + %j.02 = phi i32 [ 0, %for.cond1.preheader ], [ %add8, %for.body3 ] + %res.11 = phi float [ %res.03, %for.cond1.preheader ], [ %add.res.1, %for.body3 ] + %arrayidx4 = getelementptr inbounds [40 x float]* %rr, i32 %j.02, i32 %j.02 + %0 = load float* %arrayidx4, align 4 + %arrayidx6 = getelementptr inbounds [40 x float]* %rr, i32 %i.04, i32 %j.02 + %1 = load float* %arrayidx6, align 4 + %add = fadd float %0, %1 + %cmp7 = fcmp ogt float %add, %g + %add.res.1 = select i1 %cmp7, float %add, float %res.11 + %add8 = add nsw i32 %j.02, 5 + %cmp2 = icmp slt i32 %add8, 40 + br i1 %cmp2, label %for.body3, label %for.inc9 + +for.inc9: + %add10 = add nsw i32 %i.04, 5 + %cmp = icmp slt i32 %add10, 40 + br i1 %cmp, label %for.cond1.preheader, label %for.end11 + +for.end11: + ret float %add.res.1 +} diff --git a/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll b/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll index 81e61892d8e8d..5443909d7ef66 100644 --- a/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll +++ b/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll @@ -15,6 +15,7 @@ entry: %cmp4 = icmp eq i64 %n1, 0 br i1 %cmp4, label %for.cond1.preheader, label %for.body.preheader +; CHECK: 'Dependence Analysis' for function 'symbolicrdiv0' ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -77,6 +78,7 @@ entry: %cmp4 = icmp eq i64 %n1, 0 br i1 %cmp4, label %for.cond2.preheader, label %for.body.preheader +; CHECK: 'Dependence Analysis' for function 'symbolicrdiv1' ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -141,6 +143,7 @@ entry: %cmp4 = icmp eq i64 %n1, 0 br i1 %cmp4, label %for.cond1.preheader, label %for.body.preheader +; CHECK: 'Dependence Analysis' for function 'symbolicrdiv2' ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -203,6 +206,7 @@ entry: %cmp4 = icmp eq i64 %n1, 0 br i1 %cmp4, label %for.cond1.preheader, label %for.body.preheader +; CHECK: 'Dependence Analysis' for function 'symbolicrdiv3' ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -263,6 +267,7 @@ entry: %cmp4 = icmp eq i64 %n1, 0 br i1 %cmp4, label %for.cond1.preheader, label %for.body.preheader +; CHECK: 'Dependence Analysis' for function 'symbolicrdiv4' ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -324,6 +329,7 @@ entry: %cmp4 = icmp eq i64 %n1, 0 br i1 %cmp4, label %for.cond1.preheader, label %for.body.preheader +; CHECK: 'Dependence Analysis' for function 'symbolicrdiv5' ; CHECK: da analyze - none! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! @@ -385,6 +391,7 @@ entry: %cmp4 = icmp eq i64 %n1, 0 br i1 %cmp4, label %for.end7, label %for.cond1.preheader.preheader +; CHECK: 'Dependence Analysis' for function 'symbolicrdiv6' ; CHECK: da analyze - output [* *]! ; CHECK: da analyze - none! ; CHECK: da analyze - confused! diff --git a/test/Analysis/DependenceAnalysis/lit.local.cfg b/test/Analysis/DependenceAnalysis/lit.local.cfg deleted file mode 100644 index c6106e4746f2d..0000000000000 --- a/test/Analysis/DependenceAnalysis/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll'] diff --git a/test/Analysis/Dominators/lit.local.cfg b/test/Analysis/Dominators/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/Dominators/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/GlobalsModRef/lit.local.cfg b/test/Analysis/GlobalsModRef/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/GlobalsModRef/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/Lint/check-zero-divide.ll b/test/Analysis/Lint/check-zero-divide.ll new file mode 100644 index 0000000000000..f4e79ed95f8c3 --- /dev/null +++ b/test/Analysis/Lint/check-zero-divide.ll @@ -0,0 +1,78 @@ +; RUN: opt -lint -disable-output %s 2>&1 | FileCheck %s + +define <2 x i32> @use_vector_sdiv(<2 x i32> %a) nounwind { + %b = sdiv <2 x i32> %a, + ret <2 x i32> %b +} + +define <2 x i32> @use_vector_srem(<2 x i32> %a) nounwind { + %b = srem <2 x i32> %a, + ret <2 x i32> %b +} + +define <2 x i32> @use_vector_udiv(<2 x i32> %a) nounwind { + %b = udiv <2 x i32> %a, + ret <2 x i32> %b +} + +define <2 x i32> @use_vector_urem(<2 x i32> %a) nounwind { + %b = urem <2 x i32> %a, + ret <2 x i32> %b +} + +define i32 @use_sdiv_by_zero(i32 %a) nounwind { +; CHECK: Undefined behavior: Division by zero +; CHECK-NEXT: %b = sdiv i32 %a, 0 + %b = sdiv i32 %a, 0 + ret i32 %b +} + +define i32 @use_sdiv_by_zeroinitializer(i32 %a) nounwind { +; CHECK: Undefined behavior: Division by zero +; CHECK-NEXT: %b = sdiv i32 %a, 0 + %b = sdiv i32 %a, zeroinitializer + ret i32 %b +} + +define <2 x i32> @use_vector_sdiv_by_zero_x(<2 x i32> %a) nounwind { +; CHECK: Undefined behavior: Division by zero +; CHECK-NEXT: %b = sdiv <2 x i32> %a, + %b = sdiv <2 x i32> %a, + ret <2 x i32> %b +} + +define <2 x i32> @use_vector_sdiv_by_zero_y(<2 x i32> %a) nounwind { +; CHECK: Undefined behavior: Division by zero +; CHECK-NEXT: %b = sdiv <2 x i32> %a, + %b = sdiv <2 x i32> %a, + ret <2 x i32> %b +} + +define <2 x i32> @use_vector_sdiv_by_zero_xy(<2 x i32> %a) nounwind { +; CHECK: Undefined behavior: Division by zero +; CHECK-NEXT: %b = sdiv <2 x i32> %a, zeroinitializer + %b = sdiv <2 x i32> %a, + ret <2 x i32> %b +} + +define <2 x i32> @use_vector_sdiv_by_undef_x(<2 x i32> %a) nounwind { +; CHECK: Undefined behavior: Division by zero +; CHECK-NEXT: %b = sdiv <2 x i32> %a, + %b = sdiv <2 x i32> %a, + ret <2 x i32> %b +} + +define <2 x i32> @use_vector_sdiv_by_undef_y(<2 x i32> %a) nounwind { +; CHECK: Undefined behavior: Division by zero +; CHECK-NEXT: %b = sdiv <2 x i32> %a, + %b = sdiv <2 x i32> %a, + ret <2 x i32> %b +} + +define <2 x i32> @use_vector_sdiv_by_undef_xy(<2 x i32> %a) nounwind { +; CHECK: Undefined behavior: Division by zero +; CHECK-NEXT: %b = sdiv <2 x i32> %a, undef + %b = sdiv <2 x i32> %a, + ret <2 x i32> %b +} + diff --git a/test/Analysis/Lint/lit.local.cfg b/test/Analysis/Lint/lit.local.cfg new file mode 100644 index 0000000000000..c6106e4746f2d --- /dev/null +++ b/test/Analysis/Lint/lit.local.cfg @@ -0,0 +1 @@ +config.suffixes = ['.ll'] diff --git a/test/Analysis/LoopInfo/2003-05-15-NestingProblem.ll b/test/Analysis/LoopInfo/2003-05-15-NestingProblem.ll index 7119007ffde51..a87bab7cabf23 100644 --- a/test/Analysis/LoopInfo/2003-05-15-NestingProblem.ll +++ b/test/Analysis/LoopInfo/2003-05-15-NestingProblem.ll @@ -1,8 +1,9 @@ ; This testcase was incorrectly computing that the loopentry.7 loop was ; not a child of the loopentry.6 loop. ; -; RUN: opt < %s -analyze -loops | \ -; RUN: grep "^ Loop at depth 4 containing: %loopentry.7
" +; RUN: opt < %s -analyze -loops | FileCheck %s + +; CHECK: Loop at depth 4 containing: %loopentry.7
define void @getAndMoveToFrontDecode() { br label %endif.2 diff --git a/test/Analysis/LoopInfo/lit.local.cfg b/test/Analysis/LoopInfo/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/LoopInfo/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/MemoryDependenceAnalysis/lit.local.cfg b/test/Analysis/MemoryDependenceAnalysis/lit.local.cfg deleted file mode 100644 index c6106e4746f2d..0000000000000 --- a/test/Analysis/MemoryDependenceAnalysis/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll'] diff --git a/test/Analysis/PostDominators/lit.local.cfg b/test/Analysis/PostDominators/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/PostDominators/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/PostDominators/pr1098.ll b/test/Analysis/PostDominators/pr1098.ll index afb47769ee498..2eed21371276e 100644 --- a/test/Analysis/PostDominators/pr1098.ll +++ b/test/Analysis/PostDominators/pr1098.ll @@ -1,7 +1,8 @@ -; RUN: opt < %s -postdomtree -analyze | grep entry +; RUN: opt < %s -postdomtree -analyze | FileCheck %s ; PR932 define void @foo(i1 %x) { +; CHECK: entry entry: br i1 %x, label %bb1, label %bb0 bb0: ; preds = %entry, bb0 diff --git a/test/Analysis/Profiling/edge-profiling.ll b/test/Analysis/Profiling/edge-profiling.ll deleted file mode 100644 index cbaf47617fb6c..0000000000000 --- a/test/Analysis/Profiling/edge-profiling.ll +++ /dev/null @@ -1,139 +0,0 @@ -; Test the edge profiling instrumentation. -; RUN: opt < %s -insert-edge-profiling -S | FileCheck %s - -; ModuleID = '' - -@.str = private constant [12 x i8] c"hello world\00", align 1 ; <[12 x i8]*> [#uses=1] -@.str1 = private constant [6 x i8] c"franz\00", align 1 ; <[6 x i8]*> [#uses=1] -@.str2 = private constant [9 x i8] c"argc > 2\00", align 1 ; <[9 x i8]*> [#uses=1] -@.str3 = private constant [9 x i8] c"argc = 1\00", align 1 ; <[9 x i8]*> [#uses=1] -@.str4 = private constant [6 x i8] c"fritz\00", align 1 ; <[6 x i8]*> [#uses=1] -@.str5 = private constant [10 x i8] c"argc <= 1\00", align 1 ; <[10 x i8]*> [#uses=1] -; CHECK:@EdgeProfCounters -; CHECK:[19 x i32] -; CHECK:zeroinitializer - -define void @oneblock() nounwind { -entry: -; CHECK:entry: -; CHECK:%OldFuncCounter -; CHECK:load -; CHECK:getelementptr -; CHECK:@EdgeProfCounters -; CHECK:i32 0 -; CHECK:i32 0 -; CHECK:%NewFuncCounter -; CHECK:add -; CHECK:%OldFuncCounter -; CHECK:store -; CHECK:%NewFuncCounter -; CHECK:getelementptr -; CHECK:@EdgeProfCounters - %0 = call i32 @puts(i8* getelementptr inbounds ([12 x i8]* @.str, i64 0, i64 0)) nounwind ; [#uses=0] - ret void -} - -declare i32 @puts(i8*) - -define i32 @main(i32 %argc, i8** %argv) nounwind { -entry: -; CHECK:entry: - %argc_addr = alloca i32 ; [#uses=4] - %argv_addr = alloca i8** ; [#uses=1] - %retval = alloca i32 ; [#uses=2] - %j = alloca i32 ; [#uses=4] - %i = alloca i32 ; [#uses=4] - %0 = alloca i32 ; [#uses=2] -; CHECK:call -; CHECK:@llvm_start_edge_profiling -; CHECK:@EdgeProfCounters - %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - store i32 %argc, i32* %argc_addr - store i8** %argv, i8*** %argv_addr - store i32 0, i32* %i, align 4 - br label %bb10 - -bb: ; preds = %bb10 -; CHECK:bb: - %1 = load i32* %argc_addr, align 4 ; [#uses=1] - %2 = icmp sgt i32 %1, 1 ; [#uses=1] - br i1 %2, label %bb1, label %bb8 - -bb1: ; preds = %bb -; CHECK:bb1: - store i32 0, i32* %j, align 4 - br label %bb6 - -bb2: ; preds = %bb6 -; CHECK:bb2: - %3 = call i32 @puts(i8* getelementptr inbounds ([6 x i8]* @.str1, i64 0, i64 0)) nounwind ; [#uses=0] - %4 = load i32* %argc_addr, align 4 ; [#uses=1] - %5 = icmp sgt i32 %4, 2 ; [#uses=1] - br i1 %5, label %bb3, label %bb4 - -bb3: ; preds = %bb2 -; CHECK:bb3: - %6 = call i32 @puts(i8* getelementptr inbounds ([9 x i8]* @.str2, i64 0, i64 0)) nounwind ; [#uses=0] - br label %bb5 - -bb4: ; preds = %bb2 -; CHECK:bb4: - %7 = call i32 @puts(i8* getelementptr inbounds ([9 x i8]* @.str3, i64 0, i64 0)) nounwind ; [#uses=0] - br label %bb11 - -bb5: ; preds = %bb3 -; CHECK:bb5: - %8 = call i32 @puts(i8* getelementptr inbounds ([6 x i8]* @.str4, i64 0, i64 0)) nounwind ; [#uses=0] - %9 = load i32* %j, align 4 ; [#uses=1] - %10 = add nsw i32 %9, 1 ; [#uses=1] - store i32 %10, i32* %j, align 4 - br label %bb6 - -bb6: ; preds = %bb5, %bb1 -; CHECK:bb6: - %11 = load i32* %j, align 4 ; [#uses=1] - %12 = load i32* %argc_addr, align 4 ; [#uses=1] - %13 = icmp slt i32 %11, %12 ; [#uses=1] - br i1 %13, label %bb2, label %bb7 - -bb7: ; preds = %bb6 -; CHECK:bb7: - br label %bb9 - -bb8: ; preds = %bb -; CHECK:bb8: - %14 = call i32 @puts(i8* getelementptr inbounds ([10 x i8]* @.str5, i64 0, i64 0)) nounwind ; [#uses=0] - br label %bb9 - -bb9: ; preds = %bb8, %bb7 -; CHECK:bb9: - %15 = load i32* %i, align 4 ; [#uses=1] - %16 = add nsw i32 %15, 1 ; [#uses=1] - store i32 %16, i32* %i, align 4 - br label %bb10 - -bb10: ; preds = %bb9, %entry -; CHECK:bb10: - %17 = load i32* %i, align 4 ; [#uses=1] - %18 = icmp ne i32 %17, 3 ; [#uses=1] - br i1 %18, label %bb, label %bb11 -; CHECK:br -; CHECK:label %bb10.bb11_crit_edge - -; CHECK:bb10.bb11_crit_edge: -; CHECK:br -; CHECK:label %bb11 - -bb11: ; preds = %bb10, %bb4 -; CHECK:bb11: - call void @oneblock() nounwind - store i32 0, i32* %0, align 4 - %19 = load i32* %0, align 4 ; [#uses=1] - store i32 %19, i32* %retval, align 4 - br label %return - -return: ; preds = %bb11 -; CHECK:return: - %retval12 = load i32* %retval ; [#uses=1] - ret i32 %retval12 -} diff --git a/test/Analysis/Profiling/lit.local.cfg b/test/Analysis/Profiling/lit.local.cfg deleted file mode 100644 index d40fa4f9d3abd..0000000000000 --- a/test/Analysis/Profiling/lit.local.cfg +++ /dev/null @@ -1,11 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] - -def getRoot(config): - if not config.parent: - return config - return getRoot(config.parent) - -root = getRoot(config) - -if 'hexagon' in root.target_triple: - config.unsupported = True diff --git a/test/Analysis/Profiling/load-branch-weights-ifs.ll b/test/Analysis/Profiling/load-branch-weights-ifs.ll deleted file mode 100644 index 7ed090b7c366a..0000000000000 --- a/test/Analysis/Profiling/load-branch-weights-ifs.ll +++ /dev/null @@ -1,122 +0,0 @@ -; RUN: opt -insert-edge-profiling -o %t1 < %s -; RUN: rm -f %t1.prof_data -; RUN: lli %defaultjit -load %llvmshlibdir/libprofile_rt%shlibext %t1 \ -; RUN: -llvmprof-output %t1.prof_data -; RUN: opt -profile-file %t1.prof_data -profile-metadata-loader -S -o - < %s \ -; RUN: | FileCheck %s -; RUN: rm -f %t1.prof_data - -; FIXME: profile_rt.dll could be built on win32. -; REQUIRES: loadable_module - -;; func_mod - Branch taken 6 times in 7. -define i32 @func_mod(i32 %N) nounwind uwtable { -entry: - %retval = alloca i32, align 4 - %N.addr = alloca i32, align 4 - store i32 %N, i32* %N.addr, align 4 - %0 = load i32* %N.addr, align 4 - %rem = srem i32 %0, 7 - %tobool = icmp ne i32 %rem, 0 - br i1 %tobool, label %if.then, label %if.else -; CHECK: br i1 %tobool, label %if.then, label %if.else, !prof !0 - -if.then: - store i32 1, i32* %retval - br label %return - -if.else: - store i32 0, i32* %retval - br label %return - -return: - %1 = load i32* %retval - ret i32 %1 -} - -;; func_const_true - conditional branch which 100% taken probability. -define i32 @func_const_true(i32 %N) nounwind uwtable { -entry: - %retval = alloca i32, align 4 - %N.addr = alloca i32, align 4 - store i32 %N, i32* %N.addr, align 4 - %0 = load i32* %N.addr, align 4 - %cmp = icmp eq i32 %0, 1 - br i1 %cmp, label %if.then, label %if.end -; CHECK: br i1 %cmp, label %if.then, label %if.end, !prof !1 - -if.then: - store i32 1, i32* %retval - br label %return - -if.end: - store i32 0, i32* %retval - br label %return - -return: - %1 = load i32* %retval - ret i32 %1 -} - -;; func_const_true - conditional branch which 100% not-taken probability. -define i32 @func_const_false(i32 %N) nounwind uwtable { -entry: - %retval = alloca i32, align 4 - %N.addr = alloca i32, align 4 - store i32 %N, i32* %N.addr, align 4 - %0 = load i32* %N.addr, align 4 - %cmp = icmp eq i32 %0, 1 - br i1 %cmp, label %if.then, label %if.end -; CHECK: br i1 %cmp, label %if.then, label %if.end, !prof !2 - -if.then: - store i32 1, i32* %retval - br label %return - -if.end: - store i32 0, i32* %retval - br label %return - -return: - %1 = load i32* %retval - ret i32 %1 -} - -define i32 @main(i32 %argc, i8** %argv) nounwind uwtable { -entry: - %retval = alloca i32, align 4 - %argc.addr = alloca i32, align 4 - %argv.addr = alloca i8**, align 8 - %loop = alloca i32, align 4 - store i32 0, i32* %retval - store i32 0, i32* %loop, align 4 - br label %for.cond - -for.cond: - %0 = load i32* %loop, align 4 - %cmp = icmp slt i32 %0, 7000 - br i1 %cmp, label %for.body, label %for.end -; CHECK: br i1 %cmp, label %for.body, label %for.end, !prof !3 - -for.body: - %1 = load i32* %loop, align 4 - %call = call i32 @func_mod(i32 %1) - br label %for.inc - -for.inc: - %2 = load i32* %loop, align 4 - %inc = add nsw i32 %2, 1 - store i32 %inc, i32* %loop, align 4 - br label %for.cond - -for.end: - %call1 = call i32 @func_const_true(i32 1) - %call2 = call i32 @func_const_false(i32 0) - ret i32 0 -} - -; CHECK: !0 = metadata !{metadata !"branch_weights", i32 6000, i32 1000} -; CHECK: !1 = metadata !{metadata !"branch_weights", i32 1, i32 0} -; CHECK: !2 = metadata !{metadata !"branch_weights", i32 0, i32 1} -; CHECK: !3 = metadata !{metadata !"branch_weights", i32 7000, i32 1} -; CHECK-NOT: !4 diff --git a/test/Analysis/Profiling/load-branch-weights-loops.ll b/test/Analysis/Profiling/load-branch-weights-loops.ll deleted file mode 100644 index 9d1925a2d7016..0000000000000 --- a/test/Analysis/Profiling/load-branch-weights-loops.ll +++ /dev/null @@ -1,188 +0,0 @@ -; RUN: opt -insert-edge-profiling -o %t1 < %s -; RUN: rm -f %t1.prof_data -; RUN: lli %defaultjit -load %llvmshlibdir/libprofile_rt%shlibext %t1 \ -; RUN: -llvmprof-output %t1.prof_data -; RUN: opt -profile-file %t1.prof_data -profile-metadata-loader -S -o - < %s \ -; RUN: | FileCheck %s -; RUN: rm -f %t1.prof_data - -; FIXME: profile_rt.dll could be built on win32. -; REQUIRES: loadable_module - -;; func_for - Test branch probabilities for a vanilla for loop. -define i32 @func_for(i32 %N) nounwind uwtable { -entry: - %N.addr = alloca i32, align 4 - %ret = alloca i32, align 4 - %loop = alloca i32, align 4 - store i32 %N, i32* %N.addr, align 4 - store i32 0, i32* %ret, align 4 - store i32 0, i32* %loop, align 4 - br label %for.cond - -for.cond: - %0 = load i32* %loop, align 4 - %1 = load i32* %N.addr, align 4 - %cmp = icmp slt i32 %0, %1 - br i1 %cmp, label %for.body, label %for.end -; CHECK: br i1 %cmp, label %for.body, label %for.end, !prof !0 - -for.body: - %2 = load i32* %N.addr, align 4 - %3 = load i32* %ret, align 4 - %add = add nsw i32 %3, %2 - store i32 %add, i32* %ret, align 4 - br label %for.inc - -for.inc: - %4 = load i32* %loop, align 4 - %inc = add nsw i32 %4, 1 - store i32 %inc, i32* %loop, align 4 - br label %for.cond - -for.end: - %5 = load i32* %ret, align 4 - ret i32 %5 -} - -;; func_for_odd - Test branch probabilities for a for loop with a continue and -;; a break. -define i32 @func_for_odd(i32 %N) nounwind uwtable { -entry: - %N.addr = alloca i32, align 4 - %ret = alloca i32, align 4 - %loop = alloca i32, align 4 - store i32 %N, i32* %N.addr, align 4 - store i32 0, i32* %ret, align 4 - store i32 0, i32* %loop, align 4 - br label %for.cond - -for.cond: - %0 = load i32* %loop, align 4 - %1 = load i32* %N.addr, align 4 - %cmp = icmp slt i32 %0, %1 - br i1 %cmp, label %for.body, label %for.end -; CHECK: br i1 %cmp, label %for.body, label %for.end, !prof !1 - -for.body: - %2 = load i32* %loop, align 4 - %rem = srem i32 %2, 10 - %tobool = icmp ne i32 %rem, 0 - br i1 %tobool, label %if.then, label %if.end -; CHECK: br i1 %tobool, label %if.then, label %if.end, !prof !2 - -if.then: - br label %for.inc - -if.end: - %3 = load i32* %loop, align 4 - %cmp1 = icmp eq i32 %3, 500 - br i1 %cmp1, label %if.then2, label %if.end3 -; CHECK: br i1 %cmp1, label %if.then2, label %if.end3, !prof !3 - -if.then2: - br label %for.end - -if.end3: - %4 = load i32* %N.addr, align 4 - %5 = load i32* %ret, align 4 - %add = add nsw i32 %5, %4 - store i32 %add, i32* %ret, align 4 - br label %for.inc - -for.inc: - %6 = load i32* %loop, align 4 - %inc = add nsw i32 %6, 1 - store i32 %inc, i32* %loop, align 4 - br label %for.cond - -for.end: - %7 = load i32* %ret, align 4 - ret i32 %7 -} - -;; func_while - Test branch probability in a vanilla while loop. -define i32 @func_while(i32 %N) nounwind uwtable { -entry: - %N.addr = alloca i32, align 4 - %ret = alloca i32, align 4 - %loop = alloca i32, align 4 - store i32 %N, i32* %N.addr, align 4 - store i32 0, i32* %ret, align 4 - store i32 0, i32* %loop, align 4 - br label %while.cond - -while.cond: - %0 = load i32* %loop, align 4 - %1 = load i32* %N.addr, align 4 - %cmp = icmp slt i32 %0, %1 - br i1 %cmp, label %while.body, label %while.end -; CHECK: br i1 %cmp, label %while.body, label %while.end, !prof !0 - -while.body: - %2 = load i32* %N.addr, align 4 - %3 = load i32* %ret, align 4 - %add = add nsw i32 %3, %2 - store i32 %add, i32* %ret, align 4 - %4 = load i32* %loop, align 4 - %inc = add nsw i32 %4, 1 - store i32 %inc, i32* %loop, align 4 - br label %while.cond - -while.end: - %5 = load i32* %ret, align 4 - ret i32 %5 -} - -;; func_while - Test branch probability in a vanilla do-while loop. -define i32 @func_do_while(i32 %N) nounwind uwtable { -entry: - %N.addr = alloca i32, align 4 - %ret = alloca i32, align 4 - %loop = alloca i32, align 4 - store i32 %N, i32* %N.addr, align 4 - store i32 0, i32* %ret, align 4 - store i32 0, i32* %loop, align 4 - br label %do.body - -do.body: - %0 = load i32* %N.addr, align 4 - %1 = load i32* %ret, align 4 - %add = add nsw i32 %1, %0 - store i32 %add, i32* %ret, align 4 - %2 = load i32* %loop, align 4 - %inc = add nsw i32 %2, 1 - store i32 %inc, i32* %loop, align 4 - br label %do.cond - -do.cond: - %3 = load i32* %loop, align 4 - %4 = load i32* %N.addr, align 4 - %cmp = icmp slt i32 %3, %4 - br i1 %cmp, label %do.body, label %do.end -; CHECK: br i1 %cmp, label %do.body, label %do.end, !prof !4 - -do.end: - %5 = load i32* %ret, align 4 - ret i32 %5 -} - -define i32 @main(i32 %argc, i8** %argv) nounwind uwtable { -entry: - %retval = alloca i32, align 4 - %argc.addr = alloca i32, align 4 - %argv.addr = alloca i8**, align 8 - store i32 0, i32* %retval - %call = call i32 @func_for(i32 1000) - %call1 = call i32 @func_for_odd(i32 1000) - %call2 = call i32 @func_while(i32 1000) - %call3 = call i32 @func_do_while(i32 1000) - ret i32 0 -} - -!0 = metadata !{metadata !"branch_weights", i32 1000, i32 1} -!1 = metadata !{metadata !"branch_weights", i32 501, i32 0} -!2 = metadata !{metadata !"branch_weights", i32 450, i32 51} -!3 = metadata !{metadata !"branch_weights", i32 1, i32 50} -!4 = metadata !{metadata !"branch_weights", i32 999, i32 1} -; CHECK-NOT: !5 diff --git a/test/Analysis/Profiling/load-branch-weights-switches.ll b/test/Analysis/Profiling/load-branch-weights-switches.ll deleted file mode 100644 index 5587c7172bb6c..0000000000000 --- a/test/Analysis/Profiling/load-branch-weights-switches.ll +++ /dev/null @@ -1,165 +0,0 @@ -; RUN: opt -insert-edge-profiling -o %t1 < %s -; RUN: rm -f %t1.prof_data -; RUN: lli %defaultjit -load %llvmshlibdir/libprofile_rt%shlibext %t1 \ -; RUN: -llvmprof-output %t1.prof_data -; RUN: opt -profile-file %t1.prof_data -profile-metadata-loader -S -o - < %s \ -; RUN: | FileCheck %s -; RUN: rm -f %t1.prof_data - -; FIXME: profile_rt.dll could be built on win32. -; REQUIRES: loadable_module - -;; func_switch - Test branch probabilities for a switch instruction with an -;; even chance of taking each case (or no case). -define i32 @func_switch(i32 %N) nounwind uwtable { -entry: - %retval = alloca i32, align 4 - %N.addr = alloca i32, align 4 - store i32 %N, i32* %N.addr, align 4 - %0 = load i32* %N.addr, align 4 - %rem = srem i32 %0, 4 - switch i32 %rem, label %sw.epilog [ - i32 0, label %sw.bb - i32 1, label %sw.bb1 - i32 2, label %sw.bb2 - ] -; CHECK: ], !prof !0 - -sw.bb: - store i32 5, i32* %retval - br label %return - -sw.bb1: - store i32 6, i32* %retval - br label %return - -sw.bb2: - store i32 7, i32* %retval - br label %return - -sw.epilog: - store i32 8, i32* %retval - br label %return - -return: - %1 = load i32* %retval - ret i32 %1 -} - -;; func_switch_switch - Test branch probabilities in a switch-instruction that -;; leads to further switch instructions. The first-tier switch occludes some -;; possibilities in the second-tier switches, leading to some branches having a -;; 0 probability. -define i32 @func_switch_switch(i32 %N) nounwind uwtable { -entry: - %retval = alloca i32, align 4 - %N.addr = alloca i32, align 4 - store i32 %N, i32* %N.addr, align 4 - %0 = load i32* %N.addr, align 4 - %rem = srem i32 %0, 2 - switch i32 %rem, label %sw.default11 [ - i32 0, label %sw.bb - i32 1, label %sw.bb5 - ] -; CHECK: ], !prof !1 - -sw.bb: - %1 = load i32* %N.addr, align 4 - %rem1 = srem i32 %1, 4 - switch i32 %rem1, label %sw.default [ - i32 0, label %sw.bb2 - i32 1, label %sw.bb3 - i32 2, label %sw.bb4 - ] -; CHECK: ], !prof !2 - -sw.bb2: - store i32 5, i32* %retval - br label %return - -sw.bb3: - store i32 6, i32* %retval - br label %return - -sw.bb4: - store i32 7, i32* %retval - br label %return - -sw.default: - store i32 8, i32* %retval - br label %return - -sw.bb5: - %2 = load i32* %N.addr, align 4 - %rem6 = srem i32 %2, 4 - switch i32 %rem6, label %sw.default10 [ - i32 0, label %sw.bb7 - i32 1, label %sw.bb8 - i32 2, label %sw.bb9 - ] -; CHECK: ], !prof !3 - -sw.bb7: - store i32 9, i32* %retval - br label %return - -sw.bb8: - store i32 10, i32* %retval - br label %return - -sw.bb9: - store i32 11, i32* %retval - br label %return - -sw.default10: - store i32 12, i32* %retval - br label %return - -sw.default11: - store i32 13, i32* %retval - br label %return - -return: - %3 = load i32* %retval - ret i32 %3 -} - -define i32 @main(i32 %argc, i8** %argv) nounwind uwtable { -entry: - %retval = alloca i32, align 4 - %argc.addr = alloca i32, align 4 - %argv.addr = alloca i8**, align 8 - %loop = alloca i32, align 4 - store i32 0, i32* %retval - store i32 0, i32* %loop, align 4 - br label %for.cond - -for.cond: - %0 = load i32* %loop, align 4 - %cmp = icmp slt i32 %0, 4000 - br i1 %cmp, label %for.body, label %for.end -; CHECK: br i1 %cmp, label %for.body, label %for.end, !prof !4 - -for.body: - %1 = load i32* %loop, align 4 - %call = call i32 @func_switch(i32 %1) - %2 = load i32* %loop, align 4 - %call1 = call i32 @func_switch_switch(i32 %2) - br label %for.inc - -for.inc: - %3 = load i32* %loop, align 4 - %inc = add nsw i32 %3, 1 - store i32 %inc, i32* %loop, align 4 - br label %for.cond - -for.end: - ret i32 0 -} - -; CHECK: !0 = metadata !{metadata !"branch_weights", i32 1000, i32 1000, i32 1000, i32 1000} -; CHECK: !1 = metadata !{metadata !"branch_weights", i32 0, i32 2000, i32 2000} -; CHECK: !2 = metadata !{metadata !"branch_weights", i32 0, i32 1000, i32 0, i32 1000} -; CHECK: !3 = metadata !{metadata !"branch_weights", i32 1000, i32 0, i32 1000, i32 0} -; CHECK: !4 = metadata !{metadata !"branch_weights", i32 4000, i32 1} -; CHECK-NOT: !5 diff --git a/test/Analysis/Profiling/profiling-tool-chain.ll b/test/Analysis/Profiling/profiling-tool-chain.ll deleted file mode 100644 index 9135a85dc3ad4..0000000000000 --- a/test/Analysis/Profiling/profiling-tool-chain.ll +++ /dev/null @@ -1,212 +0,0 @@ -; RUN: llvm-as %s -o %t1 - -; FIXME: The RUX parts of the test are disabled for now, they aren't working on -; llvm-gcc-x86_64-darwin10-selfhost. - -; Test the edge optimal profiling instrumentation. -; RUN: opt %t1 -insert-optimal-edge-profiling -o %t2 -; RUX: llvm-dis < %t2 | FileCheck --check-prefix=INST %s - -; Test the creation, reading and displaying of profile -; RUX: rm -f llvmprof.out -; RUX: lli -load %llvmshlibdir/profile_rt%shlibext %t2 -; RUX: lli -load %llvmshlibdir/profile_rt%shlibext %t2 1 2 -; RUX: llvm-prof -print-all-code %t1 | FileCheck --check-prefix=PROF %s - -; Test the loaded profile also with verifier. -; RUX opt %t1 -profile-loader -profile-verifier -o %t3 - -; Test profile estimator. -; RUN: opt %t1 -profile-estimator -profile-verifier -o %t3 - -; PROF: 1. 2/4 oneblock -; PROF: 2. 2/4 main -; PROF: 1. 15.7895% 12/76 main() - bb6 -; PROF: 2. 11.8421% 9/76 main() - bb2 -; PROF: 3. 11.8421% 9/76 main() - bb3 -; PROF: 4. 11.8421% 9/76 main() - bb5 -; PROF: 5. 10.5263% 8/76 main() - bb10 -; PROF: 6. 7.89474% 6/76 main() - bb -; PROF: 7. 7.89474% 6/76 main() - bb9 -; PROF: 8. 3.94737% 3/76 main() - bb1 -; PROF: 9. 3.94737% 3/76 main() - bb7 -; PROF: 10. 3.94737% 3/76 main() - bb8 -; PROF: 11. 2.63158% 2/76 oneblock() - entry -; PROF: 12. 2.63158% 2/76 main() - entry -; PROF: 13. 2.63158% 2/76 main() - bb11 -; PROF: 14. 2.63158% 2/76 main() - return - -; ModuleID = '' - -@.str = private constant [12 x i8] c"hello world\00", align 1 ; <[12 x i8]*> [#uses=1] -@.str1 = private constant [6 x i8] c"franz\00", align 1 ; <[6 x i8]*> [#uses=1] -@.str2 = private constant [9 x i8] c"argc > 2\00", align 1 ; <[9 x i8]*> [#uses=1] -@.str3 = private constant [9 x i8] c"argc = 1\00", align 1 ; <[9 x i8]*> [#uses=1] -@.str4 = private constant [6 x i8] c"fritz\00", align 1 ; <[6 x i8]*> [#uses=1] -@.str5 = private constant [10 x i8] c"argc <= 1\00", align 1 ; <[10 x i8]*> [#uses=1] -; INST:@OptEdgeProfCounters -; INST:[21 x i32] -; INST:[i32 0, -; INST:i32 -1, -; INST:i32 -1, -; INST:i32 -1, -; INST:i32 -1, -; INST:i32 -1, -; INST:i32 -1, -; INST:i32 -1, -; INST:i32 -1, -; INST:i32 0, -; INST:i32 0, -; INST:i32 -1, -; INST:i32 -1, -; INST:i32 -1, -; INST:i32 0, -; INST:i32 0, -; INST:i32 -1, -; INST:i32 -1, -; INST:i32 0, -; INST:i32 -1, -; INST:i32 -1] - -; PROF:;;; %oneblock called 2 times. -; PROF:;;; -define void @oneblock() nounwind { -entry: -; PROF:entry: -; PROF: ;;; Basic block executed 2 times. - %0 = call i32 @puts(i8* getelementptr inbounds ([12 x i8]* @.str, i64 0, i64 0)) nounwind ; [#uses=0] - ret void -} - -declare i32 @puts(i8*) - -; PROF:;;; %main called 2 times. -; PROF:;;; -define i32 @main(i32 %argc, i8** %argv) nounwind { -entry: -; PROF:entry: -; PROF: ;;; Basic block executed 2 times. - %argc_addr = alloca i32 ; [#uses=4] - %argv_addr = alloca i8** ; [#uses=1] - %retval = alloca i32 ; [#uses=2] - %j = alloca i32 ; [#uses=4] - %i = alloca i32 ; [#uses=4] - %0 = alloca i32 ; [#uses=2] -; INST:call -; INST:@llvm_start_opt_edge_profiling -; INST:@OptEdgeProfCounters - %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - store i32 %argc, i32* %argc_addr - store i8** %argv, i8*** %argv_addr - store i32 0, i32* %i, align 4 - br label %bb10 -; PROF: ;;; Out-edge counts: [2.000000e+00 -> bb10] - -bb: ; preds = %bb10 -; PROF:bb: -; PROF: ;;; Basic block executed 6 times. - %1 = load i32* %argc_addr, align 4 ; [#uses=1] - %2 = icmp sgt i32 %1, 1 ; [#uses=1] - br i1 %2, label %bb1, label %bb8 -; PROF: ;;; Out-edge counts: [3.000000e+00 -> bb1] [3.000000e+00 -> bb8] - -bb1: ; preds = %bb -; PROF:bb1: -; PROF: ;;; Basic block executed 3 times. - store i32 0, i32* %j, align 4 - br label %bb6 -; PROF: ;;; Out-edge counts: [3.000000e+00 -> bb6] - -bb2: ; preds = %bb6 -; PROF:bb2: -; PROF: ;;; Basic block executed 9 times. - %3 = call i32 @puts(i8* getelementptr inbounds ([6 x i8]* @.str1, i64 0, i64 0)) nounwind ; [#uses=0] - %4 = load i32* %argc_addr, align 4 ; [#uses=1] - %5 = icmp sgt i32 %4, 2 ; [#uses=1] - br i1 %5, label %bb3, label %bb4 -; PROF: ;;; Out-edge counts: [9.000000e+00 -> bb3] - -bb3: ; preds = %bb2 -; PROF:bb3: -; PROF: ;;; Basic block executed 9 times. - %6 = call i32 @puts(i8* getelementptr inbounds ([9 x i8]* @.str2, i64 0, i64 0)) nounwind ; [#uses=0] - br label %bb5 -; PROF: ;;; Out-edge counts: [9.000000e+00 -> bb5] - -bb4: ; preds = %bb2 -; PROF:bb4: -; PROF: ;;; Never executed! - %7 = call i32 @puts(i8* getelementptr inbounds ([9 x i8]* @.str3, i64 0, i64 0)) nounwind ; [#uses=0] - br label %bb11 - -bb5: ; preds = %bb3 -; PROF:bb5: -; PROF: ;;; Basic block executed 9 times. - %8 = call i32 @puts(i8* getelementptr inbounds ([6 x i8]* @.str4, i64 0, i64 0)) nounwind ; [#uses=0] - %9 = load i32* %j, align 4 ; [#uses=1] - %10 = add nsw i32 %9, 1 ; [#uses=1] - store i32 %10, i32* %j, align 4 - br label %bb6 -; PROF: ;;; Out-edge counts: [9.000000e+00 -> bb6] - -bb6: ; preds = %bb5, %bb1 -; PROF:bb6: -; PROF: ;;; Basic block executed 12 times. - %11 = load i32* %j, align 4 ; [#uses=1] - %12 = load i32* %argc_addr, align 4 ; [#uses=1] - %13 = icmp slt i32 %11, %12 ; [#uses=1] - br i1 %13, label %bb2, label %bb7 -; PROF: ;;; Out-edge counts: [9.000000e+00 -> bb2] [3.000000e+00 -> bb7] - -bb7: ; preds = %bb6 -; PROF:bb7: -; PROF: ;;; Basic block executed 3 times. - br label %bb9 -; PROF: ;;; Out-edge counts: [3.000000e+00 -> bb9] - -bb8: ; preds = %bb -; PROF:bb8: -; PROF: ;;; Basic block executed 3 times. - %14 = call i32 @puts(i8* getelementptr inbounds ([10 x i8]* @.str5, i64 0, i64 0)) nounwind ; [#uses=0] - br label %bb9 -; PROF: ;;; Out-edge counts: [3.000000e+00 -> bb9] - -bb9: ; preds = %bb8, %bb7 -; PROF:bb9: -; PROF: ;;; Basic block executed 6 times. - %15 = load i32* %i, align 4 ; [#uses=1] - %16 = add nsw i32 %15, 1 ; [#uses=1] - store i32 %16, i32* %i, align 4 - br label %bb10 -; PROF: ;;; Out-edge counts: [6.000000e+00 -> bb10] - -bb10: ; preds = %bb9, %entry -; PROF:bb10: -; PROF: ;;; Basic block executed 8 times. - %17 = load i32* %i, align 4 ; [#uses=1] - %18 = icmp ne i32 %17, 3 ; [#uses=1] - br i1 %18, label %bb, label %bb11 -; INST:br -; INST:label %bb10.bb11_crit_edge -; PROF: ;;; Out-edge counts: [6.000000e+00 -> bb] [2.000000e+00 -> bb11] - -; INST:bb10.bb11_crit_edge: -; INST:br -; INST:label %bb11 - -bb11: ; preds = %bb10, %bb4 -; PROF:bb11: -; PROF: ;;; Basic block executed 2 times. - call void @oneblock() nounwind - store i32 0, i32* %0, align 4 - %19 = load i32* %0, align 4 ; [#uses=1] - store i32 %19, i32* %retval, align 4 - br label %return -; PROF: ;;; Out-edge counts: [2.000000e+00 -> return] - -return: ; preds = %bb11 -; PROF:return: -; PROF: ;;; Basic block executed 2 times. - %retval12 = load i32* %retval ; [#uses=1] - ret i32 %retval12 -} diff --git a/test/Analysis/RegionInfo/lit.local.cfg b/test/Analysis/RegionInfo/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/RegionInfo/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll b/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll index e0c5583cbb97d..b5eb9fc4878df 100644 --- a/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll +++ b/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll @@ -1,9 +1,10 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: -scalar-evolution-max-iterations=0 | grep "Loop %bb: backedge-taken count is 100" +; RUN: opt < %s -analyze -scalar-evolution -scalar-evolution-max-iterations=0 | FileCheck %s ; PR1533 @array = weak global [101 x i32] zeroinitializer, align 32 ; <[100 x i32]*> [#uses=1] +; CHECK: Loop %bb: backedge-taken count is 100 + define void @loop(i32 %x) { entry: br label %bb diff --git a/test/Analysis/ScalarEvolution/2007-08-06-MisinterpretBranch.ll b/test/Analysis/ScalarEvolution/2007-08-06-MisinterpretBranch.ll index e67e4d00d6258..fd09fd5f28c57 100644 --- a/test/Analysis/ScalarEvolution/2007-08-06-MisinterpretBranch.ll +++ b/test/Analysis/ScalarEvolution/2007-08-06-MisinterpretBranch.ll @@ -1,6 +1,8 @@ -; RUN: opt < %s -indvars -adce -simplifycfg -S | grep "icmp s" +; RUN: opt < %s -indvars -adce -simplifycfg -S | FileCheck %s ; PR1598 +; CHECK: icmp s + define i32 @f(i32 %a, i32 %b, i32 %x, i32 %y) { entry: %tmp3 = icmp eq i32 %a, %b ; [#uses=1] diff --git a/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll b/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll index 036abf5b7c166..9e19ccab6eb1c 100644 --- a/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll +++ b/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll @@ -1,6 +1,8 @@ -; RUN: opt < %s -scalar-evolution -analyze | grep "Loop %bb: backedge-taken count is (-1 + (-1 \* %x) + %y)" +; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s ; PR1597 +; CHECK: Loop %bb: backedge-taken count is (-1 + (-1 * %x) + %y) + define i32 @f(i32 %x, i32 %y) { entry: %tmp63 = icmp ult i32 %x, %y ; [#uses=1] diff --git a/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll b/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll index a3192b9c01fde..b65a525024474 100644 --- a/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll +++ b/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll @@ -1,7 +1,8 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: -scalar-evolution-max-iterations=0 | grep "backedge-taken count is 13" +; RUN: opt < %s -analyze -scalar-evolution -scalar-evolution-max-iterations=0 | FileCheck %s ; PR1706 +; CHECK: backedge-taken count is 13 + define i32 @f() { entry: br label %bb5 diff --git a/test/Analysis/ScalarEvolution/2007-11-14-SignedAddRec.ll b/test/Analysis/ScalarEvolution/2007-11-14-SignedAddRec.ll index 514920f0f6fad..a2850d8c4b4f5 100644 --- a/test/Analysis/ScalarEvolution/2007-11-14-SignedAddRec.ll +++ b/test/Analysis/ScalarEvolution/2007-11-14-SignedAddRec.ll @@ -1,6 +1,8 @@ -; RUN: opt < %s -indvars -S | grep printd | grep 1206807378 +; RUN: opt < %s -indvars -S | FileCheck %s ; PR1798 +; CHECK: printd(i32 1206807378) + declare void @printd(i32) define i32 @test() { diff --git a/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll b/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll index d0644f7b3f9da..6ebfa61de41d1 100644 --- a/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll +++ b/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll @@ -1,4 +1,6 @@ -; RUN: opt < %s -scalar-evolution -analyze | grep "Loop %header: backedge-taken count is (0 smax %n)" +; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s + +; CHECK: Loop %header: backedge-taken count is (0 smax %n) define void @foo(i32 %n) { entry: diff --git a/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll b/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll index 52c7985045d09..527fd273cd25b 100644 --- a/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll +++ b/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll @@ -1,6 +1,8 @@ -; RUN: opt < %s -analyze -scalar-evolution | grep umax +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; PR2003 +; CHECK: umax + define i32 @foo(i32 %n) { entry: br label %header diff --git a/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll b/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll index 41734d70f0717..9a05d88c4ce7c 100644 --- a/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll +++ b/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll @@ -1,7 +1,8 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: -scalar-evolution-max-iterations=0 | grep "backedge-taken count is 61" +; RUN: opt < %s -analyze -scalar-evolution -scalar-evolution-max-iterations=0 | FileCheck %s ; PR2364 +; CHECK: backedge-taken count is 61 + define i32 @func_6() nounwind { entry: br label %bb5 diff --git a/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll b/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll index 5cf17a2101405..dcf8fc9dbdb0f 100644 --- a/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll +++ b/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll @@ -1,6 +1,9 @@ -; RUN: opt < %s -analyze -scalar-evolution 2>&1 | not grep smax +; RUN: opt < %s -analyze -scalar-evolution 2>&1 | FileCheck %s ; PR2261 +; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'foo' +; CHECK-NOT: smax + @lut = common global [256 x i8] zeroinitializer, align 32 ; <[256 x i8]*> [#uses=1] define void @foo(i32 %count, i32* %srcptr, i32* %dstptr) nounwind { diff --git a/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll b/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll index 195dfaaaee95a..c804bd905510c 100644 --- a/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll +++ b/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll @@ -1,6 +1,9 @@ -; RUN: opt < %s -analyze -scalar-evolution 2>&1 | not grep smax +; RUN: opt < %s -analyze -scalar-evolution 2>&1 | FileCheck %s ; PR2070 +; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'a' +; CHECK-NOT: smax + define i32 @a(i32 %x) nounwind { entry: icmp sgt i32 %x, 1 ; :0 [#uses=1] diff --git a/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll b/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll index 1865c059a9988..ad34f6cedf61d 100644 --- a/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll +++ b/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll @@ -1,7 +1,8 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: -scalar-evolution-max-iterations=0 | grep Unpredictable +; RUN: opt < %s -analyze -scalar-evolution -scalar-evolution-max-iterations=0 | FileCheck %s ; PR2088 +; CHECK: Unpredictable + define void @fun() { entry: br label %loop diff --git a/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll b/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll index cbf200e40f9bd..82b9d560425e0 100644 --- a/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll +++ b/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll @@ -1,7 +1,8 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: -scalar-evolution-max-iterations=0 | grep "backedge-taken count is 113" +; RUN: opt < %s -analyze -scalar-evolution -scalar-evolution-max-iterations=0 | FileCheck %s ; PR2088 +; CHECK: backedge-taken count is 113 + define void @fun() { entry: br label %loop diff --git a/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll b/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll index c25e4a3b2b23e..46c6c59e92c52 100644 --- a/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll +++ b/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll @@ -1,5 +1,6 @@ -; RUN: opt < %s -analyze -scalar-evolution 2>&1 | \ -; RUN: grep "Loop %bb: backedge-taken count is (7 + (-1 \* %argc))" +; RUN: opt < %s -analyze -scalar-evolution 2>&1 | FileCheck %s + +; CHECK: Loop %bb: backedge-taken count is (7 + (-1 * %argc)) define i32 @main(i32 %argc, i8** %argv) nounwind { entry: diff --git a/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll b/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll index 56a83438830e7..7acf90c7330cb 100644 --- a/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll +++ b/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll @@ -1,5 +1,8 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: | grep "Loop %bb: Unpredictable backedge-taken count\." +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s + +; CHECK: Loop %bb: backedge-taken count is ((-5 + %x) /u 3) +; CHECK: Loop %bb: max backedge-taken count is 1431655764 + ; ScalarEvolution can't compute a trip count because it doesn't know if ; dividing by the stride will have a remainder. This could theoretically diff --git a/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll b/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll index aaf6770676bd1..2b2296a3a24fa 100644 --- a/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll +++ b/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll @@ -1,5 +1,8 @@ -; RUN: opt < %s -analyze -scalar-evolution 2>&1 | grep "/u 3" -; XFAIL: * +; RUN: opt < %s -analyze -scalar-evolution 2>&1 | FileCheck %s + +; CHECK: Loop %bb: backedge-taken count is ((999 + (-1 * %x)) /u 3) +; CHECK: Loop %bb: max backedge-taken count is 334 + ; This is a tricky testcase for unsigned wrap detection which ScalarEvolution ; doesn't yet know how to do. diff --git a/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll b/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll index a1b3b7191658c..7a7a64001a697 100644 --- a/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll +++ b/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll @@ -1,4 +1,6 @@ -; RUN: opt < %s -analyze -scalar-evolution | grep "backedge-taken count is 255" +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s + +; CHECK: backedge-taken count is 255 define i32 @foo(i32 %x, i32 %y, i32* %lam, i32* %alp) nounwind { bb1.thread: diff --git a/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll b/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll index bb149193a0f4c..95aa1fc85e20c 100644 --- a/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll +++ b/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll @@ -1,7 +1,8 @@ -; RUN: opt < %s -analyze -scalar-evolution 2>&1 | \ -; RUN: grep "(((-1 * %i0) + (100005 smax %i0)) /u 5)" +; RUN: opt < %s -analyze -scalar-evolution 2>&1 | FileCheck %s ; XFAIL: * +; CHECK: (((-1 * %i0) + (100005 smax %i0)) /u 5) + define i32 @foo0(i32 %i0) nounwind { entry: br label %bb1 diff --git a/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll b/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll index 70006260cb9e9..70588bc0574e8 100644 --- a/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll +++ b/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll @@ -1,5 +1,6 @@ -; RUN: opt < %s -analyze -scalar-evolution 2>&1 | grep "/u 5" -; XFAIL: * +; RUN: opt < %s -analyze -scalar-evolution 2>&1 | FileCheck %s + +; CHECK: /u 5 define i8 @foo0(i8 %i0) nounwind { entry: diff --git a/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll b/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll index 82f2608e57471..f19d18c72e69d 100644 --- a/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll +++ b/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll @@ -1,6 +1,9 @@ -; RUN: opt < %s -analyze -scalar-evolution | not grep "/u -1" +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; PR3275 +; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'func_15' +; CHECK-NOT: /u -1 + @g_16 = external global i16 ; [#uses=3] @.str = external constant [4 x i8] ; <[4 x i8]*> [#uses=0] diff --git a/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll b/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll index ebd9f7377d0c9..3dacfbb0a8d49 100644 --- a/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll +++ b/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll @@ -1,35 +1,53 @@ ; RUN: opt < %s -analyze -scalar-evolution | grep "(trunc i" | not grep ext +; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test1' +; CHECK-NOT: (trunc i{{.*}}ext + define i16 @test1(i8 %x) { %A = sext i8 %x to i32 %B = trunc i32 %A to i16 ret i16 %B } +; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test2' +; CHECK-NOT: (trunc i{{.*}}ext + define i8 @test2(i16 %x) { %A = sext i16 %x to i32 %B = trunc i32 %A to i8 ret i8 %B } +; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test3' +; CHECK-NOT: (trunc i{{.*}}ext + define i16 @test3(i16 %x) { %A = sext i16 %x to i32 %B = trunc i32 %A to i16 ret i16 %B } +; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test4' +; CHECK-NOT: (trunc i{{.*}}ext + define i16 @test4(i8 %x) { %A = zext i8 %x to i32 %B = trunc i32 %A to i16 ret i16 %B } +; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test5' +; CHECK-NOT: (trunc i{{.*}}ext + define i8 @test5(i16 %x) { %A = zext i16 %x to i32 %B = trunc i32 %A to i8 ret i8 %B } +; CHECK: Printing analysis 'Scalar Evolution Analysis' for function 'test6' +; CHECK-NOT: (trunc i{{.*}}ext + define i16 @test6(i16 %x) { %A = zext i16 %x to i32 %B = trunc i32 %A to i16 diff --git a/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll b/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll index 8a780431345e2..5d1502da179f8 100644 --- a/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll +++ b/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll @@ -1,5 +1,8 @@ -; RUN: opt < %s -analyze -scalar-evolution | grep "count is 2" +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; PR3171 + +; CHECK: count is 2 + 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" %struct.Foo = type { i32 } diff --git a/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll b/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll index 1600d5f05a188..973dd7d6dd0d2 100644 --- a/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll +++ b/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll @@ -30,4 +30,4 @@ for.inc9: if.then: ret i8 0 -} \ No newline at end of file +} diff --git a/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll b/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll index e946d7a64bc97..2cb8c5bf46ffc 100644 --- a/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll +++ b/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll @@ -1,5 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: -scalar-evolution-max-iterations=0 | FileCheck %s +; RUN: opt < %s -analyze -scalar-evolution -scalar-evolution-max-iterations=0 | FileCheck %s ; PR1101 diff --git a/test/Analysis/ScalarEvolution/and-xor.ll b/test/Analysis/ScalarEvolution/and-xor.ll index 06f4a8582fa19..404ab91e269d2 100644 --- a/test/Analysis/ScalarEvolution/and-xor.ll +++ b/test/Analysis/ScalarEvolution/and-xor.ll @@ -1,5 +1,8 @@ -; RUN: opt < %s -scalar-evolution -analyze \ -; RUN: | grep "\--> (zext" | count 2 +; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s + +; CHECK: --> (zext +; CHECK: --> (zext +; CHECK-NOT: --> (zext define i32 @foo(i32 %x) { %n = and i32 %x, 255 diff --git a/test/Analysis/ScalarEvolution/avoid-smax-0.ll b/test/Analysis/ScalarEvolution/avoid-smax-0.ll index 3d15c787fcfe7..8abb43074c5e4 100644 --- a/test/Analysis/ScalarEvolution/avoid-smax-0.ll +++ b/test/Analysis/ScalarEvolution/avoid-smax-0.ll @@ -1,4 +1,6 @@ -; RUN: opt < %s -scalar-evolution -analyze | grep "Loop %bb3: backedge-taken count is (-1 + %n)" +; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s + +; CHECK: Loop %bb3: backedge-taken count is (-1 + %n) ; We don't want to use a max in the trip count expression in ; this testcase. diff --git a/test/Analysis/ScalarEvolution/div-overflow.ll b/test/Analysis/ScalarEvolution/div-overflow.ll index 28467975606f5..aca964ae62b6e 100644 --- a/test/Analysis/ScalarEvolution/div-overflow.ll +++ b/test/Analysis/ScalarEvolution/div-overflow.ll @@ -1,5 +1,6 @@ -; RUN: opt < %s -scalar-evolution -analyze \ -; RUN: | grep "\--> ((-128 \* %a) /u -128)" +; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s + +; CHECK: --> ((-128 * %a) /u -128) ; Don't let ScalarEvolution fold this div away. diff --git a/test/Analysis/ScalarEvolution/do-loop.ll b/test/Analysis/ScalarEvolution/do-loop.ll index 6e3295a920b05..e35ea7d57e3a5 100644 --- a/test/Analysis/ScalarEvolution/do-loop.ll +++ b/test/Analysis/ScalarEvolution/do-loop.ll @@ -1,6 +1,8 @@ -; RUN: opt < %s -analyze -scalar-evolution | grep smax +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; PR1614 +; CHECK: smax + define i32 @f(i32 %x, i32 %y) { entry: br label %bb diff --git a/test/Analysis/ScalarEvolution/lit.local.cfg b/test/Analysis/ScalarEvolution/lit.local.cfg deleted file mode 100644 index c6106e4746f2d..0000000000000 --- a/test/Analysis/ScalarEvolution/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll'] diff --git a/test/Analysis/ScalarEvolution/max-trip-count-address-space.ll b/test/Analysis/ScalarEvolution/max-trip-count-address-space.ll new file mode 100644 index 0000000000000..aa5254c758bf8 --- /dev/null +++ b/test/Analysis/ScalarEvolution/max-trip-count-address-space.ll @@ -0,0 +1,68 @@ +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s + +; ScalarEvolution should be able to understand the loop and eliminate the casts. + +target datalayout = "e-p:32:32:32-p1:16:16:16-p2:8:8:8-p4:64:64:64-n16:32:64" + +; CHECK: {%d,+,4}<%bb> Exits: ((4 * (trunc i32 (-1 + %n) to i16)) + %d) + + +define void @foo(i32 addrspace(1)* nocapture %d, i32 %n) nounwind { +; CHECK: @foo +entry: + %0 = icmp sgt i32 %n, 0 ; [#uses=1] + br i1 %0, label %bb.nph, label %return + +bb.nph: ; preds = %entry + br label %bb + +bb: ; preds = %bb1, %bb.nph + %i.02 = phi i32 [ %5, %bb1 ], [ 0, %bb.nph ] ; [#uses=2] + %p.01 = phi i8 [ %4, %bb1 ], [ -1, %bb.nph ] ; [#uses=2] + %1 = sext i8 %p.01 to i32 ; [#uses=1] + %2 = sext i32 %i.02 to i64 ; [#uses=1] + %3 = getelementptr i32 addrspace(1)* %d, i64 %2 ; [#uses=1] + store i32 %1, i32 addrspace(1)* %3, align 4 + %4 = add i8 %p.01, 1 ; [#uses=1] + %5 = add i32 %i.02, 1 ; [#uses=2] + br label %bb1 + +bb1: ; preds = %bb + %6 = icmp slt i32 %5, %n ; [#uses=1] + br i1 %6, label %bb, label %bb1.return_crit_edge + +bb1.return_crit_edge: ; preds = %bb1 + br label %return + +return: ; preds = %bb1.return_crit_edge, %entry + ret void +} + +define void @test(i8 addrspace(1)* %a, i32 %n) nounwind { +; CHECK: @test +entry: + %cmp1 = icmp sgt i32 %n, 0 + br i1 %cmp1, label %for.body.lr.ph, label %for.end + +for.body.lr.ph: ; preds = %entry + %tmp = zext i32 %n to i64 + br label %for.body + +for.body: ; preds = %for.body, %for.body.lr.ph + %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %for.body.lr.ph ] + %arrayidx = getelementptr i8 addrspace(1)* %a, i64 %indvar + store i8 0, i8 addrspace(1)* %arrayidx, align 1 + %indvar.next = add i64 %indvar, 1 + %exitcond = icmp ne i64 %indvar.next, %tmp + br i1 %exitcond, label %for.body, label %for.cond.for.end_crit_edge + +for.cond.for.end_crit_edge: ; preds = %for.body + br label %for.end + +for.end: ; preds = %for.cond.for.end_crit_edge, %entry + ret void +} + +; CHECK: Determining loop execution counts for: @test +; CHECK-NEXT: backedge-taken count is +; CHECK-NEXT: max backedge-taken count is -1 diff --git a/test/Analysis/ScalarEvolution/nsw.ll b/test/Analysis/ScalarEvolution/nsw.ll index 659cf4f8da972..05992eadbac03 100644 --- a/test/Analysis/ScalarEvolution/nsw.ll +++ b/test/Analysis/ScalarEvolution/nsw.ll @@ -62,11 +62,11 @@ for.body.lr.ph.i.i: ; preds = %entry for.body.i.i: ; preds = %for.body.i.i, %for.body.lr.ph.i.i %__first.addr.02.i.i = phi i32* [ %begin, %for.body.lr.ph.i.i ], [ %ptrincdec.i.i, %for.body.i.i ] ; CHECK: %__first.addr.02.i.i -; CHECK-NEXT: --> {%begin,+,4}<%for.body.i.i> +; CHECK-NEXT: --> {%begin,+,4}<%for.body.i.i> store i32 0, i32* %__first.addr.02.i.i, align 4 %ptrincdec.i.i = getelementptr inbounds i32* %__first.addr.02.i.i, i64 1 ; CHECK: %ptrincdec.i.i -; CHECK-NEXT: --> {(4 + %begin),+,4}<%for.body.i.i> +; CHECK-NEXT: --> {(4 + %begin),+,4}<%for.body.i.i> %cmp.i.i = icmp eq i32* %ptrincdec.i.i, %end br i1 %cmp.i.i, label %for.cond.for.end_crit_edge.i.i, label %for.body.i.i @@ -122,3 +122,39 @@ exit: %result = phi i32 [ %a, %entry ], [ %tmp2, %greater ] ret i32 %result } + +; TODO: This could fold down to '1' +; CHECK-LABEL: PR12375 +; CHECK: --> {(4 + %arg),+,4}<%bb1> Exits: (4 + (4 * ((-1 + (-1 * %arg) + ((4 + %arg) umax (8 + %arg))) /u 4)) + %arg) +define i32 @PR12375(i32* readnone %arg) { +bb: + %tmp = getelementptr inbounds i32* %arg, i64 2 + br label %bb1 + +bb1: ; preds = %bb1, %bb + %tmp2 = phi i32* [ %arg, %bb ], [ %tmp5, %bb1 ] + %tmp3 = phi i32 [ 0, %bb ], [ %tmp4, %bb1 ] + %tmp4 = add nsw i32 %tmp3, 1 + %tmp5 = getelementptr inbounds i32* %tmp2, i64 1 + %tmp6 = icmp ult i32* %tmp5, %tmp + br i1 %tmp6, label %bb1, label %bb7 + +bb7: ; preds = %bb1 + ret i32 %tmp4 +} + +; CHECK-LABEL: PR12376 +; CHECK: --> {(4 + %arg),+,4}<%bb2> Exits: (4 + (4 * ((3 + (-1 * %arg) + (%arg umax %arg1)) /u 4)) + %arg) +define void @PR12376(i32* nocapture %arg, i32* nocapture %arg1) { +bb: + br label %bb2 + +bb2: ; preds = %bb2, %bb + %tmp = phi i32* [ %arg, %bb ], [ %tmp4, %bb2 ] + %tmp3 = icmp ult i32* %tmp, %arg1 + %tmp4 = getelementptr inbounds i32* %tmp, i64 1 + br i1 %tmp3, label %bb2, label %bb5 + +bb5: ; preds = %bb2 + ret void +} diff --git a/test/Analysis/ScalarEvolution/smax.ll b/test/Analysis/ScalarEvolution/smax.ll index eceb4298fd50c..122e9e47e56f4 100644 --- a/test/Analysis/ScalarEvolution/smax.ll +++ b/test/Analysis/ScalarEvolution/smax.ll @@ -1,8 +1,10 @@ -; RUN: opt < %s -analyze -scalar-evolution | grep smax | count 2 -; RUN: opt < %s -analyze -scalar-evolution | grep \ -; RUN: "%. smax %. smax %." +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; PR1614 +; CHECK: --> (%a smax %b) +; CHECK: --> (%a smax %b smax %c) +; CHECK-NOT: smax + define i32 @x(i32 %a, i32 %b, i32 %c) { %A = icmp sgt i32 %a, %b %B = select i1 %A, i32 %a, i32 %b diff --git a/test/Analysis/ScalarEvolution/trip-count.ll b/test/Analysis/ScalarEvolution/trip-count.ll index 94f6882c0c914..f89125aeb29b6 100644 --- a/test/Analysis/ScalarEvolution/trip-count.ll +++ b/test/Analysis/ScalarEvolution/trip-count.ll @@ -1,9 +1,9 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: -scalar-evolution-max-iterations=0 | grep "backedge-taken count is 10000" +; RUN: opt < %s -analyze -scalar-evolution -scalar-evolution-max-iterations=0 | FileCheck %s ; PR1101 @A = weak global [1000 x i32] zeroinitializer, align 32 +; CHECK: backedge-taken count is 10000 define void @test(i32 %N) { entry: diff --git a/test/Analysis/ScalarEvolution/trip-count10.ll b/test/Analysis/ScalarEvolution/trip-count10.ll index 546e1dc7d8f7c..ead80b950409d 100644 --- a/test/Analysis/ScalarEvolution/trip-count10.ll +++ b/test/Analysis/ScalarEvolution/trip-count10.ll @@ -3,7 +3,7 @@ ; Trip counts with trivial exit conditions. ; CHECK: Determining loop execution counts for: @a -; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable backedge-taken count. ; CHECK: Loop %loop: Unpredictable max backedge-taken count. ; CHECK: Determining loop execution counts for: @b @@ -15,8 +15,8 @@ ; CHECK: Loop %loop: max backedge-taken count is false ; CHECK: Determining loop execution counts for: @d -; CHECK: Loop %loop: Unpredictable backedge-taken count. -; CHECK: Loop %loop: Unpredictable max backedge-taken count. +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable max backedge-taken count. define void @a(i64 %n) nounwind { entry: @@ -124,3 +124,28 @@ loop: return: ret void } + +; PR16130: Loop exit depends on an 'or' expression. +; One side of the expression test against a value that will be skipped. +; We can't assume undefined behavior just because we have an NSW flag. +; +; CHECK: Determining loop execution counts for: @exit_orcond_nsw +; CHECK: Loop %for.body.i: Unpredictable backedge-taken count. +; CHECK: Loop %for.body.i: max backedge-taken count is 1 +define void @exit_orcond_nsw(i32 *%a) nounwind { +entry: + br label %for.body.i + +for.body.i: ; preds = %for.body.i, %entry + %b.01.i = phi i32 [ 0, %entry ], [ %add.i, %for.body.i ] + %tobool.i = icmp ne i32 %b.01.i, 0 + %add.i = add nsw i32 %b.01.i, 8 + %cmp.i = icmp eq i32 %add.i, 13 + %or.cond = or i1 %tobool.i, %cmp.i + br i1 %or.cond, label %exit, label %for.body.i + +exit: ; preds = %for.body.i + %b.01.i.lcssa = phi i32 [ %b.01.i, %for.body.i ] + store i32 %b.01.i.lcssa, i32* %a, align 4 + ret void +} diff --git a/test/Analysis/ScalarEvolution/trip-count11.ll b/test/Analysis/ScalarEvolution/trip-count11.ll index 71915037ec8ba..e14af08e33f8a 100644 --- a/test/Analysis/ScalarEvolution/trip-count11.ll +++ b/test/Analysis/ScalarEvolution/trip-count11.ll @@ -1,9 +1,11 @@ ; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s -target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" +target datalayout = "e-p:64:64:64-p1:16:16:16-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" @foo.a = internal constant [8 x i32] [i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7], align 16 +@foo.a_as1 = internal addrspace(1) constant [8 x i32] [i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7], align 16 + define i32 @foo() nounwind uwtable noinline { entry: @@ -27,3 +29,27 @@ for.inc: ; preds = %for.cond for.end: ; preds = %for.cond ret i32 %sum.0 } + +define i32 @foo_as1() nounwind uwtable noinline { +entry: + br label %for.cond + +for.cond: ; preds = %for.inc, %entry + %sum.0 = phi i32 [ 0, %entry ], [ %add, %for.inc ] +; CHECK: --> %sum.0 Exits: 28 + %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ] + %cmp = icmp ult i32 %i.0, 8 + br i1 %cmp, label %for.inc, label %for.end + +for.inc: ; preds = %for.cond + %idxprom = sext i32 %i.0 to i64 + %arrayidx = getelementptr inbounds [8 x i32] addrspace(1)* @foo.a_as1, i64 0, i64 %idxprom + %0 = load i32 addrspace(1)* %arrayidx, align 4 + %add = add nsw i32 %sum.0, %0 + %inc = add nsw i32 %i.0, 1 + br label %for.cond + +for.end: ; preds = %for.cond + ret i32 %sum.0 +} + diff --git a/test/Analysis/ScalarEvolution/trip-count2.ll b/test/Analysis/ScalarEvolution/trip-count2.ll index d84e99f6e7ca9..e76488abfca51 100644 --- a/test/Analysis/ScalarEvolution/trip-count2.ll +++ b/test/Analysis/ScalarEvolution/trip-count2.ll @@ -1,9 +1,9 @@ -; RUN: opt < %s -analyze -scalar-evolution | \ -; RUN: grep "backedge-taken count is 4" +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; PR1101 @A = weak global [1000 x i32] zeroinitializer, align 32 +; CHECK: backedge-taken count is 4 define void @test(i32 %N) { entry: diff --git a/test/Analysis/ScalarEvolution/trip-count3.ll b/test/Analysis/ScalarEvolution/trip-count3.ll index 0cb6c952b8939..850e035e7c6b8 100644 --- a/test/Analysis/ScalarEvolution/trip-count3.ll +++ b/test/Analysis/ScalarEvolution/trip-count3.ll @@ -1,10 +1,12 @@ -; RUN: opt < %s -scalar-evolution -analyze \ -; RUN: | grep "Loop %bb3\.i: Unpredictable backedge-taken count\." +; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s ; ScalarEvolution can't compute a trip count because it doesn't know if ; dividing by the stride will have a remainder. This could theoretically ; be teaching it how to use a more elaborate trip count computation. +; CHECK: Loop %bb3.i: backedge-taken count is ((64 + (-64 smax (-1 + (-1 * %0))) + %0) /u 64) +; CHECK: Loop %bb3.i: max backedge-taken count is 33554431 + %struct.FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] } %struct.SHA_INFO = type { [5 x i32], i32, i32, [16 x i32] } %struct._IO_marker = type { %struct._IO_marker*, %struct.FILE*, i32 } diff --git a/test/Analysis/ScalarEvolution/trip-count4.ll b/test/Analysis/ScalarEvolution/trip-count4.ll index c02ae145268f5..b7184a48fe854 100644 --- a/test/Analysis/ScalarEvolution/trip-count4.ll +++ b/test/Analysis/ScalarEvolution/trip-count4.ll @@ -1,8 +1,9 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: | grep "sext.*trunc.*Exits: 11" +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; ScalarEvolution should be able to compute a loop exit value for %indvar.i8. +; CHECK: sext{{.*}}trunc{{.*}}Exits: 11 + define void @another_count_down_signed(double* %d, i64 %n) nounwind { entry: br label %loop diff --git a/test/Analysis/ScalarEvolution/trip-count6.ll b/test/Analysis/ScalarEvolution/trip-count6.ll index 882f5526da4c0..0f394a09d156e 100644 --- a/test/Analysis/ScalarEvolution/trip-count6.ll +++ b/test/Analysis/ScalarEvolution/trip-count6.ll @@ -1,8 +1,9 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: | grep "max backedge-taken count is 1$" +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s @mode_table = global [4 x i32] zeroinitializer ; <[4 x i32]*> [#uses=1] +; CHECK: max backedge-taken count is 1{{$}} + define i8 @f() { entry: tail call i32 @fegetround( ) ; :0 [#uses=1] diff --git a/test/Analysis/ScalarEvolution/trip-count7.ll b/test/Analysis/ScalarEvolution/trip-count7.ll index 2bcb9e92abcce..d01a18a468f0f 100644 --- a/test/Analysis/ScalarEvolution/trip-count7.ll +++ b/test/Analysis/ScalarEvolution/trip-count7.ll @@ -1,8 +1,9 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: | grep "Loop %bb7.i: Unpredictable backedge-taken count\." +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" +; CHECK: Loop %bb7.i: Unpredictable backedge-taken count. + %struct.complex = type { float, float } %struct.element = type { i32, i32 } %struct.node = type { %struct.node*, %struct.node*, i32 } diff --git a/test/Analysis/ScalarEvolution/trip-count8.ll b/test/Analysis/ScalarEvolution/trip-count8.ll index 005162b792127..a1777bc969c9d 100644 --- a/test/Analysis/ScalarEvolution/trip-count8.ll +++ b/test/Analysis/ScalarEvolution/trip-count8.ll @@ -1,9 +1,10 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: | grep "Loop %for\.body: backedge-taken count is (-1 + [%]ecx)" +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; PR4599 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" +; CHECK: Loop %for.body: backedge-taken count is (-1 + {{%?}}ecx) + define i32 @foo(i32 %ecx) nounwind { entry: %cmp2 = icmp eq i32 %ecx, 0 ; [#uses=1] diff --git a/test/Analysis/ScalarEvolution/trip-count9.ll b/test/Analysis/ScalarEvolution/trip-count9.ll index 9180f2b8dd7f7..9a080b34743f9 100644 --- a/test/Analysis/ScalarEvolution/trip-count9.ll +++ b/test/Analysis/ScalarEvolution/trip-count9.ll @@ -25,8 +25,8 @@ exit: } ; CHECK: Determining loop execution counts for: @step2 -; CHECK: Loop %loop: Unpredictable backedge-taken count. -; CHECK: Loop %loop: Unpredictable max backedge-taken count. +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable max backedge-taken count. define void @step2(i4 %n) { entry: %s = icmp sgt i4 %n, 0 @@ -57,8 +57,8 @@ exit: } ; CHECK: Determining loop execution counts for: @start1_step2 -; CHECK: Loop %loop: Unpredictable backedge-taken count. -; CHECK: Loop %loop: Unpredictable max backedge-taken count. +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable max backedge-taken count. define void @start1_step2(i4 %n) { entry: %s = icmp sgt i4 %n, 0 @@ -89,8 +89,8 @@ exit: } ; CHECK: Determining loop execution counts for: @startx_step2 -; CHECK: Loop %loop: Unpredictable backedge-taken count. -; CHECK: Loop %loop: Unpredictable max backedge-taken count. +; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: Unpredictable max backedge-taken count. define void @startx_step2(i4 %n, i4 %x) { entry: %s = icmp sgt i4 %n, 0 @@ -120,12 +120,18 @@ exit: ret void } -; Be careful with this one. If %n is INT4_MAX, %i.next will wrap. The nsw bit -; says that the result is undefined, but ScalarEvolution must respect that -; subsequent passes may result the undefined behavior in predictable ways. +; If %n is INT4_MAX, %i.next will wrap. The nsw bit says that the +; result is undefined. Therefore, after the loop's second iteration, +; we are free to assume that the loop exits. This is valid because: +; (a) %i.next is a poison value after the second iteration, which can +; also be considered an undef value. +; (b) the return instruction enacts a side effect that is control +; dependent on the poison value. +; +; CHECK-LABEL: nsw_step2 ; CHECK: Determining loop execution counts for: @nsw_step2 -; CHECK: Loop %loop: Unpredictable backedge-taken count. -; CHECK: Loop %loop: Unpredictable max backedge-taken count. +; CHECK: Loop %loop: backedge-taken count is ((-1 + %n) /u 2) +; CHECK: Loop %loop: max backedge-taken count is 2 define void @nsw_step2(i4 %n) { entry: %s = icmp sgt i4 %n, 0 @@ -139,6 +145,7 @@ exit: ret void } +; CHECK-LABEL: nsw_start1 ; CHECK: Determining loop execution counts for: @nsw_start1 ; CHECK: Loop %loop: backedge-taken count is (-2 + (2 smax %n)) ; CHECK: Loop %loop: max backedge-taken count is 5 @@ -156,8 +163,8 @@ exit: } ; CHECK: Determining loop execution counts for: @nsw_start1_step2 -; CHECK: Loop %loop: Unpredictable backedge-taken count. -; CHECK: Loop %loop: Unpredictable max backedge-taken count. +; CHECK: Loop %loop: backedge-taken count is ((-2 + (3 smax %n)) /u 2) +; CHECK: Loop %loop: max backedge-taken count is 2 define void @nsw_start1_step2(i4 %n) { entry: %s = icmp sgt i4 %n, 0 @@ -188,8 +195,8 @@ exit: } ; CHECK: Determining loop execution counts for: @nsw_startx_step2 -; CHECK: Loop %loop: Unpredictable backedge-taken count. -; CHECK: Loop %loop: Unpredictable max backedge-taken count. +; CHECK: Loop %loop: backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax %n)) /u 2) +; CHECK: Loop %loop: max backedge-taken count is 7 define void @nsw_startx_step2(i4 %n, i4 %x) { entry: %s = icmp sgt i4 %n, 0 @@ -221,7 +228,7 @@ exit: } ; CHECK: Determining loop execution counts for: @even_step2 -; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: backedge-taken count is ((-1 + (2 * %n)) /u 2) ; CHECK: Loop %loop: max backedge-taken count is 2 define void @even_step2(i4 %n) { entry: @@ -255,7 +262,7 @@ exit: } ; CHECK: Determining loop execution counts for: @even_start1_step2 -; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: backedge-taken count is ((-2 + (3 smax (2 * %n))) /u 2) ; CHECK: Loop %loop: max backedge-taken count is 2 define void @even_start1_step2(i4 %n) { entry: @@ -273,7 +280,7 @@ exit: ; CHECK: Determining loop execution counts for: @even_startx ; CHECK: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n))) -; CHECK: Loop %loop: max backedge-taken count is -1 +; CHECK: Loop %loop: max backedge-taken count is -2 define void @even_startx(i4 %n, i4 %x) { entry: %m = shl i4 %n, 1 @@ -289,7 +296,7 @@ exit: } ; CHECK: Determining loop execution counts for: @even_startx_step2 -; CHECK: Loop %loop: Unpredictable backedge-taken count. +; CHECK: Loop %loop: backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2) ; CHECK: Loop %loop: max backedge-taken count is 7 define void @even_startx_step2(i4 %n, i4 %x) { entry: @@ -375,7 +382,7 @@ exit: ; CHECK: Determining loop execution counts for: @even_nsw_startx ; CHECK: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n))) -; CHECK: Loop %loop: max backedge-taken count is -1 +; CHECK: Loop %loop: max backedge-taken count is -2 define void @even_nsw_startx(i4 %n, i4 %x) { entry: %m = shl i4 %n, 1 diff --git a/test/Analysis/ScalarEvolution/xor-and.ll b/test/Analysis/ScalarEvolution/xor-and.ll index 4ab2f39a2810a..2616ea928a494 100644 --- a/test/Analysis/ScalarEvolution/xor-and.ll +++ b/test/Analysis/ScalarEvolution/xor-and.ll @@ -1,9 +1,10 @@ -; RUN: opt < %s -scalar-evolution -analyze \ -; RUN: | grep "\--> (zext i4 (-8 + (trunc i64 (8 \* %x) to i4)) to i64)" +; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s ; ScalarEvolution shouldn't try to analyze %z into something like ; --> (zext i4 (-1 + (-1 * (trunc i64 (8 * %x) to i4))) to i64) +; CHECK: --> (zext i4 (-8 + (trunc i64 (8 * %x) to i4)) to i64) + define i64 @foo(i64 %x) { %a = shl i64 %x, 3 %t = and i64 %a, 8 diff --git a/test/Analysis/ScalarEvolution/zext-wrap.ll b/test/Analysis/ScalarEvolution/zext-wrap.ll index 38d15ffbd880e..104ed41010af0 100644 --- a/test/Analysis/ScalarEvolution/zext-wrap.ll +++ b/test/Analysis/ScalarEvolution/zext-wrap.ll @@ -1,5 +1,4 @@ -; RUN: opt < %s -analyze -scalar-evolution \ -; RUN: | FileCheck %s +; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s ; PR4569 define i16 @main() nounwind { diff --git a/test/Analysis/TypeBasedAliasAnalysis/PR17620.ll b/test/Analysis/TypeBasedAliasAnalysis/PR17620.ll new file mode 100644 index 0000000000000..905113995c30d --- /dev/null +++ b/test/Analysis/TypeBasedAliasAnalysis/PR17620.ll @@ -0,0 +1,45 @@ +; RUN: opt < %s -tbaa -gvn -S | FileCheck %s + +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" + +%structA = type { %structB } +%structB = type { i32*, %classT } +%classT = type { %classO, %classJ*, i8 } +%classO = type { i32 } +%classJ = type { i8 } +%classA = type { %classB } +%classB = type { i8 } +%classC = type { %classD, %structA } +%classD = type { %structA* } + +; Function Attrs: ssp uwtable +define %structA** @test(%classA* %this, i32** %p1) #0 align 2 { +entry: +; CHECK-LABEL: @test +; CHECK: load i32** %p1, align 8, !tbaa +; CHECK: load i32** getelementptr (%classC* null, i32 0, i32 1, i32 0, i32 0), align 8, !tbaa +; CHECK: call void @callee + %0 = load i32** %p1, align 8, !tbaa !1 + %1 = load i32** getelementptr (%classC* null, i32 0, i32 1, i32 0, i32 0), align 8, !tbaa !5 + call void @callee(i32* %0, i32* %1) + unreachable +} + +declare void @callee(i32*, i32*) #1 + +attributes #0 = { ssp 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" } +attributes #1 = { "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" } + +!llvm.ident = !{!0} + +!0 = metadata !{metadata !"clang version 3.4"} +!1 = metadata !{metadata !2, metadata !2, i64 0} +!2 = metadata !{metadata !"any pointer", metadata !3, i64 0} +!3 = metadata !{metadata !"omnipotent char", metadata !4, i64 0} +!4 = metadata !{metadata !"Simple C/C++ TBAA"} +!5 = metadata !{metadata !6, metadata !2, i64 8} +!6 = metadata !{metadata !"_ZTSN12_GLOBAL__N_11RINS_1FIPi8TreeIterN1I1S1LENS_1KINS_1DIKS2_S3_EEEEE1GEPSD_EE", metadata !7, i64 8} +!7 = metadata !{metadata !"_ZTSN12_GLOBAL__N_11FIPi8TreeIterN1I1S1LENS_1KINS_1DIKS1_S2_EEEEE1GE", metadata !8, i64 0} +!8 = metadata !{metadata !"_ZTSN12_GLOBAL__N_11DIKPi8TreeIterEE", metadata !2, i64 0, metadata !9, i64 8} +!9 = metadata !{metadata !"_ZTS8TreeIter", metadata !2, i64 8, metadata !10, i64 16} +!10 = metadata !{metadata !"bool", metadata !3, i64 0} diff --git a/test/Analysis/TypeBasedAliasAnalysis/aliastest.ll b/test/Analysis/TypeBasedAliasAnalysis/aliastest.ll index d59e3924acd30..76a88c859a6bf 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/aliastest.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/aliastest.ll @@ -47,16 +47,21 @@ define i8 @test1_no(i8* %a, i8* %b) nounwind { ; Root note. !0 = metadata !{ } ; Some type. -!1 = metadata !{ metadata !"foo", metadata !0 } +!1 = metadata !{metadata !7, metadata !7, i64 0} ; Some other non-aliasing type. -!2 = metadata !{ metadata !"bar", metadata !0 } +!2 = metadata !{metadata !8, metadata !8, i64 0} ; Some type. -!3 = metadata !{ metadata !"foo", metadata !0 } +!3 = metadata !{metadata !9, metadata !9, i64 0} ; Some type in a different type system. -!4 = metadata !{ metadata !"bar", metadata !"different" } +!4 = metadata !{metadata !10, metadata !10, i64 0} ; Invariant memory. -!5 = metadata !{ metadata !"qux", metadata !0, i1 1 } +!5 = metadata !{metadata !11, metadata !11, i64 0, i1 1} ; Not invariant memory. -!6 = metadata !{ metadata !"qux", metadata !0, i1 0 } +!6 = metadata !{metadata !11, metadata !11, i64 0, i1 0} +!7 = metadata !{ metadata !"foo", metadata !0 } +!8 = metadata !{ metadata !"bar", metadata !0 } +!9 = metadata !{ metadata !"foo", metadata !0 } +!10 = metadata !{ metadata !"bar", metadata !"different" } +!11 = metadata !{ metadata !"qux", metadata !0} diff --git a/test/Analysis/TypeBasedAliasAnalysis/argument-promotion.ll b/test/Analysis/TypeBasedAliasAnalysis/argument-promotion.ll index 3b5211e5999d1..14bbeac14d692 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/argument-promotion.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/argument-promotion.ll @@ -1,7 +1,9 @@ -; RUN: opt < %s -tbaa -basicaa -argpromotion -mem2reg -S | not grep alloca +; RUN: opt < %s -tbaa -basicaa -argpromotion -mem2reg -S | FileCheck %s target datalayout = "E-p:64:64:64" +; CHECK: test +; CHECK-NOT: alloca define internal i32 @test(i32* %X, i32* %Y, i32* %Q) { store i32 77, i32* %Q, !tbaa !2 %A = load i32* %X, !tbaa !1 @@ -10,6 +12,8 @@ define internal i32 @test(i32* %X, i32* %Y, i32* %Q) { ret i32 %C } +; CHECK: caller +; CHECK-NOT: alloca define internal i32 @caller(i32* %B, i32* %Q) { %A = alloca i32 store i32 78, i32* %Q, !tbaa !2 @@ -18,6 +22,8 @@ define internal i32 @caller(i32* %B, i32* %Q) { ret i32 %C } +; CHECK: callercaller +; CHECK-NOT: alloca define i32 @callercaller(i32* %Q) { %B = alloca i32 store i32 2, i32* %B, !tbaa !1 @@ -27,5 +33,7 @@ define i32 @callercaller(i32* %Q) { } !0 = metadata !{metadata !"test"} -!1 = metadata !{metadata !"green", metadata !0} -!2 = metadata !{metadata !"blue", metadata !0} +!1 = metadata !{metadata !3, metadata !3, i64 0} +!2 = metadata !{metadata !4, metadata !4, i64 0} +!3 = metadata !{metadata !"green", metadata !0} +!4 = metadata !{metadata !"blue", metadata !0} diff --git a/test/Analysis/TypeBasedAliasAnalysis/dse.ll b/test/Analysis/TypeBasedAliasAnalysis/dse.ll index 6b44eb6384234..bcf1f2c5275df 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/dse.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/dse.ll @@ -51,16 +51,21 @@ define i8 @test1_no(i8* %a, i8* %b) nounwind { ; Root note. !0 = metadata !{ } ; Some type. -!1 = metadata !{ metadata !"foo", metadata !0 } +!1 = metadata !{metadata !7, metadata !7, i64 0} ; Some other non-aliasing type. -!2 = metadata !{ metadata !"bar", metadata !0 } +!2 = metadata !{metadata !8, metadata !8, i64 0} ; Some type. -!3 = metadata !{ metadata !"foo", metadata !0 } +!3 = metadata !{metadata !9, metadata !9, i64 0} ; Some type in a different type system. -!4 = metadata !{ metadata !"bar", metadata !"different" } +!4 = metadata !{metadata !10, metadata !10, i64 0} ; Invariant memory. -!5 = metadata !{ metadata !"qux", metadata !0, i1 1 } +!5 = metadata !{metadata !11, metadata !11, i64 0, i1 1} ; Not invariant memory. -!6 = metadata !{ metadata !"qux", metadata !0, i1 0 } +!6 = metadata !{metadata !11, metadata !11, i64 0, i1 0} +!7 = metadata !{ metadata !"foo", metadata !0 } +!8 = metadata !{ metadata !"bar", metadata !0 } +!9 = metadata !{ metadata !"foo", metadata !0 } +!10 = metadata !{ metadata !"bar", metadata !"different" } +!11 = metadata !{ metadata !"qux", metadata !0} diff --git a/test/Analysis/TypeBasedAliasAnalysis/dynamic-indices.ll b/test/Analysis/TypeBasedAliasAnalysis/dynamic-indices.ll index 52e394b2d09ce..4dc40739edfb1 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/dynamic-indices.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/dynamic-indices.ll @@ -13,7 +13,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 ; CHECK: for.end: ; CHECK: %arrayidx31 = getelementptr inbounds %union.vector_t* %t, i64 0, i32 0, i64 1 -; CHECK: %tmp32 = load i64* %arrayidx31, align 8, !tbaa !3 +; CHECK: %tmp32 = load i64* %arrayidx31, align 8, !tbaa [[TAG:!.*]] define void @vrlh(%union.vector_t* %va, %union.vector_t* %vb, %union.vector_t* %vd) nounwind { entry: @@ -123,9 +123,15 @@ for.end: ; preds = %for.body ret float %tmp10 } -!0 = metadata !{metadata !"short", metadata !1} +; CHECK: [[TAG]] = metadata !{metadata [[TYPE_LL:!.*]], metadata [[TYPE_LL]], i64 0} +; CHECK: [[TYPE_LL]] = metadata !{metadata !"long long", metadata {{!.*}}} +!0 = metadata !{metadata !6, metadata !6, i64 0} !1 = metadata !{metadata !"omnipotent char", metadata !2} !2 = metadata !{metadata !"Simple C/C++ TBAA", null} -!3 = metadata !{metadata !"long long", metadata !1} -!4 = metadata !{metadata !"int", metadata !1} -!5 = metadata !{metadata !"float", metadata !1} +!3 = metadata !{metadata !7, metadata !7, i64 0} +!4 = metadata !{metadata !8, metadata !8, i64 0} +!5 = metadata !{metadata !9, metadata !9, i64 0} +!6 = metadata !{metadata !"short", metadata !1} +!7 = metadata !{metadata !"long long", metadata !1} +!8 = metadata !{metadata !"int", metadata !1} +!9 = metadata !{metadata !"float", metadata !1} diff --git a/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll b/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll index c6cc26a24106b..e9fb9418e7043 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll @@ -49,7 +49,7 @@ define void @test2_yes(i8* %p, i8* %q, i64 %n) nounwind { ret void } -; CHECK: define void @test2_no(i8* nocapture %p, i8* nocapture %q, i64 %n) #1 { +; CHECK: define void @test2_no(i8* nocapture %p, i8* nocapture readonly %q, i64 %n) #1 { define void @test2_no(i8* %p, i8* %q, i64 %n) nounwind { call void @llvm.memcpy.p0i8.p0i8.i64(i8* %p, i8* %q, i64 %n, i32 1, i1 false), !tbaa !2 ret void @@ -80,6 +80,7 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8*, i8*, i64, i32, i1) nounwind !0 = metadata !{ } ; Invariant memory. -!1 = metadata !{ metadata !"foo", metadata !0, i1 1 } +!1 = metadata !{metadata !3, metadata !3, i64 0, i1 1 } ; Not invariant memory. -!2 = metadata !{ metadata !"foo", metadata !0, i1 0 } +!2 = metadata !{metadata !3, metadata !3, i64 0, i1 0 } +!3 = metadata !{ metadata !"foo", metadata !0 } diff --git a/test/Analysis/TypeBasedAliasAnalysis/gvn-nonlocal-type-mismatch.ll b/test/Analysis/TypeBasedAliasAnalysis/gvn-nonlocal-type-mismatch.ll index eceaa2cf02d34..90e1abbb673a5 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/gvn-nonlocal-type-mismatch.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/gvn-nonlocal-type-mismatch.ll @@ -85,7 +85,11 @@ if.else: } !0 = metadata !{} -!1 = metadata !{metadata !"red", metadata !0} -!2 = metadata !{metadata !"blu", metadata !0} -!3 = metadata !{metadata !"outer space"} -!4 = metadata !{metadata !"brick red", metadata !1} +!1 = metadata !{metadata !5, metadata !5, i64 0} +!2 = metadata !{metadata !6, metadata !6, i64 0} +!3 = metadata !{metadata !7, metadata !7, i64 0} +!4 = metadata !{metadata !8, metadata !8, i64 0} +!5 = metadata !{metadata !"red", metadata !0} +!6 = metadata !{metadata !"blu", metadata !0} +!7 = metadata !{metadata !"outer space"} +!8 = metadata !{metadata !"brick red", metadata !5} diff --git a/test/Analysis/TypeBasedAliasAnalysis/intrinsics.ll b/test/Analysis/TypeBasedAliasAnalysis/intrinsics.ll index 6f1c22da3ac5e..93b8e503b8558 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/intrinsics.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/intrinsics.ll @@ -26,5 +26,7 @@ declare void @llvm.arm.neon.vst1.v8i16(i8*, <8 x i16>, i32) nounwind ; CHECK: attributes [[NUW]] = { nounwind } !0 = metadata !{metadata !"tbaa root", null} -!1 = metadata !{metadata !"A", metadata !0} -!2 = metadata !{metadata !"B", metadata !0} +!1 = metadata !{metadata !3, metadata !3, i64 0} +!2 = metadata !{metadata !4, metadata !4, i64 0} +!3 = metadata !{metadata !"A", metadata !0} +!4 = metadata !{metadata !"B", metadata !0} diff --git a/test/Analysis/TypeBasedAliasAnalysis/licm.ll b/test/Analysis/TypeBasedAliasAnalysis/licm.ll index 12a9c1dc56497..e45fc85478d3e 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/licm.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/licm.ll @@ -30,8 +30,8 @@ for.end: ; preds = %for.body, %entry } !0 = metadata !{metadata !"root", null} -!1 = metadata !{metadata !"pointer", metadata !0} -!2 = metadata !{metadata !"double", metadata !0} +!1 = metadata !{metadata !6, metadata !6, i64 0} +!2 = metadata !{metadata !7, metadata !7, i64 0} ; LICM shouldn't hoist anything here. @@ -56,6 +56,10 @@ loop: br label %loop } -!3 = metadata !{metadata !"pointer", metadata !4} -!4 = metadata !{metadata !"char", metadata !5} -!5 = metadata !{metadata !"root", null} +!3 = metadata !{metadata !"pointer", metadata !8} +!4 = metadata !{metadata !8, metadata !8, i64 0} +!5 = metadata !{metadata !9, metadata !9, i64 0} +!6 = metadata !{metadata !"pointer", metadata !0} +!7 = metadata !{metadata !"double", metadata !0} +!8 = metadata !{metadata !"char", metadata !9} +!9 = metadata !{metadata !"root", null} diff --git a/test/Analysis/TypeBasedAliasAnalysis/lit.local.cfg b/test/Analysis/TypeBasedAliasAnalysis/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Analysis/TypeBasedAliasAnalysis/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Analysis/TypeBasedAliasAnalysis/memcpyopt.ll b/test/Analysis/TypeBasedAliasAnalysis/memcpyopt.ll index c2407dfd4c89c..6fd6eaca012e9 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/memcpyopt.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/memcpyopt.ll @@ -7,7 +7,7 @@ target datalayout = "e-p:64:64:64" ; CHECK: @foo ; CHECK-NEXT: tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %p, i8* %q, i64 16, i32 1, i1 false), !tbaa !0 -; CHECK-NEXT: store i8 2, i8* %s, align 1, !tbaa !2 +; CHECK-NEXT: store i8 2, i8* %s, align 1, !tbaa [[TAGA:!.*]] ; CHECK-NEXT: ret void define void @foo(i8* nocapture %p, i8* nocapture %q, i8* nocapture %s) nounwind { tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %p, i8* %q, i64 16, i32 1, i1 false), !tbaa !2 @@ -18,6 +18,10 @@ define void @foo(i8* nocapture %p, i8* nocapture %q, i8* nocapture %s) nounwind declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind +; CHECK [[TAGA]] = metadata !{metadata [[TYPEA:!.*]], metadata [[TYPEA]], i64 0} +; CHECK [[TYPEA]] = metadata !{metadata !"A", metadata !{{.*}}} !0 = metadata !{metadata !"tbaa root", null} -!1 = metadata !{metadata !"A", metadata !0} -!2 = metadata !{metadata !"B", metadata !0} +!1 = metadata !{metadata !3, metadata !3, i64 0} +!2 = metadata !{metadata !4, metadata !4, i64 0} +!3 = metadata !{metadata !"A", metadata !0} +!4 = metadata !{metadata !"B", metadata !0} diff --git a/test/Analysis/TypeBasedAliasAnalysis/placement-tbaa.ll b/test/Analysis/TypeBasedAliasAnalysis/placement-tbaa.ll index f1edb4482cf1f..609e87c2313f1 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/placement-tbaa.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/placement-tbaa.ll @@ -18,7 +18,7 @@ ; Basic AA says MayAlias, TBAA says NoAlias ; CHECK: MayAlias: i64* %i5, i8** %p -; CHECK: NoAlias: store i64 %conv, i64* %i5, align 8, !tbaa !4 <-> store i8* null, i8** %p, align 8, !tbaa !3 +; CHECK: NoAlias: store i64 %conv, i64* %i5, align 8, !tbaa !6 <-> store i8* null, i8** %p, align 8, !tbaa !9 %struct.Foo = type { i64 } %struct.Bar = type { i8* } @@ -32,10 +32,10 @@ entry: store i32 %n, i32* %n.addr, align 4, !tbaa !0 %call = call noalias i8* @_Znwm(i64 8) %0 = bitcast i8* %call to %struct.Foo* - store %struct.Foo* %0, %struct.Foo** %f, align 8, !tbaa !3 - %1 = load %struct.Foo** %f, align 8, !tbaa !3 + store %struct.Foo* %0, %struct.Foo** %f, align 8, !tbaa !4 + %1 = load %struct.Foo** %f, align 8, !tbaa !4 %i = getelementptr inbounds %struct.Foo* %1, i32 0, i32 0 - store i64 1, i64* %i, align 8, !tbaa !4 + store i64 1, i64* %i, align 8, !tbaa !6 store i32 0, i32* %i1, align 4, !tbaa !0 br label %for.cond @@ -46,7 +46,7 @@ for.cond: br i1 %cmp, label %for.body, label %for.end for.body: - %4 = load %struct.Foo** %f, align 8, !tbaa !3 + %4 = load %struct.Foo** %f, align 8, !tbaa !4 %5 = bitcast %struct.Foo* %4 to i8* %new.isnull = icmp eq i8* %5, null br i1 %new.isnull, label %new.cont, label %new.notnull @@ -57,11 +57,11 @@ new.notnull: new.cont: %7 = phi %struct.Bar* [ %6, %new.notnull ], [ null, %for.body ] - store %struct.Bar* %7, %struct.Bar** %b, align 8, !tbaa !3 - %8 = load %struct.Bar** %b, align 8, !tbaa !3 + store %struct.Bar* %7, %struct.Bar** %b, align 8, !tbaa !4 + %8 = load %struct.Bar** %b, align 8, !tbaa !4 %p = getelementptr inbounds %struct.Bar* %8, i32 0, i32 0 - store i8* null, i8** %p, align 8, !tbaa !3 - %9 = load %struct.Foo** %f, align 8, !tbaa !3 + store i8* null, i8** %p, align 8, !tbaa !9 + %9 = load %struct.Foo** %f, align 8, !tbaa !4 %10 = bitcast %struct.Foo* %9 to i8* %new.isnull2 = icmp eq i8* %10, null br i1 %new.isnull2, label %new.cont4, label %new.notnull3 @@ -72,12 +72,12 @@ new.notnull3: new.cont4: %12 = phi %struct.Foo* [ %11, %new.notnull3 ], [ null, %new.cont ] - store %struct.Foo* %12, %struct.Foo** %f, align 8, !tbaa !3 + store %struct.Foo* %12, %struct.Foo** %f, align 8, !tbaa !4 %13 = load i32* %i1, align 4, !tbaa !0 %conv = sext i32 %13 to i64 - %14 = load %struct.Foo** %f, align 8, !tbaa !3 + %14 = load %struct.Foo** %f, align 8, !tbaa !4 %i5 = getelementptr inbounds %struct.Foo* %14, i32 0, i32 0 - store i64 %conv, i64* %i5, align 8, !tbaa !4 + store i64 %conv, i64* %i5, align 8, !tbaa !6 br label %for.inc for.inc: @@ -87,9 +87,9 @@ for.inc: br label %for.cond for.end: - %16 = load %struct.Foo** %f, align 8, !tbaa !3 + %16 = load %struct.Foo** %f, align 8, !tbaa !4 %i6 = getelementptr inbounds %struct.Foo* %16, i32 0, i32 0 - %17 = load i64* %i6, align 8, !tbaa !4 + %17 = load i64* %i6, align 8, !tbaa !6 ret i64 %17 } @@ -97,8 +97,14 @@ declare noalias i8* @_Znwm(i64) attributes #0 = { nounwind } -!0 = metadata !{metadata !"int", metadata !1} -!1 = metadata !{metadata !"omnipotent char", metadata !2} -!2 = metadata !{metadata !"Simple C/C++ TBAA"} -!3 = metadata !{metadata !"any pointer", metadata !1} -!4 = metadata !{metadata !"long", metadata !1} +!0 = metadata !{metadata !1, metadata !1, i64 0} +!1 = metadata !{metadata !"int", metadata !2, i64 0} +!2 = metadata !{metadata !"omnipotent char", metadata !3, i64 0} +!3 = metadata !{metadata !"Simple C/C++ TBAA"} +!4 = metadata !{metadata !5, metadata !5, i64 0} +!5 = metadata !{metadata !"any pointer", metadata !2, i64 0} +!6 = metadata !{metadata !7, metadata !8, i64 0} +!7 = metadata !{metadata !"_ZTS3Foo", metadata !8, i64 0} +!8 = metadata !{metadata !"long", metadata !2, i64 0} +!9 = metadata !{metadata !10, metadata !5, i64 0} +!10 = metadata !{metadata !"_ZTS3Bar", metadata !5, i64 0} diff --git a/test/Analysis/TypeBasedAliasAnalysis/precedence.ll b/test/Analysis/TypeBasedAliasAnalysis/precedence.ll index 47cb5f2256d38..b219ef19284e3 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/precedence.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/precedence.ll @@ -39,8 +39,12 @@ entry: ret i64 %tmp3 } -!0 = metadata !{metadata !"int", metadata !1} +!0 = metadata !{metadata !2, metadata !2, i64 0} !1 = metadata !{metadata !"simple"} -!3 = metadata !{metadata !"float", metadata !1} -!4 = metadata !{metadata !"long", metadata !1} -!5 = metadata !{metadata !"small", metadata !1} +!2 = metadata !{metadata !"int", metadata !1} +!3 = metadata !{metadata !6, metadata !6, i64 0} +!4 = metadata !{metadata !7, metadata !7, i64 0} +!5 = metadata !{metadata !8, metadata !8, i64 0} +!6 = metadata !{metadata !"float", metadata !1} +!7 = metadata !{metadata !"long", metadata !1} +!8 = metadata !{metadata !"small", metadata !1} diff --git a/test/Analysis/TypeBasedAliasAnalysis/sink.ll b/test/Analysis/TypeBasedAliasAnalysis/sink.ll index fd32d6a7a58ef..726da6ce1e816 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/sink.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/sink.ll @@ -1,7 +1,7 @@ ; RUN: opt -tbaa -sink -S < %s | FileCheck %s ; CHECK: a: -; CHECK: %f = load float* %p, !tbaa !2 +; CHECK: %f = load float* %p, !tbaa [[TAGA:!.*]] ; CHECK: store float %f, float* %q define void @foo(float* %p, i1 %c, float* %q, float* %r) { @@ -15,6 +15,10 @@ b: ret void } -!0 = metadata !{metadata !"A", metadata !2} -!1 = metadata !{metadata !"B", metadata !2} +; CHECK: [[TAGA]] = metadata !{metadata [[TYPEA:!.*]], metadata [[TYPEA]], i64 0} +; CHECK: [[TYPEA]] = metadata !{metadata !"A", metadata !{{.*}}} +!0 = metadata !{metadata !3, metadata !3, i64 0} +!1 = metadata !{metadata !4, metadata !4, i64 0} !2 = metadata !{metadata !"test"} +!3 = metadata !{metadata !"A", metadata !2} +!4 = metadata !{metadata !"B", metadata !2} diff --git a/test/Analysis/TypeBasedAliasAnalysis/tbaa-path.ll b/test/Analysis/TypeBasedAliasAnalysis/tbaa-path.ll index ee527639b3d10..0cd5c301842a0 100644 --- a/test/Analysis/TypeBasedAliasAnalysis/tbaa-path.ll +++ b/test/Analysis/TypeBasedAliasAnalysis/tbaa-path.ll @@ -1,5 +1,5 @@ -; RUN: opt < %s -tbaa -basicaa -struct-path-tbaa -aa-eval -evaluate-tbaa -print-no-aliases -print-may-aliases -disable-output 2>&1 | FileCheck %s -; RUN: opt < %s -tbaa -basicaa -struct-path-tbaa -gvn -S | FileCheck %s --check-prefix=OPT +; RUN: opt < %s -tbaa -basicaa -aa-eval -evaluate-tbaa -print-no-aliases -print-may-aliases -disable-output 2>&1 | FileCheck %s +; RUN: opt < %s -tbaa -basicaa -gvn -S | FileCheck %s --check-prefix=OPT ; Generated from clang/test/CodeGen/tbaa.cpp with "-O1 -struct-path-tbaa -disable-llvm-optzns". %struct.StructA = type { i16, i32, i16, i32 } diff --git a/test/Archive/GNU.a b/test/Archive/GNU.a deleted file mode 100644 index 4c09881eb39dc..0000000000000 Binary files a/test/Archive/GNU.a and /dev/null differ diff --git a/test/Archive/IsNAN.o b/test/Archive/IsNAN.o deleted file mode 100644 index 7b3a12a69d747..0000000000000 Binary files a/test/Archive/IsNAN.o and /dev/null differ diff --git a/test/Archive/MacOSX.a b/test/Archive/MacOSX.a deleted file mode 100644 index 8ba1e6d30e3df..0000000000000 Binary files a/test/Archive/MacOSX.a and /dev/null differ diff --git a/test/Archive/README.txt b/test/Archive/README.txt deleted file mode 100644 index 6810befc5857c..0000000000000 --- a/test/Archive/README.txt +++ /dev/null @@ -1,24 +0,0 @@ -test/Regression/Archive -======================= - -This directory contains various tests of llvm-ar and llvm-ranlib to ensure -compatibility reading other ar(1) formats. It also provides a basic -functionality test for these tools. - -There are four archives accompanying these tests: - -GNU.a - constructed on Linux with GNU ar -MacOSX.a - constructed on Mac OS X with its native BSD4.4 ar -SVR4.a - constructed on Solaris with /usr/ccs/bin/ar -xpg4.a - constructed on Solaris with /usr/xpg4/bin/ar - -Each type of test is run on each of these archive files. These archives each -contain four members: - -oddlen - a member with an odd lengthed name and content -evenlen - a member with an even lengthed name and content -IsNAN.o - a Linux native binary -very_long_bytecode_file_name.bc - LLVM bytecode file with really long name - -These files test different aspects of the archiver that should cause failures -in llvm-ar if regressions are introduced. diff --git a/test/Archive/SVR4.a b/test/Archive/SVR4.a deleted file mode 100644 index 3947813ac60a7..0000000000000 Binary files a/test/Archive/SVR4.a and /dev/null differ diff --git a/test/Archive/check_binary_output.ll b/test/Archive/check_binary_output.ll deleted file mode 100644 index 60ab5caac4537..0000000000000 --- a/test/Archive/check_binary_output.ll +++ /dev/null @@ -1,4 +0,0 @@ -; This is not an assembly file, this is just to run the test. -; The test verifies that llvm-ar produces a binary output. - -;RUN: llvm-ar p %p/GNU.a very_long_bytecode_file_name.bc | cmp -s %p/very_long_bytecode_file_name.bc - diff --git a/test/Archive/evenlen b/test/Archive/evenlen deleted file mode 100644 index 59ee8d552e373..0000000000000 --- a/test/Archive/evenlen +++ /dev/null @@ -1 +0,0 @@ -evenlen diff --git a/test/Archive/extract.ll b/test/Archive/extract.ll deleted file mode 100644 index 5c0f508319b9d..0000000000000 --- a/test/Archive/extract.ll +++ /dev/null @@ -1,16 +0,0 @@ -; This isn't really an assembly file, its just here to run the test. - -; This test just makes sure that llvm-ar can extract bytecode members -; from various style archives. - -; RUN: llvm-ar p %p/GNU.a very_long_bytecode_file_name.bc | \ -; RUN: cmp -s %p/very_long_bytecode_file_name.bc - - -; RUN: llvm-ar p %p/MacOSX.a very_long_bytecode_file_name.bc | \ -; RUN: cmp -s %p/very_long_bytecode_file_name.bc - - -; RUN: llvm-ar p %p/SVR4.a very_long_bytecode_file_name.bc | \ -; RUN: cmp -s %p/very_long_bytecode_file_name.bc - - -; RUN: llvm-ar p %p/xpg4.a very_long_bytecode_file_name.bc |\ -; RUN: cmp -s %p/very_long_bytecode_file_name.bc - diff --git a/test/Archive/lit.local.cfg b/test/Archive/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Archive/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Archive/oddlen b/test/Archive/oddlen deleted file mode 100644 index 8cf5bd181b1bf..0000000000000 --- a/test/Archive/oddlen +++ /dev/null @@ -1 +0,0 @@ -oddlen diff --git a/test/Archive/toc_GNU.ll b/test/Archive/toc_GNU.ll deleted file mode 100644 index 9ed7d8eb8cbda..0000000000000 --- a/test/Archive/toc_GNU.ll +++ /dev/null @@ -1,8 +0,0 @@ -;This isn't really an assembly file, its just here to run the test. -;This test just makes sure that llvm-ar can generate a table of contents for -;GNU style archives -;RUN: llvm-ar t %p/GNU.a | FileCheck %s -;CHECK: evenlen -;CHECK-NEXT: oddlen -;CHECK-NEXT: very_long_bytecode_file_name.bc -;CHECK-NEXT: IsNAN.o diff --git a/test/Archive/toc_MacOSX.ll b/test/Archive/toc_MacOSX.ll deleted file mode 100644 index 6dbc9d2ea4a65..0000000000000 --- a/test/Archive/toc_MacOSX.ll +++ /dev/null @@ -1,9 +0,0 @@ -;This isn't really an assembly file, its just here to run the test. -;This test just makes sure that llvm-ar can generate a table of contents for -;MacOSX style archives -;RUN: llvm-ar t %p/MacOSX.a | FileCheck %s -;CHECK: __.SYMDEF SORTED -;CHECK-NEXT: evenlen -;CHECK-NEXT: oddlen -;CHECK-NEXT: very_long_bytecode_file_name.bc -;CHECK-NEXT: IsNAN.o diff --git a/test/Archive/toc_SVR4.ll b/test/Archive/toc_SVR4.ll deleted file mode 100644 index d447b92199900..0000000000000 --- a/test/Archive/toc_SVR4.ll +++ /dev/null @@ -1,8 +0,0 @@ -;This isn't really an assembly file, its just here to run the test. -;This test just makes sure that llvm-ar can generate a table of contents for -;SVR4 style archives -;RUN: llvm-ar t %p/SVR4.a | FileCheck %s -;CHECK: evenlen -;CHECK-NEXT: oddlen -;CHECK-NEXT: very_long_bytecode_file_name.bc -;CHECK-NEXT: IsNAN.o diff --git a/test/Archive/toc_xpg4.ll b/test/Archive/toc_xpg4.ll deleted file mode 100644 index fd875eebdaab9..0000000000000 --- a/test/Archive/toc_xpg4.ll +++ /dev/null @@ -1,8 +0,0 @@ -;This isn't really an assembly file, its just here to run the test. -;This test just makes sure that llvm-ar can generate a table of contents for -;xpg4 style archives -;RUN: llvm-ar t %p/xpg4.a | FileCheck %s -CHECK: evenlen -CHECK-NEXT: oddlen -CHECK-NEXT: very_long_bytecode_file_name.bc -CHECK-NEXT: IsNAN.o diff --git a/test/Archive/very_long_bytecode_file_name.bc b/test/Archive/very_long_bytecode_file_name.bc deleted file mode 100644 index f7fce249020a0..0000000000000 Binary files a/test/Archive/very_long_bytecode_file_name.bc and /dev/null differ diff --git a/test/Archive/xpg4.a b/test/Archive/xpg4.a deleted file mode 100644 index b2bdb51188fec..0000000000000 Binary files a/test/Archive/xpg4.a and /dev/null differ diff --git a/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll b/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll index df70149a33f61..17dd745682b0b 100644 --- a/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll +++ b/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll @@ -1,4 +1,4 @@ -; RUN: opt -std-compile-opts < %s | llvm-dis | not grep badref +; RUN: opt -std-compile-opts < %s | llvm-dis | not grep badref target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target triple = "x86_64-apple-darwin10.2" @@ -23,10 +23,12 @@ define i32 @main() nounwind readonly { declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone !7 = metadata !{metadata !1} -!6 = metadata !{i32 786449, i32 0, i32 12, metadata !"/d/j/debug-test.c", metadata !"/Volumes/Data/b", metadata !"clang version 3.0 (trunk 131941)", i1 true, i1 false, metadata !"", i32 0, null, null, metadata !7, null, null} ; [ DW_TAG_compile_unit ] +!6 = metadata !{i32 786449, metadata !8, i32 12, metadata !"clang version 3.0 (trunk 131941)", i1 true, metadata !"", i32 0, metadata !9, metadata !9, metadata !7, null, null, metadata !""} ; [ DW_TAG_compile_unit ] !0 = metadata !{i32 786688, metadata !1, metadata !"c", metadata !2, i32 2, metadata !5, i32 0, null} ; [ DW_TAG_auto_variable ] -!1 = metadata !{i32 786478, i32 0, metadata !2, metadata !"main", metadata !"main", metadata !"", metadata !2, i32 1, metadata !3, i1 false, i1 true, i32 0, i32 0, i32 0, i32 256, i1 false, i32 ()* @main, null, null, null, i32 1} ; [ DW_TAG_subprogram ] -!2 = metadata !{i32 786473, metadata !"/d/j/debug-test.c", metadata !"/Volumes/Data/b", metadata !0} ; [ DW_TAG_file_type ] -!3 = metadata !{i32 786453, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i32 0, i32 0, i32 0, metadata !4, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] +!1 = metadata !{i32 786478, metadata !8, metadata !2, metadata !"main", metadata !"main", metadata !"", i32 1, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 ()* @main, null, null, null, i32 1} ; [ DW_TAG_subprogram ] +!2 = metadata !{i32 786473, metadata !8} ; [ DW_TAG_file_type ] +!3 = metadata !{i32 786453, metadata !8, metadata !2, metadata !"", i32 0, i64 0, i64 0, i32 0, i32 0, null, metadata !4, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] !4 = metadata !{metadata !5} -!5 = metadata !{i32 786468, metadata !6, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] +!5 = metadata !{i32 786468, null, metadata !6, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] +!8 = metadata !{metadata !"/d/j/debug-test.c", metadata !"/Volumes/Data/b"} +!9 = metadata !{i32 0} diff --git a/test/Assembler/ConstantExprFoldCast.ll b/test/Assembler/ConstantExprFoldCast.ll index 0ce6e84626a31..161a4ca357577 100644 --- a/test/Assembler/ConstantExprFoldCast.ll +++ b/test/Assembler/ConstantExprFoldCast.ll @@ -12,3 +12,5 @@ @F = global i32* inttoptr (i32 add (i32 5, i32 -5) to i32*) @G = global i32* inttoptr (i32 sub (i32 5, i32 5) to i32*) +; Address space cast AS0 null-> AS1 null +@H = global i32 addrspace(1)* addrspacecast(i32* null to i32 addrspace(1)*) diff --git a/test/Assembler/ConstantExprNoFold.ll b/test/Assembler/ConstantExprNoFold.ll index 83e8909b5ebd6..b41959f494fda 100644 --- a/test/Assembler/ConstantExprNoFold.ll +++ b/test/Assembler/ConstantExprNoFold.ll @@ -21,3 +21,6 @@ target datalayout = "p:32:32" ; CHECK: @D = global i1 icmp eq (i64* getelementptr inbounds (i64* @A, i64 1), i64* getelementptr inbounds (i64* @B, i64 2)) @D = global i1 icmp eq (i64* getelementptr inbounds (i64* @A, i64 1), i64* getelementptr inbounds (i64* @B, i64 2)) + +; CHECK: @E = global i64 addrspace(1)* addrspacecast (i64* @A to i64 addrspace(1)*) +@E = global i64 addrspace(1)* addrspacecast(i64* @A to i64 addrspace(1)*) diff --git a/test/Assembler/attribute-builtin.ll b/test/Assembler/attribute-builtin.ll new file mode 100644 index 0000000000000..01c8a6bd8653e --- /dev/null +++ b/test/Assembler/attribute-builtin.ll @@ -0,0 +1,50 @@ + +; Make sure that llvm-as/llvm-dis properly assembly/disassembly the 'builtin' +; attribute. +; +; rdar://13727199 + +; RUN: llvm-as -disable-verify < %s | \ +; RUN: llvm-dis | \ +; RUN: llvm-as -disable-verify | \ +; RUN: llvm-dis | \ +; RUN: FileCheck -check-prefix=CHECK-ASSEMBLES %s + +; CHECK-ASSEMBLES: declare i8* @foo(i8*) [[NOBUILTIN:#[0-9]+]] +; CHECK-ASSEMBLES: call i8* @foo(i8* %x) [[BUILTIN:#[0-9]+]] +; CHECK-ASSEMBLES: attributes [[NOBUILTIN]] = { nobuiltin } +; CHECK-ASSEMBLES: attributes [[BUILTIN]] = { builtin } + +declare i8* @foo(i8*) #1 +define i8* @bar(i8* %x) { + %y = call i8* @foo(i8* %x) #0 + ret i8* %y +} + +; Make sure that we do not accept the 'builtin' attribute on function +; definitions, function declarations, and on call sites that call functions +; which do not have nobuiltin on them. +; rdar://13727199 + +; RUN: not llvm-as <%s 2>&1 | FileCheck -check-prefix=CHECK-BAD %s + +; CHECK-BAD: Attribute 'builtin' can only be applied to a callsite. +; CHECK-BAD-NEXT: i8* (i8*)* @car +; CHECK-BAD: Attribute 'builtin' can only be applied to a callsite. +; CHECK-BAD-NEXT: i8* (i8*)* @mar + +declare i8* @lar(i8*) + +define i8* @har(i8* %x) { + %y = call i8* @lar(i8* %x) #0 + ret i8* %y +} + +define i8* @car(i8* %x) #0 { + ret i8* %x +} + +declare i8* @mar(i8*) #0 + +attributes #0 = { builtin } +attributes #1 = { nobuiltin } diff --git a/test/Assembler/auto_upgrade_intrinsics.ll b/test/Assembler/auto_upgrade_intrinsics.ll index 7ad5cc30fa715..8f655cec9eb2b 100644 --- a/test/Assembler/auto_upgrade_intrinsics.ll +++ b/test/Assembler/auto_upgrade_intrinsics.ll @@ -6,6 +6,10 @@ declare i16 @llvm.ctlz.i16(i16) declare i32 @llvm.ctlz.i32(i32) declare i42 @llvm.ctlz.i42(i42) ; Not a power-of-2 + +declare i32 @llvm.objectsize.i32(i8*, i1) nounwind readonly + + define void @test.ctlz(i8 %a, i16 %b, i32 %c, i42 %d) { ; CHECK: @test.ctlz @@ -42,3 +46,14 @@ entry: ret void } + + +@a = private global [60 x i8] zeroinitializer, align 1 + +define i32 @test.objectsize() { +; CHECK-LABEL: @test.objectsize( +; CHECK: @llvm.objectsize.i32.p0i8 +; CHECK-DAG: declare i32 @llvm.objectsize.i32.p0i8 + %s = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([60 x i8]* @a, i32 0, i32 0), i1 false) + ret i32 %s +} diff --git a/test/Assembler/functionlocal-metadata.ll b/test/Assembler/functionlocal-metadata.ll index 216587d98a726..0d93bfdb275da 100644 --- a/test/Assembler/functionlocal-metadata.ll +++ b/test/Assembler/functionlocal-metadata.ll @@ -2,8 +2,8 @@ define void @Foo(i32 %a, i32 %b) { entry: - call void @llvm.dbg.value(metadata !{ i32* %1 }, i64 16, metadata !"bar") -; CHECK: call void @llvm.dbg.value(metadata !{i32* %1}, i64 16, metadata !"bar") + call void @llvm.dbg.value(metadata !{ i32* %1 }, i64 16, metadata !2) +; CHECK: call void @llvm.dbg.value(metadata !{i32* %1}, i64 16, metadata ![[ID2:[0-9]+]]) %0 = add i32 %a, 1 ; [#uses=1] %two = add i32 %b, %0 ; [#uses=0] %1 = alloca i32 ; [#uses=1] @@ -19,26 +19,38 @@ entry: call void @llvm.dbg.declare(metadata !{i32 %a}, metadata !{i32 %a, metadata !"foo"}) ; CHECK: metadata !{i32 %a}, metadata !{i32 %a, metadata !"foo"} call void @llvm.dbg.declare(metadata !{i32 %b}, metadata !{metadata !0, i32 %two}) -; CHECK: metadata !{i32 %b}, metadata !{metadata !0, i32 %two} +; CHECK: metadata !{i32 %b}, metadata !{metadata ![[ID0:[0-9]+]], i32 %two} call void @llvm.dbg.value(metadata !{ i32 %a }, i64 0, metadata !1) -; CHECK: metadata !{i32 %a}, i64 0, metadata !1 +; CHECK: metadata !{i32 %a}, i64 0, metadata ![[ID1:[0-9]+]] call void @llvm.dbg.value(metadata !{ i32 %0 }, i64 25, metadata !0) -; CHECK: metadata !{i32 %0}, i64 25, metadata !0 - call void @llvm.dbg.value(metadata !{ i32* %1 }, i64 16, metadata !"foo") -; CHECK: call void @llvm.dbg.value(metadata !{i32* %1}, i64 16, metadata !"foo") - call void @llvm.dbg.value(metadata !"foo", i64 12, metadata !"bar") -; CHECK: metadata !"foo", i64 12, metadata !"bar" +; CHECK: metadata !{i32 %0}, i64 25, metadata ![[ID0]] + call void @llvm.dbg.value(metadata !{ i32* %1 }, i64 16, metadata !3) +; CHECK: call void @llvm.dbg.value(metadata !{i32* %1}, i64 16, metadata ![[ID3:[0-9]+]]) + call void @llvm.dbg.value(metadata !3, i64 12, metadata !2) +; CHECK: metadata ![[ID3]], i64 12, metadata ![[ID2]] ret void, !foo !0, !bar !1 -; CHECK: ret void, !foo !0, !bar !1 +; CHECK: ret void, !foo ![[FOO:[0-9]+]], !bar ![[BAR:[0-9]+]] } +!llvm.module.flags = !{!4} + !0 = metadata !{i32 662302, i32 26, metadata !1, null} !1 = metadata !{i32 4, metadata !"foo"} +!2 = metadata !{metadata !"bar"} +!3 = metadata !{metadata !"foo"} +!4 = metadata !{i32 1, metadata !"Debug Info Version", i32 1} declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone !foo = !{ !0 } !bar = !{ !1 } + +; CHECK: !foo = !{![[FOO]]} +; CHECK: !bar = !{![[BAR]]} +; CHECK: ![[ID0]] = metadata !{i32 662302, i32 26, metadata ![[ID1]], null} +; CHECK: ![[ID1]] = metadata !{i32 4, metadata !"foo"} +; CHECK: ![[ID2]] = metadata !{metadata !"bar"} +; CHECK; ![[ID3]] = metadata !{metadata !"foo"} diff --git a/test/Assembler/lit.local.cfg b/test/Assembler/lit.local.cfg deleted file mode 100644 index 19eebc0ac7ac3..0000000000000 --- a/test/Assembler/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Bindings/Ocaml/analysis.ml b/test/Bindings/Ocaml/analysis.ml index 7df8e21203a93..c02645c0bce3c 100644 --- a/test/Bindings/Ocaml/analysis.ml +++ b/test/Bindings/Ocaml/analysis.ml @@ -1,4 +1,7 @@ -(* RUN: %ocamlopt -warn-error A llvm.cmxa llvm_analysis.cmxa %s -o %t +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_analysis.cmxa %t.builddir/analysis.ml -o %t * RUN: %t * XFAIL: vg_leak *) diff --git a/test/Bindings/Ocaml/bitreader.ml b/test/Bindings/Ocaml/bitreader.ml index e5beccd118bd8..f1d202ab0490d 100644 --- a/test/Bindings/Ocaml/bitreader.ml +++ b/test/Bindings/Ocaml/bitreader.ml @@ -1,4 +1,7 @@ -(* RUN: %ocamlopt -warn-error A llvm.cmxa llvm_bitreader.cmxa llvm_bitwriter.cmxa %s -o %t +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_bitreader.cmxa llvm_bitwriter.cmxa %t.builddir/bitreader.ml -o %t * RUN: %t %t.bc * RUN: llvm-dis < %t.bc * XFAIL: vg_leak diff --git a/test/Bindings/Ocaml/bitwriter.ml b/test/Bindings/Ocaml/bitwriter.ml index 138876001244e..ae456cf785c8c 100644 --- a/test/Bindings/Ocaml/bitwriter.ml +++ b/test/Bindings/Ocaml/bitwriter.ml @@ -1,4 +1,7 @@ -(* RUN: %ocamlopt -warn-error A unix.cmxa llvm.cmxa llvm_bitwriter.cmxa %s -o %t +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -warn-error A unix.cmxa llvm.cmxa llvm_bitwriter.cmxa %t.builddir/bitwriter.ml -o %t * RUN: %t %t.bc * RUN: llvm-dis < %t.bc * XFAIL: vg_leak diff --git a/test/Bindings/Ocaml/executionengine.ml b/test/Bindings/Ocaml/executionengine.ml index f7a49bb284c0c..8e2494952a2b6 100644 --- a/test/Bindings/Ocaml/executionengine.ml +++ b/test/Bindings/Ocaml/executionengine.ml @@ -1,4 +1,7 @@ -(* RUN: %ocamlopt -warn-error A llvm.cmxa llvm_target.cmxa llvm_executionengine.cmxa %s -o %t +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_target.cmxa llvm_executionengine.cmxa %t.builddir/executionengine.ml -o %t * RUN: %t * XFAIL: vg_leak *) @@ -100,11 +103,11 @@ let test_executionengine () = (* run_static_dtors *) ExecutionEngine.run_static_dtors ee; - (* Show that the target data binding links and runs.*) - let td = ExecutionEngine.target_data ee in + (* Show that the data layout binding links and runs.*) + let dl = ExecutionEngine.data_layout ee in (* Demonstrate that a garbage pointer wasn't returned. *) - let ty = intptr_type td in + let ty = DataLayout.intptr_type context dl in if ty != i32_type && ty != i64_type then bomb "target_data did not work"; (* dispose *) diff --git a/test/Bindings/Ocaml/ext_exc.ml b/test/Bindings/Ocaml/ext_exc.ml index b4d2e6dc64141..9afc3c3ab4b24 100644 --- a/test/Bindings/Ocaml/ext_exc.ml +++ b/test/Bindings/Ocaml/ext_exc.ml @@ -1,4 +1,7 @@ -(* RUN: %ocamlopt -warn-error A llvm.cmxa llvm_bitreader.cmxa llvm_executionengine.cmxa %s -o %t +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_bitreader.cmxa llvm_executionengine.cmxa %t.builddir/ext_exc.ml -o %t * RUN: %t + insist ((global_initializer foo) = (const_int (i32_type context) 42)) + | None -> + failwith "global" + end; + + begin + let buf = MemoryBuffer.of_string "@foo = global garble" in + try + ignore (parse_ir context buf); + failwith "parsed" + with Llvm_irreader.Error _ -> + () + end + + +(*===-- Driver ------------------------------------------------------------===*) + +let _ = + suite "irreader" test_irreader diff --git a/test/Bindings/Ocaml/linker.ml b/test/Bindings/Ocaml/linker.ml new file mode 100644 index 0000000000000..9359ae9f2c488 --- /dev/null +++ b/test/Bindings/Ocaml/linker.ml @@ -0,0 +1,63 @@ +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_linker.cmxa %t.builddir/linker.ml -o %t + * RUN: %t + * XFAIL: vg_leak + *) + +(* Note: It takes several seconds for ocamlopt to link an executable with + libLLVMCore.a, so it's better to write a big test than a bunch of + little ones. *) + +open Llvm +open Llvm_linker + +let context = global_context () +let void_type = Llvm.void_type context + +(* Tiny unit test framework - really just to help find which line is busted *) +let print_checkpoints = false + +let suite name f = + if print_checkpoints then + prerr_endline (name ^ ":"); + f () + + +(*===-- Linker -----------------------------------------------------------===*) + +let test_linker () = + let fty = function_type void_type [| |] in + + let make_module name = + let m = create_module context name in + let fn = define_function ("fn_" ^ name) fty m in + ignore (build_ret_void (builder_at_end context (entry_block fn))); + m + in + + let m1 = make_module "one" + and m2 = make_module "two" in + link_modules m1 m2 Mode.PreserveSource; + dispose_module m1; + dispose_module m2; + + let m1 = make_module "one" + and m2 = make_module "two" in + link_modules m1 m2 Mode.DestroySource; + dispose_module m1; + + let m1 = make_module "one" + and m2 = make_module "one" in + try + link_modules m1 m2 Mode.PreserveSource; + failwith "must raise" + with Error _ -> + dispose_module m1; + dispose_module m2 + +(*===-- Driver ------------------------------------------------------------===*) + +let _ = + suite "linker" test_linker diff --git a/test/Bindings/Ocaml/lit.local.cfg b/test/Bindings/Ocaml/lit.local.cfg index 640c58d2f3d6e..c38d89ab09e9e 100644 --- a/test/Bindings/Ocaml/lit.local.cfg +++ b/test/Bindings/Ocaml/lit.local.cfg @@ -1,6 +1,5 @@ -config.suffixes = ['.ll', '.c', '.cpp', '.ml'] +config.suffixes = ['.ml'] bindings = set([s.strip() for s in config.root.llvm_bindings.split(',')]) if not 'ocaml' in bindings: config.unsupported = True - diff --git a/test/Bindings/Ocaml/passmgr_builder.ml b/test/Bindings/Ocaml/passmgr_builder.ml new file mode 100644 index 0000000000000..1a3102f70a345 --- /dev/null +++ b/test/Bindings/Ocaml/passmgr_builder.ml @@ -0,0 +1,64 @@ +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_passmgr_builder.cmxa %t.builddir/passmgr_builder.ml -o %t + * RUN: %t %t.bc + * XFAIL: vg_leak + *) + +(* Note: It takes several seconds for ocamlopt to link an executable with + libLLVMCore.a, so it's better to write a big test than a bunch of + little ones. *) + +open Llvm +open Llvm_passmgr_builder + +let context = global_context () +let void_type = Llvm.void_type context + +(* Tiny unit test framework - really just to help find which line is busted *) +let print_checkpoints = false + +let suite name f = + if print_checkpoints then + prerr_endline (name ^ ":"); + f () + + +(*===-- Fixture -----------------------------------------------------------===*) + +let filename = Sys.argv.(1) +let m = create_module context filename + + +(*===-- Pass Manager Builder ----------------------------------------------===*) + +let test_pmbuilder () = + let (++) x f = ignore (f x); x in + + let module_passmgr = PassManager.create () in + let func_passmgr = PassManager.create_function m in + let lto_passmgr = PassManager.create () in + + ignore (Llvm_passmgr_builder.create () + ++ set_opt_level 3 + ++ set_size_level 1 + ++ set_disable_unit_at_a_time false + ++ set_disable_unroll_loops false + ++ use_inliner_with_threshold 10 + ++ populate_function_pass_manager func_passmgr + ++ populate_module_pass_manager module_passmgr + ++ populate_lto_pass_manager lto_passmgr + ~internalize:false ~run_inliner:false); + Gc.compact (); + + PassManager.dispose module_passmgr; + PassManager.dispose func_passmgr; + PassManager.dispose lto_passmgr + + +(*===-- Driver ------------------------------------------------------------===*) + +let _ = + suite "pass manager builder" test_pmbuilder; + dispose_module m diff --git a/test/Bindings/Ocaml/scalar_opts.ml b/test/Bindings/Ocaml/scalar_opts.ml index 0760dad4ad023..39913e43119d2 100644 --- a/test/Bindings/Ocaml/scalar_opts.ml +++ b/test/Bindings/Ocaml/scalar_opts.ml @@ -1,4 +1,7 @@ -(* RUN: %ocamlopt -warn-error A llvm.cmxa llvm_scalar_opts.cmxa llvm_target.cmxa %s -o %t +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_scalar_opts.cmxa llvm_target.cmxa %t.builddir/scalar_opts.ml -o %t * RUN: %t %t.bc * XFAIL: vg_leak *) @@ -38,10 +41,7 @@ let test_transforms () = let fn = define_function "fn" fty m in ignore (build_ret_void (builder_at_end context (entry_block fn))); - let td = DataLayout.create (target_triple m) in - ignore (PassManager.create_function m - ++ DataLayout.add td ++ add_verifier ++ add_constant_propagation ++ add_sccp @@ -72,13 +72,12 @@ let test_transforms () = ++ add_lower_expect_intrinsic ++ add_type_based_alias_analysis ++ add_basic_alias_analysis + ++ add_partially_inline_lib_calls ++ add_verifier ++ PassManager.initialize ++ PassManager.run_function fn ++ PassManager.finalize - ++ PassManager.dispose); - - DataLayout.dispose td + ++ PassManager.dispose) (*===-- Driver ------------------------------------------------------------===*) diff --git a/test/Bindings/Ocaml/target.ml b/test/Bindings/Ocaml/target.ml index 7a35a790ab3af..d69fb0e664fdb 100644 --- a/test/Bindings/Ocaml/target.ml +++ b/test/Bindings/Ocaml/target.ml @@ -1,5 +1,9 @@ -(* RUN: %ocamlopt -warn-error A llvm.cmxa llvm_target.cmxa %s -o %t +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -g -warn-error A llvm.cmxa llvm_target.cmxa llvm_executionengine.cmxa %t.builddir/target.ml -o %t * RUN: %t %t.bc + * REQUIRES: native, object-emission * XFAIL: vg_leak *) @@ -10,6 +14,7 @@ open Llvm open Llvm_target +let _ = Llvm_executionengine.initialize_native_target () let context = global_context () let i32_type = Llvm.i32_type context @@ -18,10 +23,11 @@ let i64_type = Llvm.i64_type context (* Tiny unit test framework - really just to help find which line is busted *) let print_checkpoints = false -let suite name f = - if print_checkpoints then - prerr_endline (name ^ ":"); - f () +let _ = + Printexc.record_backtrace true + +let assert_equal a b = + if a <> b then failwith "assert_equal" (*===-- Fixture -----------------------------------------------------------===*) @@ -29,31 +35,83 @@ let suite name f = let filename = Sys.argv.(1) let m = create_module context filename +let target = Target.by_triple (Target.default_triple ()) -(*===-- Target Data -------------------------------------------------------===*) +let machine = TargetMachine.create (Target.default_triple ()) target + +(*===-- Data Layout -------------------------------------------------------===*) let test_target_data () = - let td = DataLayout.create (target_triple m) in - let sty = struct_type context [| i32_type; i64_type |] in - - ignore (DataLayout.as_string td); - ignore (byte_order td); - ignore (pointer_size td); - ignore (intptr_type td); - ignore (size_in_bits td sty); - ignore (store_size td sty); - ignore (abi_size td sty); - ignore (stack_align td sty); - ignore (preferred_align td sty); - ignore (preferred_align_of_global td (declare_global sty "g" m)); - ignore (element_at_offset td sty (Int64.of_int 1)); - ignore (offset_of_element td sty 1); + let module DL = DataLayout in + let layout = "e-p:32:32:32-S32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-" ^ + "f16:16:16-f32:32:32-f64:32:64-f128:128:128-v64:32:64-v128:32:128-" ^ + "a0:0:64-n32" in + let dl = DL.of_string layout in + let sty = struct_type context [| i32_type; i64_type |] in - DataLayout.dispose td + assert_equal (DL.as_string dl) layout; + assert_equal (DL.byte_order dl) Endian.Little; + assert_equal (DL.pointer_size dl) 4; + assert_equal (DL.intptr_type context dl) i32_type; + assert_equal (DL.qualified_pointer_size 0 dl) 4; + assert_equal (DL.qualified_intptr_type context 0 dl) i32_type; + assert_equal (DL.size_in_bits sty dl) (Int64.of_int 96); + assert_equal (DL.store_size sty dl) (Int64.of_int 12); + assert_equal (DL.abi_size sty dl) (Int64.of_int 12); + assert_equal (DL.stack_align sty dl) 4; + assert_equal (DL.preferred_align sty dl) 8; + assert_equal (DL.preferred_align_of_global (declare_global sty "g" m) dl) 8; + assert_equal (DL.element_at_offset sty (Int64.of_int 1) dl) 0; + assert_equal (DL.offset_of_element sty 1 dl) (Int64.of_int 4); + + let pm = PassManager.create () in + ignore (DL.add_to_pass_manager pm dl) + + +(*===-- Target ------------------------------------------------------------===*) + +let test_target () = + let module T = Target in + ignore (T.succ target); + ignore (T.name target); + ignore (T.description target); + ignore (T.has_jit target); + ignore (T.has_target_machine target); + ignore (T.has_asm_backend target) + + +(*===-- Target Machine ----------------------------------------------------===*) + +let test_target_machine () = + let module TM = TargetMachine in + assert_equal (TM.target machine) target; + assert_equal (TM.triple machine) (Target.default_triple ()); + assert_equal (TM.cpu machine) ""; + assert_equal (TM.features machine) ""; + ignore (TM.data_layout machine) + + +(*===-- Code Emission -----------------------------------------------------===*) + +let test_code_emission () = + TargetMachine.emit_to_file m CodeGenFileType.ObjectFile filename machine; + try + TargetMachine.emit_to_file m CodeGenFileType.ObjectFile + "/nonexistent/file" machine; + failwith "must raise" + with Llvm_target.Error _ -> + (); + + let buf = TargetMachine.emit_to_memory_buffer m CodeGenFileType.ObjectFile + machine in + Llvm.MemoryBuffer.dispose buf (*===-- Driver ------------------------------------------------------------===*) let _ = - suite "target data" test_target_data; + test_target_data (); + test_target (); + test_target_machine (); + (* test_code_emission (); *) (* broken without AsmParser support *) dispose_module m diff --git a/test/Bindings/Ocaml/vectorize_opts.ml b/test/Bindings/Ocaml/vectorize_opts.ml new file mode 100644 index 0000000000000..5ef985d5dc18a --- /dev/null +++ b/test/Bindings/Ocaml/vectorize_opts.ml @@ -0,0 +1,56 @@ +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_vectorize.cmxa llvm_target.cmxa %t.builddir/vectorize_opts.ml -o %t + * RUN: %t %t.bc + * XFAIL: vg_leak + *) + +(* Note: It takes several seconds for ocamlopt to link an executable with + libLLVMCore.a, so it's better to write a big test than a bunch of + little ones. *) + +open Llvm +open Llvm_vectorize +open Llvm_target + +let context = global_context () +let void_type = Llvm.void_type context + +(* Tiny unit test framework - really just to help find which line is busted *) +let print_checkpoints = false + +let suite name f = + if print_checkpoints then + prerr_endline (name ^ ":"); + f () + + +(*===-- Fixture -----------------------------------------------------------===*) + +let filename = Sys.argv.(1) +let m = create_module context filename + + +(*===-- Transforms --------------------------------------------------------===*) + +let test_transforms () = + let (++) x f = ignore (f x); x in + + let fty = function_type void_type [| |] in + let fn = define_function "fn" fty m in + ignore (build_ret_void (builder_at_end context (entry_block fn))); + + ignore (PassManager.create () + ++ add_bb_vectorize + ++ add_loop_vectorize + ++ add_slp_vectorize + ++ PassManager.run_module m + ++ PassManager.dispose) + + +(*===-- Driver ------------------------------------------------------------===*) + +let _ = + suite "transforms" test_transforms; + dispose_module m diff --git a/test/Bindings/Ocaml/vmcore.ml b/test/Bindings/Ocaml/vmcore.ml index b49bab9ab17bf..167efce0b2b1f 100644 --- a/test/Bindings/Ocaml/vmcore.ml +++ b/test/Bindings/Ocaml/vmcore.ml @@ -1,6 +1,12 @@ -(* RUN: %ocamlopt -warn-error A llvm.cmxa llvm_analysis.cmxa llvm_bitwriter.cmxa %s -o %t +(* RUN: rm -rf %t.builddir + * RUN: mkdir -p %t.builddir + * RUN: cp %s %t.builddir + * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_analysis.cmxa llvm_bitwriter.cmxa %t.builddir/vmcore.ml -o %t * RUN: %t %t.bc * RUN: llvm-dis < %t.bc > %t.ll + * RUN: FileCheck %s < %t.ll + * Do a second pass for things that shouldn't be anywhere. + * RUN: FileCheck -check-prefix=CHECK-NOWHERE %s < %t.ll * XFAIL: vg_leak *) @@ -61,30 +67,37 @@ let filename = Sys.argv.(1) let m = create_module context filename +(*===-- Conversion --------------------------------------------------------===*) + +let test_conversion () = + insist ("i32" = (string_of_lltype i32_type)); + let c = const_int i32_type 42 in + insist ("i32 42" = (string_of_llvalue c)) + + (*===-- Target ------------------------------------------------------------===*) let test_target () = begin group "triple"; - (* RUN: grep "i686-apple-darwin8" < %t.ll - *) let trip = "i686-apple-darwin8" in set_target_triple trip m; insist (trip = target_triple m) end; begin group "layout"; - (* RUN: grep "bogus" < %t.ll - *) let layout = "bogus" in set_data_layout layout m; insist (layout = data_layout m) end + (* CHECK: target datalayout = "bogus" + * CHECK: target triple = "i686-apple-darwin8" + *) (*===-- Constants ---------------------------------------------------------===*) let test_constants () = - (* RUN: grep "const_int.*i32.*-1" < %t.ll + (* CHECK: const_int{{.*}}i32{{.*}}-1 *) group "int"; let c = const_int i32_type (-1) in @@ -92,44 +105,44 @@ let test_constants () = insist (i32_type = type_of c); insist (is_constant c); - (* RUN: grep "const_sext_int.*i64.*-1" < %t.ll + (* CHECK: const_sext_int{{.*}}i64{{.*}}-1 *) group "sext int"; let c = const_int i64_type (-1) in ignore (define_global "const_sext_int" c m); insist (i64_type = type_of c); - (* RUN: grep "const_zext_int64.*i64.*4294967295" < %t.ll + (* CHECK: const_zext_int64{{.*}}i64{{.*}}4294967295 *) group "zext int64"; let c = const_of_int64 i64_type (Int64.of_string "4294967295") false in ignore (define_global "const_zext_int64" c m); insist (i64_type = type_of c); - (* RUN: grep "const_int_string.*i32.*-1" < %t.ll + (* CHECK: const_int_string{{.*}}i32{{.*}}-1 *) group "int string"; let c = const_int_of_string i32_type "-1" 10 in ignore (define_global "const_int_string" c m); insist (i32_type = type_of c); - (* RUN: grep 'const_string.*"cruel\\00world"' < %t.ll + (* CHECK: @const_string = global {{.*}}c"cruel\00world" *) group "string"; let c = const_string context "cruel\000world" in ignore (define_global "const_string" c m); insist ((array_type i8_type 11) = type_of c); - (* RUN: grep 'const_stringz.*"hi\\00again\\00"' < %t.ll + (* CHECK: const_stringz{{.*}}"hi\00again\00" *) group "stringz"; let c = const_stringz context "hi\000again" in ignore (define_global "const_stringz" c m); insist ((array_type i8_type 9) = type_of c); - (* RUN: grep "const_single.*2.75" < %t.ll - * RUN: grep "const_double.*3.1459" < %t.ll - * RUN: grep "const_double_string.*1.25" < %t.ll + (* CHECK: const_single{{.*}}2.75 + * CHECK: const_double{{.*}}3.1459 + * CHECK: const_double_string{{.*}}1.25 *) begin group "real"; let cs = const_float float_type 2.75 in @@ -150,14 +163,14 @@ let test_constants () = let three = const_int i32_type 3 in let four = const_int i32_type 4 in - (* RUN: grep "const_array.*[i32 3, i32 4]" < %t.ll + (* CHECK: const_array{{.*}}[i32 3, i32 4] *) group "array"; let c = const_array i32_type [| three; four |] in ignore (define_global "const_array" c m); insist ((array_type i32_type 2) = (type_of c)); - (* RUN: grep "const_vector.*" < %t.ll + (* CHECK: const_vector{{.*}} *) group "vector"; let c = const_vector [| one; two; one; two; @@ -165,7 +178,7 @@ let test_constants () = ignore (define_global "const_vector" c m); insist ((vector_type i16_type 8) = (type_of c)); - (* RUN: grep "const_structure.*.i16 1, i16 2, i32 3, i32 4" < %t.ll + (* CHECK: const_structure{{.*.}}i16 1, i16 2, i32 3, i32 4 *) group "structure"; let c = const_struct context [| one; two; three; four |] in @@ -173,27 +186,27 @@ let test_constants () = insist ((struct_type context [| i16_type; i16_type; i32_type; i32_type |]) = (type_of c)); - (* RUN: grep "const_null.*zeroinit" < %t.ll + (* CHECK: const_null{{.*}}zeroinit *) group "null"; let c = const_null (packed_struct_type context [| i1_type; i8_type; i64_type; double_type |]) in ignore (define_global "const_null" c m); - (* RUN: grep "const_all_ones.*-1" < %t.ll + (* CHECK: const_all_ones{{.*}}-1 *) group "all ones"; let c = const_all_ones i64_type in ignore (define_global "const_all_ones" c m); group "pointer null"; begin - (* RUN: grep "const_pointer_null = global i64\* null" < %t.ll + (* CHECK: const_pointer_null = global i64* null *) let c = const_pointer_null (pointer_type i64_type) in ignore (define_global "const_pointer_null" c m); end; - (* RUN: grep "const_undef.*undef" < %t.ll + (* CHECK: const_undef{{.*}}undef *) group "undef"; let c = undef i1_type in @@ -202,35 +215,35 @@ let test_constants () = insist (is_undef c); group "constant arithmetic"; - (* RUN: grep "@const_neg = global i64 sub" < %t.ll - * RUN: grep "@const_nsw_neg = global i64 sub nsw " < %t.ll - * RUN: grep "@const_nuw_neg = global i64 sub nuw " < %t.ll - * RUN: grep "@const_fneg = global double fsub " < %t.ll - * RUN: grep "@const_not = global i64 xor " < %t.ll - * RUN: grep "@const_add = global i64 add " < %t.ll - * RUN: grep "@const_nsw_add = global i64 add nsw " < %t.ll - * RUN: grep "@const_nuw_add = global i64 add nuw " < %t.ll - * RUN: grep "@const_fadd = global double fadd " < %t.ll - * RUN: grep "@const_sub = global i64 sub " < %t.ll - * RUN: grep "@const_nsw_sub = global i64 sub nsw " < %t.ll - * RUN: grep "@const_nuw_sub = global i64 sub nuw " < %t.ll - * RUN: grep "@const_fsub = global double fsub " < %t.ll - * RUN: grep "@const_mul = global i64 mul " < %t.ll - * RUN: grep "@const_nsw_mul = global i64 mul nsw " < %t.ll - * RUN: grep "@const_nuw_mul = global i64 mul nuw " < %t.ll - * RUN: grep "@const_fmul = global double fmul " < %t.ll - * RUN: grep "@const_udiv = global i64 udiv " < %t.ll - * RUN: grep "@const_sdiv = global i64 sdiv " < %t.ll - * RUN: grep "@const_exact_sdiv = global i64 sdiv exact " < %t.ll - * RUN: grep "@const_fdiv = global double fdiv " < %t.ll - * RUN: grep "@const_urem = global i64 urem " < %t.ll - * RUN: grep "@const_srem = global i64 srem " < %t.ll - * RUN: grep "@const_frem = global double frem " < %t.ll - * RUN: grep "@const_and = global i64 and " < %t.ll - * RUN: grep "@const_or = global i64 or " < %t.ll - * RUN: grep "@const_xor = global i64 xor " < %t.ll - * RUN: grep "@const_icmp = global i1 icmp sle " < %t.ll - * RUN: grep "@const_fcmp = global i1 fcmp ole " < %t.ll + (* CHECK: @const_neg = global i64 sub + * CHECK: @const_nsw_neg = global i64 sub nsw + * CHECK: @const_nuw_neg = global i64 sub nuw + * CHECK: @const_fneg = global double fsub + * CHECK: @const_not = global i64 xor + * CHECK: @const_add = global i64 add + * CHECK: @const_nsw_add = global i64 add nsw + * CHECK: @const_nuw_add = global i64 add nuw + * CHECK: @const_fadd = global double fadd + * CHECK: @const_sub = global i64 sub + * CHECK: @const_nsw_sub = global i64 sub nsw + * CHECK: @const_nuw_sub = global i64 sub nuw + * CHECK: @const_fsub = global double fsub + * CHECK: @const_mul = global i64 mul + * CHECK: @const_nsw_mul = global i64 mul nsw + * CHECK: @const_nuw_mul = global i64 mul nuw + * CHECK: @const_fmul = global double fmul + * CHECK: @const_udiv = global i64 udiv + * CHECK: @const_sdiv = global i64 sdiv + * CHECK: @const_exact_sdiv = global i64 sdiv exact + * CHECK: @const_fdiv = global double fdiv + * CHECK: @const_urem = global i64 urem + * CHECK: @const_srem = global i64 srem + * CHECK: @const_frem = global double frem + * CHECK: @const_and = global i64 and + * CHECK: @const_or = global i64 or + * CHECK: @const_xor = global i64 xor + * CHECK: @const_icmp = global i1 icmp sle + * CHECK: @const_fcmp = global i1 fcmp ole *) let void_ptr = pointer_type i8_type in let five = const_int i64_type 5 in @@ -269,18 +282,19 @@ let test_constants () = ignore (define_global "const_fcmp" (const_fcmp Fcmp.Ole ffoldbomb ffive) m); group "constant casts"; - (* RUN: grep "const_trunc.*trunc" < %t.ll - * RUN: grep "const_sext.*sext" < %t.ll - * RUN: grep "const_zext.*zext" < %t.ll - * RUN: grep "const_fptrunc.*fptrunc" < %t.ll - * RUN: grep "const_fpext.*fpext" < %t.ll - * RUN: grep "const_uitofp.*uitofp" < %t.ll - * RUN: grep "const_sitofp.*sitofp" < %t.ll - * RUN: grep "const_fptoui.*fptoui" < %t.ll - * RUN: grep "const_fptosi.*fptosi" < %t.ll - * RUN: grep "const_ptrtoint.*ptrtoint" < %t.ll - * RUN: grep "const_inttoptr.*inttoptr" < %t.ll - * RUN: grep "const_bitcast.*bitcast" < %t.ll + (* CHECK: const_trunc{{.*}}trunc + * CHECK: const_sext{{.*}}sext + * CHECK: const_zext{{.*}}zext + * CHECK: const_fptrunc{{.*}}fptrunc + * CHECK: const_fpext{{.*}}fpext + * CHECK: const_uitofp{{.*}}uitofp + * CHECK: const_sitofp{{.*}}sitofp + * CHECK: const_fptoui{{.*}}fptoui + * CHECK: const_fptosi{{.*}}fptosi + * CHECK: const_ptrtoint{{.*}}ptrtoint + * CHECK: const_inttoptr{{.*}}inttoptr + * CHECK: const_bitcast{{.*}}bitcast + * CHECK: const_intcast{{.*}}zext *) let i128_type = integer_type context 128 in ignore (define_global "const_trunc" (const_trunc (const_add foldbomb five) @@ -300,14 +314,16 @@ let test_constants () = ignore (define_global "const_inttoptr" (const_inttoptr (const_add foldbomb five) void_ptr) m); ignore (define_global "const_bitcast" (const_bitcast ffoldbomb i64_type) m); + ignore (define_global "const_intcast" + (const_intcast foldbomb i128_type ~is_signed:false) m); group "misc constants"; - (* RUN: grep "const_size_of.*getelementptr.*null" < %t.ll - * RUN: grep "const_gep.*getelementptr" < %t.ll - * RUN: grep "const_select.*select" < %t.ll - * RUN: grep "const_extractelement.*extractelement" < %t.ll - * RUN: grep "const_insertelement.*insertelement" < %t.ll - * RUN: grep "const_shufflevector = global <4 x i32> " < %t.ll + (* CHECK: const_size_of{{.*}}getelementptr{{.*}}null + * CHECK: const_gep{{.*}}getelementptr + * CHECK: const_select{{.*}}select + * CHECK: const_extractelement{{.*}}extractelement + * CHECK: const_insertelement{{.*}}insertelement + * CHECK: const_shufflevector = global <4 x i32> *) ignore (define_global "const_size_of" (size_of (pointer_type i8_type)) m); ignore (define_global "const_gep" (const_gep foldbomb_gv [| five |]) m); @@ -356,7 +372,7 @@ let test_global_values () = let (++) x f = f x; x in let zero32 = const_null i32_type in - (* RUN: grep "GVal01" < %t.ll + (* CHECK: GVal01 *) group "naming"; let g = define_global "TEMPORARY" zero32 m in @@ -364,28 +380,28 @@ let test_global_values () = set_value_name "GVal01" g; insist ("GVal01" = value_name g); - (* RUN: grep "GVal02.*linkonce" < %t.ll + (* CHECK: GVal02{{.*}}linkonce *) group "linkage"; let g = define_global "GVal02" zero32 m ++ set_linkage Linkage.Link_once in insist (Linkage.Link_once = linkage g); - (* RUN: grep "GVal03.*Hanalei" < %t.ll + (* CHECK: GVal03{{.*}}Hanalei *) group "section"; let g = define_global "GVal03" zero32 m ++ set_section "Hanalei" in insist ("Hanalei" = section g); - (* RUN: grep "GVal04.*hidden" < %t.ll + (* CHECK: GVal04{{.*}}hidden *) group "visibility"; let g = define_global "GVal04" zero32 m ++ set_visibility Visibility.Hidden in insist (Visibility.Hidden = visibility g); - (* RUN: grep "GVal05.*align 128" < %t.ll + (* CHECK: GVal05{{.*}}align 128 *) group "alignment"; let g = define_global "GVal05" zero32 m ++ @@ -400,7 +416,8 @@ let test_global_variables () = let fourty_two32 = const_int i32_type 42 in group "declarations"; begin - (* RUN: grep "GVar01.*external" < %t.ll + (* CHECK: @GVar01 = external global i32 + * CHECK: @QGVar01 = external addrspace(3) global i32 *) insist (None == lookup_global "GVar01" m); let g = declare_global i32_type "GVar01" m in @@ -422,8 +439,10 @@ let test_global_variables () = end; group "definitions"; begin - (* RUN: grep "GVar02.*42" < %t.ll - * RUN: grep "GVar03.*42" < %t.ll + (* CHECK: @GVar02 = global i32 42 + * CHECK: @GVar03 = global i32 42 + * CHECK: @QGVar02 = addrspace(3) global i32 42 + * CHECK: @QGVar03 = addrspace(3) global i32 42 *) let g = define_global "GVar02" fourty_two32 m in let g2 = declare_global i32_type "GVar03" m ++ @@ -440,20 +459,34 @@ let test_global_variables () = insist ((global_initializer g) == (global_initializer g2)); end; - (* RUN: grep "GVar04.*thread_local" < %t.ll + (* CHECK: GVar04{{.*}}thread_local *) group "threadlocal"; let g = define_global "GVar04" fourty_two32 m ++ set_thread_local true in insist (is_thread_local g); - (* RUN: grep -v "GVar05" < %t.ll + (* CHECK: GVar05{{.*}}thread_local(initialexec) + *) + group "threadlocal_mode"; + let g = define_global "GVar05" fourty_two32 m ++ + set_thread_local_mode ThreadLocalMode.InitialExec in + insist ((thread_local_mode g) = ThreadLocalMode.InitialExec); + + (* CHECK: GVar06{{.*}}externally_initialized + *) + group "externally_initialized"; + let g = define_global "GVar06" fourty_two32 m ++ + set_externally_initialized true in + insist (is_externally_initialized g); + + (* CHECK-NOWHERE-NOT: GVar07 *) group "delete"; - let g = define_global "GVar05" fourty_two32 m in + let g = define_global "GVar07" fourty_two32 m in delete_global g; - (* RUN: grep -v "ConstGlobalVar.*constant" < %t.ll + (* CHECK: ConstGlobalVar{{.*}}constant *) group "constant"; let g = define_global "ConstGlobalVar" fourty_two32 m in @@ -487,6 +520,10 @@ let test_global_variables () = dispose_module m end +(* String globals built below are emitted here. + * CHECK: build_global_string{{.*}}stringval + *) + (*===-- Uses --------------------------------------------------------------===*) @@ -542,7 +579,7 @@ let test_users () = (*===-- Aliases -----------------------------------------------------------===*) let test_aliases () = - (* RUN: grep "@alias = alias i32\* @aliasee" < %t.ll + (* CHECK: @alias = alias i32* @aliasee *) let v = declare_global i32_type "aliasee" m in ignore (add_alias m (pointer_type i32_type) v "alias") @@ -554,7 +591,7 @@ let test_functions () = let ty = function_type i32_type [| i32_type; i64_type |] in let ty2 = function_type i8_type [| i8_type; i64_type |] in - (* RUN: grep 'declare i32 @Fn1(i32, i64)' < %t.ll + (* CHECK: declare i32 @Fn1(i32, i64) *) begin group "declare"; insist (None = lookup_function "Fn1" m); @@ -570,13 +607,13 @@ let test_functions () = insist (m == global_parent fn) end; - (* RUN: grep -v "Fn2" < %t.ll + (* CHECK-NOWHERE-NOT: Fn2 *) group "delete"; let fn = declare_function "Fn2" ty m in delete_function fn; - (* RUN: grep "define.*Fn3" < %t.ll + (* CHECK: define{{.*}}Fn3 *) group "define"; let fn = define_function "Fn3" ty m in @@ -584,7 +621,7 @@ let test_functions () = insist (1 = Array.length (basic_blocks fn)); ignore (build_unreachable (builder_at_end context (entry_block fn))); - (* RUN: grep "define.*Fn4.*Param1.*Param2" < %t.ll + (* CHECK: define{{.*}}Fn4{{.*}}Param1{{.*}}Param2 *) group "params"; let fn = define_function "Fn4" ty m in @@ -598,7 +635,7 @@ let test_functions () = set_value_name "Param2" params.(1); ignore (build_unreachable (builder_at_end context (entry_block fn))); - (* RUN: grep "fastcc.*Fn5" < %t.ll + (* CHECK: fastcc{{.*}}Fn5 *) group "callconv"; let fn = define_function "Fn5" ty m in @@ -608,7 +645,7 @@ let test_functions () = ignore (build_unreachable (builder_at_end context (entry_block fn))); begin group "gc"; - (* RUN: grep "Fn6.*gc.*shadowstack" < %t.ll + (* CHECK: Fn6{{.*}}gc{{.*}}shadowstack *) let fn = define_function "Fn6" ty m in insist (None = gc fn); @@ -694,7 +731,7 @@ let test_params () = let test_basic_blocks () = let ty = function_type void_type [| |] in - (* RUN: grep "Bb1" < %t.ll + (* CHECK: Bb1 *) group "entry"; let fn = declare_function "X" ty m in @@ -702,7 +739,7 @@ let test_basic_blocks () = insist (bb = entry_block fn); ignore (build_unreachable (builder_at_end context bb)); - (* RUN: grep -v Bb2 < %t.ll + (* CHECK-NOWHERE-NOT: Bb2 *) group "delete"; let fn = declare_function "X2" ty m in @@ -717,7 +754,7 @@ let test_basic_blocks () = ignore (build_unreachable (builder_at_end context bba)); ignore (build_unreachable (builder_at_end context bbb)); - (* RUN: grep Bb3 < %t.ll + (* CHECK: Bb3 *) group "name/value"; let fn = define_function "X4" ty m in @@ -825,7 +862,7 @@ let test_builder () = group "ret void"; begin - (* RUN: grep "ret void" < %t.ll + (* CHECK: ret void *) let fty = function_type void_type [| |] in let fn = declare_function "X6" fty m in @@ -835,7 +872,7 @@ let test_builder () = group "ret aggregate"; begin - (* RUN: grep "ret { i8, i64 } { i8 4, i64 5 }" < %t.ll + (* CHECK: ret { i8, i64 } { i8 4, i64 5 } *) let sty = struct_type context [| i8_type; i64_type |] in let fty = function_type sty [| |] in @@ -860,12 +897,202 @@ let test_builder () = group "function attribute"; begin ignore (add_function_attr fn Attribute.UWTable); - (* RUN: grep "X7.*#0" < %t.ll - * RUN: grep "attributes #0 = .*uwtable.*" < %t.ll + (* CHECK: X7{{.*}}#0 + * #0 is uwtable, defined at EOF. *) insist ([Attribute.UWTable] = function_attr fn); end; + group "casts"; begin + let void_ptr = pointer_type i8_type in + + (* CHECK-DAG: %build_trunc = trunc i32 %P1 to i8 + * CHECK-DAG: %build_trunc2 = trunc i32 %P1 to i8 + * CHECK-DAG: %build_trunc3 = trunc i32 %P1 to i8 + * CHECK-DAG: %build_zext = zext i8 %build_trunc to i32 + * CHECK-DAG: %build_zext2 = zext i8 %build_trunc to i32 + * CHECK-DAG: %build_sext = sext i32 %build_zext to i64 + * CHECK-DAG: %build_sext2 = sext i32 %build_zext to i64 + * CHECK-DAG: %build_sext3 = sext i32 %build_zext to i64 + * CHECK-DAG: %build_uitofp = uitofp i64 %build_sext to float + * CHECK-DAG: %build_sitofp = sitofp i32 %build_zext to double + * CHECK-DAG: %build_fptoui = fptoui float %build_uitofp to i32 + * CHECK-DAG: %build_fptosi = fptosi double %build_sitofp to i64 + * CHECK-DAG: %build_fptrunc = fptrunc double %build_sitofp to float + * CHECK-DAG: %build_fptrunc2 = fptrunc double %build_sitofp to float + * CHECK-DAG: %build_fpext = fpext float %build_fptrunc to double + * CHECK-DAG: %build_fpext2 = fpext float %build_fptrunc to double + * CHECK-DAG: %build_inttoptr = inttoptr i32 %P1 to i8* + * CHECK-DAG: %build_ptrtoint = ptrtoint i8* %build_inttoptr to i64 + * CHECK-DAG: %build_ptrtoint2 = ptrtoint i8* %build_inttoptr to i64 + * CHECK-DAG: %build_bitcast = bitcast i64 %build_ptrtoint to double + * CHECK-DAG: %build_bitcast2 = bitcast i64 %build_ptrtoint to double + * CHECK-DAG: %build_bitcast3 = bitcast i64 %build_ptrtoint to double + * CHECK-DAG: %build_bitcast4 = bitcast i64 %build_ptrtoint to double + * CHECK-DAG: %build_pointercast = bitcast i8* %build_inttoptr to i16* + *) + let inst28 = build_trunc p1 i8_type "build_trunc" atentry in + let inst29 = build_zext inst28 i32_type "build_zext" atentry in + let inst30 = build_sext inst29 i64_type "build_sext" atentry in + let inst31 = build_uitofp inst30 float_type "build_uitofp" atentry in + let inst32 = build_sitofp inst29 double_type "build_sitofp" atentry in + ignore(build_fptoui inst31 i32_type "build_fptoui" atentry); + ignore(build_fptosi inst32 i64_type "build_fptosi" atentry); + let inst35 = build_fptrunc inst32 float_type "build_fptrunc" atentry in + ignore(build_fpext inst35 double_type "build_fpext" atentry); + let inst37 = build_inttoptr p1 void_ptr "build_inttoptr" atentry in + let inst38 = build_ptrtoint inst37 i64_type "build_ptrtoint" atentry in + ignore(build_bitcast inst38 double_type "build_bitcast" atentry); + ignore(build_zext_or_bitcast inst38 double_type "build_bitcast2" atentry); + ignore(build_sext_or_bitcast inst38 double_type "build_bitcast3" atentry); + ignore(build_trunc_or_bitcast inst38 double_type "build_bitcast4" atentry); + ignore(build_pointercast inst37 (pointer_type i16_type) "build_pointercast" atentry); + + ignore(build_zext_or_bitcast inst28 i32_type "build_zext2" atentry); + ignore(build_sext_or_bitcast inst29 i64_type "build_sext2" atentry); + ignore(build_trunc_or_bitcast p1 i8_type "build_trunc2" atentry); + ignore(build_pointercast inst37 i64_type "build_ptrtoint2" atentry); + ignore(build_intcast inst29 i64_type "build_sext3" atentry); + ignore(build_intcast p1 i8_type "build_trunc3" atentry); + ignore(build_fpcast inst35 double_type "build_fpext2" atentry); + ignore(build_fpcast inst32 float_type "build_fptrunc2" atentry); + end; + + group "comparisons"; begin + (* CHECK: %build_icmp_ne = icmp ne i32 %P1, %P2 + * CHECK: %build_icmp_sle = icmp sle i32 %P2, %P1 + * CHECK: %build_fcmp_false = fcmp false float %F1, %F2 + * CHECK: %build_fcmp_true = fcmp true float %F2, %F1 + * CHECK: %build_is_null{{.*}}= icmp eq{{.*}}%X0,{{.*}}null + * CHECK: %build_is_not_null = icmp ne i8* %X1, null + * CHECK: %build_ptrdiff + *) + ignore (build_icmp Icmp.Ne p1 p2 "build_icmp_ne" atentry); + ignore (build_icmp Icmp.Sle p2 p1 "build_icmp_sle" atentry); + ignore (build_fcmp Fcmp.False f1 f2 "build_fcmp_false" atentry); + ignore (build_fcmp Fcmp.True f2 f1 "build_fcmp_true" atentry); + let g0 = declare_global (pointer_type i8_type) "g0" m in + let g1 = declare_global (pointer_type i8_type) "g1" m in + let p0 = build_load g0 "X0" atentry in + let p1 = build_load g1 "X1" atentry in + ignore (build_is_null p0 "build_is_null" atentry); + ignore (build_is_not_null p1 "build_is_not_null" atentry); + ignore (build_ptrdiff p1 p0 "build_ptrdiff" atentry); + end; + + group "miscellaneous"; begin + (* CHECK: %build_call = tail call cc63 i32 @{{.*}}(i32 signext %P2, i32 %P1) + * CHECK: %build_select = select i1 %build_icmp, i32 %P1, i32 %P2 + * CHECK: %build_va_arg = va_arg i8** null, i32 + * CHECK: %build_extractelement = extractelement <4 x i32> %Vec1, i32 %P2 + * CHECK: %build_insertelement = insertelement <4 x i32> %Vec1, i32 %P1, i32 %P2 + * CHECK: %build_shufflevector = shufflevector <4 x i32> %Vec1, <4 x i32> %Vec2, <4 x i32> + * CHECK: %build_insertvalue0 = insertvalue{{.*}}%bl, i32 1, 0 + * CHECK: %build_extractvalue = extractvalue{{.*}}%build_insertvalue1, 1 + *) + let ci = build_call fn [| p2; p1 |] "build_call" atentry in + insist (CallConv.c = instruction_call_conv ci); + set_instruction_call_conv 63 ci; + insist (63 = instruction_call_conv ci); + insist (not (is_tail_call ci)); + set_tail_call true ci; + insist (is_tail_call ci); + add_instruction_param_attr ci 1 Attribute.Sext; + add_instruction_param_attr ci 2 Attribute.Noalias; + remove_instruction_param_attr ci 2 Attribute.Noalias; + + let inst46 = build_icmp Icmp.Eq p1 p2 "build_icmp" atentry in + ignore (build_select inst46 p1 p2 "build_select" atentry); + ignore (build_va_arg + (const_null (pointer_type (pointer_type i8_type))) + i32_type "build_va_arg" atentry); + + (* Set up some vector vregs. *) + let one = const_int i32_type 1 in + let zero = const_int i32_type 0 in + let t1 = const_vector [| one; zero; one; zero |] in + let t2 = const_vector [| zero; one; zero; one |] in + let t3 = const_vector [| one; one; zero; zero |] in + let vec1 = build_insertelement t1 p1 p2 "Vec1" atentry in + let vec2 = build_insertelement t2 p1 p2 "Vec2" atentry in + let sty = struct_type context [| i32_type; i8_type |] in + + ignore (build_extractelement vec1 p2 "build_extractelement" atentry); + ignore (build_insertelement vec1 p1 p2 "build_insertelement" atentry); + ignore (build_shufflevector vec1 vec2 t3 "build_shufflevector" atentry); + + let p = build_alloca sty "ba" atentry in + let agg = build_load p "bl" atentry in + let agg0 = build_insertvalue agg (const_int i32_type 1) 0 + "build_insertvalue0" atentry in + let agg1 = build_insertvalue agg0 (const_int i8_type 2) 1 + "build_insertvalue1" atentry in + ignore (build_extractvalue agg1 1 "build_extractvalue" atentry) + end; + + group "metadata"; begin + (* CHECK: %metadata = add i32 %P1, %P2, !test !1 + * !1 is metadata emitted at EOF. + *) + let i = build_add p1 p2 "metadata" atentry in + insist ((has_metadata i) = false); + + let m1 = const_int i32_type 1 in + let m2 = mdstring context "metadata test" in + let md = mdnode context [| m1; m2 |] in + + let kind = mdkind_id context "test" in + set_metadata i kind md; + + insist ((has_metadata i) = true); + insist ((metadata i kind) = Some md); + + clear_metadata i kind; + + insist ((has_metadata i) = false); + insist ((metadata i kind) = None); + + set_metadata i kind md + end; + + group "named metadata"; begin + (* !llvm.module.flags is emitted at EOF. *) + let n1 = const_int i32_type 1 in + let n2 = mdstring context "Debug Info Version" in + let md = mdnode context [| n1; n2; n1 |] in + add_named_metadata_operand m "llvm.module.flags" md; + + insist ((get_named_metadata m "llvm.module.flags") = [| md |]) + end; + + group "dbg"; begin + (* CHECK: %dbg = add i32 %P1, %P2, !dbg !2 + * !2 is metadata emitted at EOF. + *) + insist ((current_debug_location atentry) = None); + + let m_line = const_int i32_type 2 in + let m_col = const_int i32_type 3 in + let m_scope = mdnode context [| |] in + let m_inlined = mdnode context [| |] in + let md = mdnode context [| m_line; m_col; m_scope; m_inlined |] in + set_current_debug_location atentry md; + + insist ((current_debug_location atentry) = Some md); + + let i = build_add p1 p2 "dbg" atentry in + insist ((has_metadata i) = true); + + clear_current_debug_location atentry + end; + + group "ret"; begin + (* CHECK: ret{{.*}}P1 + *) + let ret = build_ret p1 atentry in + position_before ret atentry + end; + (* see test/Feature/exception.ll *) let bblpad = append_block context "Bblpad" fn in let rt = struct_type context [| pointer_type i8_type; i32_type |] in @@ -887,23 +1114,16 @@ let test_builder () = add_clause lp (const_array ety [| ztipkc; ztid |]); ignore (build_resume lp (builder_at_end context bblpad)); end; - (* RUN: grep "landingpad.*personality.*__gxx_personality_v0" < %t.ll - * RUN: grep "cleanup" < %t.ll - * RUN: grep "catch.*i8\*\*.*@_ZTIc" < %t.ll - * RUN: grep "filter.*@_ZTIPKc.*@_ZTId" < %t.ll - * RUN: grep "resume " < %t.ll + (* CHECK: landingpad{{.*}}personality{{.*}}__gxx_personality_v0 + * CHECK: cleanup + * CHECK: catch{{.*}}i8**{{.*}}@_ZTIc + * CHECK: filter{{.*}}@_ZTIPKc{{.*}}@_ZTId + * CHECK: resume * *) end; - group "ret"; begin - (* RUN: grep "ret.*P1" < %t.ll - *) - let ret = build_ret p1 atentry in - position_before ret atentry - end; - group "br"; begin - (* RUN: grep "br.*Bb02" < %t.ll + (* CHECK: br{{.*}}Bb02 *) let bb02 = append_block context "Bb02" fn in let b = builder_at_end context bb02 in @@ -911,7 +1131,7 @@ let test_builder () = end; group "cond_br"; begin - (* RUN: grep "br.*build_br.*Bb03.*Bb00" < %t.ll + (* CHECK: br{{.*}}build_br{{.*}}Bb03{{.*}}Bb00 *) let bb03 = append_block context "Bb03" fn in let b = builder_at_end context bb03 in @@ -920,8 +1140,8 @@ let test_builder () = end; group "switch"; begin - (* RUN: grep "switch.*P1.*SwiBlock3" < %t.ll - * RUN: grep "2,.*SwiBlock2" < %t.ll + (* CHECK: switch{{.*}}P1{{.*}}SwiBlock3 + * CHECK: 2,{{.*}}SwiBlock2 *) let bb1 = append_block context "SwiBlock1" fn in let bb2 = append_block context "SwiBlock2" fn in @@ -935,9 +1155,9 @@ let test_builder () = end; group "malloc/free"; begin - (* RUN: grep "call.*@malloc(i32 ptrtoint" < %t.ll - * RUN: grep "call.*@free(i8\*" < %t.ll - * RUN: grep "call.*@malloc(i32 %" < %t.ll + (* CHECK: call{{.*}}@malloc(i32 ptrtoint + * CHECK: call{{.*}}@free(i8* + * CHECK: call{{.*}}@malloc(i32 % *) let bb1 = append_block context "MallocBlock1" fn in let m1 = (build_malloc (pointer_type i32_type) "m1" @@ -948,7 +1168,7 @@ let test_builder () = end; group "indirectbr"; begin - (* RUN: grep "indirectbr i8\* blockaddress(@X7, %IBRBlock2), \[label %IBRBlock2, label %IBRBlock3\]" < %t.ll + (* CHECK: indirectbr i8* blockaddress(@X7, %IBRBlock2), [label %IBRBlock2, label %IBRBlock3] *) let bb1 = append_block context "IBRBlock1" fn in @@ -965,8 +1185,8 @@ let test_builder () = end; group "invoke"; begin - (* RUN: grep "build_invoke.*invoke.*P1.*P2" < %t.ll - * RUN: grep "to.*Bb04.*unwind.*Bblpad" < %t.ll + (* CHECK: build_invoke{{.*}}invoke{{.*}}P1{{.*}}P2 + * CHECK: to{{.*}}Bb04{{.*}}unwind{{.*}}Bblpad *) let bb04 = append_block context "Bb04" fn in let b = builder_at_end context bb04 in @@ -974,7 +1194,7 @@ let test_builder () = end; group "unreachable"; begin - (* RUN: grep "unreachable" < %t.ll + (* CHECK: unreachable *) let bb06 = append_block context "Bb06" fn in let b = builder_at_end context bb06 in @@ -985,36 +1205,36 @@ let test_builder () = let bb07 = append_block context "Bb07" fn in let b = builder_at_end context bb07 in - (* RUN: grep "%build_add = add i32 %P1, %P2" < %t.ll - * RUN: grep "%build_nsw_add = add nsw i32 %P1, %P2" < %t.ll - * RUN: grep "%build_nuw_add = add nuw i32 %P1, %P2" < %t.ll - * RUN: grep "%build_fadd = fadd float %F1, %F2" < %t.ll - * RUN: grep "%build_sub = sub i32 %P1, %P2" < %t.ll - * RUN: grep "%build_nsw_sub = sub nsw i32 %P1, %P2" < %t.ll - * RUN: grep "%build_nuw_sub = sub nuw i32 %P1, %P2" < %t.ll - * RUN: grep "%build_fsub = fsub float %F1, %F2" < %t.ll - * RUN: grep "%build_mul = mul i32 %P1, %P2" < %t.ll - * RUN: grep "%build_nsw_mul = mul nsw i32 %P1, %P2" < %t.ll - * RUN: grep "%build_nuw_mul = mul nuw i32 %P1, %P2" < %t.ll - * RUN: grep "%build_fmul = fmul float %F1, %F2" < %t.ll - * RUN: grep "%build_udiv = udiv i32 %P1, %P2" < %t.ll - * RUN: grep "%build_sdiv = sdiv i32 %P1, %P2" < %t.ll - * RUN: grep "%build_exact_sdiv = sdiv exact i32 %P1, %P2" < %t.ll - * RUN: grep "%build_fdiv = fdiv float %F1, %F2" < %t.ll - * RUN: grep "%build_urem = urem i32 %P1, %P2" < %t.ll - * RUN: grep "%build_srem = srem i32 %P1, %P2" < %t.ll - * RUN: grep "%build_frem = frem float %F1, %F2" < %t.ll - * RUN: grep "%build_shl = shl i32 %P1, %P2" < %t.ll - * RUN: grep "%build_lshl = lshr i32 %P1, %P2" < %t.ll - * RUN: grep "%build_ashl = ashr i32 %P1, %P2" < %t.ll - * RUN: grep "%build_and = and i32 %P1, %P2" < %t.ll - * RUN: grep "%build_or = or i32 %P1, %P2" < %t.ll - * RUN: grep "%build_xor = xor i32 %P1, %P2" < %t.ll - * RUN: grep "%build_neg = sub i32 0, %P1" < %t.ll - * RUN: grep "%build_nsw_neg = sub nsw i32 0, %P1" < %t.ll - * RUN: grep "%build_nuw_neg = sub nuw i32 0, %P1" < %t.ll - * RUN: grep "%build_fneg = fsub float .*0.*, %F1" < %t.ll - * RUN: grep "%build_not = xor i32 %P1, -1" < %t.ll + (* CHECK: %build_add = add i32 %P1, %P2 + * CHECK: %build_nsw_add = add nsw i32 %P1, %P2 + * CHECK: %build_nuw_add = add nuw i32 %P1, %P2 + * CHECK: %build_fadd = fadd float %F1, %F2 + * CHECK: %build_sub = sub i32 %P1, %P2 + * CHECK: %build_nsw_sub = sub nsw i32 %P1, %P2 + * CHECK: %build_nuw_sub = sub nuw i32 %P1, %P2 + * CHECK: %build_fsub = fsub float %F1, %F2 + * CHECK: %build_mul = mul i32 %P1, %P2 + * CHECK: %build_nsw_mul = mul nsw i32 %P1, %P2 + * CHECK: %build_nuw_mul = mul nuw i32 %P1, %P2 + * CHECK: %build_fmul = fmul float %F1, %F2 + * CHECK: %build_udiv = udiv i32 %P1, %P2 + * CHECK: %build_sdiv = sdiv i32 %P1, %P2 + * CHECK: %build_exact_sdiv = sdiv exact i32 %P1, %P2 + * CHECK: %build_fdiv = fdiv float %F1, %F2 + * CHECK: %build_urem = urem i32 %P1, %P2 + * CHECK: %build_srem = srem i32 %P1, %P2 + * CHECK: %build_frem = frem float %F1, %F2 + * CHECK: %build_shl = shl i32 %P1, %P2 + * CHECK: %build_lshl = lshr i32 %P1, %P2 + * CHECK: %build_ashl = ashr i32 %P1, %P2 + * CHECK: %build_and = and i32 %P1, %P2 + * CHECK: %build_or = or i32 %P1, %P2 + * CHECK: %build_xor = xor i32 %P1, %P2 + * CHECK: %build_neg = sub i32 0, %P1 + * CHECK: %build_nsw_neg = sub nsw i32 0, %P1 + * CHECK: %build_nuw_neg = sub nuw i32 0, %P1 + * CHECK: %build_fneg = fsub float {{.*}}0{{.*}}, %F1 + * CHECK: %build_not = xor i32 %P1, -1 *) ignore (build_add p1 p2 "build_add" b); ignore (build_nsw_add p1 p2 "build_nsw_add" b); @@ -1053,18 +1273,29 @@ let test_builder () = let bb08 = append_block context "Bb08" fn in let b = builder_at_end context bb08 in - (* RUN: grep "%build_alloca = alloca i32" < %t.ll - * RUN: grep "%build_array_alloca = alloca i32, i32 %P2" < %t.ll - * RUN: grep "%build_load = load i32\* %build_array_alloca" < %t.ll - * RUN: grep "store i32 %P2, i32\* %build_alloca" < %t.ll - * RUN: grep "%build_gep = getelementptr i32\* %build_array_alloca, i32 %P2" < %t.ll - * RUN: grep "%build_in_bounds_gep = getelementptr inbounds i32\* %build_array_alloca, i32 %P2" < %t.ll - * RUN: grep "%build_struct_gep = getelementptr inbounds.*%build_alloca2, i32 0, i32 1" < %t.ll + (* CHECK: %build_alloca = alloca i32 + * CHECK: %build_array_alloca = alloca i32, i32 %P2 + * CHECK: %build_load = load volatile i32* %build_array_alloca, align 4 + * CHECK: store volatile i32 %P2, i32* %build_alloca, align 4 + * CHECK: %build_gep = getelementptr i32* %build_array_alloca, i32 %P2 + * CHECK: %build_in_bounds_gep = getelementptr inbounds i32* %build_array_alloca, i32 %P2 + * CHECK: %build_struct_gep = getelementptr inbounds{{.*}}%build_alloca2, i32 0, i32 1 + * CHECK: %build_atomicrmw = atomicrmw xchg i8* %p, i8 42 seq_cst *) let alloca = build_alloca i32_type "build_alloca" b in let array_alloca = build_array_alloca i32_type p2 "build_array_alloca" b in - ignore(build_load array_alloca "build_load" b); - ignore(build_store p2 alloca b); + + let load = build_load array_alloca "build_load" b in + ignore(set_alignment 4 load); + ignore(set_volatile true load); + insist(true = is_volatile load); + insist(4 = alignment load); + + let store = build_store p2 alloca b in + ignore(set_volatile true store); + ignore(set_alignment 4 store); + insist(true = is_volatile store); + insist(4 = alignment store); ignore(build_gep array_alloca [| p2 |] "build_gep" b); ignore(build_in_bounds_gep array_alloca [| p2 |] "build_in_bounds_gep" b); @@ -1072,6 +1303,11 @@ let test_builder () = let alloca2 = build_alloca sty "build_alloca2" b in ignore(build_struct_gep alloca2 1 "build_struct_gep" b); + let p = build_alloca i8_type "p" b in + ignore(build_atomicrmw AtomicRMWBinOp.Xchg p (const_int i8_type 42) + AtomicOrdering.SequentiallyConsistent false "build_atomicrmw" + b); + ignore(build_unreachable b) end; @@ -1079,8 +1315,8 @@ let test_builder () = let bb09 = append_block context "Bb09" fn in let b = builder_at_end context bb09 in let p = build_alloca (pointer_type i8_type) "p" b in - (* RUN: grep "build_global_string.*stringval" < %t.ll - * RUN: grep "store.*build_global_string1.*p" < %t.ll + (* build_global_string is emitted above. + * CHECK: store{{.*}}build_global_string1{{.*}}p * *) ignore (build_global_string "stringval" "build_global_string" b); let g = build_global_stringptr "stringval" "build_global_string1" b in @@ -1088,181 +1324,8 @@ let test_builder () = ignore(build_unreachable b); end; - group "casts"; begin - let void_ptr = pointer_type i8_type in - - (* RUN: grep "%build_trunc = trunc i32 %P1 to i8" < %t.ll - * RUN: grep "%build_trunc2 = trunc i32 %P1 to i8" < %t.ll - * RUN: grep "%build_trunc3 = trunc i32 %P1 to i8" < %t.ll - * RUN: grep "%build_zext = zext i8 %build_trunc to i32" < %t.ll - * RUN: grep "%build_zext2 = zext i8 %build_trunc to i32" < %t.ll - * RUN: grep "%build_sext = sext i32 %build_zext to i64" < %t.ll - * RUN: grep "%build_sext2 = sext i32 %build_zext to i64" < %t.ll - * RUN: grep "%build_sext3 = sext i32 %build_zext to i64" < %t.ll - * RUN: grep "%build_uitofp = uitofp i64 %build_sext to float" < %t.ll - * RUN: grep "%build_sitofp = sitofp i32 %build_zext to double" < %t.ll - * RUN: grep "%build_fptoui = fptoui float %build_uitofp to i32" < %t.ll - * RUN: grep "%build_fptosi = fptosi double %build_sitofp to i64" < %t.ll - * RUN: grep "%build_fptrunc = fptrunc double %build_sitofp to float" < %t.ll - * RUN: grep "%build_fptrunc2 = fptrunc double %build_sitofp to float" < %t.ll - * RUN: grep "%build_fpext = fpext float %build_fptrunc to double" < %t.ll - * RUN: grep "%build_fpext2 = fpext float %build_fptrunc to double" < %t.ll - * RUN: grep "%build_inttoptr = inttoptr i32 %P1 to i8\*" < %t.ll - * RUN: grep "%build_ptrtoint = ptrtoint i8\* %build_inttoptr to i64" < %t.ll - * RUN: grep "%build_ptrtoint2 = ptrtoint i8\* %build_inttoptr to i64" < %t.ll - * RUN: grep "%build_bitcast = bitcast i64 %build_ptrtoint to double" < %t.ll - * RUN: grep "%build_bitcast2 = bitcast i64 %build_ptrtoint to double" < %t.ll - * RUN: grep "%build_bitcast3 = bitcast i64 %build_ptrtoint to double" < %t.ll - * RUN: grep "%build_bitcast4 = bitcast i64 %build_ptrtoint to double" < %t.ll - * RUN: grep "%build_pointercast = bitcast i8\* %build_inttoptr to i16*" < %t.ll - *) - let inst28 = build_trunc p1 i8_type "build_trunc" atentry in - let inst29 = build_zext inst28 i32_type "build_zext" atentry in - let inst30 = build_sext inst29 i64_type "build_sext" atentry in - let inst31 = build_uitofp inst30 float_type "build_uitofp" atentry in - let inst32 = build_sitofp inst29 double_type "build_sitofp" atentry in - ignore(build_fptoui inst31 i32_type "build_fptoui" atentry); - ignore(build_fptosi inst32 i64_type "build_fptosi" atentry); - let inst35 = build_fptrunc inst32 float_type "build_fptrunc" atentry in - ignore(build_fpext inst35 double_type "build_fpext" atentry); - let inst37 = build_inttoptr p1 void_ptr "build_inttoptr" atentry in - let inst38 = build_ptrtoint inst37 i64_type "build_ptrtoint" atentry in - ignore(build_bitcast inst38 double_type "build_bitcast" atentry); - ignore(build_zext_or_bitcast inst38 double_type "build_bitcast2" atentry); - ignore(build_sext_or_bitcast inst38 double_type "build_bitcast3" atentry); - ignore(build_trunc_or_bitcast inst38 double_type "build_bitcast4" atentry); - ignore(build_pointercast inst37 (pointer_type i16_type) "build_pointercast" atentry); - - ignore(build_zext_or_bitcast inst28 i32_type "build_zext2" atentry); - ignore(build_sext_or_bitcast inst29 i64_type "build_sext2" atentry); - ignore(build_trunc_or_bitcast p1 i8_type "build_trunc2" atentry); - ignore(build_pointercast inst37 i64_type "build_ptrtoint2" atentry); - ignore(build_intcast inst29 i64_type "build_sext3" atentry); - ignore(build_intcast p1 i8_type "build_trunc3" atentry); - ignore(build_fpcast inst35 double_type "build_fpext2" atentry); - ignore(build_fpcast inst32 float_type "build_fptrunc2" atentry); - end; - - group "comparisons"; begin - (* RUN: grep "%build_icmp_ne = icmp ne i32 %P1, %P2" < %t.ll - * RUN: grep "%build_icmp_sle = icmp sle i32 %P2, %P1" < %t.ll - * RUN: grep "%build_fcmp_false = fcmp false float %F1, %F2" < %t.ll - * RUN: grep "%build_fcmp_true = fcmp true float %F2, %F1" < %t.ll - * RUN: grep "%build_is_null.*= icmp eq.*%X0,.*null" < %t.ll - * RUN: grep "%build_is_not_null = icmp ne i8\* %X1, null" < %t.ll - * RUN: grep "%build_ptrdiff" < %t.ll - *) - ignore (build_icmp Icmp.Ne p1 p2 "build_icmp_ne" atentry); - ignore (build_icmp Icmp.Sle p2 p1 "build_icmp_sle" atentry); - ignore (build_fcmp Fcmp.False f1 f2 "build_fcmp_false" atentry); - ignore (build_fcmp Fcmp.True f2 f1 "build_fcmp_true" atentry); - let g0 = declare_global (pointer_type i8_type) "g0" m in - let g1 = declare_global (pointer_type i8_type) "g1" m in - let p0 = build_load g0 "X0" atentry in - let p1 = build_load g1 "X1" atentry in - ignore (build_is_null p0 "build_is_null" atentry); - ignore (build_is_not_null p1 "build_is_not_null" atentry); - ignore (build_ptrdiff p1 p0 "build_ptrdiff" atentry); - end; - - group "miscellaneous"; begin - (* RUN: grep "%build_call = tail call cc63 i32 @.*(i32 signext %P2, i32 %P1)" < %t.ll - * RUN: grep "%build_select = select i1 %build_icmp, i32 %P1, i32 %P2" < %t.ll - * RUN: grep "%build_va_arg = va_arg i8\*\* null, i32" < %t.ll - * RUN: grep "%build_extractelement = extractelement <4 x i32> %Vec1, i32 %P2" < %t.ll - * RUN: grep "%build_insertelement = insertelement <4 x i32> %Vec1, i32 %P1, i32 %P2" < %t.ll - * RUN: grep "%build_shufflevector = shufflevector <4 x i32> %Vec1, <4 x i32> %Vec2, <4 x i32> " < %t.ll - * RUN: grep "%build_insertvalue0 = insertvalue.*%bl, i32 1, 0" < %t.ll - * RUN: grep "%build_extractvalue = extractvalue.*%build_insertvalue1, 1" < %t.ll - *) - let ci = build_call fn [| p2; p1 |] "build_call" atentry in - insist (CallConv.c = instruction_call_conv ci); - set_instruction_call_conv 63 ci; - insist (63 = instruction_call_conv ci); - insist (not (is_tail_call ci)); - set_tail_call true ci; - insist (is_tail_call ci); - add_instruction_param_attr ci 1 Attribute.Sext; - add_instruction_param_attr ci 2 Attribute.Noalias; - remove_instruction_param_attr ci 2 Attribute.Noalias; - - let inst46 = build_icmp Icmp.Eq p1 p2 "build_icmp" atentry in - ignore (build_select inst46 p1 p2 "build_select" atentry); - ignore (build_va_arg - (const_null (pointer_type (pointer_type i8_type))) - i32_type "build_va_arg" atentry); - - (* Set up some vector vregs. *) - let one = const_int i32_type 1 in - let zero = const_int i32_type 0 in - let t1 = const_vector [| one; zero; one; zero |] in - let t2 = const_vector [| zero; one; zero; one |] in - let t3 = const_vector [| one; one; zero; zero |] in - let vec1 = build_insertelement t1 p1 p2 "Vec1" atentry in - let vec2 = build_insertelement t2 p1 p2 "Vec2" atentry in - let sty = struct_type context [| i32_type; i8_type |] in - - ignore (build_extractelement vec1 p2 "build_extractelement" atentry); - ignore (build_insertelement vec1 p1 p2 "build_insertelement" atentry); - ignore (build_shufflevector vec1 vec2 t3 "build_shufflevector" atentry); - - let p = build_alloca sty "ba" atentry in - let agg = build_load p "bl" atentry in - let agg0 = build_insertvalue agg (const_int i32_type 1) 0 - "build_insertvalue0" atentry in - let agg1 = build_insertvalue agg0 (const_int i8_type 2) 1 - "build_insertvalue1" atentry in - ignore (build_extractvalue agg1 1 "build_extractvalue" atentry) - end; - - group "metadata"; begin - (* RUN: grep '%metadata = add i32 %P1, %P2, !test !0' < %t.ll - * RUN: grep '!0 = metadata !{i32 1, metadata !"metadata test"}' < %t.ll - *) - let i = build_add p1 p2 "metadata" atentry in - insist ((has_metadata i) = false); - - let m1 = const_int i32_type 1 in - let m2 = mdstring context "metadata test" in - let md = mdnode context [| m1; m2 |] in - - let kind = mdkind_id context "test" in - set_metadata i kind md; - - insist ((has_metadata i) = true); - insist ((metadata i kind) = Some md); - - clear_metadata i kind; - - insist ((has_metadata i) = false); - insist ((metadata i kind) = None); - - set_metadata i kind md - end; - - group "dbg"; begin - (* RUN: grep '%dbg = add i32 %P1, %P2, !dbg !1' < %t.ll - * RUN: grep '!1 = metadata !{i32 2, i32 3, metadata !2, metadata !2}' < %t.ll - *) - insist ((current_debug_location atentry) = None); - - let m_line = const_int i32_type 2 in - let m_col = const_int i32_type 3 in - let m_scope = mdnode context [| |] in - let m_inlined = mdnode context [| |] in - let md = mdnode context [| m_line; m_col; m_scope; m_inlined |] in - set_current_debug_location atentry md; - - insist ((current_debug_location atentry) = Some md); - - let i = build_add p1 p2 "dbg" atentry in - insist ((has_metadata i) = true); - - clear_current_debug_location atentry - end; - group "phi"; begin - (* RUN: grep "PhiNode.*P1.*PhiBlock1.*P2.*PhiBlock2" < %t.ll + (* CHECK: PhiNode{{.*}}P1{{.*}}PhiBlock1{{.*}}P2{{.*}}PhiBlock2 *) let b1 = append_block context "PhiBlock1" fn in let b2 = append_block context "PhiBlock2" fn in @@ -1281,6 +1344,13 @@ let test_builder () = ignore (build_unreachable at_jb); end +(* End-of-file checks for things like metdata and attributes. + * CHECK: attributes #0 = {{.*}}uwtable{{.*}} + * CHECK: !llvm.module.flags = !{!0} + * CHECK: !0 = metadata !{i32 1, metadata !"Debug Info Version", i32 1} + * CHECK: !1 = metadata !{i32 1, metadata !"metadata test"} + * CHECK: !2 = metadata !{i32 2, i32 3, metadata !3, metadata !3} + *) (*===-- Pass Managers -----------------------------------------------------===*) @@ -1306,6 +1376,14 @@ let test_pass_manager () = end +(*===-- Memory Buffer -----------------------------------------------------===*) + +let test_memory_buffer () = + group "memory buffer"; + let buf = MemoryBuffer.of_string "foobar" in + insist ((MemoryBuffer.as_string buf) = "foobar") + + (*===-- Writer ------------------------------------------------------------===*) let test_writer () = @@ -1323,6 +1401,7 @@ let test_writer () = (*===-- Driver ------------------------------------------------------------===*) let _ = + suite "conversion" test_conversion; suite "target" test_target; suite "constants" test_constants; suite "global values" test_global_values; @@ -1336,5 +1415,6 @@ let _ = suite "instructions" test_instructions; suite "builder" test_builder; suite "pass manager" test_pass_manager; + suite "memory buffer" test_memory_buffer; suite "writer" test_writer; (* Keep this last; it disposes m. *) exit !exit_status diff --git a/test/Bindings/llvm-c/calc.test b/test/Bindings/llvm-c/calc.test new file mode 100644 index 0000000000000..36a76e660330a --- /dev/null +++ b/test/Bindings/llvm-c/calc.test @@ -0,0 +1,15 @@ +; RUN: llvm-c-test --calc <%s | FileCheck %s + +; constant folding +test 100 200 + +;CHECK: ModuleID = 'test' +;CHECK: define i64 @test +;CHECK: { +;CHECK: ret i64 300 +;CHECK: } + +arg1 0 @ 0 @ * 1 @ 1 @ * + +;CHECK: ModuleID = 'arg1' +;CHECK: getelementptr +;CHECK: load +;CHECK: ret diff --git a/test/Bindings/llvm-c/disassemble.test b/test/Bindings/llvm-c/disassemble.test new file mode 100644 index 0000000000000..201e914587d40 --- /dev/null +++ b/test/Bindings/llvm-c/disassemble.test @@ -0,0 +1,29 @@ +; RUN: llvm-c-test --disassemble < %s | FileCheck %s + + +arm-linux-android 44 26 1f e5 0c 10 4b e2 02 20 81 e0 +;CHECK: triple: arm-linux-android +;CHECK: ldr r2, [pc, #-1604] +;CHECK: sub r1, r11, #12 +;CHECK: 02 20 81 e0 +;CHECK: add r2, r1, r2 + +x86_64-linux-unknown 48 83 c4 38 5b 5d 41 5c 41 5d 41 5e 41 5f c3 +;CHECK: triple: x86_64-linux-unknown +;CHECK: addq $56, %rsp +;CHECK: popq %rbx +;CHECK: popq %rbp +;CHECK: popq %r12 +;CHECK: popq %r13 +;CHECK: popq %r14 +;CHECK: popq %r15 +;CHECK: ret + +i686-apple-darwin 0f b7 4c 24 0a e8 29 ce ff ff +;CHECK: movzwl 10(%esp), %ecx +;CHECK: calll -12759 + +i686-linux-unknown dd 44 24 04 d9 e1 c3 +;CHECK: fldl 4(%esp) +;CHECK: fabs +;CHECK: ret diff --git a/test/Bindings/llvm-c/functions.ll b/test/Bindings/llvm-c/functions.ll new file mode 100644 index 0000000000000..4503fb17315f5 --- /dev/null +++ b/test/Bindings/llvm-c/functions.ll @@ -0,0 +1,31 @@ +; RUN: llvm-as < %s | llvm-c-test --module-list-functions | FileCheck %s + +define i32 @X() { +entry: + br label %l1 + +l1: + br label %l2 + +l2: + br label %l3 + +l3: + ret i32 1234 +} +;CHECK: FunctionDefinition: X [#bb=4] + + +define i32 @Z(i32 %a) { +entry: + %0 = tail call i32 @Y(i32 %a) + ret i32 %0 +} + +;CHECK: FunctionDefinition: Z [#bb=1] +;CHECK: calls: Y +;CHECK: #isn: 2 + +declare i32 @Y(i32) +;CHECK: FunctionDeclaration: Y + diff --git a/test/Bindings/llvm-c/globals.ll b/test/Bindings/llvm-c/globals.ll new file mode 100644 index 0000000000000..a38f08b93ee95 --- /dev/null +++ b/test/Bindings/llvm-c/globals.ll @@ -0,0 +1,7 @@ +; RUN: llvm-as < %s | llvm-c-test --module-list-globals | FileCheck %s + +@foo = constant [7 x i8] c"foobar\00", align 1 +;CHECK: GlobalDefinition: foo [7 x i8]* + +@bar = common global i32 0, align 4 +;CHECK: GlobalDefinition: bar i32* diff --git a/test/Bindings/llvm-c/lit.local.cfg b/test/Bindings/llvm-c/lit.local.cfg new file mode 100644 index 0000000000000..d83ebeed8e1ca --- /dev/null +++ b/test/Bindings/llvm-c/lit.local.cfg @@ -0,0 +1,5 @@ +targets = set(config.root.targets_to_build.split()) +if not "X86" in targets: + config.unsupported = True +if not "ARM" in targets: + config.unsupported = True diff --git a/test/Bitcode/2012-05-07-SwitchInstRangesSupport.ll b/test/Bitcode/2012-05-07-SwitchInstRangesSupport.ll deleted file mode 100644 index 583b9a853bde3..0000000000000 --- a/test/Bitcode/2012-05-07-SwitchInstRangesSupport.ll +++ /dev/null @@ -1,33 +0,0 @@ -; RUN: rm -f %t.bc -; RUN: rm -f %t.ll -; RUN: rm -f %t2.bc -; RUN: rm -f %t2.ll -; RUN: llvm-as %s -o %t.bc -; RUN: llvm-dis %t.bc -o - | tail -n +2 > %t.ll -; RUN: llvm-as %t.ll -o %t2.bc -; RUN: llvm-dis %t2.bc -o - | tail -n +2 > %t2.ll -; RUN: llvm-diff %t.ll %t2.ll - -define void @test() { - %mem = alloca i32 - store i32 2, i32* %mem - %c = load i32* %mem - switch i32 %c, label %exit [ - i32 1, label %exit - i32 2, label %exit - ] -exit: - ret void -} -define void @test_wide() { - %mem = alloca i256 - store i256 2, i256* %mem - %c = load i256* %mem - switch i256 %c, label %exit [ - i256 123456789012345678901234567890, label %exit - i256 2, label %exit - ] -exit: - ret void -} - diff --git a/test/Bitcode/attributes-3.3.ll b/test/Bitcode/attributes-3.3.ll new file mode 100644 index 0000000000000..cd70ba1a749aa --- /dev/null +++ b/test/Bitcode/attributes-3.3.ll @@ -0,0 +1,236 @@ +; RUN: llvm-dis < %s.bc| FileCheck %s + +; attributes-3.3.ll.bc was generated by passing this file to llvm-as-3.3. +; The test checks that LLVM does not silently misread attributes of +; older bitcode files. + +define void @f1(i8 zeroext) +; CHECK: define void @f1(i8 zeroext) +{ + ret void; +} + +define void @f2(i8 signext) +; CHECK: define void @f2(i8 signext) +{ + ret void; +} + +define void @f3() noreturn +; CHECK: define void @f3() #0 +{ + ret void; +} + +define void @f4(i8 inreg) +; CHECK: define void @f4(i8 inreg) +{ + ret void; +} + +define void @f5(i8* sret) +; CHECK: define void @f5(i8* sret) +{ + ret void; +} + +define void @f6() nounwind +; CHECK: define void @f6() #1 +{ + ret void; +} + +define void @f7(i8* noalias) +; CHECK: define void @f7(i8* noalias) +{ + ret void; +} + +define void @f8(i8* byval) +; CHECK: define void @f8(i8* byval) +{ + ret void; +} + +define void @f9(i8* nest) +; CHECK: define void @f9(i8* nest) +{ + ret void; +} + +define void @f10() readnone +; CHECK: define void @f10() #2 +{ + ret void; +} + +define void @f11() readonly +; CHECK: define void @f11() #3 +{ + ret void; +} + +define void @f12() noinline +; CHECK: define void @f12() #4 +{ + ret void; +} + +define void @f13() alwaysinline +; CHECK: define void @f13() #5 +{ + ret void; +} + +define void @f14() optsize +; CHECK: define void @f14() #6 +{ + ret void; +} + +define void @f15() ssp +; CHECK: define void @f15() #7 +{ + ret void; +} + +define void @f16() sspreq +; CHECK: define void @f16() #8 +{ + ret void; +} + +define void @f17(i8 align 4) +; CHECK: define void @f17(i8 align 4) +{ + ret void; +} + +define void @f18(i8* nocapture) +; CHECK: define void @f18(i8* nocapture) +{ + ret void; +} + +define void @f19() noredzone +; CHECK: define void @f19() #9 +{ + ret void; +} + +define void @f20() noimplicitfloat +; CHECK: define void @f20() #10 +{ + ret void; +} + +define void @f21() naked +; CHECK: define void @f21() #11 +{ + ret void; +} + +define void @f22() inlinehint +; CHECK: define void @f22() #12 +{ + ret void; +} + +define void @f23() alignstack(4) +; CHECK: define void @f23() #13 +{ + ret void; +} + +define void @f24() returns_twice +; CHECK: define void @f24() #14 +{ + ret void; +} + +define void @f25() uwtable +; CHECK: define void @f25() #15 +{ + ret void; +} + +define void @f26() nonlazybind +; CHECK: define void @f26() #16 +{ + ret void; +} + +define void @f27() sanitize_address +; CHECK: define void @f27() #17 +{ + ret void; +} +define void @f28() sanitize_thread +; CHECK: define void @f28() #18 +{ + ret void; +} +define void @f29() sanitize_memory +; CHECK: define void @f29() #19 +{ + ret void; +} + +define void @f30() "cpu"="cortex-a8" +; CHECK: define void @f30() #20 +{ + ret void; +} + +define i8 @f31(i8 returned %A) +; CHECK: define i8 @f31(i8 returned %A) +{ + ret i8 %A; +} + +define void @f32() sspstrong +; CHECK: define void @f32() #21 +{ + ret void; +} + +define void @f33() minsize +; CHECK: define void @f33() #22 +{ + ret void; +} + +declare void @nobuiltin() + +define void @f34() +; CHECK: define void @f34() +{ + call void @nobuiltin() nobuiltin +; CHECK: call void @nobuiltin() #23 + ret void; +} + +; CHECK: attributes #0 = { noreturn } +; CHECK: attributes #1 = { nounwind } +; CHECK: attributes #2 = { readnone } +; CHECK: attributes #3 = { readonly } +; CHECK: attributes #4 = { noinline } +; CHECK: attributes #5 = { alwaysinline } +; CHECK: attributes #6 = { optsize } +; CHECK: attributes #7 = { ssp } +; CHECK: attributes #8 = { sspreq } +; CHECK: attributes #9 = { noredzone } +; CHECK: attributes #10 = { noimplicitfloat } +; CHECK: attributes #11 = { naked } +; CHECK: attributes #12 = { inlinehint } +; CHECK: attributes #13 = { alignstack=4 } +; CHECK: attributes #14 = { returns_twice } +; CHECK: attributes #15 = { uwtable } +; CHECK: attributes #16 = { nonlazybind } +; CHECK: attributes #17 = { sanitize_address } +; CHECK: attributes #18 = { sanitize_thread } +; CHECK: attributes #19 = { sanitize_memory } +; CHECK: attributes #20 = { "cpu"="cortex-a8" } +; CHECK: attributes #21 = { sspstrong } +; CHECK: attributes #22 = { minsize } +; CHECK: attributes #23 = { nobuiltin } diff --git a/test/Bitcode/attributes-3.3.ll.bc b/test/Bitcode/attributes-3.3.ll.bc new file mode 100644 index 0000000000000..5dd71864ea4fb Binary files /dev/null and b/test/Bitcode/attributes-3.3.ll.bc differ diff --git a/test/Bitcode/attributes.ll b/test/Bitcode/attributes.ll index 6c46e94012a5e..1789878e9f50c 100644 --- a/test/Bitcode/attributes.ll +++ b/test/Bitcode/attributes.ll @@ -179,6 +179,40 @@ define void @f30() "cpu"="cortex-a8" ret void; } +define i8 @f31(i8 returned %A) +; CHECK: define i8 @f31(i8 returned %A) +{ + ret i8 %A; +} + +define void @f32() sspstrong +; CHECK: define void @f32() #21 +{ + ret void; +} + +define void @f33() minsize +; CHECK: define void @f33() #22 +{ + ret void; +} + +declare void @nobuiltin() + +define void @f34() +; CHECK: define void @f34() +{ + call void @nobuiltin() nobuiltin +; CHECK: call void @nobuiltin() #24 + ret void; +} + +define void @f35() optnone noinline +; CHECK: define void @f35() #23 +{ + ret void; +} + ; CHECK: attributes #0 = { noreturn } ; CHECK: attributes #1 = { nounwind } ; CHECK: attributes #2 = { readnone } @@ -200,3 +234,8 @@ define void @f30() "cpu"="cortex-a8" ; CHECK: attributes #18 = { sanitize_thread } ; CHECK: attributes #19 = { sanitize_memory } ; CHECK: attributes #20 = { "cpu"="cortex-a8" } +; CHECK: attributes #21 = { sspstrong } +; CHECK: attributes #22 = { minsize } +; CHECK: attributes #23 = { noinline optnone } +; CHECK: attributes #24 = { nobuiltin } + diff --git a/test/Bitcode/case-ranges-3.3.ll b/test/Bitcode/case-ranges-3.3.ll new file mode 100644 index 0000000000000..6e1d0a69a5910 --- /dev/null +++ b/test/Bitcode/case-ranges-3.3.ll @@ -0,0 +1,67 @@ +; RUN: llvm-dis < %s.bc| FileCheck %s + +; case-ranges.ll.bc was generated by passing this file to llvm-as from the 3.3 +; release of LLVM. This tests that the bitcode for switches from that release +; can still be read. + +define i32 @foo(i32 %x) nounwind ssp uwtable { +; CHECK: define i32 @foo + %1 = alloca i32, align 4 + %2 = alloca i32, align 4 + store i32 %x, i32* %2, align 4 + %3 = load i32* %2, align 4 + switch i32 %3, label %9 [ +; CHECK: switch i32 %3, label %9 + i32 -3, label %4 +; CHECK-NEXT: i32 -3, label %4 + i32 -2, label %4 +; CHECK-NEXT: i32 -2, label %4 + i32 -1, label %4 +; CHECK-NEXT: i32 -1, label %4 + i32 0, label %4 +; CHECK-NEXT: i32 0, label %4 + i32 1, label %4 +; CHECK-NEXT: i32 1, label %4 + i32 2, label %4 +; CHECK-NEXT: i32 2, label %4 + i32 4, label %5 +; CHECK-NEXT: i32 4, label %5 + i32 5, label %6 +; CHECK-NEXT: i32 5, label %6 + i32 6, label %7 +; CHECK-NEXT: i32 6, label %7 + i32 7, label %8 +; CHECK-NEXT: i32 7, label %8 + ] + +;